From d142aecb38fbfd35bf2a0732f5391a807bff3a5e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 11 Jun 2023 14:46:10 +0200 Subject: Merging upstream version 15.2.0. Signed-off-by: Daniel Baumann --- docs/search.js | 2 +- docs/sqlglot/_version.html | 4 +- docs/sqlglot/dataframe/sql.html | 94 +- docs/sqlglot/dialects/bigquery.html | 1357 +- docs/sqlglot/dialects/clickhouse.html | 1497 +- docs/sqlglot/dialects/databricks.html | 8 +- docs/sqlglot/dialects/dialect.html | 2032 +-- docs/sqlglot/dialects/drill.html | 8 +- docs/sqlglot/dialects/duckdb.html | 1067 +- docs/sqlglot/dialects/hive.html | 1874 +- docs/sqlglot/dialects/mysql.html | 1841 +- docs/sqlglot/dialects/oracle.html | 8 +- docs/sqlglot/dialects/postgres.html | 10 +- docs/sqlglot/dialects/presto.html | 1502 +- docs/sqlglot/dialects/redshift.html | 856 +- docs/sqlglot/dialects/snowflake.html | 1539 +- docs/sqlglot/dialects/spark.html | 8 +- docs/sqlglot/dialects/spark2.html | 925 +- docs/sqlglot/dialects/sqlite.html | 16 +- docs/sqlglot/dialects/starrocks.html | 8 +- docs/sqlglot/dialects/tableau.html | 8 +- docs/sqlglot/dialects/teradata.html | 14 +- docs/sqlglot/dialects/trino.html | 6 +- docs/sqlglot/dialects/tsql.html | 8 +- docs/sqlglot/executor/python.html | 6 +- docs/sqlglot/expressions.html | 18370 ++++++++++---------- docs/sqlglot/generator.html | 12515 ++++++------- docs/sqlglot/helper.html | 1620 +- docs/sqlglot/lineage.html | 1109 +- docs/sqlglot/optimizer.html | 3 +- docs/sqlglot/optimizer/canonicalize.html | 258 +- docs/sqlglot/optimizer/normalize_identifiers.html | 346 + docs/sqlglot/optimizer/optimize_joins.html | 2 +- docs/sqlglot/optimizer/optimizer.html | 266 +- docs/sqlglot/optimizer/pushdown_predicates.html | 12 +- docs/sqlglot/optimizer/qualify.html | 447 + docs/sqlglot/optimizer/qualify_columns.html | 1601 +- docs/sqlglot/optimizer/qualify_tables.html | 389 +- docs/sqlglot/optimizer/unnest_subqueries.html | 993 +- docs/sqlglot/parser.html | 17450 ++++++++++--------- docs/sqlglot/planner.html | 22 +- docs/sqlglot/schema.html | 2156 +-- docs/sqlglot/tokens.html | 4187 ++--- docs/sqlglot/transforms.html | 1203 +- 44 files changed, 40065 insertions(+), 37582 deletions(-) create mode 100644 docs/sqlglot/optimizer/normalize_identifiers.html create mode 100644 docs/sqlglot/optimizer/qualify.html (limited to 'docs') diff --git a/docs/search.js b/docs/search.js index d01a0bc..58c9320 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;u0&&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;e1;){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]&&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\"SQLGlot

\n\n

SQLGlot is a no-dependency SQL parser, transpiler, optimizer, and engine. It can be used to format SQL or translate between 19 different dialects like DuckDB, Presto, Spark, Snowflake, and BigQuery. It aims to read a wide variety of SQL inputs and output syntactically correct SQL in the targeted dialects.

\n\n

It is a very comprehensive generic SQL parser with a robust test suite. It is also quite performant, while being written purely in Python.

\n\n

You can easily customize the parser, analyze queries, traverse expression trees, and programmatically build SQL.

\n\n

Syntax errors 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.

\n\n

Contributions are very welcome in SQLGlot; read the contribution guide to get started!

\n\n

Table of Contents

\n\n\n\n

Install

\n\n

From PyPI:

\n\n
pip3 install sqlglot\n
\n\n

Or with a local checkout:

\n\n
make install\n
\n\n

Requirements for development (optional):

\n\n
make install-dev\n
\n\n

Versioning

\n\n

Given a version number MAJOR.MINOR.PATCH, SQLGlot uses the following versioning strategy:

\n\n
    \n
  • The PATCH version is incremented when there are backwards-compatible fixes or feature additions.
  • \n
  • The MINOR version is incremented when there are backwards-incompatible fixes or feature additions.
  • \n
  • The MAJOR version is incremented when there are significant backwards-incompatible fixes or feature additions.
  • \n
\n\n

Get in Touch

\n\n

We'd love to hear from you. Join our community Slack channel!

\n\n

Examples

\n\n

Formatting and Transpiling

\n\n

Easily translate from one dialect to another. For example, date/time functions vary from dialects and can be hard to deal with:

\n\n
\n
import sqlglot\nsqlglot.transpile("SELECT EPOCH_MS(1618088028295)", read="duckdb", write="hive")[0]\n
\n
\n\n
\n
'SELECT FROM_UNIXTIME(1618088028295 / 1000)'\n
\n
\n\n

SQLGlot can even translate custom time formats:

\n\n
\n
import sqlglot\nsqlglot.transpile("SELECT STRFTIME(x, '%y-%-m-%S')", read="duckdb", write="hive")[0]\n
\n
\n\n
\n
"SELECT DATE_FORMAT(x, 'yy-M-ss')"\n
\n
\n\n

As another example, let's suppose that we want to read in a SQL query that contains a CTE and a cast to REAL, and then transpile it to Spark, which uses backticks for identifiers and FLOAT instead of REAL:

\n\n
\n
import sqlglot\n\nsql = """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"""\nprint(sqlglot.transpile(sql, write="spark", identify=True, pretty=True)[0])\n
\n
\n\n
\n
WITH `baz` AS (\n  SELECT\n    `a`,\n    `c`\n  FROM `foo`\n  WHERE\n    `a` = 1\n)\nSELECT\n  `f`.`a`,\n  `b`.`b`,\n  `baz`.`c`,\n  CAST(`b`.`a` AS FLOAT) AS `d`\nFROM `foo` AS `f`\nJOIN `bar` AS `b`\n  ON `f`.`a` = `b`.`a`\nLEFT JOIN `baz`\n  ON `f`.`a` = `baz`.`a`\n
\n
\n\n

Comments are also preserved in a best-effort basis when transpiling SQL code:

\n\n
\n
sql = """\n/* multi\n   line\n   comment\n*/\nSELECT\n  tbl.cola /* comment 1 */ + tbl.colb /* comment 2 */,\n  CAST(x AS INT), # comment 3\n  y               -- comment 4\nFROM\n  bar /* comment 5 */,\n  tbl #          comment 6\n"""\n\nprint(sqlglot.transpile(sql, read='mysql', pretty=True)[0])\n
\n
\n\n
\n
/* multi\n   line\n   comment\n*/\nSELECT\n  tbl.cola /* comment 1 */ + tbl.colb /* comment 2 */,\n  CAST(x AS INT), /* comment 3 */\n  y /* comment 4 */\nFROM bar /* comment 5 */, tbl /*          comment 6 */\n
\n
\n\n

Metadata

\n\n

You can explore SQL with expression helpers to do things like find columns and tables:

\n\n
\n
from sqlglot import parse_one, exp\n\n# print all column references (a and b)\nfor column in parse_one("SELECT a, b + 1 AS c FROM d").find_all(exp.Column):\n    print(column.alias_or_name)\n\n# find all projections in select statements (a and c)\nfor select in parse_one("SELECT a, b + 1 AS c FROM d").find_all(exp.Select):\n    for projection in select.expressions:\n        print(projection.alias_or_name)\n\n# find all tables (x, y, z)\nfor table in parse_one("SELECT * FROM x JOIN y JOIN z").find_all(exp.Table):\n    print(table.name)\n
\n
\n\n

Parser Errors

\n\n

When the parser detects an error in the syntax, it raises a ParserError:

\n\n
\n
import sqlglot\nsqlglot.transpile("SELECT foo( FROM bar")\n
\n
\n\n
sqlglot.errors.ParseError: Expecting ). Line 1, Col: 13.\n  select foo( FROM bar\n              ~~~~\n
\n\n

Structured syntax errors are accessible for programmatic use:

\n\n
\n
import sqlglot\ntry:\n    sqlglot.transpile("SELECT foo( FROM bar")\nexcept sqlglot.errors.ParseError as e:\n    print(e.errors)\n
\n
\n\n
\n
[{\n  'description': 'Expecting )',\n  'line': 1,\n  'col': 13,\n  'start_context': 'SELECT foo( ',\n  'highlight': 'FROM',\n  'end_context': ' bar'\n}]\n
\n
\n\n

Unsupported Errors

\n\n

Presto APPROX_DISTINCT supports the accuracy argument which is not supported in Hive:

\n\n
\n
import sqlglot\nsqlglot.transpile("SELECT APPROX_DISTINCT(a, 0.1) FROM foo", read="presto", write="hive")\n
\n
\n\n
\n
APPROX_COUNT_DISTINCT does not support accuracy\n'SELECT APPROX_COUNT_DISTINCT(a) FROM foo'\n
\n
\n\n

Build and Modify SQL

\n\n

SQLGlot supports incrementally building sql expressions:

\n\n
\n
from sqlglot import select, condition\n\nwhere = condition("x=1").and_("y=1")\nselect("*").from_("y").where(where).sql()\n
\n
\n\n
\n
'SELECT * FROM y WHERE x = 1 AND y = 1'\n
\n
\n\n

You can also modify a parsed tree:

\n\n
\n
from sqlglot import parse_one\nparse_one("SELECT x FROM y").from_("z").sql()\n
\n
\n\n
\n
'SELECT x FROM y, z'\n
\n
\n\n

There is also a way to recursively transform the parsed tree by applying a mapping function to each tree node:

\n\n
\n
from sqlglot import exp, parse_one\n\nexpression_tree = parse_one("SELECT a FROM x")\n\ndef transformer(node):\n    if isinstance(node, exp.Column) and node.name == "a":\n        return parse_one("FUN(a)")\n    return node\n\ntransformed_tree = expression_tree.transform(transformer)\ntransformed_tree.sql()\n
\n
\n\n
\n
'SELECT FUN(a) FROM x'\n
\n
\n\n

SQL Optimizer

\n\n

SQLGlot can rewrite queries into an \"optimized\" form. It performs a variety of techniques 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:

\n\n
\n
import sqlglot\nfrom sqlglot.optimizer import optimize\n\nprint(\n    optimize(\n        sqlglot.parse_one("""\n            SELECT A OR (B OR (C AND D))\n            FROM x\n            WHERE Z = date '2021-01-01' + INTERVAL '1' month OR 1 = 0\n        """),\n        schema={"x": {"A": "INT", "B": "INT", "C": "INT", "D": "INT", "Z": "STRING"}}\n    ).sql(pretty=True)\n)\n
\n
\n\n
\n
SELECT\n  (\n    "x"."a" <> 0 OR "x"."b" <> 0 OR "x"."c" <> 0\n  )\n  AND (\n    "x"."a" <> 0 OR "x"."b" <> 0 OR "x"."d" <> 0\n  ) AS "_col_0"\nFROM "x" AS "x"\nWHERE\n  CAST("x"."z" AS DATE) = CAST('2021-02-01' AS DATE)\n
\n
\n\n

AST Introspection

\n\n

You can see the AST version of the sql by calling repr:

\n\n
\n
from sqlglot import parse_one\nprint(repr(parse_one("SELECT a + 1 AS z")))\n
\n
\n\n
\n
(SELECT expressions:\n  (ALIAS this:\n    (ADD this:\n      (COLUMN this:\n        (IDENTIFIER this: a, quoted: False)), expression:\n      (LITERAL this: 1, is_string: False)), alias:\n    (IDENTIFIER this: z, quoted: False)))\n
\n
\n\n

AST Diff

\n\n

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:

\n\n
\n
from sqlglot import diff, parse_one\ndiff(parse_one("SELECT a + b, c, d"), parse_one("SELECT c, a - b, d"))\n
\n
\n\n
\n
[\n  Remove(expression=(ADD this:\n    (COLUMN this:\n      (IDENTIFIER this: a, quoted: False)), expression:\n    (COLUMN this:\n      (IDENTIFIER this: b, quoted: False)))),\n  Insert(expression=(SUB this:\n    (COLUMN this:\n      (IDENTIFIER this: a, quoted: False)), expression:\n    (COLUMN this:\n      (IDENTIFIER this: b, quoted: False)))),\n  Move(expression=(COLUMN this:\n    (IDENTIFIER this: c, quoted: False))),\n  Keep(source=(IDENTIFIER this: b, quoted: False), target=(IDENTIFIER this: b, quoted: False)),\n  ...\n]\n
\n
\n\n

See also: Semantic Diff for SQL.

\n\n

Custom Dialects

\n\n

Dialects can be added by subclassing Dialect:

\n\n
\n
from sqlglot import exp\nfrom sqlglot.dialects.dialect import Dialect\nfrom sqlglot.generator import Generator\nfrom sqlglot.tokens import Tokenizer, TokenType\n\n\nclass Custom(Dialect):\n    class Tokenizer(Tokenizer):\n        QUOTES = ["'", '"']\n        IDENTIFIERS = ["`"]\n\n        KEYWORDS = {\n            **Tokenizer.KEYWORDS,\n            "INT64": TokenType.BIGINT,\n            "FLOAT64": TokenType.DOUBLE,\n        }\n\n    class Generator(Generator):\n        TRANSFORMS = {exp.Array: lambda self, e: f"[{self.expressions(e)}]"}\n\n        TYPE_MAPPING = {\n            exp.DataType.Type.TINYINT: "INT64",\n            exp.DataType.Type.SMALLINT: "INT64",\n            exp.DataType.Type.INT: "INT64",\n            exp.DataType.Type.BIGINT: "INT64",\n            exp.DataType.Type.DECIMAL: "NUMERIC",\n            exp.DataType.Type.FLOAT: "FLOAT64",\n            exp.DataType.Type.DOUBLE: "FLOAT64",\n            exp.DataType.Type.BOOLEAN: "BOOL",\n            exp.DataType.Type.TEXT: "STRING",\n        }\n\nprint(Dialect["custom"])\n
\n
\n\n
<class '__main__.Custom'>\n
\n\n

SQL Execution

\n\n

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:

\n\n
\n
from sqlglot.executor import execute\n\ntables = {\n    "sushi": [\n        {"id": 1, "price": 1.0},\n        {"id": 2, "price": 2.0},\n        {"id": 3, "price": 3.0},\n    ],\n    "order_items": [\n        {"sushi_id": 1, "order_id": 1},\n        {"sushi_id": 1, "order_id": 1},\n        {"sushi_id": 2, "order_id": 1},\n        {"sushi_id": 3, "order_id": 2},\n    ],\n    "orders": [\n        {"id": 1, "user_id": 1},\n        {"id": 2, "user_id": 2},\n    ],\n}\n\nexecute(\n    """\n    SELECT\n      o.user_id,\n      SUM(s.price) AS price\n    FROM orders o\n    JOIN order_items i\n      ON o.id = i.order_id\n    JOIN sushi s\n      ON i.sushi_id = s.id\n    GROUP BY o.user_id\n    """,\n    tables=tables\n)\n
\n
\n\n
\n
user_id price\n      1   4.0\n      2   3.0\n
\n
\n\n

See also: Writing a Python SQL engine from scratch.

\n\n

Used By

\n\n\n\n

Documentation

\n\n

SQLGlot uses pdoc to serve its API documentation:

\n\n
make docs-serve\n
\n\n

Run Tests and Lint

\n\n
make check  # Set SKIP_INTEGRATION=1 to skip integration tests\n
\n\n

Benchmarks

\n\n

Benchmarks run on Python 3.10.5 in seconds.

\n\n\n\n\n \n \n \n \n \n \n \n\n\n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n\n\n
Querysqlglotsqlfluffsqltreesqlparsemoz_sql_parsersqloxide
tpch0.01308 (1.0)1.60626 (122.7)0.01168 (0.893)0.04958 (3.791)0.08543 (6.531)0.00136 (0.104)
short0.00109 (1.0)0.14134 (129.2)0.00099 (0.906)0.00342 (3.131)0.00652 (5.970)8.76E-5 (0.080)
long0.01399 (1.0)2.12632 (151.9)0.01126 (0.805)0.04410 (3.151)0.06671 (4.767)0.00107 (0.076)
crazy0.03969 (1.0)24.3777 (614.1)0.03917 (0.987)11.7043 (294.8)1.03280 (26.02)0.00625 (0.157)
\n\n

Optional Dependencies

\n\n

SQLGlot uses dateutil to simplify literal timedelta expressions. The optimizer will not simplify expressions like the following if the module cannot be found:

\n\n
\n
x + interval '1' month\n
\n
\n\n
\n"}, "sqlglot.pretty": {"fullname": "sqlglot.pretty", "modulename": "sqlglot", "qualname": "pretty", "kind": "variable", "doc": "

Whether to format generated SQL by default.

\n", "default_value": "False"}, "sqlglot.schema": {"fullname": "sqlglot.schema", "modulename": "sqlglot.schema", "kind": "module", "doc": "

\n"}, "sqlglot.parse": {"fullname": "sqlglot.parse", "modulename": "sqlglot", "qualname": "parse", "kind": "function", "doc": "

Parses the given SQL string into a collection of syntax trees, one per parsed SQL statement.

\n\n
Arguments:
\n\n
    \n
  • sql: the SQL code string to parse.
  • \n
  • read: the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • **opts: other sqlglot.parser.Parser options.
  • \n
\n\n
Returns:
\n\n
\n

The resulting syntax tree collection.

\n
\n", "signature": "(\tsql: str,\tread: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> List[Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.parse_one": {"fullname": "sqlglot.parse_one", "modulename": "sqlglot", "qualname": "parse_one", "kind": "function", "doc": "

Parses the given SQL string and returns a syntax tree for the first parsed SQL statement.

\n\n
Arguments:
\n\n
    \n
  • sql: the SQL code string to parse.
  • \n
  • read: the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • into: the SQLGlot Expression to parse into.
  • \n
  • **opts: other sqlglot.parser.Parser options.
  • \n
\n\n
Returns:
\n\n
\n

The syntax tree for the first parsed statement.

\n
\n", "signature": "(\tsql: str,\tread: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tinto: Union[str, Type[sqlglot.expressions.Expression], Collection[Union[str, Type[sqlglot.expressions.Expression]]], NoneType] = None,\t**opts) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transpile": {"fullname": "sqlglot.transpile", "modulename": "sqlglot", "qualname": "transpile", "kind": "function", "doc": "

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.

\n\n
Arguments:
\n\n
    \n
  • sql: the SQL code string to transpile.
  • \n
  • read: the source dialect used to parse the input string (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • write: the target dialect into which the input should be transformed (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • identity: if set to True and if the target dialect is not specified the source dialect will be used as both:\nthe source and the target dialect.
  • \n
  • error_level: the desired error level of the parser.
  • \n
  • **opts: other sqlglot.generator.Generator options.
  • \n
\n\n
Returns:
\n\n
\n

The list of transpiled SQL statements.

\n
\n", "signature": "(\tsql: str,\tread: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\twrite: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tidentity: bool = True,\terror_level: Optional[sqlglot.errors.ErrorLevel] = None,\t**opts) -> List[str]:", "funcdef": "def"}, "sqlglot.dataframe": {"fullname": "sqlglot.dataframe", "modulename": "sqlglot.dataframe", "kind": "module", "doc": "

PySpark DataFrame SQL Generator

\n\n

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 DuckDB, Presto, Spark, Snowflake, and BigQuery.

\n\n

Currently many of the common operations are covered and more functionality will be added over time. Please open an issue or PR with your feedback or contribution to help influence what should be prioritized next and make sure your use case is properly supported.

\n\n

How to use

\n\n

Instructions

\n\n
    \n
  • Install SQLGlot and that is all that is required to just generate SQL. The examples show generating SQL and then executing that SQL on a specific engine and that will require that engine's client library.
  • \n
  • Find/replace all from pyspark.sql with from sqlglot.dataframe.
  • \n
  • Prior to any spark.read.table or spark.table run sqlglot.schema.add_table('<table_name>', <column_structure>).\n
      \n
    • The column structure can be defined the following ways:\n
        \n
      • Dictionary where the keys are column names and values are string of the Spark SQL type name.\n
          \n
        • Ex: {'cola': 'string', 'colb': 'int'}
        • \n
      • \n
      • PySpark DataFrame StructType similar to when using createDataFrame.\n
          \n
        • Ex: StructType([StructField('cola', StringType()), StructField('colb', IntegerType())])
        • \n
      • \n
      • A string of names and types similar to what is supported in createDataFrame.\n
          \n
        • Ex: cola: STRING, colb: INT
        • \n
      • \n
      • [Not Recommended] A list of string column names without type.\n
          \n
        • Ex: ['cola', 'colb']
        • \n
        • The lack of types may limit functionality in future releases.
        • \n
      • \n
    • \n
    • See Registering Custom Schema for information on how to skip this step if the information is stored externally.
    • \n
  • \n
  • Add .sql(pretty=True) to your final DataFrame command to return a list of sql statements to run that command.\n
      \n
    • In most cases a single SQL statement is returned. Currently the only exception is when caching DataFrames which isn't supported in other dialects.
    • \n
    • Spark is the default output dialect. See dialects for a full list of dialects.
    • \n
    • Ex: .sql(pretty=True, dialect='bigquery')
    • \n
  • \n
\n\n

Examples

\n\n
\n
import sqlglot\nfrom sqlglot.dataframe.sql.session import SparkSession\nfrom sqlglot.dataframe.sql import functions as F\n\nsqlglot.schema.add_table('employee', {\n  'employee_id': 'INT',\n  'fname': 'STRING',\n  'lname': 'STRING',\n  'age': 'INT',\n})  # Register the table structure prior to reading from the table\n\nspark = SparkSession()\n\ndf = (\n    spark\n    .table('employee')\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("employee_id")).alias("num_employees")) \n)\n\nprint(df.sql(pretty=True))  # Spark will be the dialect used by default\n
\n
\n\n
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
\n\n

Registering Custom Schema Class

\n\n

The step of adding sqlglot.schema.add_table 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 sqlglot.schema.Schema abstract class and then assigning that class to sqlglot.schema.

\n\n
\n
import sqlglot\nfrom sqlglot.dataframe.sql.session import SparkSession\nfrom sqlglot.dataframe.sql import functions as F\nfrom sqlglot.schema import Schema\n\n\nclass ExternalSchema(Schema):\n  ...\n\nsqlglot.schema = ExternalSchema()\n\nspark = SparkSession()\n\ndf = (\n    spark\n    .table('employee')\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("employee_id")).alias("num_employees")) \n)\n\nprint(df.sql(pretty=True))\n
\n
\n\n

Example Implementations

\n\n

Bigquery

\n\n
\n
from google.cloud import bigquery\nfrom sqlglot.dataframe.sql.session import SparkSession\nfrom sqlglot.dataframe.sql import types\nfrom sqlglot.dataframe.sql import functions as F\n\nclient = bigquery.Client()\n\ndata = [\n    (1, "Jack", "Shephard", 34),\n    (2, "John", "Locke", 48),\n    (3, "Kate", "Austen", 34),\n    (4, "Claire", "Littleton", 22),\n    (5, "Hugo", "Reyes", 26),\n]\nschema = types.StructType([\n    types.StructField('employee_id', types.IntegerType(), False),\n    types.StructField('fname', types.StringType(), False),\n    types.StructField('lname', types.StringType(), False),\n    types.StructField('age', types.IntegerType(), False),\n])\n\nsql_statements = (\n    SparkSession()\n    .createDataFrame(data, schema)\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("employee_id")).alias("num_employees"))\n    .sql(dialect="bigquery")\n)\n\nresult = None\nfor sql in sql_statements:\n  result = client.query(sql)\n\nassert result is not None\nfor row in client.query(result):\n    print(f"Age: {row['age']}, Num Employees: {row['num_employees']}")\n
\n
\n\n

Snowflake

\n\n
\n
import os\n\nimport snowflake.connector\nfrom sqlglot.dataframe.session import SparkSession\nfrom sqlglot.dataframe import types\nfrom sqlglot.dataframe import functions as F\n\nctx = snowflake.connector.connect(\n    user=os.environ["SNOWFLAKE_USER"],\n    password=os.environ["SNOWFLAKE_PASS"],\n    account=os.environ["SNOWFLAKE_ACCOUNT"]\n)\ncs = ctx.cursor()\n\ndata = [\n    (1, "Jack", "Shephard", 34),\n    (2, "John", "Locke", 48),\n    (3, "Kate", "Austen", 34),\n    (4, "Claire", "Littleton", 22),\n    (5, "Hugo", "Reyes", 26),\n]\nschema = types.StructType([\n    types.StructField('employee_id', types.IntegerType(), False),\n    types.StructField('fname', types.StringType(), False),\n    types.StructField('lname', types.StringType(), False),\n    types.StructField('age', types.IntegerType(), False),\n])\n\nsql_statements = (\n    SparkSession()\n    .createDataFrame(data, schema)\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("lname")).alias("num_employees"))\n    .sql(dialect="snowflake")\n)\n\ntry:\n    for sql in sql_statements:\n        cs.execute(sql)\n    results = cs.fetchall()\n    for row in results:\n        print(f"Age: {row[0]}, Num Employees: {row[1]}")\nfinally:\n    cs.close()\nctx.close()\n
\n
\n\n

Spark

\n\n
\n
from pyspark.sql.session import SparkSession as PySparkSession\nfrom sqlglot.dataframe.sql.session import SparkSession\nfrom sqlglot.dataframe.sql import types\nfrom sqlglot.dataframe.sql import functions as F\n\ndata = [\n    (1, "Jack", "Shephard", 34),\n    (2, "John", "Locke", 48),\n    (3, "Kate", "Austen", 34),\n    (4, "Claire", "Littleton", 22),\n    (5, "Hugo", "Reyes", 26),\n]\nschema = types.StructType([\n    types.StructField('employee_id', types.IntegerType(), False),\n    types.StructField('fname', types.StringType(), False),\n    types.StructField('lname', types.StringType(), False),\n    types.StructField('age', types.IntegerType(), False),\n])\n\nsql_statements = (\n    SparkSession()\n    .createDataFrame(data, schema)\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("employee_id")).alias("num_employees"))\n    .sql(dialect="spark")\n)\n\npyspark = PySparkSession.builder.master("local[*]").getOrCreate()\n\ndf = None\nfor sql in sql_statements:\n    df = pyspark.sql(sql)\n\nassert df is not None\ndf.show()\n
\n
\n\n

Unsupportable Operations

\n\n

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.

\n"}, "sqlglot.dataframe.sql": {"fullname": "sqlglot.dataframe.sql", "modulename": "sqlglot.dataframe.sql", "kind": "module", "doc": "

\n"}, "sqlglot.dataframe.sql.SparkSession": {"fullname": "sqlglot.dataframe.sql.SparkSession", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.SparkSession.table": {"fullname": "sqlglot.dataframe.sql.SparkSession.table", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.table", "kind": "function", "doc": "

\n", "signature": "(self, tableName: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"fullname": "sqlglot.dataframe.sql.SparkSession.createDataFrame", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.createDataFrame", "kind": "function", "doc": "

\n", "signature": "(\tself,\tdata: Sequence[Union[Dict[str, <MagicMock id='139684976777040'>], List[<MagicMock id='139684976777040'>], Tuple]],\tschema: Optional[<MagicMock id='139684976987632'>] = None,\tsamplingRatio: Optional[float] = None,\tverifySchema: bool = False) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.SparkSession.sql": {"fullname": "sqlglot.dataframe.sql.SparkSession.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.sql", "kind": "function", "doc": "

\n", "signature": "(self, sqlQuery: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame": {"fullname": "sqlglot.dataframe.sql.DataFrame", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.DataFrame.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrame.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.__init__", "kind": "function", "doc": "

\n", "signature": "(\tspark: <MagicMock id='139684981920560'>,\texpression: sqlglot.expressions.Select,\tbranch_id: Optional[str] = None,\tsequence_id: Optional[str] = None,\tlast_op: sqlglot.dataframe.sql.operations.Operation = <Operation.INIT: -1>,\tpending_hints: Optional[List[sqlglot.expressions.Expression]] = None,\toutput_expression_container: Optional[<MagicMock id='139684981549680'>] = None,\t**kwargs)"}, "sqlglot.dataframe.sql.DataFrame.sql": {"fullname": "sqlglot.dataframe.sql.DataFrame.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.sql", "kind": "function", "doc": "

\n", "signature": "(self, dialect='spark', optimize=True, **kwargs) -> List[str]:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.copy": {"fullname": "sqlglot.dataframe.sql.DataFrame.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.copy", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.select": {"fullname": "sqlglot.dataframe.sql.DataFrame.select", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.select", "kind": "function", "doc": "

\n", "signature": "(self, *cols, **kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.alias": {"fullname": "sqlglot.dataframe.sql.DataFrame.alias", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.alias", "kind": "function", "doc": "

\n", "signature": "(self, name: str, **kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.where": {"fullname": "sqlglot.dataframe.sql.DataFrame.where", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.where", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcolumn: Union[sqlglot.dataframe.sql.column.Column, bool],\t**kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.filter": {"fullname": "sqlglot.dataframe.sql.DataFrame.filter", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.filter", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcolumn: Union[sqlglot.dataframe.sql.column.Column, bool],\t**kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"fullname": "sqlglot.dataframe.sql.DataFrame.groupBy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.groupBy", "kind": "function", "doc": "

\n", "signature": "(self, *cols, **kwargs) -> sqlglot.dataframe.sql.group.GroupedData:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.agg": {"fullname": "sqlglot.dataframe.sql.DataFrame.agg", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.agg", "kind": "function", "doc": "

\n", "signature": "(self, *exprs, **kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.join": {"fullname": "sqlglot.dataframe.sql.DataFrame.join", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.join", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother_df: sqlglot.dataframe.sql.dataframe.DataFrame,\ton: Union[str, List[str], sqlglot.dataframe.sql.column.Column, List[sqlglot.dataframe.sql.column.Column]],\thow: str = 'inner',\t**kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"fullname": "sqlglot.dataframe.sql.DataFrame.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.orderBy", "kind": "function", "doc": "

This implementation lets any ordered columns take priority over whatever is provided in ascending. 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.

\n", "signature": "(\tself,\t*cols: Union[str, sqlglot.dataframe.sql.column.Column],\tascending: Union[Any, List[Any], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.sort": {"fullname": "sqlglot.dataframe.sql.DataFrame.sort", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.sort", "kind": "function", "doc": "

This implementation lets any ordered columns take priority over whatever is provided in ascending. 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.

\n", "signature": "(\tself,\t*cols: Union[str, sqlglot.dataframe.sql.column.Column],\tascending: Union[Any, List[Any], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.union": {"fullname": "sqlglot.dataframe.sql.DataFrame.union", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.union", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.unionAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.unionAll", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"fullname": "sqlglot.dataframe.sql.DataFrame.unionByName", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.unionByName", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame,\tallowMissingColumns: bool = False):", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.intersect": {"fullname": "sqlglot.dataframe.sql.DataFrame.intersect", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.intersect", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.intersectAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.intersectAll", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.exceptAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.exceptAll", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.distinct": {"fullname": "sqlglot.dataframe.sql.DataFrame.distinct", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.distinct", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"fullname": "sqlglot.dataframe.sql.DataFrame.dropDuplicates", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.dropDuplicates", "kind": "function", "doc": "

\n", "signature": "(self, subset: Optional[List[str]] = None):", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.dropna": {"fullname": "sqlglot.dataframe.sql.DataFrame.dropna", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.dropna", "kind": "function", "doc": "

\n", "signature": "(\tself,\thow: str = 'any',\tthresh: Optional[int] = None,\tsubset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.fillna": {"fullname": "sqlglot.dataframe.sql.DataFrame.fillna", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.fillna", "kind": "function", "doc": "

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

\n\n

Possibility for improvement: Use typeof 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.

\n", "signature": "(\tself,\tvalue: <MagicMock id='139684977266160'>,\tsubset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.replace": {"fullname": "sqlglot.dataframe.sql.DataFrame.replace", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.replace", "kind": "function", "doc": "

\n", "signature": "(\tself,\tto_replace: Union[bool, int, float, str, List, Dict],\tvalue: Union[bool, int, float, str, List, NoneType] = None,\tsubset: Union[Collection[<MagicMock id='139684977728224'>], <MagicMock id='139684977728224'>, NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"fullname": "sqlglot.dataframe.sql.DataFrame.withColumn", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.withColumn", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcolName: str,\tcol: sqlglot.dataframe.sql.column.Column) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"fullname": "sqlglot.dataframe.sql.DataFrame.withColumnRenamed", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.withColumnRenamed", "kind": "function", "doc": "

\n", "signature": "(self, existing: str, new: str):", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.drop": {"fullname": "sqlglot.dataframe.sql.DataFrame.drop", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.drop", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*cols: Union[str, sqlglot.dataframe.sql.column.Column]) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.limit": {"fullname": "sqlglot.dataframe.sql.DataFrame.limit", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.limit", "kind": "function", "doc": "

\n", "signature": "(self, num: int) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.hint": {"fullname": "sqlglot.dataframe.sql.DataFrame.hint", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.hint", "kind": "function", "doc": "

\n", "signature": "(\tself,\tname: str,\t*parameters: Union[str, int, NoneType]) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.repartition": {"fullname": "sqlglot.dataframe.sql.DataFrame.repartition", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.repartition", "kind": "function", "doc": "

\n", "signature": "(\tself,\tnumPartitions: Union[int, <MagicMock id='139684976134272'>],\t*cols: <MagicMock id='139684975680992'>) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"fullname": "sqlglot.dataframe.sql.DataFrame.coalesce", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.coalesce", "kind": "function", "doc": "

\n", "signature": "(self, numPartitions: int) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.cache": {"fullname": "sqlglot.dataframe.sql.DataFrame.cache", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.cache", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.persist": {"fullname": "sqlglot.dataframe.sql.DataFrame.persist", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.persist", "kind": "function", "doc": "

Storage Level Options: https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-aux-cache-cache-table.html

\n", "signature": "(\tself,\tstorageLevel: str = 'MEMORY_AND_DISK_SER') -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData": {"fullname": "sqlglot.dataframe.sql.GroupedData", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.GroupedData.__init__": {"fullname": "sqlglot.dataframe.sql.GroupedData.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.__init__", "kind": "function", "doc": "

\n", "signature": "(\tdf: sqlglot.dataframe.sql.dataframe.DataFrame,\tgroup_by_cols: List[sqlglot.dataframe.sql.column.Column],\tlast_op: sqlglot.dataframe.sql.operations.Operation)"}, "sqlglot.dataframe.sql.GroupedData.agg": {"fullname": "sqlglot.dataframe.sql.GroupedData.agg", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.agg", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*exprs: Union[sqlglot.dataframe.sql.column.Column, Dict[str, str]]) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.count": {"fullname": "sqlglot.dataframe.sql.GroupedData.count", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.count", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.mean": {"fullname": "sqlglot.dataframe.sql.GroupedData.mean", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.mean", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.avg": {"fullname": "sqlglot.dataframe.sql.GroupedData.avg", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.avg", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.max": {"fullname": "sqlglot.dataframe.sql.GroupedData.max", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.max", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.min": {"fullname": "sqlglot.dataframe.sql.GroupedData.min", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.min", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.sum": {"fullname": "sqlglot.dataframe.sql.GroupedData.sum", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.sum", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.pivot": {"fullname": "sqlglot.dataframe.sql.GroupedData.pivot", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.pivot", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column": {"fullname": "sqlglot.dataframe.sql.Column", "modulename": "sqlglot.dataframe.sql", "qualname": "Column", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.Column.__init__": {"fullname": "sqlglot.dataframe.sql.Column.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.__init__", "kind": "function", "doc": "

\n", "signature": "(\texpression: Union[<MagicMock id='139684979775312'>, sqlglot.expressions.Expression, NoneType])"}, "sqlglot.dataframe.sql.Column.ensure_col": {"fullname": "sqlglot.dataframe.sql.Column.ensure_col", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ensure_col", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tvalue: Union[<MagicMock id='139684975891488'>, sqlglot.expressions.Expression, NoneType]):", "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": "

\n", "signature": "(\tcls,\targs: List[Union[<MagicMock id='139684975947792'>, sqlglot.expressions.Expression]]) -> List[sqlglot.dataframe.sql.column.Column]:", "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": "

\n", "signature": "(\tcls,\tcolumn: Optional[<MagicMock id='139684976195040'>],\tfunc_name: str,\t*args: Optional[<MagicMock id='139684976104048'>]) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(\tcls,\tcolumn: Optional[<MagicMock id='139684976054896'>],\tcallable_expression: Callable,\t**kwargs) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(\tself,\tklass: Callable,\tother: <MagicMock id='139684975964368'>,\t**kwargs) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(\tself,\tklass: Callable,\tother: <MagicMock id='139684976270528'>,\t**kwargs) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self, klass: Callable, **kwargs) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(cls, value) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.copy": {"fullname": "sqlglot.dataframe.sql.Column.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.copy", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self, table_name: str, copy=False) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.sql": {"fullname": "sqlglot.dataframe.sql.Column.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.sql", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> str:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.alias": {"fullname": "sqlglot.dataframe.sql.Column.alias", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.alias", "kind": "function", "doc": "

\n", "signature": "(self, name: str) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.asc": {"fullname": "sqlglot.dataframe.sql.Column.asc", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.asc", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.desc": {"fullname": "sqlglot.dataframe.sql.Column.desc", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.desc", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.when": {"fullname": "sqlglot.dataframe.sql.Column.when", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.when", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcondition: sqlglot.dataframe.sql.column.Column,\tvalue: Any) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.otherwise": {"fullname": "sqlglot.dataframe.sql.Column.otherwise", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.otherwise", "kind": "function", "doc": "

\n", "signature": "(self, value: Any) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isNull": {"fullname": "sqlglot.dataframe.sql.Column.isNull", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isNull", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isNotNull": {"fullname": "sqlglot.dataframe.sql.Column.isNotNull", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isNotNull", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.cast": {"fullname": "sqlglot.dataframe.sql.Column.cast", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.cast", "kind": "function", "doc": "

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

\n", "signature": "(self, dataType: Union[str, sqlglot.dataframe.sql.types.DataType]):", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.startswith": {"fullname": "sqlglot.dataframe.sql.Column.startswith", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.startswith", "kind": "function", "doc": "

\n", "signature": "(\tself,\tvalue: Union[str, sqlglot.dataframe.sql.column.Column]) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.endswith": {"fullname": "sqlglot.dataframe.sql.Column.endswith", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.endswith", "kind": "function", "doc": "

\n", "signature": "(\tself,\tvalue: Union[str, sqlglot.dataframe.sql.column.Column]) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.rlike": {"fullname": "sqlglot.dataframe.sql.Column.rlike", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.rlike", "kind": "function", "doc": "

\n", "signature": "(self, regexp: str) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.like": {"fullname": "sqlglot.dataframe.sql.Column.like", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.like", "kind": "function", "doc": "

\n", "signature": "(self, other: str):", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.ilike": {"fullname": "sqlglot.dataframe.sql.Column.ilike", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ilike", "kind": "function", "doc": "

\n", "signature": "(self, other: str):", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.substr": {"fullname": "sqlglot.dataframe.sql.Column.substr", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.substr", "kind": "function", "doc": "

\n", "signature": "(\tself,\tstartPos: Union[int, sqlglot.dataframe.sql.column.Column],\tlength: Union[int, sqlglot.dataframe.sql.column.Column]) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isin": {"fullname": "sqlglot.dataframe.sql.Column.isin", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isin", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*cols: Union[<MagicMock id='139684976455936'>, Iterable[<MagicMock id='139684976455936'>]]):", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.between": {"fullname": "sqlglot.dataframe.sql.Column.between", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.between", "kind": "function", "doc": "

\n", "signature": "(\tself,\tlowerBound: <MagicMock id='139684976541168'>,\tupperBound: <MagicMock id='139684976612096'>) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.over": {"fullname": "sqlglot.dataframe.sql.Column.over", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.over", "kind": "function", "doc": "

\n", "signature": "(\tself,\twindow: <MagicMock id='139684976653312'>) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.__init__", "kind": "function", "doc": "

\n", "signature": "(df: sqlglot.dataframe.sql.dataframe.DataFrame)"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.drop", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.drop", "kind": "function", "doc": "

\n", "signature": "(\tself,\thow: str = 'any',\tthresh: Optional[int] = None,\tsubset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.fill", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.fill", "kind": "function", "doc": "

\n", "signature": "(\tself,\tvalue: Union[int, bool, float, str, Dict[str, Any]],\tsubset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.replace", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.replace", "kind": "function", "doc": "

\n", "signature": "(\tself,\tto_replace: Union[bool, int, float, str, List, Dict],\tvalue: Union[bool, int, float, str, List, NoneType] = None,\tsubset: Union[str, List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.Window": {"fullname": "sqlglot.dataframe.sql.Window", "modulename": "sqlglot.dataframe.sql", "qualname": "Window", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.Window.partitionBy": {"fullname": "sqlglot.dataframe.sql.Window.partitionBy", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.partitionBy", "kind": "function", "doc": "

\n", "signature": "(\tcls,\t*cols: Union[<MagicMock id='139684973733504'>, List[<MagicMock id='139684973733504'>]]) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.orderBy": {"fullname": "sqlglot.dataframe.sql.Window.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.orderBy", "kind": "function", "doc": "

\n", "signature": "(\tcls,\t*cols: Union[<MagicMock id='139684973580960'>, List[<MagicMock id='139684973580960'>]]) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.rowsBetween": {"fullname": "sqlglot.dataframe.sql.Window.rowsBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.rowsBetween", "kind": "function", "doc": "

\n", "signature": "(cls, start: int, end: int) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.rangeBetween": {"fullname": "sqlglot.dataframe.sql.Window.rangeBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.rangeBetween", "kind": "function", "doc": "

\n", "signature": "(cls, start: int, end: int) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec": {"fullname": "sqlglot.dataframe.sql.WindowSpec", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"fullname": "sqlglot.dataframe.sql.WindowSpec.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression = (WINDOW ))"}, "sqlglot.dataframe.sql.WindowSpec.copy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.copy", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.sql": {"fullname": "sqlglot.dataframe.sql.WindowSpec.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.sql", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> str:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.partitionBy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.partitionBy", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*cols: Union[<MagicMock id='139684973878944'>, List[<MagicMock id='139684973878944'>]]) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.orderBy", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*cols: Union[<MagicMock id='139684973929056'>, List[<MagicMock id='139684973929056'>]]) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"fullname": "sqlglot.dataframe.sql.WindowSpec.rowsBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.rowsBetween", "kind": "function", "doc": "

\n", "signature": "(self, start: int, end: int) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"fullname": "sqlglot.dataframe.sql.WindowSpec.rangeBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.rangeBetween", "kind": "function", "doc": "

\n", "signature": "(self, start: int, end: int) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameReader": {"fullname": "sqlglot.dataframe.sql.DataFrameReader", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameReader.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader.__init__", "kind": "function", "doc": "

\n", "signature": "(spark: sqlglot.dataframe.sql.session.SparkSession)"}, "sqlglot.dataframe.sql.DataFrameReader.table": {"fullname": "sqlglot.dataframe.sql.DataFrameReader.table", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader.table", "kind": "function", "doc": "

\n", "signature": "(self, tableName: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.__init__", "kind": "function", "doc": "

\n", "signature": "(\tdf: sqlglot.dataframe.sql.dataframe.DataFrame,\tspark: Optional[sqlglot.dataframe.sql.session.SparkSession] = None,\tmode: Optional[str] = None,\tby_name: bool = False)"}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.copy", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> sqlglot.dataframe.sql.readwriter.DataFrameWriter:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.sql", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> List[str]:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.mode", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.mode", "kind": "function", "doc": "

\n", "signature": "(\tself,\tsaveMode: Optional[str]) -> sqlglot.dataframe.sql.readwriter.DataFrameWriter:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.insertInto", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.insertInto", "kind": "function", "doc": "

\n", "signature": "(\tself,\ttableName: str,\toverwrite: Optional[bool] = None) -> sqlglot.dataframe.sql.readwriter.DataFrameWriter:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.saveAsTable", "kind": "function", "doc": "

\n", "signature": "(\tself,\tname: str,\tformat: Optional[str] = None,\tmode: Optional[str] = None):", "funcdef": "def"}, "sqlglot.dialects": {"fullname": "sqlglot.dialects", "modulename": "sqlglot.dialects", "kind": "module", "doc": "

Dialects

\n\n

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.

\n\n

The base sqlglot.dialects.dialect.Dialect class implements a generic dialect that aims to be as universal as possible.

\n\n

Each SQL variation has its own Dialect subclass, extending the corresponding Tokenizer, Parser and Generator\nclasses as needed.

\n\n

Implementing a custom Dialect

\n\n

Consider the following example:

\n\n
\n
from sqlglot import exp\nfrom sqlglot.dialects.dialect import Dialect\nfrom sqlglot.generator import Generator\nfrom sqlglot.tokens import Tokenizer, TokenType\n\n\nclass Custom(Dialect):\n    class Tokenizer(Tokenizer):\n        QUOTES = ["'", '"']\n        IDENTIFIERS = ["`"]\n\n        KEYWORDS = {\n            **Tokenizer.KEYWORDS,\n            "INT64": TokenType.BIGINT,\n            "FLOAT64": TokenType.DOUBLE,\n        }\n\n    class Generator(Generator):\n        TRANSFORMS = {exp.Array: lambda self, e: f"[{self.expressions(e)}]"}\n\n        TYPE_MAPPING = {\n            exp.DataType.Type.TINYINT: "INT64",\n            exp.DataType.Type.SMALLINT: "INT64",\n            exp.DataType.Type.INT: "INT64",\n            exp.DataType.Type.BIGINT: "INT64",\n            exp.DataType.Type.DECIMAL: "NUMERIC",\n            exp.DataType.Type.FLOAT: "FLOAT64",\n            exp.DataType.Type.DOUBLE: "FLOAT64",\n            exp.DataType.Type.BOOLEAN: "BOOL",\n            exp.DataType.Type.TEXT: "STRING",\n        }\n
\n
\n\n

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 Expression 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 TRANSFORMS mapping.

\n\n
\n"}, "sqlglot.dialects.bigquery": {"fullname": "sqlglot.dialects.bigquery", "modulename": "sqlglot.dialects.bigquery", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.bigquery.BigQuery": {"fullname": "sqlglot.dialects.bigquery.BigQuery", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.Array) -> str:", "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": "

\n", "signature": "(self, *_) -> str:", "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": "

\n", "signature": "(self, *_) -> str:", "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": "

\n", "signature": "(self, *_) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Unnest) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Except) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Intersect) -> str:", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.with_properties": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.with_properties", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.with_properties", "kind": "function", "doc": "

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.dialects.clickhouse": {"fullname": "sqlglot.dialects.clickhouse", "modulename": "sqlglot.dialects.clickhouse", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.clickhouse.ClickHouse": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.CTE) -> str:", "funcdef": "def"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator.after_limit_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator.parameterizedagg_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Anonymous) -> str:", "funcdef": "def"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_sql", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator.placeholder_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Placeholder) -> str:", "funcdef": "def"}, "sqlglot.dialects.databricks": {"fullname": "sqlglot.dialects.databricks", "modulename": "sqlglot.dialects.databricks", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.databricks.Databricks": {"fullname": "sqlglot.dialects.databricks.Databricks", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "bases": "sqlglot.dialects.spark2.Spark2.Tokenizer"}, "sqlglot.dialects.dialect": {"fullname": "sqlglot.dialects.dialect", "modulename": "sqlglot.dialects.dialect", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.dialect.Dialects": {"fullname": "sqlglot.dialects.dialect.Dialects", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects", "kind": "class", "doc": "

An enumeration.

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<Dialects.SPARK: 'spark'>"}, "sqlglot.dialects.dialect.Dialects.SPARK2": {"fullname": "sqlglot.dialects.dialect.Dialects.SPARK2", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SPARK2", "kind": "variable", "doc": "

\n", "default_value": "<Dialects.SPARK2: 'spark2'>"}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"fullname": "sqlglot.dialects.dialect.Dialects.SQLITE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SQLITE", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<Dialects.TERADATA: 'teradata'>"}, "sqlglot.dialects.dialect.Dialect": {"fullname": "sqlglot.dialects.dialect.Dialect", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect", "kind": "class", "doc": "

\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": "

\n", "signature": "(\tcls,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType]) -> Type[sqlglot.dialects.dialect.Dialect]:", "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": "

\n", "signature": "(\tcls,\texpression: Union[str, sqlglot.expressions.Expression, NoneType]) -> Optional[sqlglot.expressions.Expression]:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parse": {"fullname": "sqlglot.dialects.dialect.Dialect.parse", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parse", "kind": "function", "doc": "

\n", "signature": "(self, sql: str, **opts) -> List[Optional[sqlglot.expressions.Expression]]:", "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": "

\n", "signature": "(\tself,\texpression_type: Union[str, Type[sqlglot.expressions.Expression], Collection[Union[str, Type[sqlglot.expressions.Expression]]]],\tsql: str,\t**opts) -> List[Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.generate": {"fullname": "sqlglot.dialects.dialect.Dialect.generate", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.generate", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: Optional[sqlglot.expressions.Expression],\t**opts) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.transpile": {"fullname": "sqlglot.dialects.dialect.Dialect.transpile", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.transpile", "kind": "function", "doc": "

\n", "signature": "(self, sql: str, **opts) -> List[str]:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.tokenize": {"fullname": "sqlglot.dialects.dialect.Dialect.tokenize", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.tokenize", "kind": "function", "doc": "

\n", "signature": "(self, sql: str) -> List[sqlglot.tokens.Token]:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parser": {"fullname": "sqlglot.dialects.dialect.Dialect.parser", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parser", "kind": "function", "doc": "

\n", "signature": "(self, **opts) -> sqlglot.parser.Parser:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.generator": {"fullname": "sqlglot.dialects.dialect.Dialect.generator", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.generator", "kind": "function", "doc": "

\n", "signature": "(self, **opts) -> sqlglot.generator.Generator:", "funcdef": "def"}, "sqlglot.dialects.dialect.rename_func": {"fullname": "sqlglot.dialects.dialect.rename_func", "modulename": "sqlglot.dialects.dialect", "qualname": "rename_func", "kind": "function", "doc": "

\n", "signature": "(\tname: str) -> Callable[[sqlglot.generator.Generator, sqlglot.expressions.Expression], str]:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.ApproxDistinct) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.if_sql": {"fullname": "sqlglot.dialects.dialect.if_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "if_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.If) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.JSONExtract | sqlglot.expressions.JSONBExtract) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.JSONExtractScalar | sqlglot.expressions.JSONBExtractScalar) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Array) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.ILike) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.CurrentDate) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.With) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.SafeDivide) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.TableSample) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Pivot) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.TryCast) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.no_comment_column_constraint_sql": {"fullname": "sqlglot.dialects.dialect.no_comment_column_constraint_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_comment_column_constraint_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.CommentColumnConstraint) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.StrPosition) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.StructExtract) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Map | sqlglot.expressions.VarMap,\tmap_func_name: str = 'MAP') -> str:", "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": "

Helper used for time expressions.

\n\n
Arguments:
\n\n
    \n
  • exp_class: the expression class to instantiate.
  • \n
  • dialect: target sql dialect.
  • \n
  • default: the default format, True being time.
  • \n
\n\n
Returns:
\n\n
\n

A callable that can be used to return the appropriately formatted time expression.

\n
\n", "signature": "(\texp_class: Type[~E],\tdialect: str,\tdefault: Union[bool, str, NoneType] = None) -> Callable[[List], ~E]:", "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": "

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.

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Create) -> str:", "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": "

\n", "signature": "(\texp_class: Type[~E],\tunit_mapping: Optional[Dict[str, str]] = None) -> Callable[[List], ~E]:", "funcdef": "def"}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"fullname": "sqlglot.dialects.dialect.parse_date_delta_with_interval", "modulename": "sqlglot.dialects.dialect", "qualname": "parse_date_delta_with_interval", "kind": "function", "doc": "

\n", "signature": "(expression_class: Type[~E]) -> Callable[[List], Optional[~E]]:", "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": "

\n", "signature": "(\targs: List) -> sqlglot.expressions.DateTrunc | sqlglot.expressions.TimestampTrunc:", "funcdef": "def"}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"fullname": "sqlglot.dialects.dialect.timestamptrunc_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "timestamptrunc_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.TimestampTrunc) -> str:", "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": "

\n", "signature": "(args: List) -> sqlglot.expressions.Expression:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.StrPosition) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.timestrtotime_sql": {"fullname": "sqlglot.dialects.dialect.timestrtotime_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "timestrtotime_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.TimeStrToTime) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.datestrtodate_sql": {"fullname": "sqlglot.dialects.dialect.datestrtodate_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "datestrtodate_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.DateStrToDate) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Min) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.max_or_greatest": {"fullname": "sqlglot.dialects.dialect.max_or_greatest", "modulename": "sqlglot.dialects.dialect", "qualname": "max_or_greatest", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Max) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.CountIf) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.trim_sql": {"fullname": "sqlglot.dialects.dialect.trim_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "trim_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Trim) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Expression) -> str:", "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": "

\n", "signature": "(dialect: str) -> Callable:", "funcdef": "def"}, "sqlglot.dialects.dialect.pivot_column_names": {"fullname": "sqlglot.dialects.dialect.pivot_column_names", "modulename": "sqlglot.dialects.dialect", "qualname": "pivot_column_names", "kind": "function", "doc": "

\n", "signature": "(\taggregations: List[sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType]) -> List[str]:", "funcdef": "def"}, "sqlglot.dialects.drill": {"fullname": "sqlglot.dialects.drill", "modulename": "sqlglot.dialects.drill", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.drill.Drill": {"fullname": "sqlglot.dialects.drill.Drill", "modulename": "sqlglot.dialects.drill", "qualname": "Drill", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, name: str) -> str:", "funcdef": "def"}, "sqlglot.dialects.duckdb": {"fullname": "sqlglot.dialects.duckdb", "modulename": "sqlglot.dialects.duckdb", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.duckdb.DuckDB": {"fullname": "sqlglot.dialects.duckdb.DuckDB", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.TableSample,\tseed_prefix: str = 'SEED',\tsep: str = ' AS ') -> str:", "funcdef": "def"}, "sqlglot.dialects.hive": {"fullname": "sqlglot.dialects.hive", "modulename": "sqlglot.dialects.hive", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.hive.Hive": {"fullname": "sqlglot.dialects.hive.Hive", "modulename": "sqlglot.dialects.hive", "qualname": "Hive", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.ArrayAgg) -> str:", "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": "

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.DataType) -> str:", "funcdef": "def"}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"fullname": "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Generator.after_having_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.dialects.mysql": {"fullname": "sqlglot.dialects.mysql", "modulename": "sqlglot.dialects.mysql", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.mysql.MySQL": {"fullname": "sqlglot.dialects.mysql.MySQL", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.Show) -> str:", "funcdef": "def"}, "sqlglot.dialects.oracle": {"fullname": "sqlglot.dialects.oracle", "modulename": "sqlglot.dialects.oracle", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.oracle.Oracle": {"fullname": "sqlglot.dialects.oracle.Oracle", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Offset) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Column) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.XMLTable) -> str:", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"fullname": "sqlglot.dialects.oracle.Oracle.Tokenizer", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Tokenizer", "kind": "class", "doc": "

\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.postgres": {"fullname": "sqlglot.dialects.postgres", "modulename": "sqlglot.dialects.postgres", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.postgres.Postgres": {"fullname": "sqlglot.dialects.postgres.Postgres", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.presto": {"fullname": "sqlglot.dialects.presto", "modulename": "sqlglot.dialects.presto", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.presto.Presto": {"fullname": "sqlglot.dialects.presto.Presto", "modulename": "sqlglot.dialects.presto", "qualname": "Presto", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"fullname": "sqlglot.dialects.presto.Presto.Generator.interval_sql", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Generator.interval_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Interval) -> str:", "funcdef": "def"}, "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Transaction) -> str:", "funcdef": "def"}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"fullname": "sqlglot.dialects.presto.Presto.Generator.generateseries_sql", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Generator.generateseries_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.GenerateSeries) -> str:", "funcdef": "def"}, "sqlglot.dialects.redshift": {"fullname": "sqlglot.dialects.redshift", "modulename": "sqlglot.dialects.redshift", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.redshift.Redshift": {"fullname": "sqlglot.dialects.redshift.Redshift", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

Converts VALUES... expression into a series of unions.

\n\n

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 sys.setrecursionlimit to run and it can also be\nvery slow.

\n", "signature": "(self, expression: sqlglot.expressions.Values) -> str:", "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": "

Redshift doesn't have WITH as part of their with_properties so we remove it

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "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": "

Redshift converts the TEXT data type to VARCHAR(255) by default when people more generally mean\nVARCHAR of max length which is VARCHAR(max) in Redshift. Therefore if we get a TEXT data type\nwithout precision we convert it to VARCHAR(max) and if it does have precision then we just convert\nTEXT to VARCHAR.

\n", "signature": "(self, expression: sqlglot.expressions.DataType) -> str:", "funcdef": "def"}, "sqlglot.dialects.snowflake": {"fullname": "sqlglot.dialects.snowflake", "modulename": "sqlglot.dialects.snowflake", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.snowflake.Snowflake": {"fullname": "sqlglot.dialects.snowflake.Snowflake", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Except) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Intersect) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.SetTag) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Describe) -> str:", "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": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.GeneratedAsIdentityColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.dialects.spark": {"fullname": "sqlglot.dialects.spark", "modulename": "sqlglot.dialects.spark", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.spark.Spark": {"fullname": "sqlglot.dialects.spark.Spark", "modulename": "sqlglot.dialects.spark", "qualname": "Spark", "kind": "class", "doc": "

\n", "bases": "sqlglot.dialects.spark2.Spark2"}, "sqlglot.dialects.spark.Spark.Parser": {"fullname": "sqlglot.dialects.spark.Spark.Parser", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Parser", "kind": "class", "doc": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\n", "bases": "sqlglot.dialects.spark2.Spark2.Parser"}, "sqlglot.dialects.spark.Spark.Generator": {"fullname": "sqlglot.dialects.spark.Spark.Generator", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Generator", "kind": "class", "doc": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.dialects.spark2.Spark2.Generator"}, "sqlglot.dialects.spark.Spark.Generator.datediff_sql": {"fullname": "sqlglot.dialects.spark.Spark.Generator.datediff_sql", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Generator.datediff_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DateDiff) -> str:", "funcdef": "def"}, "sqlglot.dialects.spark2": {"fullname": "sqlglot.dialects.spark2", "modulename": "sqlglot.dialects.spark2", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.spark2.Spark2": {"fullname": "sqlglot.dialects.spark2.Spark2", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2", "kind": "class", "doc": "

\n", "bases": "sqlglot.dialects.hive.Hive"}, "sqlglot.dialects.spark2.Spark2.Parser": {"fullname": "sqlglot.dialects.spark2.Spark2.Parser", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Parser", "kind": "class", "doc": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\n", "bases": "sqlglot.dialects.hive.Hive.Parser"}, "sqlglot.dialects.spark2.Spark2.Generator": {"fullname": "sqlglot.dialects.spark2.Spark2.Generator", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Generator", "kind": "class", "doc": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.dialects.hive.Hive.Generator"}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"fullname": "sqlglot.dialects.spark2.Spark2.Generator.cast_sql", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Generator.cast_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Cast) -> str:", "funcdef": "def"}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"fullname": "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Generator.columndef_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ColumnDef, sep: str = ' ') -> str:", "funcdef": "def"}, "sqlglot.dialects.spark2.Spark2.Tokenizer": {"fullname": "sqlglot.dialects.spark2.Spark2.Tokenizer", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Tokenizer", "kind": "class", "doc": "

\n", "bases": "sqlglot.dialects.hive.Hive.Tokenizer"}, "sqlglot.dialects.sqlite": {"fullname": "sqlglot.dialects.sqlite", "modulename": "sqlglot.dialects.sqlite", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.sqlite.SQLite": {"fullname": "sqlglot.dialects.sqlite.SQLite", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.Cast) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.DateDiff) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.GroupConcat) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Least) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Transaction) -> str:", "funcdef": "def"}, "sqlglot.dialects.starrocks": {"fullname": "sqlglot.dialects.starrocks", "modulename": "sqlglot.dialects.starrocks", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.starrocks.StarRocks": {"fullname": "sqlglot.dialects.starrocks.StarRocks", "modulename": "sqlglot.dialects.starrocks", "qualname": "StarRocks", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.dialects.mysql.MySQL.Generator"}, "sqlglot.dialects.tableau": {"fullname": "sqlglot.dialects.tableau", "modulename": "sqlglot.dialects.tableau", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.tableau.Tableau": {"fullname": "sqlglot.dialects.tableau.Tableau", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau", "kind": "class", "doc": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"fullname": "sqlglot.dialects.tableau.Tableau.Generator.if_sql", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Generator.if_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.If) -> str:", "funcdef": "def"}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"fullname": "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Generator.coalesce_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Coalesce) -> str:", "funcdef": "def"}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"fullname": "sqlglot.dialects.tableau.Tableau.Generator.count_sql", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Generator.count_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Count) -> str:", "funcdef": "def"}, "sqlglot.dialects.tableau.Tableau.Parser": {"fullname": "sqlglot.dialects.tableau.Tableau.Parser", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Parser", "kind": "class", "doc": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.teradata": {"fullname": "sqlglot.dialects.teradata", "modulename": "sqlglot.dialects.teradata", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.teradata.Teradata": {"fullname": "sqlglot.dialects.teradata.Teradata", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.PartitionedByProperty) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Update) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Mod) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.DataType) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.RangeN) -> str:", "funcdef": "def"}, "sqlglot.dialects.trino": {"fullname": "sqlglot.dialects.trino", "modulename": "sqlglot.dialects.trino", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.trino.Trino": {"fullname": "sqlglot.dialects.trino.Trino", "modulename": "sqlglot.dialects.trino", "qualname": "Trino", "kind": "class", "doc": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "bases": "sqlglot.dialects.presto.Presto.Tokenizer"}, "sqlglot.dialects.tsql": {"fullname": "sqlglot.dialects.tsql", "modulename": "sqlglot.dialects.tsql", "kind": "module", "doc": "

\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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.DateAdd | sqlglot.expressions.DateDiff) -> str:", "funcdef": "def"}, "sqlglot.dialects.tsql.TSQL": {"fullname": "sqlglot.dialects.tsql.TSQL", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.tsql.TSQL.Generator.offset_sql": {"fullname": "sqlglot.dialects.tsql.TSQL.Generator.offset_sql", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Generator.offset_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Offset) -> str:", "funcdef": "def"}, "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": "

\n", "signature": "(self, expression: sqlglot.expressions.SystemTime) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.ReturnsProperty) -> str:", "funcdef": "def"}, "sqlglot.diff": {"fullname": "sqlglot.diff", "modulename": "sqlglot.diff", "kind": "module", "doc": "

Semantic Diff for SQL

\n\n

by Iaroslav Zeigerman

\n\n

Motivation

\n\n

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.

\n\n

Text-based diff tools such as git diff, 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.

\n\n

Consider the following diff generated by Git:

\n\n

\"Git

\n\n

Semantically the query hasn\u2019t changed. The two arguments b and c 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.

\n\n

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.

\n\n

The use cases I had in mind for SQL when I decided to embark on this journey of semantic diffing were the following:

\n\n
    \n
  • Query similarity score. Identifying which parts the two queries have in common to automatically suggest opportunities for consolidation, creation of intermediate/staging tables, and so on.
  • \n
  • Differentiating between cosmetic / structural changes and functional ones. 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.
  • \n
  • Automatic suggestions about the need to retroactively backfill data. 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.
  • \n
\n\n

The implementation discussed in this post is now a part of the SQLGlot library. You can find a complete source code in the diff.py 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.

\n\n

The Search for a Solution

\n\n

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.

\n\n

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?

\n\n

To better illustrate the problem, consider comparing the following SQL expressions: SELECT a + b + c, d, e and SELECT a - b + c, e, f. Matching individual nodes from respective syntax trees can be visualized as follows:

\n\n

\"Figure\nFigure 1: Example of node matching for two SQL expression trees.

\n\n

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:

\n\n
    \n
  • Inserted nodes: Sub and f. These are the nodes from the target AST which do not have a matching node in the source AST.
  • \n
  • Removed nodes: Add and d. These are the nodes from the source AST which do not have a counterpart in the target AST.
  • \n
  • Remaining nodes must be identified as unchanged.
  • \n
\n\n

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.

\n\n

Na\u00efve Brute-Force

\n\n

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.

\n\n

Myers Algorithm

\n\n

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 blog posts to be the most comprehensive.

\n\n

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.

\n\n

Change Distiller

\n\n

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].

\n\n

The algorithm consists of two high-level steps:

\n\n
    \n
  1. Finding appropriate matchings between pairs of nodes that are part of compared ASTs. Identifying what is meant by \u201cappropriate\u201d matching is also a part of this step.
  2. \n
  3. Generating the so-called \u201cedit script\u201d from the matching set built in the 1st step. 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.
  4. \n
\n\n

The rest of this section is dedicated to the Python implementation of the steps above using the AST implementation provided by the SQLGlot library.

\n\n

Building the Matching Set

\n\n

Matching Leaves

\n\n

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.

\n\n

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.

\n\n

\"Figure\nFigure 2: Building a set of candidate matchings between leaf nodes. The third item in each triplet represents a similarity score between two nodes.

\n\n

First, let\u2019s analyze the similarity score. Then, we\u2019ll discuss matching criteria.

\n\n

The similarity score proposed by Fluri et al. [2] is a dice coefficient applied to bigrams of respective node values. A bigram is a sequence of two adjacent elements from a string computed in a sliding window fashion:

\n\n
\n
def bigram(string):\n    count = max(0, len(string) - 1)\n    return [string[i : i + 2] for i in range(count)]\n
\n
\n\n

For reasons that will become clear shortly, we actually need to compute bigram histograms rather than just sequences:

\n\n
\n
from collections import defaultdict\n\ndef bigram_histo(string):\n    count = max(0, len(string) - 1)\n    bigram_histo = defaultdict(int)\n    for i in range(count):\n        bigram_histo[string[i : i + 2]] += 1\n    return bigram_histo\n
\n
\n\n

The dice coefficient formula looks like following:

\n\n

\"Dice

\n\n

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:

\n\n
\n
def dice_coefficient(source, target):\n    source_histo = bigram_histo(source.sql())\n    target_histo = bigram_histo(target.sql())\n\n    total_grams = (\n        sum(source_histo.values()) + sum(target_histo.values())\n    )\n    if not total_grams:\n        return 1.0 if source == target else 0.0\n\n    overlap_len = 0\n    overlapping_grams = set(source_histo) & set(target_histo)\n    for g in overlapping_grams:\n        overlap_len += min(source_histo[g], target_histo[g])\n\n    return 2 * overlap_len / total_grams\n
\n
\n\n

To compute a bigram given a tree node, we first transform the node into its canonical SQL representation,so that the Literal(123) node becomes just \u201c123\u201d and the Identifier(\u201ca\u201d) 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.

\n\n

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:

\n\n

\"Matching

\n\n

The two nodes are matched if two conditions are met:

\n\n
    \n
  1. The node labels match (in our case labels are just node types).
  2. \n
  3. 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.
  4. \n
\n\n

With building blocks in place, we can now build a matching set for leaf nodes. First, we generate a list of candidates for matching:

\n\n
\n
from heapq import heappush, heappop\n\ncandidate_matchings = []\nsource_leaves = _get_leaves(self._source)\ntarget_leaves = _get_leaves(self._target)\nfor source_leaf in source_leaves:\n    for target_leaf in target_leaves:\n        if _is_same_type(source_leaf, target_leaf):\n            similarity_score = dice_coefficient(\n                source_leaf, target_leaf\n            )\n            if similarity_score >= 0.6:\n                heappush(\n                    candidate_matchings,\n                    (\n                        -similarity_score,\n                        len(candidate_matchings),\n                        source_leaf,\n                        target_leaf,\n                    ),\n                )\n
\n
\n\n

In the implementation above, we push each matching pair onto the heap to automatically maintain the correct order based on the assigned similarity score.

\n\n

Finally, we build the initial matching set by picking leaf pairs with the highest score:

\n\n
\n
matching_set = set()\nwhile candidate_matchings:\n    _, _, source_leaf, target_leaf = heappop(candidate_matchings)\n    if (\n        source_leaf in unmatched_source_nodes\n        and target_leaf in unmatched_target_nodes\n    ):\n        matching_set.add((source_leaf, target_leaf))\n        unmatched_source_nodes.remove(source_leaf)\n        unmatched_target_nodes.remove(target_leaf)\n
\n
\n\n

To finalize the matching set, we should now proceed with matching inner nodes.

\n\n

Matching Inner Nodes

\n\n

Matching inner nodes is quite similar to matching leaf nodes, with the following two distinctions:

\n\n
    \n
  • Rather than ranking a set of possible candidates, we pick the first node pair that passes the matching criteria.
  • \n
  • The matching criteria itself has been extended to account for the number of leaf nodes the pair of inner nodes have in common.
  • \n
\n\n

\"Figure\nFigure 3: Matching inner nodes based on their type as well as how many of their leaf nodes have been previously matched.

\n\n

Let\u2019s start with the matching criteria. The criteria is formalized as follows:

\n\n

\"Matching

\n\n

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.

\n\n

There are two additional heuristics associated with this matching criteria:

\n\n
    \n
  • 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.
  • \n
  • 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.
  • \n
\n\n

We now only have to iterate through the remaining unmatched nodes and form matching pairs based on the outlined criteria:

\n\n
\n
leaves_matching_set = matching_set.copy()\n\nfor source_node in unmatched_source_nodes.copy():\n    for target_node in unmatched_target_nodes:\n        if _is_same_type(source_node, target_node):\n            source_leaves = set(_get_leaves(source_node))\n            target_leaves = set(_get_leaves(target_node))\n\n            max_leaves_num = max(len(source_leaves), len(target_leaves))\n            if max_leaves_num:\n                common_leaves_num = sum(\n                    1 if s in source_leaves and t in target_leaves else 0\n                    for s, t in leaves_matching_set\n                )\n                leaf_similarity_score = common_leaves_num / max_leaves_num\n            else:\n                leaf_similarity_score = 0.0\n\n            adjusted_t = (\n                0.6\n                if min(len(source_leaves), len(target_leaves)) > 4\n                else 0.4\n            )\n\n            if leaf_similarity_score >= 0.8 or (\n                leaf_similarity_score >= adjusted_t\n                and dice_coefficient(source_node, target_node) >= 0.6\n            ):\n                matching_set.add((source_node, target_node))\n                unmatched_source_nodes.remove(source_node)\n                unmatched_target_nodes.remove(target_node)\n                break\n
\n
\n\n

After the matching set is formed, we can proceed with generation of the edit script, which will be the algorithm\u2019s output.

\n\n

Generating the Edit Script

\n\n

At this point, we should have the following 3 sets at our disposal:

\n\n
    \n
  • The set of matched node pairs.
  • \n
  • The set of remaining unmatched nodes from the source tree.
  • \n
  • The set of remaining unmatched nodes from the target tree.
  • \n
\n\n

We can derive 3 kinds of edits from the matching set: either the node\u2019s value was updated (Update), the node was moved to a different position within the tree (Move), or the node remained unchanged (Keep). Note that the Move 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 (Remove), while unmatched nodes from the target tree are the ones that were inserted (Insert).

\n\n

The latter two cases are pretty straightforward to implement:

\n\n
\n
edit_script = []\n\nfor removed_node in unmatched_source_nodes:\n    edit_script.append(Remove(removed_node))\nfor inserted_node in unmatched_target_nodes:\n    edit_script.append(Insert(inserted_node))\n
\n
\n\n

Traversing the matching set requires a little more thought:

\n\n
\n
for source_node, target_node in matching_set:\n    if (\n        not isinstance(source_node, LEAF_EXPRESSION_TYPES)\n        or source_node == target_node\n    ):\n        move_edits = generate_move_edits(\n            source_node, target_node, matching_set\n        )\n        edit_script.extend(move_edits)\n        edit_script.append(Keep(source_node, target_node))\n    else:\n        edit_script.append(Update(source_node, target_node))\n
\n
\n\n

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 longest common subsequence (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.

\n\n

Now with this knowledge, the implementation becomes straightforward:

\n\n
\n
def generate_move_edits(source, target, matching_set):\n    source_children = _get_child_nodes(source)\n    target_children = _get_child_nodes(target)\n\n    lcs = set(\n        _longest_common_subsequence(\n            source_children,\n            target_children,\n            lambda l, r: (l, r) in matching_set\n        )\n    )\n\n    move_edits = []\n    for node in source_children:\n        if node not in lcs and node not in unmatched_source_nodes:\n            move_edits.append(Move(node))\n\n    return move_edits\n
\n
\n\n

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.

\n\n

Output

\n\n

The implemented algorithm produces the output that resembles the following:

\n\n
\n
>>> from sqlglot import parse_one, diff\n>>> diff(parse_one("SELECT a + b + c, d, e"), parse_one("SELECT a - b + c, e, f"))\n\nRemove(Add)\nRemove(Column(d))\nRemove(Identifier(d))\nInsert(Sub)\nInsert(Column(f))\nInsert(Identifier(f))\nKeep(Select, Select)\nKeep(Add, Add)\nKeep(Column(a), Column(a))\nKeep(Identifier(a), Identifier(a))\nKeep(Column(b), Column(b))\nKeep(Identifier(b), Identifier(b))\nKeep(Column(c), Column(c))\nKeep(Identifier(c), Identifier(c))\nKeep(Column(e), Column(e))\nKeep(Identifier(e), Identifier(e))\n
\n
\n\n

Note that the output above is abbreviated. The string representation of actual AST nodes is significantly more verbose.

\n\n

The implementation works especially well when coupled with the SQLGlot\u2019s query optimizer which can be used to produce canonical representations of compared queries:

\n\n
\n
>>> schema={"t": {"a": "INT", "b": "INT", "c": "INT", "d": "INT"}}\n>>> source = """\n... SELECT 1 + 1 + a\n... FROM t\n... WHERE b = 1 OR (c = 2 AND d = 3)\n... """\n>>> target = """\n... SELECT 2 + a\n... FROM t\n... WHERE (b = 1 OR c = 2) AND (b = 1 OR d = 3)\n... """\n>>> optimized_source = optimize(parse_one(source), schema=schema)\n>>> optimized_target = optimize(parse_one(target), schema=schema)\n>>> edit_script = diff(optimized_source, optimized_target)\n>>> sum(0 if isinstance(e, Keep) else 1 for e in edit_script)\n0\n
\n
\n\n

Optimizations

\n\n

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.

\n\n

There are still a few basic things we can do in our implementation to help improve performance:

\n\n
    \n
  • Refer to individual node objects using their identifiers (Python\u2019s id()) instead of direct references in sets. This helps avoid costly recursive hash calculations and equality checks.
  • \n
  • Cache bigram histograms to avoid computing them more than once for the same node.
  • \n
  • 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.
  • \n
\n\n

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.

\n\n

Alternative Solutions

\n\n

This section is dedicated to solutions that I\u2019ve investigated, but haven\u2019t tried.

\n\n

First, this section wouldn\u2019t be complete without Tristan Hume\u2019s blog post. 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 dynamic programming and A* search algorithm 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.

\n\n

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.

\n\n

Conclusion

\n\n

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.

\n\n

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.

\n\n

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.

\n\n

References

\n\n

[1] Eugene W. Myers. An O(ND) Difference Algorithm and Its Variations. Algorithmica 1(2): 251-266 (1986)

\n\n

[2] B. Fluri, M. Wursch, M. Pinzger, and H. Gall. Change Distilling: Tree differencing for fine-grained source code change extraction. IEEE Trans. Software Eng., 33(11):725\u2013743, 2007.

\n\n

[3] S.S. Chawathe, A. Rajaraman, H. Garcia-Molina, and J. Widom. Change Detection in Hierarchically Structured Information. Proc. ACM Sigmod Int\u2019l Conf. Management of Data, pp. 493-504, June 1996

\n\n

[4] Jean-R\u00e9my Falleri, Flor\u00e9al Morandat, Xavier Blanc, Matias Martinez, Martin Monperrus. Fine-grained and Accurate Source Code Differencing. Proceedings of the International Conference on Automated Software Engineering, 2014, V\u00e4steras, Sweden. pp.313-324, 10.1145/2642937.2642982. hal-01054552

\n\n
\n"}, "sqlglot.diff.Insert": {"fullname": "sqlglot.diff.Insert", "modulename": "sqlglot.diff", "qualname": "Insert", "kind": "class", "doc": "

Indicates that a new node has been inserted

\n"}, "sqlglot.diff.Insert.__init__": {"fullname": "sqlglot.diff.Insert.__init__", "modulename": "sqlglot.diff", "qualname": "Insert.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression)"}, "sqlglot.diff.Remove": {"fullname": "sqlglot.diff.Remove", "modulename": "sqlglot.diff", "qualname": "Remove", "kind": "class", "doc": "

Indicates that an existing node has been removed

\n"}, "sqlglot.diff.Remove.__init__": {"fullname": "sqlglot.diff.Remove.__init__", "modulename": "sqlglot.diff", "qualname": "Remove.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression)"}, "sqlglot.diff.Move": {"fullname": "sqlglot.diff.Move", "modulename": "sqlglot.diff", "qualname": "Move", "kind": "class", "doc": "

Indicates that an existing node's position within the tree has changed

\n"}, "sqlglot.diff.Move.__init__": {"fullname": "sqlglot.diff.Move.__init__", "modulename": "sqlglot.diff", "qualname": "Move.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression)"}, "sqlglot.diff.Update": {"fullname": "sqlglot.diff.Update", "modulename": "sqlglot.diff", "qualname": "Update", "kind": "class", "doc": "

Indicates that an existing node has been updated

\n"}, "sqlglot.diff.Update.__init__": {"fullname": "sqlglot.diff.Update.__init__", "modulename": "sqlglot.diff", "qualname": "Update.__init__", "kind": "function", "doc": "

\n", "signature": "(\tsource: sqlglot.expressions.Expression,\ttarget: sqlglot.expressions.Expression)"}, "sqlglot.diff.Keep": {"fullname": "sqlglot.diff.Keep", "modulename": "sqlglot.diff", "qualname": "Keep", "kind": "class", "doc": "

Indicates that an existing node hasn't been changed

\n"}, "sqlglot.diff.Keep.__init__": {"fullname": "sqlglot.diff.Keep.__init__", "modulename": "sqlglot.diff", "qualname": "Keep.__init__", "kind": "function", "doc": "

\n", "signature": "(\tsource: sqlglot.expressions.Expression,\ttarget: sqlglot.expressions.Expression)"}, "sqlglot.diff.diff": {"fullname": "sqlglot.diff.diff", "modulename": "sqlglot.diff", "qualname": "diff", "kind": "function", "doc": "

Returns the list of changes between the source and the target expressions.

\n\n
Examples:
\n\n
\n
\n
>>> diff(parse_one("a + b"), parse_one("a + c"))\n[\n    Remove(expression=(COLUMN this: (IDENTIFIER this: b, quoted: False))),\n    Insert(expression=(COLUMN this: (IDENTIFIER this: c, quoted: False))),\n    Keep(\n        source=(ADD this: ...),\n        target=(ADD this: ...)\n    ),\n    Keep(\n        source=(COLUMN this: (IDENTIFIER this: a, quoted: False)),\n        target=(COLUMN this: (IDENTIFIER this: a, quoted: False))\n    ),\n]\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • source: the source expression.
  • \n
  • target: the target expression against which the diff should be calculated.
  • \n
  • matchings: 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.
  • \n
\n\n
Returns:
\n\n
\n

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.

\n
\n", "signature": "(\tsource: sqlglot.expressions.Expression,\ttarget: sqlglot.expressions.Expression,\tmatchings: Optional[List[Tuple[sqlglot.expressions.Expression, sqlglot.expressions.Expression]]] = None,\t**kwargs: Any) -> List[Union[sqlglot.diff.Insert, sqlglot.diff.Remove, sqlglot.diff.Move, sqlglot.diff.Update, sqlglot.diff.Keep]]:", "funcdef": "def"}, "sqlglot.diff.ChangeDistiller": {"fullname": "sqlglot.diff.ChangeDistiller", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller", "kind": "class", "doc": "

The implementation of the Change Distiller algorithm described by Beat Fluri and Martin Pinzger in\ntheir paper https://ieeexplore.ieee.org/document/4339230, which in turn is based on the algorithm by\nChawathe et al. described in http://ilpubs.stanford.edu:8090/115/1/1995-46.pdf.

\n"}, "sqlglot.diff.ChangeDistiller.__init__": {"fullname": "sqlglot.diff.ChangeDistiller.__init__", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller.__init__", "kind": "function", "doc": "

\n", "signature": "(f: float = 0.6, t: float = 0.6)"}, "sqlglot.diff.ChangeDistiller.diff": {"fullname": "sqlglot.diff.ChangeDistiller.diff", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller.diff", "kind": "function", "doc": "

\n", "signature": "(\tself,\tsource: sqlglot.expressions.Expression,\ttarget: sqlglot.expressions.Expression,\tmatchings: Optional[List[Tuple[sqlglot.expressions.Expression, sqlglot.expressions.Expression]]] = None) -> List[Union[sqlglot.diff.Insert, sqlglot.diff.Remove, sqlglot.diff.Move, sqlglot.diff.Update, sqlglot.diff.Keep]]:", "funcdef": "def"}, "sqlglot.errors": {"fullname": "sqlglot.errors", "modulename": "sqlglot.errors", "kind": "module", "doc": "

\n"}, "sqlglot.errors.ErrorLevel": {"fullname": "sqlglot.errors.ErrorLevel", "modulename": "sqlglot.errors", "qualname": "ErrorLevel", "kind": "class", "doc": "

An enumeration.

\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.errors.ErrorLevel.IGNORE": {"fullname": "sqlglot.errors.ErrorLevel.IGNORE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.IGNORE", "kind": "variable", "doc": "

Ignore all errors.

\n", "default_value": "<ErrorLevel.IGNORE: 'IGNORE'>"}, "sqlglot.errors.ErrorLevel.WARN": {"fullname": "sqlglot.errors.ErrorLevel.WARN", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.WARN", "kind": "variable", "doc": "

Log all errors.

\n", "default_value": "<ErrorLevel.WARN: 'WARN'>"}, "sqlglot.errors.ErrorLevel.RAISE": {"fullname": "sqlglot.errors.ErrorLevel.RAISE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.RAISE", "kind": "variable", "doc": "

Collect all errors and raise a single exception.

\n", "default_value": "<ErrorLevel.RAISE: 'RAISE'>"}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"fullname": "sqlglot.errors.ErrorLevel.IMMEDIATE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.IMMEDIATE", "kind": "variable", "doc": "

Immediately raise an exception on the first error found.

\n", "default_value": "<ErrorLevel.IMMEDIATE: 'IMMEDIATE'>"}, "sqlglot.errors.SqlglotError": {"fullname": "sqlglot.errors.SqlglotError", "modulename": "sqlglot.errors", "qualname": "SqlglotError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "builtins.Exception"}, "sqlglot.errors.UnsupportedError": {"fullname": "sqlglot.errors.UnsupportedError", "modulename": "sqlglot.errors", "qualname": "UnsupportedError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.ParseError": {"fullname": "sqlglot.errors.ParseError", "modulename": "sqlglot.errors", "qualname": "ParseError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.ParseError.__init__": {"fullname": "sqlglot.errors.ParseError.__init__", "modulename": "sqlglot.errors", "qualname": "ParseError.__init__", "kind": "function", "doc": "

\n", "signature": "(message: str, errors: Optional[List[Dict[str, Any]]] = None)"}, "sqlglot.errors.ParseError.new": {"fullname": "sqlglot.errors.ParseError.new", "modulename": "sqlglot.errors", "qualname": "ParseError.new", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tmessage: str,\tdescription: Optional[str] = None,\tline: Optional[int] = None,\tcol: Optional[int] = None,\tstart_context: Optional[str] = None,\thighlight: Optional[str] = None,\tend_context: Optional[str] = None,\tinto_expression: Optional[str] = None) -> sqlglot.errors.ParseError:", "funcdef": "def"}, "sqlglot.errors.TokenError": {"fullname": "sqlglot.errors.TokenError", "modulename": "sqlglot.errors", "qualname": "TokenError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.OptimizeError": {"fullname": "sqlglot.errors.OptimizeError", "modulename": "sqlglot.errors", "qualname": "OptimizeError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.SchemaError": {"fullname": "sqlglot.errors.SchemaError", "modulename": "sqlglot.errors", "qualname": "SchemaError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.ExecuteError": {"fullname": "sqlglot.errors.ExecuteError", "modulename": "sqlglot.errors", "qualname": "ExecuteError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.concat_messages": {"fullname": "sqlglot.errors.concat_messages", "modulename": "sqlglot.errors", "qualname": "concat_messages", "kind": "function", "doc": "

\n", "signature": "(errors: Sequence[Any], maximum: int) -> str:", "funcdef": "def"}, "sqlglot.errors.merge_errors": {"fullname": "sqlglot.errors.merge_errors", "modulename": "sqlglot.errors", "qualname": "merge_errors", "kind": "function", "doc": "

\n", "signature": "(errors: Sequence[sqlglot.errors.ParseError]) -> List[Dict[str, Any]]:", "funcdef": "def"}, "sqlglot.executor": {"fullname": "sqlglot.executor", "modulename": "sqlglot.executor", "kind": "module", "doc": "

Writing a Python SQL engine from scratch

\n\n

Toby Mao

\n\n

Introduction

\n\n

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 18 SQL dialects and can execute all 24 TPC-H SQL queries. The parser and engine are all written from scratch using Python.

\n\n

This post will cover why I went through the effort of creating a Python SQL engine and how a simple query goes from a string to actually transforming data. The following steps are briefly summarized:

\n\n\n\n

Why?

\n\n

I started working on SQLGlot because of my work on the experimentation and metrics platform 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 PyPika, 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 sqlparse, 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 Crafting Interpreters and realized that I could use it as a guide towards creating my own SQL parser/transpiler.

\n\n

Why did I do this? Isn't a Python SQL engine going to be extremely slow?

\n\n

The main reason why I ended up building a SQL engine was...just for entertainment. 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.

\n\n

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 Snowflake and seamlessly run it in CI on mock Python data. It's easy to mock data and create arbitrary UDFs 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.

\n\n

Finally, the components that have been built to support execution can be used as a foundation for a faster engine. I'm inspired by what Apache Calcite 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 AST/plan. 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.

\n\n

Parts of SQLGlot's toolkit are being used today by the following:

\n\n
    \n
  • Ibis: A Python library that provides a lightweight, universal interface for data wrangling.\n
      \n
    • Uses the Python SQL expression builder and leverages the optimizer/planner to convert SQL into dataframe operations.
    • \n
  • \n
  • mysql-mimic: Pure-Python implementation of the MySQL server wire protocol\n
      \n
    • Parses / transforms SQL and executes INFORMATION_SCHEMA queries.
    • \n
  • \n
  • Quokka: Push-based vectorized query engine\n
      \n
    • Parse and optimizes SQL.
    • \n
  • \n
  • Splink: Fast, accurate and scalable probabilistic data linkage using your choice of SQL backend.\n
      \n
    • Transpiles queries.
    • \n
  • \n
\n\n

How?

\n\n

There are many steps involved with actually running a simple query like:

\n\n
\n
SELECT\n  bar.a,\n  b + 1 AS b\nFROM bar\nJOIN baz\n  ON bar.a = baz.a\nWHERE bar.a > 1\n
\n
\n\n

In this post, I'll walk through all the steps SQLGlot takes to run this query over Python objects.

\n\n

Tokenizing

\n\n

The first step is to convert the sql string into a list of tokens. SQLGlot's tokenizer is quite simple and can be found here. In a while loop, it checks each character and either appends the character to the current token, or makes a new token.

\n\n

Running the SQLGlot tokenizer shows the output.

\n\n

\"Tokenizer

\n\n

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.

\n\n

Parsing

\n\n

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 parser is a handwritten recursive descent parser.

\n\n

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.

\n\n

\"Parser

\n\n

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.

\n\n

Optimizing

\n\n

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 optimize the AST directly for the following reasons:

\n\n
    \n
  1. It's easier to debug and validate the optimizations when the input and output are both SQL.

  2. \n
  3. Rules can be applied a la carte to transform SQL into a more desirable form.

  4. \n
  5. 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. SELECT 1 + 1 and SELECT 2).

  6. \n
\n\n

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.

\n\n

\"Optimizer

\n\n

The optimizer currently has 17 rules. 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.

\n\n

Some example rules are:

\n\n

qualify_tables and qualify_columns

\n\n
    \n
  • Adds all db/catalog qualifiers to tables and forces an alias.
  • \n
  • Ensure each column is unambiguous and expand stars.
  • \n
\n\n
\n
SELECT * FROM x;\n\nSELECT "db"."x" AS "x";\n
\n
\n\n

simplify

\n\n

Boolean and math simplification. Check out all the test cases.

\n\n
\n
((NOT FALSE) AND (x = x)) AND (TRUE OR 1 <> 3);\nx = x;\n\n1 + 1;\n2;\n
\n
\n\n

normalize

\n\n

Attempts to convert all predicates into conjunctive normal form.

\n\n
\n
-- DNF\n(A AND B) OR (B AND C AND D);\n\n-- CNF\n(A OR C) AND (A OR D) AND B;\n
\n
\n\n

unnest_subqueries

\n\n

Converts subqueries in predicates into joins.

\n\n
\n
-- The subquery can be converted into a left join\nSELECT *\nFROM x AS x\nWHERE (\n  SELECT y.a AS a\n  FROM y AS y\n  WHERE x.a = y.a\n) = 1;\n\nSELECT *\nFROM x AS x\nLEFT JOIN (\n  SELECT y.a AS a\n  FROM y AS y\n  WHERE TRUE\n  GROUP BY y.a\n) AS "_u_0"\n  ON x.a = "_u_0".a\nWHERE ("_u_0".a = 1 AND NOT "_u_0".a IS NULL)\n
\n
\n\n

pushdown_predicates

\n\n

Push down filters into the innermost query.

\n\n
\n
SELECT *\nFROM (\n  SELECT *\n  FROM x AS x\n) AS y\nWHERE y.a = 1;\n\nSELECT *\nFROM (\n  SELECT *\n  FROM x AS x\n  WHERE y.a = 1\n) AS y WHERE TRUE\n
\n
\n\n

annotate_types

\n\n

Infer all types throughout the AST given schema information and function type definitions.

\n\n

Planning

\n\n

After the SQL AST has been \"optimized\", it's much easier to convert into a logical plan. The AST is traversed and converted into a DAG consisting of one of five steps. The different steps are:

\n\n

Scan

\n\n

Selects columns from a table, applies projections, and finally filters the table.

\n\n

Sort

\n\n

Sorts a table for order by expressions.

\n\n

Set

\n\n

Applies the operators union/union all/except/intersect.

\n\n

Aggregate

\n\n

Applies an aggregation/group by.

\n\n

Join

\n\n

Joins multiple tables together.

\n\n

\"Planner

\n\n

The logical plan is quite simple and contains the information required to convert it into a physical plan (execution).

\n\n

Executing

\n\n

Finally, we can actually execute the SQL query. The Python engine 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.

\n\n

In order to keep things simple, it evaluates expressions with eval. Because SQLGlot was built primarily to be a transpiler, it was simple to create a \"Python SQL\" dialect. So a SQL expression x + 1 can just be converted into scope['x'] + 1.

\n\n

\"Executor

\n\n

What's next

\n\n

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 TPC-DS. If someone doesn't beat me to it, I may even take a stab at writing a Pandas/Arrow execution engine.

\n\n

I'm hoping that over time, SQLGlot will spark the Python SQL ecosystem just like Calcite has for Java.

\n\n

Special thanks

\n\n

SQLGlot would not be what it is without it's core contributors. In particular, the execution engine would not exist without Barak Alon and George Sittas.

\n\n

Get in touch

\n\n

If you'd like to chat more about SQLGlot, please join my Slack Channel!

\n\n
\n"}, "sqlglot.executor.execute": {"fullname": "sqlglot.executor.execute", "modulename": "sqlglot.executor", "qualname": "execute", "kind": "function", "doc": "

Run a sql query against data.

\n\n
Arguments:
\n\n
    \n
  • sql: a sql statement.
  • \n
  • schema: database schema.\nThis can either be an instance of Schema or a mapping in one of the following forms:\n
      \n
    1. {table: {col: type}}
    2. \n
    3. {db: {table: {col: type}}}
    4. \n
    5. {catalog: {db: {table: {col: type}}}}
    6. \n
  • \n
  • read: the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • tables: additional tables to register.
  • \n
\n\n
Returns:
\n\n
\n

Simple columnar data structure.

\n
\n", "signature": "(\tsql: str | sqlglot.expressions.Expression,\tschema: Union[Dict, sqlglot.schema.Schema, NoneType] = None,\tread: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\ttables: Optional[Dict] = None) -> sqlglot.executor.table.Table:", "funcdef": "def"}, "sqlglot.executor.context": {"fullname": "sqlglot.executor.context", "modulename": "sqlglot.executor.context", "kind": "module", "doc": "

\n"}, "sqlglot.executor.context.Context": {"fullname": "sqlglot.executor.context.Context", "modulename": "sqlglot.executor.context", "qualname": "Context", "kind": "class", "doc": "

Execution context for sql expressions.

\n\n

Context is used to hold relevant data tables which can then be queried on with eval.

\n\n

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.

\n"}, "sqlglot.executor.context.Context.__init__": {"fullname": "sqlglot.executor.context.Context.__init__", "modulename": "sqlglot.executor.context", "qualname": "Context.__init__", "kind": "function", "doc": "

Args\n tables: representing the scope of the current execution context.\n env: dictionary of functions within the execution context.

\n", "signature": "(\ttables: Dict[str, sqlglot.executor.table.Table],\tenv: Optional[Dict] = None)"}, "sqlglot.executor.context.Context.eval": {"fullname": "sqlglot.executor.context.Context.eval", "modulename": "sqlglot.executor.context", "qualname": "Context.eval", "kind": "function", "doc": "

\n", "signature": "(self, code):", "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": "

\n", "signature": "(self, codes):", "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": "

\n", "signature": "(self, *columns: str) -> None:", "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": "

\n", "signature": "(\tself,\ttable: str) -> Iterator[Tuple[sqlglot.executor.table.TableIter, sqlglot.executor.context.Context]]:", "funcdef": "def"}, "sqlglot.executor.context.Context.filter": {"fullname": "sqlglot.executor.context.Context.filter", "modulename": "sqlglot.executor.context", "qualname": "Context.filter", "kind": "function", "doc": "

\n", "signature": "(self, condition) -> None:", "funcdef": "def"}, "sqlglot.executor.context.Context.sort": {"fullname": "sqlglot.executor.context.Context.sort", "modulename": "sqlglot.executor.context", "qualname": "Context.sort", "kind": "function", "doc": "

\n", "signature": "(self, key) -> None:", "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": "

\n", "signature": "(self, row: Tuple) -> None:", "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": "

\n", "signature": "(self, index: int) -> None:", "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": "

\n", "signature": "(self, start: int, end: int) -> None:", "funcdef": "def"}, "sqlglot.executor.env": {"fullname": "sqlglot.executor.env", "modulename": "sqlglot.executor.env", "kind": "module", "doc": "

\n"}, "sqlglot.executor.env.reverse_key": {"fullname": "sqlglot.executor.env.reverse_key", "modulename": "sqlglot.executor.env", "qualname": "reverse_key", "kind": "class", "doc": "

\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": "

\n", "signature": "(obj)"}, "sqlglot.executor.env.filter_nulls": {"fullname": "sqlglot.executor.env.filter_nulls", "modulename": "sqlglot.executor.env", "qualname": "filter_nulls", "kind": "function", "doc": "

\n", "signature": "(func, empty_null=True):", "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": "

Decorator that makes a function return None if any of the required arguments are None.

\n\n

This also supports decoration with no arguments, e.g.:

\n\n
@null_if_any\ndef foo(a, b): ...\n
\n\n

In which case all arguments are required.

\n", "signature": "(*required):", "funcdef": "def"}, "sqlglot.executor.env.str_position": {"fullname": "sqlglot.executor.env.str_position", "modulename": "sqlglot.executor.env", "qualname": "str_position", "kind": "function", "doc": "

\n", "signature": "(substr, this, position=None):", "funcdef": "def"}, "sqlglot.executor.env.substring": {"fullname": "sqlglot.executor.env.substring", "modulename": "sqlglot.executor.env", "qualname": "substring", "kind": "function", "doc": "

\n", "signature": "(this, start=None, length=None):", "funcdef": "def"}, "sqlglot.executor.env.cast": {"fullname": "sqlglot.executor.env.cast", "modulename": "sqlglot.executor.env", "qualname": "cast", "kind": "function", "doc": "

\n", "signature": "(this, to):", "funcdef": "def"}, "sqlglot.executor.env.ordered": {"fullname": "sqlglot.executor.env.ordered", "modulename": "sqlglot.executor.env", "qualname": "ordered", "kind": "function", "doc": "

\n", "signature": "(this, desc, nulls_first):", "funcdef": "def"}, "sqlglot.executor.env.interval": {"fullname": "sqlglot.executor.env.interval", "modulename": "sqlglot.executor.env", "qualname": "interval", "kind": "function", "doc": "

\n", "signature": "(this, unit):", "funcdef": "def"}, "sqlglot.executor.python": {"fullname": "sqlglot.executor.python", "modulename": "sqlglot.executor.python", "kind": "module", "doc": "

\n"}, "sqlglot.executor.python.PythonExecutor": {"fullname": "sqlglot.executor.python.PythonExecutor", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor", "kind": "class", "doc": "

\n"}, "sqlglot.executor.python.PythonExecutor.__init__": {"fullname": "sqlglot.executor.python.PythonExecutor.__init__", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.__init__", "kind": "function", "doc": "

\n", "signature": "(env=None, tables=None)"}, "sqlglot.executor.python.PythonExecutor.execute": {"fullname": "sqlglot.executor.python.PythonExecutor.execute", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.execute", "kind": "function", "doc": "

\n", "signature": "(self, plan):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.generate": {"fullname": "sqlglot.executor.python.PythonExecutor.generate", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.generate", "kind": "function", "doc": "

Convert a SQL expression into literal Python code and compile it into bytecode.

\n", "signature": "(self, expression):", "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": "

Convert an array of SQL expressions into tuple of Python byte code.

\n", "signature": "(self, expressions):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.context": {"fullname": "sqlglot.executor.python.PythonExecutor.context", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.context", "kind": "function", "doc": "

\n", "signature": "(self, tables):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.table": {"fullname": "sqlglot.executor.python.PythonExecutor.table", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.table", "kind": "function", "doc": "

\n", "signature": "(self, expressions):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.scan": {"fullname": "sqlglot.executor.python.PythonExecutor.scan", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.scan", "kind": "function", "doc": "

\n", "signature": "(self, step, context):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.static": {"fullname": "sqlglot.executor.python.PythonExecutor.static", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.static", "kind": "function", "doc": "

\n", "signature": "(self):", "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": "

\n", "signature": "(self, step):", "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": "

\n", "signature": "(self, step):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.join": {"fullname": "sqlglot.executor.python.PythonExecutor.join", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.join", "kind": "function", "doc": "

\n", "signature": "(self, step, context):", "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": "

\n", "signature": "(self, _join, source_context, join_context):", "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": "

\n", "signature": "(self, join, source_context, join_context):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.aggregate": {"fullname": "sqlglot.executor.python.PythonExecutor.aggregate", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.aggregate", "kind": "function", "doc": "

\n", "signature": "(self, step, context):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.sort": {"fullname": "sqlglot.executor.python.PythonExecutor.sort", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.sort", "kind": "function", "doc": "

\n", "signature": "(self, step, context):", "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": "

\n", "signature": "(self, step, context):", "funcdef": "def"}, "sqlglot.executor.python.Python": {"fullname": "sqlglot.executor.python.Python", "modulename": "sqlglot.executor.python", "qualname": "Python", "kind": "class", "doc": "

\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": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.executor.table": {"fullname": "sqlglot.executor.table", "modulename": "sqlglot.executor.table", "kind": "module", "doc": "

\n"}, "sqlglot.executor.table.Table": {"fullname": "sqlglot.executor.table.Table", "modulename": "sqlglot.executor.table", "qualname": "Table", "kind": "class", "doc": "

\n"}, "sqlglot.executor.table.Table.__init__": {"fullname": "sqlglot.executor.table.Table.__init__", "modulename": "sqlglot.executor.table", "qualname": "Table.__init__", "kind": "function", "doc": "

\n", "signature": "(columns, rows=None, column_range=None)"}, "sqlglot.executor.table.Table.add_columns": {"fullname": "sqlglot.executor.table.Table.add_columns", "modulename": "sqlglot.executor.table", "qualname": "Table.add_columns", "kind": "function", "doc": "

\n", "signature": "(self, *columns: str) -> None:", "funcdef": "def"}, "sqlglot.executor.table.Table.append": {"fullname": "sqlglot.executor.table.Table.append", "modulename": "sqlglot.executor.table", "qualname": "Table.append", "kind": "function", "doc": "

\n", "signature": "(self, row):", "funcdef": "def"}, "sqlglot.executor.table.Table.pop": {"fullname": "sqlglot.executor.table.Table.pop", "modulename": "sqlglot.executor.table", "qualname": "Table.pop", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.executor.table.TableIter": {"fullname": "sqlglot.executor.table.TableIter", "modulename": "sqlglot.executor.table", "qualname": "TableIter", "kind": "class", "doc": "

\n"}, "sqlglot.executor.table.TableIter.__init__": {"fullname": "sqlglot.executor.table.TableIter.__init__", "modulename": "sqlglot.executor.table", "qualname": "TableIter.__init__", "kind": "function", "doc": "

\n", "signature": "(table)"}, "sqlglot.executor.table.RangeReader": {"fullname": "sqlglot.executor.table.RangeReader", "modulename": "sqlglot.executor.table", "qualname": "RangeReader", "kind": "class", "doc": "

\n"}, "sqlglot.executor.table.RangeReader.__init__": {"fullname": "sqlglot.executor.table.RangeReader.__init__", "modulename": "sqlglot.executor.table", "qualname": "RangeReader.__init__", "kind": "function", "doc": "

\n", "signature": "(table)"}, "sqlglot.executor.table.RowReader": {"fullname": "sqlglot.executor.table.RowReader", "modulename": "sqlglot.executor.table", "qualname": "RowReader", "kind": "class", "doc": "

\n"}, "sqlglot.executor.table.RowReader.__init__": {"fullname": "sqlglot.executor.table.RowReader.__init__", "modulename": "sqlglot.executor.table", "qualname": "RowReader.__init__", "kind": "function", "doc": "

\n", "signature": "(columns, column_range=None)"}, "sqlglot.executor.table.Tables": {"fullname": "sqlglot.executor.table.Tables", "modulename": "sqlglot.executor.table", "qualname": "Tables", "kind": "class", "doc": "

Abstract base class for generic types.

\n\n

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::

\n\n

class Mapping(Generic[KT, VT]):\n def __getitem__(self, key: KT) -> VT:\n ...\n # Etc.

\n\n

This class can then be used as follows::

\n\n

def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:\n try:\n return mapping[key]\n except KeyError:\n return default

\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": "

\n", "signature": "(d: Optional[Dict]) -> sqlglot.executor.table.Tables:", "funcdef": "def"}, "sqlglot.expressions": {"fullname": "sqlglot.expressions", "modulename": "sqlglot.expressions", "kind": "module", "doc": "

Expressions

\n\n

Every AST node in SQLGlot is represented by a subclass of Expression.

\n\n

This module contains the implementation of all supported Expression types. Additionally,\nit exposes a number of helper functions, which are mainly used to programmatically build\nSQL expressions, such as sqlglot.expressions.select.

\n\n
\n"}, "sqlglot.expressions.Expression": {"fullname": "sqlglot.expressions.Expression", "modulename": "sqlglot.expressions", "qualname": "Expression", "kind": "class", "doc": "

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.

\n\n
Attributes:
\n\n
    \n
  • key: a unique key for each class in the Expression hierarchy. This is useful for hashing\nand representing expressions as strings.
  • \n
  • arg_types: determines what arguments (child nodes) are supported by an expression. It\nmaps arg keys to booleans that indicate whether the corresponding args are optional.
  • \n
  • parent: a reference to the parent expression (or None, in case of root expressions).
  • \n
  • arg_key: the arg key an expression is associated with, i.e. the name its parent expression\nuses to refer to it.
  • \n
  • comments: a list of comments that are associated with a given expression. This is used in\norder to preserve comments when transpiling SQL code.
  • \n
  • _type: the sqlglot.expressions.DataType type of an expression. This is inferred by the\noptimizer, in order to enable some transformations that require type information.
  • \n
\n\n
Example:
\n\n
\n
\n
>>> class Foo(Expression):\n...     arg_types = {"this": True, "expression": False}\n
\n
\n \n

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\".

\n
\n\n
Arguments:
\n\n
    \n
  • args: a mapping used for retrieving the arguments of an expression, given their arg keys.
  • \n
\n"}, "sqlglot.expressions.Expression.__init__": {"fullname": "sqlglot.expressions.Expression.__init__", "modulename": "sqlglot.expressions", "qualname": "Expression.__init__", "kind": "function", "doc": "

\n", "signature": "(**args: Any)"}, "sqlglot.expressions.Expression.this": {"fullname": "sqlglot.expressions.Expression.this", "modulename": "sqlglot.expressions", "qualname": "Expression.this", "kind": "variable", "doc": "

Retrieves the argument with key \"this\".

\n"}, "sqlglot.expressions.Expression.expression": {"fullname": "sqlglot.expressions.Expression.expression", "modulename": "sqlglot.expressions", "qualname": "Expression.expression", "kind": "variable", "doc": "

Retrieves the argument with key \"expression\".

\n"}, "sqlglot.expressions.Expression.expressions": {"fullname": "sqlglot.expressions.Expression.expressions", "modulename": "sqlglot.expressions", "qualname": "Expression.expressions", "kind": "variable", "doc": "

Retrieves the argument with key \"expressions\".

\n"}, "sqlglot.expressions.Expression.text": {"fullname": "sqlglot.expressions.Expression.text", "modulename": "sqlglot.expressions", "qualname": "Expression.text", "kind": "function", "doc": "

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.

\n", "signature": "(self, key) -> str:", "funcdef": "def"}, "sqlglot.expressions.Expression.is_string": {"fullname": "sqlglot.expressions.Expression.is_string", "modulename": "sqlglot.expressions", "qualname": "Expression.is_string", "kind": "variable", "doc": "

Checks whether a Literal expression is a string.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_number": {"fullname": "sqlglot.expressions.Expression.is_number", "modulename": "sqlglot.expressions", "qualname": "Expression.is_number", "kind": "variable", "doc": "

Checks whether a Literal expression is a number.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_int": {"fullname": "sqlglot.expressions.Expression.is_int", "modulename": "sqlglot.expressions", "qualname": "Expression.is_int", "kind": "variable", "doc": "

Checks whether a Literal expression is an integer.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_star": {"fullname": "sqlglot.expressions.Expression.is_star", "modulename": "sqlglot.expressions", "qualname": "Expression.is_star", "kind": "variable", "doc": "

Checks whether an expression is a star.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.alias": {"fullname": "sqlglot.expressions.Expression.alias", "modulename": "sqlglot.expressions", "qualname": "Expression.alias", "kind": "variable", "doc": "

Returns the alias of the expression, or an empty string if it's not aliased.

\n", "annotation": ": str"}, "sqlglot.expressions.Expression.output_name": {"fullname": "sqlglot.expressions.Expression.output_name", "modulename": "sqlglot.expressions", "qualname": "Expression.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Expression.copy": {"fullname": "sqlglot.expressions.Expression.copy", "modulename": "sqlglot.expressions", "qualname": "Expression.copy", "kind": "function", "doc": "

Returns a deep copy of the expression.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.add_comments": {"fullname": "sqlglot.expressions.Expression.add_comments", "modulename": "sqlglot.expressions", "qualname": "Expression.add_comments", "kind": "function", "doc": "

\n", "signature": "(self, comments: Optional[List[str]]) -> None:", "funcdef": "def"}, "sqlglot.expressions.Expression.append": {"fullname": "sqlglot.expressions.Expression.append", "modulename": "sqlglot.expressions", "qualname": "Expression.append", "kind": "function", "doc": "

Appends value to arg_key if it's a list or sets it as a new list.

\n\n
Arguments:
\n\n
    \n
  • arg_key (str): name of the list expression arg
  • \n
  • value (Any): value to append to the list
  • \n
\n", "signature": "(self, arg_key: str, value: Any) -> None:", "funcdef": "def"}, "sqlglot.expressions.Expression.set": {"fullname": "sqlglot.expressions.Expression.set", "modulename": "sqlglot.expressions", "qualname": "Expression.set", "kind": "function", "doc": "

Sets arg_key to value.

\n\n
Arguments:
\n\n
    \n
  • arg_key (str): name of the expression arg.
  • \n
  • value: value to set the arg to.
  • \n
\n", "signature": "(self, arg_key: str, value: Any) -> None:", "funcdef": "def"}, "sqlglot.expressions.Expression.depth": {"fullname": "sqlglot.expressions.Expression.depth", "modulename": "sqlglot.expressions", "qualname": "Expression.depth", "kind": "variable", "doc": "

Returns the depth of this tree.

\n", "annotation": ": int"}, "sqlglot.expressions.Expression.iter_expressions": {"fullname": "sqlglot.expressions.Expression.iter_expressions", "modulename": "sqlglot.expressions", "qualname": "Expression.iter_expressions", "kind": "function", "doc": "

Yields the key and expression for all arguments, exploding list args.

\n", "signature": "(self) -> Iterator[Tuple[str, sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.expressions.Expression.find": {"fullname": "sqlglot.expressions.Expression.find", "modulename": "sqlglot.expressions", "qualname": "Expression.find", "kind": "function", "doc": "

Returns the first node in this tree which matches at least one of\nthe specified types.

\n\n
Arguments:
\n\n
    \n
  • expression_types: the expression type(s) to match.
  • \n
  • bfs: whether to search the AST using the BFS algorithm (DFS is used if false).
  • \n
\n\n
Returns:
\n\n
\n

The node which matches the criteria or None if no such node was found.

\n
\n", "signature": "(self, *expression_types: Type[~E], bfs: bool = True) -> Optional[~E]:", "funcdef": "def"}, "sqlglot.expressions.Expression.find_all": {"fullname": "sqlglot.expressions.Expression.find_all", "modulename": "sqlglot.expressions", "qualname": "Expression.find_all", "kind": "function", "doc": "

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.

\n\n
Arguments:
\n\n
    \n
  • expression_types: the expression type(s) to match.
  • \n
  • bfs: whether to search the AST using the BFS algorithm (DFS is used if false).
  • \n
\n\n
Returns:
\n\n
\n

The generator object.

\n
\n", "signature": "(self, *expression_types: Type[~E], bfs: bool = True) -> Iterator[~E]:", "funcdef": "def"}, "sqlglot.expressions.Expression.find_ancestor": {"fullname": "sqlglot.expressions.Expression.find_ancestor", "modulename": "sqlglot.expressions", "qualname": "Expression.find_ancestor", "kind": "function", "doc": "

Returns a nearest parent matching expression_types.

\n\n
Arguments:
\n\n
    \n
  • expression_types: the expression type(s) to match.
  • \n
\n\n
Returns:
\n\n
\n

The parent node.

\n
\n", "signature": "(self, *expression_types: Type[~E]) -> Optional[~E]:", "funcdef": "def"}, "sqlglot.expressions.Expression.parent_select": {"fullname": "sqlglot.expressions.Expression.parent_select", "modulename": "sqlglot.expressions", "qualname": "Expression.parent_select", "kind": "variable", "doc": "

Returns the parent select statement.

\n", "annotation": ": Optional[sqlglot.expressions.Select]"}, "sqlglot.expressions.Expression.same_parent": {"fullname": "sqlglot.expressions.Expression.same_parent", "modulename": "sqlglot.expressions", "qualname": "Expression.same_parent", "kind": "variable", "doc": "

Returns if the parent is the same class as itself.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.root": {"fullname": "sqlglot.expressions.Expression.root", "modulename": "sqlglot.expressions", "qualname": "Expression.root", "kind": "function", "doc": "

Returns the root expression of this tree.

\n", "signature": "(self) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.Expression.walk": {"fullname": "sqlglot.expressions.Expression.walk", "modulename": "sqlglot.expressions", "qualname": "Expression.walk", "kind": "function", "doc": "

Returns a generator object which visits all nodes in this tree.

\n\n
Arguments:
\n\n
    \n
  • bfs (bool): if set to True the BFS traversal order will be applied,\notherwise the DFS traversal will be used instead.
  • \n
  • prune ((node, parent, arg_key) -> bool): callable that returns True if\nthe generator should stop traversing this branch of the tree.
  • \n
\n\n
Returns:
\n\n
\n

the generator object.

\n
\n", "signature": "(self, bfs=True, prune=None):", "funcdef": "def"}, "sqlglot.expressions.Expression.dfs": {"fullname": "sqlglot.expressions.Expression.dfs", "modulename": "sqlglot.expressions", "qualname": "Expression.dfs", "kind": "function", "doc": "

Returns a generator object which visits all nodes in this tree in\nthe DFS (Depth-first) order.

\n\n
Returns:
\n\n
\n

The generator object.

\n
\n", "signature": "(self, parent=None, key=None, prune=None):", "funcdef": "def"}, "sqlglot.expressions.Expression.bfs": {"fullname": "sqlglot.expressions.Expression.bfs", "modulename": "sqlglot.expressions", "qualname": "Expression.bfs", "kind": "function", "doc": "

Returns a generator object which visits all nodes in this tree in\nthe BFS (Breadth-first) order.

\n\n
Returns:
\n\n
\n

The generator object.

\n
\n", "signature": "(self, prune=None):", "funcdef": "def"}, "sqlglot.expressions.Expression.unnest": {"fullname": "sqlglot.expressions.Expression.unnest", "modulename": "sqlglot.expressions", "qualname": "Expression.unnest", "kind": "function", "doc": "

Returns the first non parenthesis child or self.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.unalias": {"fullname": "sqlglot.expressions.Expression.unalias", "modulename": "sqlglot.expressions", "qualname": "Expression.unalias", "kind": "function", "doc": "

Returns the inner expression if this is an Alias.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.unnest_operands": {"fullname": "sqlglot.expressions.Expression.unnest_operands", "modulename": "sqlglot.expressions", "qualname": "Expression.unnest_operands", "kind": "function", "doc": "

Returns unnested operands as a tuple.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.flatten": {"fullname": "sqlglot.expressions.Expression.flatten", "modulename": "sqlglot.expressions", "qualname": "Expression.flatten", "kind": "function", "doc": "

Returns a generator which yields child nodes who's parents are the same class.

\n\n

A AND B AND C -> [A, B, C]

\n", "signature": "(self, unnest=True):", "funcdef": "def"}, "sqlglot.expressions.Expression.sql": {"fullname": "sqlglot.expressions.Expression.sql", "modulename": "sqlglot.expressions", "qualname": "Expression.sql", "kind": "function", "doc": "

Returns SQL string representation of this tree.

\n\n
Arguments:
\n\n
    \n
  • dialect: the dialect of the output SQL string (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • opts: other sqlglot.generator.Generator options.
  • \n
\n\n
Returns:
\n\n
\n

The SQL string.

\n
\n", "signature": "(\tself,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> str:", "funcdef": "def"}, "sqlglot.expressions.Expression.transform": {"fullname": "sqlglot.expressions.Expression.transform", "modulename": "sqlglot.expressions", "qualname": "Expression.transform", "kind": "function", "doc": "

Recursively visits all tree nodes (excluding already transformed ones)\nand applies the given transformation function to each node.

\n\n
Arguments:
\n\n
    \n
  • fun (function): 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.
  • \n
  • copy (bool): if set to True a new tree instance is constructed, otherwise the tree is\nmodified in place.
  • \n
\n\n
Returns:
\n\n
\n

The transformed tree.

\n
\n", "signature": "(self, fun, *args, copy=True, **kwargs):", "funcdef": "def"}, "sqlglot.expressions.Expression.replace": {"fullname": "sqlglot.expressions.Expression.replace", "modulename": "sqlglot.expressions", "qualname": "Expression.replace", "kind": "function", "doc": "

Swap out this expression with a new expression.

\n\n

For example::

\n\n
>>> 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
\n\n
Arguments:
\n\n
    \n
  • expression: new node
  • \n
\n\n
Returns:
\n\n
\n

The new expression or expressions.

\n
\n", "signature": "(self, expression):", "funcdef": "def"}, "sqlglot.expressions.Expression.pop": {"fullname": "sqlglot.expressions.Expression.pop", "modulename": "sqlglot.expressions", "qualname": "Expression.pop", "kind": "function", "doc": "

Remove this expression from its AST.

\n\n
Returns:
\n\n
\n

The popped expression.

\n
\n", "signature": "(self: ~E) -> ~E:", "funcdef": "def"}, "sqlglot.expressions.Expression.assert_is": {"fullname": "sqlglot.expressions.Expression.assert_is", "modulename": "sqlglot.expressions", "qualname": "Expression.assert_is", "kind": "function", "doc": "

Assert that this Expression is an instance of type_.

\n\n

If it is NOT an instance of type_, this raises an assertion error.\nOtherwise, this returns this expression.

\n\n
Examples:
\n\n
\n

This is useful for type security in chained expressions:

\n \n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT x from y").assert_is(Select).select("z").sql()\n'SELECT x, z FROM y'\n
\n
\n
\n", "signature": "(self, type_: Type[~E]) -> ~E:", "funcdef": "def"}, "sqlglot.expressions.Expression.error_messages": {"fullname": "sqlglot.expressions.Expression.error_messages", "modulename": "sqlglot.expressions", "qualname": "Expression.error_messages", "kind": "function", "doc": "

Checks if this expression is valid (e.g. all mandatory args are set).

\n\n
Arguments:
\n\n
    \n
  • args: 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.
  • \n
\n\n
Returns:
\n\n
\n

A list of error messages for all possible errors that were found.

\n
\n", "signature": "(self, args: Optional[Sequence] = None) -> List[str]:", "funcdef": "def"}, "sqlglot.expressions.Expression.dump": {"fullname": "sqlglot.expressions.Expression.dump", "modulename": "sqlglot.expressions", "qualname": "Expression.dump", "kind": "function", "doc": "

Dump this Expression to a JSON-serializable dict.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.load": {"fullname": "sqlglot.expressions.Expression.load", "modulename": "sqlglot.expressions", "qualname": "Expression.load", "kind": "function", "doc": "

Load a dict (as returned by Expression.dump) into an Expression instance.

\n", "signature": "(cls, obj):", "funcdef": "def"}, "sqlglot.expressions.Condition": {"fullname": "sqlglot.expressions.Condition", "modulename": "sqlglot.expressions", "qualname": "Condition", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Condition.and_": {"fullname": "sqlglot.expressions.Condition.and_", "modulename": "sqlglot.expressions", "qualname": "Condition.and_", "kind": "function", "doc": "

AND this condition with one or multiple expressions.

\n\n
Example:
\n\n
\n
\n
>>> condition("x=1").and_("y=1").sql()\n'x = 1 AND y = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether or not to copy the involved expressions (only applies to Expressions).
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new And condition.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.Condition.or_": {"fullname": "sqlglot.expressions.Condition.or_", "modulename": "sqlglot.expressions", "qualname": "Condition.or_", "kind": "function", "doc": "

OR this condition with one or multiple expressions.

\n\n
Example:
\n\n
\n
\n
>>> condition("x=1").or_("y=1").sql()\n'x = 1 OR y = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether or not to copy the involved expressions (only applies to Expressions).
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Or condition.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.Condition.not_": {"fullname": "sqlglot.expressions.Condition.not_", "modulename": "sqlglot.expressions", "qualname": "Condition.not_", "kind": "function", "doc": "

Wrap this condition with NOT.

\n\n
Example:
\n\n
\n
\n
>>> condition("x=1").not_().sql()\n'NOT x = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • copy: whether or not to copy this object.
  • \n
\n\n
Returns:
\n\n
\n

The new Not instance.

\n
\n", "signature": "(self, copy: bool = True):", "funcdef": "def"}, "sqlglot.expressions.Condition.as_": {"fullname": "sqlglot.expressions.Condition.as_", "modulename": "sqlglot.expressions", "qualname": "Condition.as_", "kind": "function", "doc": "

\n", "signature": "(\tself,\talias: str | sqlglot.expressions.Identifier,\tquoted: Optional[bool] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Alias:", "funcdef": "def"}, "sqlglot.expressions.Condition.isin": {"fullname": "sqlglot.expressions.Condition.isin", "modulename": "sqlglot.expressions", "qualname": "Condition.isin", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*expressions: Any,\tquery: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.In:", "funcdef": "def"}, "sqlglot.expressions.Condition.between": {"fullname": "sqlglot.expressions.Condition.between", "modulename": "sqlglot.expressions", "qualname": "Condition.between", "kind": "function", "doc": "

\n", "signature": "(\tself,\tlow: Any,\thigh: Any,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Between:", "funcdef": "def"}, "sqlglot.expressions.Condition.is_": {"fullname": "sqlglot.expressions.Condition.is_", "modulename": "sqlglot.expressions", "qualname": "Condition.is_", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: Union[str, sqlglot.expressions.Expression]) -> sqlglot.expressions.Is:", "funcdef": "def"}, "sqlglot.expressions.Condition.like": {"fullname": "sqlglot.expressions.Condition.like", "modulename": "sqlglot.expressions", "qualname": "Condition.like", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: Union[str, sqlglot.expressions.Expression]) -> sqlglot.expressions.Like:", "funcdef": "def"}, "sqlglot.expressions.Condition.ilike": {"fullname": "sqlglot.expressions.Condition.ilike", "modulename": "sqlglot.expressions", "qualname": "Condition.ilike", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: Union[str, sqlglot.expressions.Expression]) -> sqlglot.expressions.ILike:", "funcdef": "def"}, "sqlglot.expressions.Condition.eq": {"fullname": "sqlglot.expressions.Condition.eq", "modulename": "sqlglot.expressions", "qualname": "Condition.eq", "kind": "function", "doc": "

\n", "signature": "(self, other: Any) -> sqlglot.expressions.EQ:", "funcdef": "def"}, "sqlglot.expressions.Condition.neq": {"fullname": "sqlglot.expressions.Condition.neq", "modulename": "sqlglot.expressions", "qualname": "Condition.neq", "kind": "function", "doc": "

\n", "signature": "(self, other: Any) -> sqlglot.expressions.NEQ:", "funcdef": "def"}, "sqlglot.expressions.Condition.rlike": {"fullname": "sqlglot.expressions.Condition.rlike", "modulename": "sqlglot.expressions", "qualname": "Condition.rlike", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: Union[str, sqlglot.expressions.Expression]) -> sqlglot.expressions.RegexpLike:", "funcdef": "def"}, "sqlglot.expressions.Predicate": {"fullname": "sqlglot.expressions.Predicate", "modulename": "sqlglot.expressions", "qualname": "Predicate", "kind": "class", "doc": "

Relationships like x = y, x > 1, x >= y.

\n", "bases": "Condition"}, "sqlglot.expressions.DerivedTable": {"fullname": "sqlglot.expressions.DerivedTable", "modulename": "sqlglot.expressions", "qualname": "DerivedTable", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Unionable": {"fullname": "sqlglot.expressions.Unionable", "modulename": "sqlglot.expressions", "qualname": "Unionable", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Unionable.union": {"fullname": "sqlglot.expressions.Unionable.union", "modulename": "sqlglot.expressions", "qualname": "Unionable.union", "kind": "function", "doc": "

Builds a UNION expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()\n'SELECT * FROM foo UNION SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Union expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Unionable:", "funcdef": "def"}, "sqlglot.expressions.Unionable.intersect": {"fullname": "sqlglot.expressions.Unionable.intersect", "modulename": "sqlglot.expressions", "qualname": "Unionable.intersect", "kind": "function", "doc": "

Builds an INTERSECT expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()\n'SELECT * FROM foo INTERSECT SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Intersect expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Unionable:", "funcdef": "def"}, "sqlglot.expressions.Unionable.except_": {"fullname": "sqlglot.expressions.Unionable.except_", "modulename": "sqlglot.expressions", "qualname": "Unionable.except_", "kind": "function", "doc": "

Builds an EXCEPT expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()\n'SELECT * FROM foo EXCEPT SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Except expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Unionable:", "funcdef": "def"}, "sqlglot.expressions.UDTF": {"fullname": "sqlglot.expressions.UDTF", "modulename": "sqlglot.expressions", "qualname": "UDTF", "kind": "class", "doc": "

\n", "bases": "DerivedTable, Unionable"}, "sqlglot.expressions.Cache": {"fullname": "sqlglot.expressions.Cache", "modulename": "sqlglot.expressions", "qualname": "Cache", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Uncache": {"fullname": "sqlglot.expressions.Uncache", "modulename": "sqlglot.expressions", "qualname": "Uncache", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Create": {"fullname": "sqlglot.expressions.Create", "modulename": "sqlglot.expressions", "qualname": "Create", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Clone": {"fullname": "sqlglot.expressions.Clone", "modulename": "sqlglot.expressions", "qualname": "Clone", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Describe": {"fullname": "sqlglot.expressions.Describe", "modulename": "sqlglot.expressions", "qualname": "Describe", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Pragma": {"fullname": "sqlglot.expressions.Pragma", "modulename": "sqlglot.expressions", "qualname": "Pragma", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Set": {"fullname": "sqlglot.expressions.Set", "modulename": "sqlglot.expressions", "qualname": "Set", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.SetItem": {"fullname": "sqlglot.expressions.SetItem", "modulename": "sqlglot.expressions", "qualname": "SetItem", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Show": {"fullname": "sqlglot.expressions.Show", "modulename": "sqlglot.expressions", "qualname": "Show", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.UserDefinedFunction": {"fullname": "sqlglot.expressions.UserDefinedFunction", "modulename": "sqlglot.expressions", "qualname": "UserDefinedFunction", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.CharacterSet": {"fullname": "sqlglot.expressions.CharacterSet", "modulename": "sqlglot.expressions", "qualname": "CharacterSet", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.With": {"fullname": "sqlglot.expressions.With", "modulename": "sqlglot.expressions", "qualname": "With", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.WithinGroup": {"fullname": "sqlglot.expressions.WithinGroup", "modulename": "sqlglot.expressions", "qualname": "WithinGroup", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.CTE": {"fullname": "sqlglot.expressions.CTE", "modulename": "sqlglot.expressions", "qualname": "CTE", "kind": "class", "doc": "

\n", "bases": "DerivedTable"}, "sqlglot.expressions.TableAlias": {"fullname": "sqlglot.expressions.TableAlias", "modulename": "sqlglot.expressions", "qualname": "TableAlias", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.BitString": {"fullname": "sqlglot.expressions.BitString", "modulename": "sqlglot.expressions", "qualname": "BitString", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.HexString": {"fullname": "sqlglot.expressions.HexString", "modulename": "sqlglot.expressions", "qualname": "HexString", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.ByteString": {"fullname": "sqlglot.expressions.ByteString", "modulename": "sqlglot.expressions", "qualname": "ByteString", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.RawString": {"fullname": "sqlglot.expressions.RawString", "modulename": "sqlglot.expressions", "qualname": "RawString", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Column": {"fullname": "sqlglot.expressions.Column", "modulename": "sqlglot.expressions", "qualname": "Column", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Column.output_name": {"fullname": "sqlglot.expressions.Column.output_name", "modulename": "sqlglot.expressions", "qualname": "Column.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Column.parts": {"fullname": "sqlglot.expressions.Column.parts", "modulename": "sqlglot.expressions", "qualname": "Column.parts", "kind": "variable", "doc": "

Return the parts of a column in order catalog, db, table, name.

\n", "annotation": ": List[sqlglot.expressions.Identifier]"}, "sqlglot.expressions.Column.to_dot": {"fullname": "sqlglot.expressions.Column.to_dot", "modulename": "sqlglot.expressions", "qualname": "Column.to_dot", "kind": "function", "doc": "

Converts the column into a dot expression.

\n", "signature": "(self) -> sqlglot.expressions.Dot:", "funcdef": "def"}, "sqlglot.expressions.ColumnPosition": {"fullname": "sqlglot.expressions.ColumnPosition", "modulename": "sqlglot.expressions", "qualname": "ColumnPosition", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.ColumnDef": {"fullname": "sqlglot.expressions.ColumnDef", "modulename": "sqlglot.expressions", "qualname": "ColumnDef", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AlterColumn": {"fullname": "sqlglot.expressions.AlterColumn", "modulename": "sqlglot.expressions", "qualname": "AlterColumn", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.RenameTable": {"fullname": "sqlglot.expressions.RenameTable", "modulename": "sqlglot.expressions", "qualname": "RenameTable", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.SetTag": {"fullname": "sqlglot.expressions.SetTag", "modulename": "sqlglot.expressions", "qualname": "SetTag", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Comment": {"fullname": "sqlglot.expressions.Comment", "modulename": "sqlglot.expressions", "qualname": "Comment", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.MergeTreeTTLAction": {"fullname": "sqlglot.expressions.MergeTreeTTLAction", "modulename": "sqlglot.expressions", "qualname": "MergeTreeTTLAction", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.MergeTreeTTL": {"fullname": "sqlglot.expressions.MergeTreeTTL", "modulename": "sqlglot.expressions", "qualname": "MergeTreeTTL", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.ColumnConstraint": {"fullname": "sqlglot.expressions.ColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "ColumnConstraint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.ColumnConstraintKind": {"fullname": "sqlglot.expressions.ColumnConstraintKind", "modulename": "sqlglot.expressions", "qualname": "ColumnConstraintKind", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"fullname": "sqlglot.expressions.AutoIncrementColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "AutoIncrementColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"fullname": "sqlglot.expressions.CaseSpecificColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CaseSpecificColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CharacterSetColumnConstraint": {"fullname": "sqlglot.expressions.CharacterSetColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CharacterSetColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CheckColumnConstraint": {"fullname": "sqlglot.expressions.CheckColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CheckColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CollateColumnConstraint": {"fullname": "sqlglot.expressions.CollateColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CollateColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CommentColumnConstraint": {"fullname": "sqlglot.expressions.CommentColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CommentColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CompressColumnConstraint": {"fullname": "sqlglot.expressions.CompressColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CompressColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.DateFormatColumnConstraint": {"fullname": "sqlglot.expressions.DateFormatColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "DateFormatColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.DefaultColumnConstraint": {"fullname": "sqlglot.expressions.DefaultColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "DefaultColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.EncodeColumnConstraint": {"fullname": "sqlglot.expressions.EncodeColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "EncodeColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"fullname": "sqlglot.expressions.GeneratedAsIdentityColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "GeneratedAsIdentityColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.InlineLengthColumnConstraint": {"fullname": "sqlglot.expressions.InlineLengthColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "InlineLengthColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.NotNullColumnConstraint": {"fullname": "sqlglot.expressions.NotNullColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "NotNullColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.OnUpdateColumnConstraint": {"fullname": "sqlglot.expressions.OnUpdateColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "OnUpdateColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"fullname": "sqlglot.expressions.PrimaryKeyColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "PrimaryKeyColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.TitleColumnConstraint": {"fullname": "sqlglot.expressions.TitleColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "TitleColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.UniqueColumnConstraint": {"fullname": "sqlglot.expressions.UniqueColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "UniqueColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.UppercaseColumnConstraint": {"fullname": "sqlglot.expressions.UppercaseColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "UppercaseColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.PathColumnConstraint": {"fullname": "sqlglot.expressions.PathColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "PathColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.Constraint": {"fullname": "sqlglot.expressions.Constraint", "modulename": "sqlglot.expressions", "qualname": "Constraint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Delete": {"fullname": "sqlglot.expressions.Delete", "modulename": "sqlglot.expressions", "qualname": "Delete", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Delete.delete": {"fullname": "sqlglot.expressions.Delete.delete", "modulename": "sqlglot.expressions", "qualname": "Delete.delete", "kind": "function", "doc": "

Create a DELETE expression or replace the table on an existing DELETE expression.

\n\n
Example:
\n\n
\n
\n
>>> delete("tbl").sql()\n'DELETE FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • table: the table from which to delete.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Delete: the modified expression.

\n
\n", "signature": "(\tself,\ttable: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Delete:", "funcdef": "def"}, "sqlglot.expressions.Delete.where": {"fullname": "sqlglot.expressions.Delete.where", "modulename": "sqlglot.expressions", "qualname": "Delete.where", "kind": "function", "doc": "

Append to or set the WHERE expressions.

\n\n
Example:
\n\n
\n
\n
>>> delete("tbl").where("x = 'a' OR x < 'b'").sql()\n"DELETE FROM tbl WHERE x = 'a' OR x < 'b'"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.
  • \n
  • append: if True, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Delete: the modified expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Delete:", "funcdef": "def"}, "sqlglot.expressions.Delete.returning": {"fullname": "sqlglot.expressions.Delete.returning", "modulename": "sqlglot.expressions", "qualname": "Delete.returning", "kind": "function", "doc": "

Set the RETURNING expression. Not supported by all dialects.

\n\n
Example:
\n\n
\n
\n
>>> delete("tbl").returning("*", dialect="postgres").sql()\n'DELETE FROM tbl RETURNING *'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Delete: the modified expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Delete:", "funcdef": "def"}, "sqlglot.expressions.Drop": {"fullname": "sqlglot.expressions.Drop", "modulename": "sqlglot.expressions", "qualname": "Drop", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Filter": {"fullname": "sqlglot.expressions.Filter", "modulename": "sqlglot.expressions", "qualname": "Filter", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Check": {"fullname": "sqlglot.expressions.Check", "modulename": "sqlglot.expressions", "qualname": "Check", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Directory": {"fullname": "sqlglot.expressions.Directory", "modulename": "sqlglot.expressions", "qualname": "Directory", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.ForeignKey": {"fullname": "sqlglot.expressions.ForeignKey", "modulename": "sqlglot.expressions", "qualname": "ForeignKey", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.PrimaryKey": {"fullname": "sqlglot.expressions.PrimaryKey", "modulename": "sqlglot.expressions", "qualname": "PrimaryKey", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Unique": {"fullname": "sqlglot.expressions.Unique", "modulename": "sqlglot.expressions", "qualname": "Unique", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Into": {"fullname": "sqlglot.expressions.Into", "modulename": "sqlglot.expressions", "qualname": "Into", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.From": {"fullname": "sqlglot.expressions.From", "modulename": "sqlglot.expressions", "qualname": "From", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Having": {"fullname": "sqlglot.expressions.Having", "modulename": "sqlglot.expressions", "qualname": "Having", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Hint": {"fullname": "sqlglot.expressions.Hint", "modulename": "sqlglot.expressions", "qualname": "Hint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.JoinHint": {"fullname": "sqlglot.expressions.JoinHint", "modulename": "sqlglot.expressions", "qualname": "JoinHint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Identifier": {"fullname": "sqlglot.expressions.Identifier", "modulename": "sqlglot.expressions", "qualname": "Identifier", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Identifier.output_name": {"fullname": "sqlglot.expressions.Identifier.output_name", "modulename": "sqlglot.expressions", "qualname": "Identifier.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Index": {"fullname": "sqlglot.expressions.Index", "modulename": "sqlglot.expressions", "qualname": "Index", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Insert": {"fullname": "sqlglot.expressions.Insert", "modulename": "sqlglot.expressions", "qualname": "Insert", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Insert.with_": {"fullname": "sqlglot.expressions.Insert.with_", "modulename": "sqlglot.expressions", "qualname": "Insert.with_", "kind": "function", "doc": "

Append to or set the common table expressions.

\n\n
Example:
\n\n
\n
\n
>>> insert("SELECT x FROM cte", "t").with_("cte", as_="SELECT * FROM tbl").sql()\n'WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • alias: the SQL code string to parse as the table name.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • as_: the SQL code string to parse as the table expression.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • recursive: set the RECURSIVE part of the expression. Defaults to False.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified expression.

\n
\n", "signature": "(\tself,\talias: Union[str, sqlglot.expressions.Expression],\tas_: Union[str, sqlglot.expressions.Expression],\trecursive: Optional[bool] = None,\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Insert:", "funcdef": "def"}, "sqlglot.expressions.OnConflict": {"fullname": "sqlglot.expressions.OnConflict", "modulename": "sqlglot.expressions", "qualname": "OnConflict", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Returning": {"fullname": "sqlglot.expressions.Returning", "modulename": "sqlglot.expressions", "qualname": "Returning", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Introducer": {"fullname": "sqlglot.expressions.Introducer", "modulename": "sqlglot.expressions", "qualname": "Introducer", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.National": {"fullname": "sqlglot.expressions.National", "modulename": "sqlglot.expressions", "qualname": "National", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.LoadData": {"fullname": "sqlglot.expressions.LoadData", "modulename": "sqlglot.expressions", "qualname": "LoadData", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Partition": {"fullname": "sqlglot.expressions.Partition", "modulename": "sqlglot.expressions", "qualname": "Partition", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Fetch": {"fullname": "sqlglot.expressions.Fetch", "modulename": "sqlglot.expressions", "qualname": "Fetch", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Group": {"fullname": "sqlglot.expressions.Group", "modulename": "sqlglot.expressions", "qualname": "Group", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Lambda": {"fullname": "sqlglot.expressions.Lambda", "modulename": "sqlglot.expressions", "qualname": "Lambda", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Limit": {"fullname": "sqlglot.expressions.Limit", "modulename": "sqlglot.expressions", "qualname": "Limit", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Literal": {"fullname": "sqlglot.expressions.Literal", "modulename": "sqlglot.expressions", "qualname": "Literal", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Literal.number": {"fullname": "sqlglot.expressions.Literal.number", "modulename": "sqlglot.expressions", "qualname": "Literal.number", "kind": "function", "doc": "

\n", "signature": "(cls, number) -> sqlglot.expressions.Literal:", "funcdef": "def"}, "sqlglot.expressions.Literal.string": {"fullname": "sqlglot.expressions.Literal.string", "modulename": "sqlglot.expressions", "qualname": "Literal.string", "kind": "function", "doc": "

\n", "signature": "(cls, string) -> sqlglot.expressions.Literal:", "funcdef": "def"}, "sqlglot.expressions.Literal.output_name": {"fullname": "sqlglot.expressions.Literal.output_name", "modulename": "sqlglot.expressions", "qualname": "Literal.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Join": {"fullname": "sqlglot.expressions.Join", "modulename": "sqlglot.expressions", "qualname": "Join", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Join.on": {"fullname": "sqlglot.expressions.Join.on", "modulename": "sqlglot.expressions", "qualname": "Join.on", "kind": "function", "doc": "

Append to or set the ON expressions.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("JOIN x", into=Join).on("y = 1").sql()\n'JOIN x ON y = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.
  • \n
  • append: if True, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Join expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Join:", "funcdef": "def"}, "sqlglot.expressions.Join.using": {"fullname": "sqlglot.expressions.Join.using", "modulename": "sqlglot.expressions", "qualname": "Join.using", "kind": "function", "doc": "

Append to or set the USING expressions.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("JOIN x", into=Join).using("foo", "bla").sql()\n'JOIN x USING (foo, bla)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, concatenate the new expressions to the existing \"using\" list.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Join expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Join:", "funcdef": "def"}, "sqlglot.expressions.Lateral": {"fullname": "sqlglot.expressions.Lateral", "modulename": "sqlglot.expressions", "qualname": "Lateral", "kind": "class", "doc": "

\n", "bases": "UDTF"}, "sqlglot.expressions.MatchRecognize": {"fullname": "sqlglot.expressions.MatchRecognize", "modulename": "sqlglot.expressions", "qualname": "MatchRecognize", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Final": {"fullname": "sqlglot.expressions.Final", "modulename": "sqlglot.expressions", "qualname": "Final", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Offset": {"fullname": "sqlglot.expressions.Offset", "modulename": "sqlglot.expressions", "qualname": "Offset", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Order": {"fullname": "sqlglot.expressions.Order", "modulename": "sqlglot.expressions", "qualname": "Order", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Cluster": {"fullname": "sqlglot.expressions.Cluster", "modulename": "sqlglot.expressions", "qualname": "Cluster", "kind": "class", "doc": "

\n", "bases": "Order"}, "sqlglot.expressions.Distribute": {"fullname": "sqlglot.expressions.Distribute", "modulename": "sqlglot.expressions", "qualname": "Distribute", "kind": "class", "doc": "

\n", "bases": "Order"}, "sqlglot.expressions.Sort": {"fullname": "sqlglot.expressions.Sort", "modulename": "sqlglot.expressions", "qualname": "Sort", "kind": "class", "doc": "

\n", "bases": "Order"}, "sqlglot.expressions.Ordered": {"fullname": "sqlglot.expressions.Ordered", "modulename": "sqlglot.expressions", "qualname": "Ordered", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Property": {"fullname": "sqlglot.expressions.Property", "modulename": "sqlglot.expressions", "qualname": "Property", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AlgorithmProperty": {"fullname": "sqlglot.expressions.AlgorithmProperty", "modulename": "sqlglot.expressions", "qualname": "AlgorithmProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.AutoIncrementProperty": {"fullname": "sqlglot.expressions.AutoIncrementProperty", "modulename": "sqlglot.expressions", "qualname": "AutoIncrementProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.BlockCompressionProperty": {"fullname": "sqlglot.expressions.BlockCompressionProperty", "modulename": "sqlglot.expressions", "qualname": "BlockCompressionProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.CharacterSetProperty": {"fullname": "sqlglot.expressions.CharacterSetProperty", "modulename": "sqlglot.expressions", "qualname": "CharacterSetProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.ChecksumProperty": {"fullname": "sqlglot.expressions.ChecksumProperty", "modulename": "sqlglot.expressions", "qualname": "ChecksumProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.CollateProperty": {"fullname": "sqlglot.expressions.CollateProperty", "modulename": "sqlglot.expressions", "qualname": "CollateProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DataBlocksizeProperty": {"fullname": "sqlglot.expressions.DataBlocksizeProperty", "modulename": "sqlglot.expressions", "qualname": "DataBlocksizeProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DefinerProperty": {"fullname": "sqlglot.expressions.DefinerProperty", "modulename": "sqlglot.expressions", "qualname": "DefinerProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DistKeyProperty": {"fullname": "sqlglot.expressions.DistKeyProperty", "modulename": "sqlglot.expressions", "qualname": "DistKeyProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DistStyleProperty": {"fullname": "sqlglot.expressions.DistStyleProperty", "modulename": "sqlglot.expressions", "qualname": "DistStyleProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.EngineProperty": {"fullname": "sqlglot.expressions.EngineProperty", "modulename": "sqlglot.expressions", "qualname": "EngineProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.ExecuteAsProperty": {"fullname": "sqlglot.expressions.ExecuteAsProperty", "modulename": "sqlglot.expressions", "qualname": "ExecuteAsProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.ExternalProperty": {"fullname": "sqlglot.expressions.ExternalProperty", "modulename": "sqlglot.expressions", "qualname": "ExternalProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.FallbackProperty": {"fullname": "sqlglot.expressions.FallbackProperty", "modulename": "sqlglot.expressions", "qualname": "FallbackProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.FileFormatProperty": {"fullname": "sqlglot.expressions.FileFormatProperty", "modulename": "sqlglot.expressions", "qualname": "FileFormatProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.FreespaceProperty": {"fullname": "sqlglot.expressions.FreespaceProperty", "modulename": "sqlglot.expressions", "qualname": "FreespaceProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.InputOutputFormat": {"fullname": "sqlglot.expressions.InputOutputFormat", "modulename": "sqlglot.expressions", "qualname": "InputOutputFormat", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.IsolatedLoadingProperty": {"fullname": "sqlglot.expressions.IsolatedLoadingProperty", "modulename": "sqlglot.expressions", "qualname": "IsolatedLoadingProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.JournalProperty": {"fullname": "sqlglot.expressions.JournalProperty", "modulename": "sqlglot.expressions", "qualname": "JournalProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LanguageProperty": {"fullname": "sqlglot.expressions.LanguageProperty", "modulename": "sqlglot.expressions", "qualname": "LanguageProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LikeProperty": {"fullname": "sqlglot.expressions.LikeProperty", "modulename": "sqlglot.expressions", "qualname": "LikeProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LocationProperty": {"fullname": "sqlglot.expressions.LocationProperty", "modulename": "sqlglot.expressions", "qualname": "LocationProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LockingProperty": {"fullname": "sqlglot.expressions.LockingProperty", "modulename": "sqlglot.expressions", "qualname": "LockingProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LogProperty": {"fullname": "sqlglot.expressions.LogProperty", "modulename": "sqlglot.expressions", "qualname": "LogProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.MaterializedProperty": {"fullname": "sqlglot.expressions.MaterializedProperty", "modulename": "sqlglot.expressions", "qualname": "MaterializedProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.MergeBlockRatioProperty": {"fullname": "sqlglot.expressions.MergeBlockRatioProperty", "modulename": "sqlglot.expressions", "qualname": "MergeBlockRatioProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.NoPrimaryIndexProperty": {"fullname": "sqlglot.expressions.NoPrimaryIndexProperty", "modulename": "sqlglot.expressions", "qualname": "NoPrimaryIndexProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.OnCommitProperty": {"fullname": "sqlglot.expressions.OnCommitProperty", "modulename": "sqlglot.expressions", "qualname": "OnCommitProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.PartitionedByProperty": {"fullname": "sqlglot.expressions.PartitionedByProperty", "modulename": "sqlglot.expressions", "qualname": "PartitionedByProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.ReturnsProperty": {"fullname": "sqlglot.expressions.ReturnsProperty", "modulename": "sqlglot.expressions", "qualname": "ReturnsProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.RowFormatProperty": {"fullname": "sqlglot.expressions.RowFormatProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.RowFormatDelimitedProperty": {"fullname": "sqlglot.expressions.RowFormatDelimitedProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatDelimitedProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.RowFormatSerdeProperty": {"fullname": "sqlglot.expressions.RowFormatSerdeProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatSerdeProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SchemaCommentProperty": {"fullname": "sqlglot.expressions.SchemaCommentProperty", "modulename": "sqlglot.expressions", "qualname": "SchemaCommentProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SerdeProperties": {"fullname": "sqlglot.expressions.SerdeProperties", "modulename": "sqlglot.expressions", "qualname": "SerdeProperties", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SetProperty": {"fullname": "sqlglot.expressions.SetProperty", "modulename": "sqlglot.expressions", "qualname": "SetProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SettingsProperty": {"fullname": "sqlglot.expressions.SettingsProperty", "modulename": "sqlglot.expressions", "qualname": "SettingsProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SortKeyProperty": {"fullname": "sqlglot.expressions.SortKeyProperty", "modulename": "sqlglot.expressions", "qualname": "SortKeyProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SqlSecurityProperty": {"fullname": "sqlglot.expressions.SqlSecurityProperty", "modulename": "sqlglot.expressions", "qualname": "SqlSecurityProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.StabilityProperty": {"fullname": "sqlglot.expressions.StabilityProperty", "modulename": "sqlglot.expressions", "qualname": "StabilityProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.TemporaryProperty": {"fullname": "sqlglot.expressions.TemporaryProperty", "modulename": "sqlglot.expressions", "qualname": "TemporaryProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.TransientProperty": {"fullname": "sqlglot.expressions.TransientProperty", "modulename": "sqlglot.expressions", "qualname": "TransientProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.VolatileProperty": {"fullname": "sqlglot.expressions.VolatileProperty", "modulename": "sqlglot.expressions", "qualname": "VolatileProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.WithDataProperty": {"fullname": "sqlglot.expressions.WithDataProperty", "modulename": "sqlglot.expressions", "qualname": "WithDataProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.WithJournalTableProperty": {"fullname": "sqlglot.expressions.WithJournalTableProperty", "modulename": "sqlglot.expressions", "qualname": "WithJournalTableProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.Properties": {"fullname": "sqlglot.expressions.Properties", "modulename": "sqlglot.expressions", "qualname": "Properties", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Properties.Location": {"fullname": "sqlglot.expressions.Properties.Location", "modulename": "sqlglot.expressions", "qualname": "Properties.Location", "kind": "class", "doc": "

An enumeration.

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "signature": "(cls, properties_dict: Dict) -> sqlglot.expressions.Properties:", "funcdef": "def"}, "sqlglot.expressions.Qualify": {"fullname": "sqlglot.expressions.Qualify", "modulename": "sqlglot.expressions", "qualname": "Qualify", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Return": {"fullname": "sqlglot.expressions.Return", "modulename": "sqlglot.expressions", "qualname": "Return", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Reference": {"fullname": "sqlglot.expressions.Reference", "modulename": "sqlglot.expressions", "qualname": "Reference", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Tuple": {"fullname": "sqlglot.expressions.Tuple", "modulename": "sqlglot.expressions", "qualname": "Tuple", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Tuple.isin": {"fullname": "sqlglot.expressions.Tuple.isin", "modulename": "sqlglot.expressions", "qualname": "Tuple.isin", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*expressions: Any,\tquery: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.In:", "funcdef": "def"}, "sqlglot.expressions.Subqueryable": {"fullname": "sqlglot.expressions.Subqueryable", "modulename": "sqlglot.expressions", "qualname": "Subqueryable", "kind": "class", "doc": "

\n", "bases": "Unionable"}, "sqlglot.expressions.Subqueryable.subquery": {"fullname": "sqlglot.expressions.Subqueryable.subquery", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.subquery", "kind": "function", "doc": "

Convert this expression to an aliased expression that can be used as a Subquery.

\n\n
Example:
\n\n
\n
\n
>>> subquery = Select().select("x").from_("tbl").subquery()\n>>> Select().select("x").from_(subquery).sql()\n'SELECT x FROM (SELECT x FROM tbl)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • alias (str | Identifier): an optional alias for the subquery
  • \n
  • copy (bool): if False, modify this expression instance in-place.
  • \n
\n\n
Returns:
\n\n
\n

Alias: the subquery

\n
\n", "signature": "(\tself,\talias: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tcopy: bool = True) -> sqlglot.expressions.Subquery:", "funcdef": "def"}, "sqlglot.expressions.Subqueryable.limit": {"fullname": "sqlglot.expressions.Subqueryable.limit", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.limit", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, int],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Subqueryable.with_": {"fullname": "sqlglot.expressions.Subqueryable.with_", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.with_", "kind": "function", "doc": "

Append to or set the common table expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()\n'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • alias: the SQL code string to parse as the table name.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • as_: the SQL code string to parse as the table expression.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • recursive: set the RECURSIVE part of the expression. Defaults to False.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified expression.

\n
\n", "signature": "(\tself,\talias: Union[str, sqlglot.expressions.Expression],\tas_: Union[str, sqlglot.expressions.Expression],\trecursive: Optional[bool] = None,\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Subqueryable:", "funcdef": "def"}, "sqlglot.expressions.Table": {"fullname": "sqlglot.expressions.Table", "modulename": "sqlglot.expressions", "qualname": "Table", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Table.parts": {"fullname": "sqlglot.expressions.Table.parts", "modulename": "sqlglot.expressions", "qualname": "Table.parts", "kind": "variable", "doc": "

Return the parts of a table in order catalog, db, table.

\n", "annotation": ": List[sqlglot.expressions.Identifier]"}, "sqlglot.expressions.SystemTime": {"fullname": "sqlglot.expressions.SystemTime", "modulename": "sqlglot.expressions", "qualname": "SystemTime", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Union": {"fullname": "sqlglot.expressions.Union", "modulename": "sqlglot.expressions", "qualname": "Union", "kind": "class", "doc": "

\n", "bases": "Subqueryable"}, "sqlglot.expressions.Union.limit": {"fullname": "sqlglot.expressions.Union.limit", "modulename": "sqlglot.expressions", "qualname": "Union.limit", "kind": "function", "doc": "

Set the LIMIT expression.

\n\n
Example:
\n\n
\n
\n
>>> select("1").union(select("1")).limit(1).sql()\n'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nThis can also be an integer.\nIf a Limit instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Limit.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The limited subqueryable.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, int],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Union.select": {"fullname": "sqlglot.expressions.Union.select", "modulename": "sqlglot.expressions", "qualname": "Union.select", "kind": "function", "doc": "

Append to or set the SELECT of the union recursively.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("select a from x union select a from y union select a from z").select("b").sql()\n'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Union: the modified expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Union:", "funcdef": "def"}, "sqlglot.expressions.Union.is_star": {"fullname": "sqlglot.expressions.Union.is_star", "modulename": "sqlglot.expressions", "qualname": "Union.is_star", "kind": "variable", "doc": "

Checks whether an expression is a star.

\n", "annotation": ": bool"}, "sqlglot.expressions.Except": {"fullname": "sqlglot.expressions.Except", "modulename": "sqlglot.expressions", "qualname": "Except", "kind": "class", "doc": "

\n", "bases": "Union"}, "sqlglot.expressions.Intersect": {"fullname": "sqlglot.expressions.Intersect", "modulename": "sqlglot.expressions", "qualname": "Intersect", "kind": "class", "doc": "

\n", "bases": "Union"}, "sqlglot.expressions.Unnest": {"fullname": "sqlglot.expressions.Unnest", "modulename": "sqlglot.expressions", "qualname": "Unnest", "kind": "class", "doc": "

\n", "bases": "UDTF"}, "sqlglot.expressions.Update": {"fullname": "sqlglot.expressions.Update", "modulename": "sqlglot.expressions", "qualname": "Update", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Values": {"fullname": "sqlglot.expressions.Values", "modulename": "sqlglot.expressions", "qualname": "Values", "kind": "class", "doc": "

\n", "bases": "UDTF"}, "sqlglot.expressions.Var": {"fullname": "sqlglot.expressions.Var", "modulename": "sqlglot.expressions", "qualname": "Var", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Schema": {"fullname": "sqlglot.expressions.Schema", "modulename": "sqlglot.expressions", "qualname": "Schema", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Lock": {"fullname": "sqlglot.expressions.Lock", "modulename": "sqlglot.expressions", "qualname": "Lock", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Select": {"fullname": "sqlglot.expressions.Select", "modulename": "sqlglot.expressions", "qualname": "Select", "kind": "class", "doc": "

\n", "bases": "Subqueryable"}, "sqlglot.expressions.Select.from_": {"fullname": "sqlglot.expressions.Select.from_", "modulename": "sqlglot.expressions", "qualname": "Select.from_", "kind": "function", "doc": "

Set the FROM expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").sql()\n'SELECT x FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression : the SQL code strings to parse.\nIf a From instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a From.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.group_by": {"fullname": "sqlglot.expressions.Select.group_by", "modulename": "sqlglot.expressions", "qualname": "Select.group_by", "kind": "function", "doc": "

Set the GROUP BY expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()\n'SELECT x, COUNT(1) FROM tbl GROUP BY x'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf a Group instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Group.\nIf nothing is passed in then a group by is not applied to the expression
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this flattens all the Group expression into a single expression.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.order_by": {"fullname": "sqlglot.expressions.Select.order_by", "modulename": "sqlglot.expressions", "qualname": "Select.order_by", "kind": "function", "doc": "

Set the ORDER BY expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").order_by("x DESC").sql()\n'SELECT x FROM tbl ORDER BY x DESC'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf a Group instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Order.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this flattens all the Order expression into a single expression.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.sort_by": {"fullname": "sqlglot.expressions.Select.sort_by", "modulename": "sqlglot.expressions", "qualname": "Select.sort_by", "kind": "function", "doc": "

Set the SORT BY expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").sort_by("x DESC").sql(dialect="hive")\n'SELECT x FROM tbl SORT BY x DESC'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf a Group instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a SORT.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this flattens all the Order expression into a single expression.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.cluster_by": {"fullname": "sqlglot.expressions.Select.cluster_by", "modulename": "sqlglot.expressions", "qualname": "Select.cluster_by", "kind": "function", "doc": "

Set the CLUSTER BY expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").cluster_by("x DESC").sql(dialect="hive")\n'SELECT x FROM tbl CLUSTER BY x DESC'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf a Group instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Cluster.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this flattens all the Order expression into a single expression.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.limit": {"fullname": "sqlglot.expressions.Select.limit", "modulename": "sqlglot.expressions", "qualname": "Select.limit", "kind": "function", "doc": "

Set the LIMIT expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").limit(10).sql()\n'SELECT x FROM tbl LIMIT 10'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nThis can also be an integer.\nIf a Limit instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Limit.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Select: the modified expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, int],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.offset": {"fullname": "sqlglot.expressions.Select.offset", "modulename": "sqlglot.expressions", "qualname": "Select.offset", "kind": "function", "doc": "

Set the OFFSET expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").offset(10).sql()\n'SELECT x FROM tbl OFFSET 10'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nThis can also be an integer.\nIf a Offset instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Offset.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, int],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.select": {"fullname": "sqlglot.expressions.Select.select", "modulename": "sqlglot.expressions", "qualname": "Select.select", "kind": "function", "doc": "

Append to or set the SELECT expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("x", "y").sql()\n'SELECT x, y'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.lateral": {"fullname": "sqlglot.expressions.Select.lateral", "modulename": "sqlglot.expressions", "qualname": "Select.lateral", "kind": "function", "doc": "

Append to or set the LATERAL expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()\n'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.join": {"fullname": "sqlglot.expressions.Select.join", "modulename": "sqlglot.expressions", "qualname": "Select.join", "kind": "function", "doc": "

Append to or set the JOIN expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()\n'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'\n
\n
\n \n
\n
>>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()\n'SELECT 1 FROM a JOIN b USING (x, y, z)'\n
\n
\n \n

Use join_type to change the type of join:

\n \n
\n
>>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()\n'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • on: optionally specify the join \"on\" criteria as a SQL string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • using: optionally specify the join \"using\" criteria as a SQL string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • join_type: if set, alter the parsed join type.
  • \n
  • join_alias: an optional alias for the joined source.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Select: the modified expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\ton: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tusing: Union[str, sqlglot.expressions.Expression, List[Union[str, sqlglot.expressions.Expression]], NoneType] = None,\tappend: bool = True,\tjoin_type: Optional[str] = None,\tjoin_alias: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.where": {"fullname": "sqlglot.expressions.Select.where", "modulename": "sqlglot.expressions", "qualname": "Select.where", "kind": "function", "doc": "

Append to or set the WHERE expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()\n"SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.
  • \n
  • append: if True, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Select: the modified expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.having": {"fullname": "sqlglot.expressions.Select.having", "modulename": "sqlglot.expressions", "qualname": "Select.having", "kind": "function", "doc": "

Append to or set the HAVING expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()\n'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.
  • \n
  • append: if True, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.window": {"fullname": "sqlglot.expressions.Select.window", "modulename": "sqlglot.expressions", "qualname": "Select.window", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.qualify": {"fullname": "sqlglot.expressions.Select.qualify", "modulename": "sqlglot.expressions", "qualname": "Select.qualify", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.distinct": {"fullname": "sqlglot.expressions.Select.distinct", "modulename": "sqlglot.expressions", "qualname": "Select.distinct", "kind": "function", "doc": "

Set the OFFSET expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").distinct().sql()\n'SELECT DISTINCT x FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • ons: the expressions to distinct on
  • \n
  • distinct: whether the Select should be distinct
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
\n\n
Returns:
\n\n
\n

Select: the modified expression.

\n
\n", "signature": "(\tself,\t*ons: Union[str, sqlglot.expressions.Expression, NoneType],\tdistinct: bool = True,\tcopy: bool = True) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.ctas": {"fullname": "sqlglot.expressions.Select.ctas", "modulename": "sqlglot.expressions", "qualname": "Select.ctas", "kind": "function", "doc": "

Convert this expression to a CREATE TABLE AS statement.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("*").from_("tbl").ctas("x").sql()\n'CREATE TABLE x AS SELECT * FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • table: the SQL code string to parse as the table name.\nIf another Expression instance is passed, it will be used as-is.
  • \n
  • properties: an optional mapping of table properties
  • \n
  • dialect: the dialect used to parse the input table.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input table.
  • \n
\n\n
Returns:
\n\n
\n

The new Create expression.

\n
\n", "signature": "(\tself,\ttable: Union[str, sqlglot.expressions.Expression],\tproperties: Optional[Dict] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Create:", "funcdef": "def"}, "sqlglot.expressions.Select.lock": {"fullname": "sqlglot.expressions.Select.lock", "modulename": "sqlglot.expressions", "qualname": "Select.lock", "kind": "function", "doc": "

Set the locking read mode for this expression.

\n\n
Examples:
\n\n
\n
\n
>>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")\n"SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"\n
\n
\n \n
\n
>>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")\n"SELECT x FROM tbl WHERE x = 'a' FOR SHARE"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • update: if True, the locking type will be FOR UPDATE, else it will be FOR SHARE.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
\n\n
Returns:
\n\n
\n

The modified expression.

\n
\n", "signature": "(\tself,\tupdate: bool = True,\tcopy: bool = True) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.is_star": {"fullname": "sqlglot.expressions.Select.is_star", "modulename": "sqlglot.expressions", "qualname": "Select.is_star", "kind": "variable", "doc": "

Checks whether an expression is a star.

\n", "annotation": ": bool"}, "sqlglot.expressions.Subquery": {"fullname": "sqlglot.expressions.Subquery", "modulename": "sqlglot.expressions", "qualname": "Subquery", "kind": "class", "doc": "

\n", "bases": "DerivedTable, Unionable"}, "sqlglot.expressions.Subquery.unnest": {"fullname": "sqlglot.expressions.Subquery.unnest", "modulename": "sqlglot.expressions", "qualname": "Subquery.unnest", "kind": "function", "doc": "

Returns the first non subquery.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Subquery.is_star": {"fullname": "sqlglot.expressions.Subquery.is_star", "modulename": "sqlglot.expressions", "qualname": "Subquery.is_star", "kind": "variable", "doc": "

Checks whether an expression is a star.

\n", "annotation": ": bool"}, "sqlglot.expressions.Subquery.output_name": {"fullname": "sqlglot.expressions.Subquery.output_name", "modulename": "sqlglot.expressions", "qualname": "Subquery.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.TableSample": {"fullname": "sqlglot.expressions.TableSample", "modulename": "sqlglot.expressions", "qualname": "TableSample", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Tag": {"fullname": "sqlglot.expressions.Tag", "modulename": "sqlglot.expressions", "qualname": "Tag", "kind": "class", "doc": "

Tags are used for generating arbitrary sql like SELECT x.

\n", "bases": "Expression"}, "sqlglot.expressions.Pivot": {"fullname": "sqlglot.expressions.Pivot", "modulename": "sqlglot.expressions", "qualname": "Pivot", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Window": {"fullname": "sqlglot.expressions.Window", "modulename": "sqlglot.expressions", "qualname": "Window", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.WindowSpec": {"fullname": "sqlglot.expressions.WindowSpec", "modulename": "sqlglot.expressions", "qualname": "WindowSpec", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Where": {"fullname": "sqlglot.expressions.Where", "modulename": "sqlglot.expressions", "qualname": "Where", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Star": {"fullname": "sqlglot.expressions.Star", "modulename": "sqlglot.expressions", "qualname": "Star", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Star.output_name": {"fullname": "sqlglot.expressions.Star.output_name", "modulename": "sqlglot.expressions", "qualname": "Star.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Parameter": {"fullname": "sqlglot.expressions.Parameter", "modulename": "sqlglot.expressions", "qualname": "Parameter", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.SessionParameter": {"fullname": "sqlglot.expressions.SessionParameter", "modulename": "sqlglot.expressions", "qualname": "SessionParameter", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Placeholder": {"fullname": "sqlglot.expressions.Placeholder", "modulename": "sqlglot.expressions", "qualname": "Placeholder", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Null": {"fullname": "sqlglot.expressions.Null", "modulename": "sqlglot.expressions", "qualname": "Null", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Boolean": {"fullname": "sqlglot.expressions.Boolean", "modulename": "sqlglot.expressions", "qualname": "Boolean", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.DataTypeSize": {"fullname": "sqlglot.expressions.DataTypeSize", "modulename": "sqlglot.expressions", "qualname": "DataTypeSize", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.DataType": {"fullname": "sqlglot.expressions.DataType", "modulename": "sqlglot.expressions", "qualname": "DataType", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.DataType.Type": {"fullname": "sqlglot.expressions.DataType.Type", "modulename": "sqlglot.expressions", "qualname": "DataType.Type", "kind": "class", "doc": "

An enumeration.

\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.expressions.DataType.Type.ARRAY": {"fullname": "sqlglot.expressions.DataType.Type.ARRAY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.ARRAY", "kind": "variable", "doc": "

\n", "default_value": "<Type.ARRAY: 'ARRAY'>"}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"fullname": "sqlglot.expressions.DataType.Type.BIGDECIMAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGDECIMAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.BIGDECIMAL: 'BIGDECIMAL'>"}, "sqlglot.expressions.DataType.Type.BIGINT": {"fullname": "sqlglot.expressions.DataType.Type.BIGINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.BIGINT: 'BIGINT'>"}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"fullname": "sqlglot.expressions.DataType.Type.BIGSERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGSERIAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.BIGSERIAL: 'BIGSERIAL'>"}, "sqlglot.expressions.DataType.Type.BINARY": {"fullname": "sqlglot.expressions.DataType.Type.BINARY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BINARY", "kind": "variable", "doc": "

\n", "default_value": "<Type.BINARY: 'BINARY'>"}, "sqlglot.expressions.DataType.Type.BIT": {"fullname": "sqlglot.expressions.DataType.Type.BIT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIT", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.BOOLEAN: 'BOOLEAN'>"}, "sqlglot.expressions.DataType.Type.CHAR": {"fullname": "sqlglot.expressions.DataType.Type.CHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.CHAR", "kind": "variable", "doc": "

\n", "default_value": "<Type.CHAR: 'CHAR'>"}, "sqlglot.expressions.DataType.Type.DATE": {"fullname": "sqlglot.expressions.DataType.Type.DATE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATE", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.DATETIME: 'DATETIME'>"}, "sqlglot.expressions.DataType.Type.DATETIME64": {"fullname": "sqlglot.expressions.DataType.Type.DATETIME64", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATETIME64", "kind": "variable", "doc": "

\n", "default_value": "<Type.DATETIME64: 'DATETIME64'>"}, "sqlglot.expressions.DataType.Type.DECIMAL": {"fullname": "sqlglot.expressions.DataType.Type.DECIMAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DECIMAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.DECIMAL: 'DECIMAL'>"}, "sqlglot.expressions.DataType.Type.DOUBLE": {"fullname": "sqlglot.expressions.DataType.Type.DOUBLE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DOUBLE", "kind": "variable", "doc": "

\n", "default_value": "<Type.DOUBLE: 'DOUBLE'>"}, "sqlglot.expressions.DataType.Type.FLOAT": {"fullname": "sqlglot.expressions.DataType.Type.FLOAT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.FLOAT", "kind": "variable", "doc": "

\n", "default_value": "<Type.FLOAT: 'FLOAT'>"}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"fullname": "sqlglot.expressions.DataType.Type.GEOGRAPHY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.GEOGRAPHY", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.GEOMETRY: 'GEOMETRY'>"}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"fullname": "sqlglot.expressions.DataType.Type.HLLSKETCH", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.HLLSKETCH", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.HSTORE: 'HSTORE'>"}, "sqlglot.expressions.DataType.Type.IMAGE": {"fullname": "sqlglot.expressions.DataType.Type.IMAGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.IMAGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.IMAGE: 'IMAGE'>"}, "sqlglot.expressions.DataType.Type.INET": {"fullname": "sqlglot.expressions.DataType.Type.INET", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INET", "kind": "variable", "doc": "

\n", "default_value": "<Type.INET: 'INET'>"}, "sqlglot.expressions.DataType.Type.INT": {"fullname": "sqlglot.expressions.DataType.Type.INT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT: 'INT'>"}, "sqlglot.expressions.DataType.Type.INT128": {"fullname": "sqlglot.expressions.DataType.Type.INT128", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT128", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT128: 'INT128'>"}, "sqlglot.expressions.DataType.Type.INT256": {"fullname": "sqlglot.expressions.DataType.Type.INT256", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT256", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT256: 'INT256'>"}, "sqlglot.expressions.DataType.Type.INTERVAL": {"fullname": "sqlglot.expressions.DataType.Type.INTERVAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INTERVAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.INTERVAL: 'INTERVAL'>"}, "sqlglot.expressions.DataType.Type.JSON": {"fullname": "sqlglot.expressions.DataType.Type.JSON", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.JSON", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.JSONB: 'JSONB'>"}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"fullname": "sqlglot.expressions.DataType.Type.LONGBLOB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.LONGBLOB", "kind": "variable", "doc": "

\n", "default_value": "<Type.LONGBLOB: 'LONGBLOB'>"}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"fullname": "sqlglot.expressions.DataType.Type.LONGTEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.LONGTEXT", "kind": "variable", "doc": "

\n", "default_value": "<Type.LONGTEXT: 'LONGTEXT'>"}, "sqlglot.expressions.DataType.Type.MAP": {"fullname": "sqlglot.expressions.DataType.Type.MAP", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MAP", "kind": "variable", "doc": "

\n", "default_value": "<Type.MAP: 'MAP'>"}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"fullname": "sqlglot.expressions.DataType.Type.MEDIUMBLOB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MEDIUMBLOB", "kind": "variable", "doc": "

\n", "default_value": "<Type.MEDIUMBLOB: 'MEDIUMBLOB'>"}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"fullname": "sqlglot.expressions.DataType.Type.MEDIUMTEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MEDIUMTEXT", "kind": "variable", "doc": "

\n", "default_value": "<Type.MEDIUMTEXT: 'MEDIUMTEXT'>"}, "sqlglot.expressions.DataType.Type.MONEY": {"fullname": "sqlglot.expressions.DataType.Type.MONEY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MONEY", "kind": "variable", "doc": "

\n", "default_value": "<Type.MONEY: 'MONEY'>"}, "sqlglot.expressions.DataType.Type.NCHAR": {"fullname": "sqlglot.expressions.DataType.Type.NCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NCHAR", "kind": "variable", "doc": "

\n", "default_value": "<Type.NCHAR: 'NCHAR'>"}, "sqlglot.expressions.DataType.Type.NULL": {"fullname": "sqlglot.expressions.DataType.Type.NULL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NULL", "kind": "variable", "doc": "

\n", "default_value": "<Type.NULL: 'NULL'>"}, "sqlglot.expressions.DataType.Type.NULLABLE": {"fullname": "sqlglot.expressions.DataType.Type.NULLABLE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NULLABLE", "kind": "variable", "doc": "

\n", "default_value": "<Type.NULLABLE: 'NULLABLE'>"}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"fullname": "sqlglot.expressions.DataType.Type.NVARCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NVARCHAR", "kind": "variable", "doc": "

\n", "default_value": "<Type.NVARCHAR: 'NVARCHAR'>"}, "sqlglot.expressions.DataType.Type.OBJECT": {"fullname": "sqlglot.expressions.DataType.Type.OBJECT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.OBJECT", "kind": "variable", "doc": "

\n", "default_value": "<Type.OBJECT: 'OBJECT'>"}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"fullname": "sqlglot.expressions.DataType.Type.ROWVERSION", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.ROWVERSION", "kind": "variable", "doc": "

\n", "default_value": "<Type.ROWVERSION: 'ROWVERSION'>"}, "sqlglot.expressions.DataType.Type.SERIAL": {"fullname": "sqlglot.expressions.DataType.Type.SERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SERIAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.SERIAL: 'SERIAL'>"}, "sqlglot.expressions.DataType.Type.SMALLINT": {"fullname": "sqlglot.expressions.DataType.Type.SMALLINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.SMALLINT: 'SMALLINT'>"}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"fullname": "sqlglot.expressions.DataType.Type.SMALLMONEY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLMONEY", "kind": "variable", "doc": "

\n", "default_value": "<Type.SMALLMONEY: 'SMALLMONEY'>"}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"fullname": "sqlglot.expressions.DataType.Type.SMALLSERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLSERIAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.SMALLSERIAL: 'SMALLSERIAL'>"}, "sqlglot.expressions.DataType.Type.STRUCT": {"fullname": "sqlglot.expressions.DataType.Type.STRUCT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.STRUCT", "kind": "variable", "doc": "

\n", "default_value": "<Type.STRUCT: 'STRUCT'>"}, "sqlglot.expressions.DataType.Type.SUPER": {"fullname": "sqlglot.expressions.DataType.Type.SUPER", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SUPER", "kind": "variable", "doc": "

\n", "default_value": "<Type.SUPER: 'SUPER'>"}, "sqlglot.expressions.DataType.Type.TEXT": {"fullname": "sqlglot.expressions.DataType.Type.TEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TEXT", "kind": "variable", "doc": "

\n", "default_value": "<Type.TEXT: 'TEXT'>"}, "sqlglot.expressions.DataType.Type.TIME": {"fullname": "sqlglot.expressions.DataType.Type.TIME", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIME", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\n", "default_value": "<Type.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>"}, "sqlglot.expressions.DataType.Type.TINYINT": {"fullname": "sqlglot.expressions.DataType.Type.TINYINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TINYINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.TINYINT: 'TINYINT'>"}, "sqlglot.expressions.DataType.Type.UBIGINT": {"fullname": "sqlglot.expressions.DataType.Type.UBIGINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UBIGINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.UBIGINT: 'UBIGINT'>"}, "sqlglot.expressions.DataType.Type.UINT": {"fullname": "sqlglot.expressions.DataType.Type.UINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.UINT: 'UINT'>"}, "sqlglot.expressions.DataType.Type.USMALLINT": {"fullname": "sqlglot.expressions.DataType.Type.USMALLINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.USMALLINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.USMALLINT: 'USMALLINT'>"}, "sqlglot.expressions.DataType.Type.UTINYINT": {"fullname": "sqlglot.expressions.DataType.Type.UTINYINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UTINYINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.UTINYINT: 'UTINYINT'>"}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"fullname": "sqlglot.expressions.DataType.Type.UNKNOWN", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UNKNOWN", "kind": "variable", "doc": "

\n", "default_value": "<Type.UNKNOWN: 'UNKNOWN'>"}, "sqlglot.expressions.DataType.Type.UINT128": {"fullname": "sqlglot.expressions.DataType.Type.UINT128", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UINT128", "kind": "variable", "doc": "

\n", "default_value": "<Type.UINT128: 'UINT128'>"}, "sqlglot.expressions.DataType.Type.UINT256": {"fullname": "sqlglot.expressions.DataType.Type.UINT256", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UINT256", "kind": "variable", "doc": "

\n", "default_value": "<Type.UINT256: 'UINT256'>"}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"fullname": "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UNIQUEIDENTIFIER", "kind": "variable", "doc": "

\n", "default_value": "<Type.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>"}, "sqlglot.expressions.DataType.Type.UUID": {"fullname": "sqlglot.expressions.DataType.Type.UUID", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UUID", "kind": "variable", "doc": "

\n", "default_value": "<Type.UUID: 'UUID'>"}, "sqlglot.expressions.DataType.Type.VARBINARY": {"fullname": "sqlglot.expressions.DataType.Type.VARBINARY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARBINARY", "kind": "variable", "doc": "

\n", "default_value": "<Type.VARBINARY: 'VARBINARY'>"}, "sqlglot.expressions.DataType.Type.VARCHAR": {"fullname": "sqlglot.expressions.DataType.Type.VARCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARCHAR", "kind": "variable", "doc": "

\n", "default_value": "<Type.VARCHAR: 'VARCHAR'>"}, "sqlglot.expressions.DataType.Type.VARIANT": {"fullname": "sqlglot.expressions.DataType.Type.VARIANT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARIANT", "kind": "variable", "doc": "

\n", "default_value": "<Type.VARIANT: 'VARIANT'>"}, "sqlglot.expressions.DataType.Type.XML": {"fullname": "sqlglot.expressions.DataType.Type.XML", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.XML", "kind": "variable", "doc": "

\n", "default_value": "<Type.XML: 'XML'>"}, "sqlglot.expressions.DataType.build": {"fullname": "sqlglot.expressions.DataType.build", "modulename": "sqlglot.expressions", "qualname": "DataType.build", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tdtype: str | sqlglot.expressions.DataType | sqlglot.expressions.DataType.Type,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**kwargs) -> sqlglot.expressions.DataType:", "funcdef": "def"}, "sqlglot.expressions.DataType.is_type": {"fullname": "sqlglot.expressions.DataType.is_type", "modulename": "sqlglot.expressions", "qualname": "DataType.is_type", "kind": "function", "doc": "

\n", "signature": "(self, dtype: sqlglot.expressions.DataType.Type) -> bool:", "funcdef": "def"}, "sqlglot.expressions.PseudoType": {"fullname": "sqlglot.expressions.PseudoType", "modulename": "sqlglot.expressions", "qualname": "PseudoType", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.SubqueryPredicate": {"fullname": "sqlglot.expressions.SubqueryPredicate", "modulename": "sqlglot.expressions", "qualname": "SubqueryPredicate", "kind": "class", "doc": "

\n", "bases": "Predicate"}, "sqlglot.expressions.All": {"fullname": "sqlglot.expressions.All", "modulename": "sqlglot.expressions", "qualname": "All", "kind": "class", "doc": "

\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Any": {"fullname": "sqlglot.expressions.Any", "modulename": "sqlglot.expressions", "qualname": "Any", "kind": "class", "doc": "

\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Exists": {"fullname": "sqlglot.expressions.Exists", "modulename": "sqlglot.expressions", "qualname": "Exists", "kind": "class", "doc": "

\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Command": {"fullname": "sqlglot.expressions.Command", "modulename": "sqlglot.expressions", "qualname": "Command", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Transaction": {"fullname": "sqlglot.expressions.Transaction", "modulename": "sqlglot.expressions", "qualname": "Transaction", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Commit": {"fullname": "sqlglot.expressions.Commit", "modulename": "sqlglot.expressions", "qualname": "Commit", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Rollback": {"fullname": "sqlglot.expressions.Rollback", "modulename": "sqlglot.expressions", "qualname": "Rollback", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AlterTable": {"fullname": "sqlglot.expressions.AlterTable", "modulename": "sqlglot.expressions", "qualname": "AlterTable", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AddConstraint": {"fullname": "sqlglot.expressions.AddConstraint", "modulename": "sqlglot.expressions", "qualname": "AddConstraint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.DropPartition": {"fullname": "sqlglot.expressions.DropPartition", "modulename": "sqlglot.expressions", "qualname": "DropPartition", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Binary": {"fullname": "sqlglot.expressions.Binary", "modulename": "sqlglot.expressions", "qualname": "Binary", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Add": {"fullname": "sqlglot.expressions.Add", "modulename": "sqlglot.expressions", "qualname": "Add", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Connector": {"fullname": "sqlglot.expressions.Connector", "modulename": "sqlglot.expressions", "qualname": "Connector", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.And": {"fullname": "sqlglot.expressions.And", "modulename": "sqlglot.expressions", "qualname": "And", "kind": "class", "doc": "

\n", "bases": "Connector"}, "sqlglot.expressions.Or": {"fullname": "sqlglot.expressions.Or", "modulename": "sqlglot.expressions", "qualname": "Or", "kind": "class", "doc": "

\n", "bases": "Connector"}, "sqlglot.expressions.BitwiseAnd": {"fullname": "sqlglot.expressions.BitwiseAnd", "modulename": "sqlglot.expressions", "qualname": "BitwiseAnd", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseLeftShift": {"fullname": "sqlglot.expressions.BitwiseLeftShift", "modulename": "sqlglot.expressions", "qualname": "BitwiseLeftShift", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseOr": {"fullname": "sqlglot.expressions.BitwiseOr", "modulename": "sqlglot.expressions", "qualname": "BitwiseOr", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseRightShift": {"fullname": "sqlglot.expressions.BitwiseRightShift", "modulename": "sqlglot.expressions", "qualname": "BitwiseRightShift", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseXor": {"fullname": "sqlglot.expressions.BitwiseXor", "modulename": "sqlglot.expressions", "qualname": "BitwiseXor", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Div": {"fullname": "sqlglot.expressions.Div", "modulename": "sqlglot.expressions", "qualname": "Div", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Overlaps": {"fullname": "sqlglot.expressions.Overlaps", "modulename": "sqlglot.expressions", "qualname": "Overlaps", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Dot": {"fullname": "sqlglot.expressions.Dot", "modulename": "sqlglot.expressions", "qualname": "Dot", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Dot.build": {"fullname": "sqlglot.expressions.Dot.build", "modulename": "sqlglot.expressions", "qualname": "Dot.build", "kind": "function", "doc": "

Build a Dot object with a sequence of expressions.

\n", "signature": "(\tself,\texpressions: Sequence[sqlglot.expressions.Expression]) -> sqlglot.expressions.Dot:", "funcdef": "def"}, "sqlglot.expressions.DPipe": {"fullname": "sqlglot.expressions.DPipe", "modulename": "sqlglot.expressions", "qualname": "DPipe", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.EQ": {"fullname": "sqlglot.expressions.EQ", "modulename": "sqlglot.expressions", "qualname": "EQ", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.NullSafeEQ": {"fullname": "sqlglot.expressions.NullSafeEQ", "modulename": "sqlglot.expressions", "qualname": "NullSafeEQ", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.NullSafeNEQ": {"fullname": "sqlglot.expressions.NullSafeNEQ", "modulename": "sqlglot.expressions", "qualname": "NullSafeNEQ", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Distance": {"fullname": "sqlglot.expressions.Distance", "modulename": "sqlglot.expressions", "qualname": "Distance", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Escape": {"fullname": "sqlglot.expressions.Escape", "modulename": "sqlglot.expressions", "qualname": "Escape", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Glob": {"fullname": "sqlglot.expressions.Glob", "modulename": "sqlglot.expressions", "qualname": "Glob", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.GT": {"fullname": "sqlglot.expressions.GT", "modulename": "sqlglot.expressions", "qualname": "GT", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.GTE": {"fullname": "sqlglot.expressions.GTE", "modulename": "sqlglot.expressions", "qualname": "GTE", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.ILike": {"fullname": "sqlglot.expressions.ILike", "modulename": "sqlglot.expressions", "qualname": "ILike", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.ILikeAny": {"fullname": "sqlglot.expressions.ILikeAny", "modulename": "sqlglot.expressions", "qualname": "ILikeAny", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.IntDiv": {"fullname": "sqlglot.expressions.IntDiv", "modulename": "sqlglot.expressions", "qualname": "IntDiv", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Is": {"fullname": "sqlglot.expressions.Is", "modulename": "sqlglot.expressions", "qualname": "Is", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Kwarg": {"fullname": "sqlglot.expressions.Kwarg", "modulename": "sqlglot.expressions", "qualname": "Kwarg", "kind": "class", "doc": "

Kwarg in special functions like func(kwarg => y).

\n", "bases": "Binary"}, "sqlglot.expressions.Like": {"fullname": "sqlglot.expressions.Like", "modulename": "sqlglot.expressions", "qualname": "Like", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LikeAny": {"fullname": "sqlglot.expressions.LikeAny", "modulename": "sqlglot.expressions", "qualname": "LikeAny", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LT": {"fullname": "sqlglot.expressions.LT", "modulename": "sqlglot.expressions", "qualname": "LT", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LTE": {"fullname": "sqlglot.expressions.LTE", "modulename": "sqlglot.expressions", "qualname": "LTE", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Mod": {"fullname": "sqlglot.expressions.Mod", "modulename": "sqlglot.expressions", "qualname": "Mod", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Mul": {"fullname": "sqlglot.expressions.Mul", "modulename": "sqlglot.expressions", "qualname": "Mul", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.NEQ": {"fullname": "sqlglot.expressions.NEQ", "modulename": "sqlglot.expressions", "qualname": "NEQ", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.SimilarTo": {"fullname": "sqlglot.expressions.SimilarTo", "modulename": "sqlglot.expressions", "qualname": "SimilarTo", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Slice": {"fullname": "sqlglot.expressions.Slice", "modulename": "sqlglot.expressions", "qualname": "Slice", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Sub": {"fullname": "sqlglot.expressions.Sub", "modulename": "sqlglot.expressions", "qualname": "Sub", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.ArrayOverlaps": {"fullname": "sqlglot.expressions.ArrayOverlaps", "modulename": "sqlglot.expressions", "qualname": "ArrayOverlaps", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Unary": {"fullname": "sqlglot.expressions.Unary", "modulename": "sqlglot.expressions", "qualname": "Unary", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.BitwiseNot": {"fullname": "sqlglot.expressions.BitwiseNot", "modulename": "sqlglot.expressions", "qualname": "BitwiseNot", "kind": "class", "doc": "

\n", "bases": "Unary"}, "sqlglot.expressions.Not": {"fullname": "sqlglot.expressions.Not", "modulename": "sqlglot.expressions", "qualname": "Not", "kind": "class", "doc": "

\n", "bases": "Unary"}, "sqlglot.expressions.Paren": {"fullname": "sqlglot.expressions.Paren", "modulename": "sqlglot.expressions", "qualname": "Paren", "kind": "class", "doc": "

\n", "bases": "Unary"}, "sqlglot.expressions.Neg": {"fullname": "sqlglot.expressions.Neg", "modulename": "sqlglot.expressions", "qualname": "Neg", "kind": "class", "doc": "

\n", "bases": "Unary"}, "sqlglot.expressions.Alias": {"fullname": "sqlglot.expressions.Alias", "modulename": "sqlglot.expressions", "qualname": "Alias", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Alias.output_name": {"fullname": "sqlglot.expressions.Alias.output_name", "modulename": "sqlglot.expressions", "qualname": "Alias.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Aliases": {"fullname": "sqlglot.expressions.Aliases", "modulename": "sqlglot.expressions", "qualname": "Aliases", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AtTimeZone": {"fullname": "sqlglot.expressions.AtTimeZone", "modulename": "sqlglot.expressions", "qualname": "AtTimeZone", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Between": {"fullname": "sqlglot.expressions.Between", "modulename": "sqlglot.expressions", "qualname": "Between", "kind": "class", "doc": "

\n", "bases": "Predicate"}, "sqlglot.expressions.Bracket": {"fullname": "sqlglot.expressions.Bracket", "modulename": "sqlglot.expressions", "qualname": "Bracket", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Distinct": {"fullname": "sqlglot.expressions.Distinct", "modulename": "sqlglot.expressions", "qualname": "Distinct", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.In": {"fullname": "sqlglot.expressions.In", "modulename": "sqlglot.expressions", "qualname": "In", "kind": "class", "doc": "

\n", "bases": "Predicate"}, "sqlglot.expressions.TimeUnit": {"fullname": "sqlglot.expressions.TimeUnit", "modulename": "sqlglot.expressions", "qualname": "TimeUnit", "kind": "class", "doc": "

Automatically converts unit arg into a var.

\n", "bases": "Expression"}, "sqlglot.expressions.TimeUnit.__init__": {"fullname": "sqlglot.expressions.TimeUnit.__init__", "modulename": "sqlglot.expressions", "qualname": "TimeUnit.__init__", "kind": "function", "doc": "

\n", "signature": "(**args)"}, "sqlglot.expressions.Interval": {"fullname": "sqlglot.expressions.Interval", "modulename": "sqlglot.expressions", "qualname": "Interval", "kind": "class", "doc": "

\n", "bases": "TimeUnit"}, "sqlglot.expressions.IgnoreNulls": {"fullname": "sqlglot.expressions.IgnoreNulls", "modulename": "sqlglot.expressions", "qualname": "IgnoreNulls", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.RespectNulls": {"fullname": "sqlglot.expressions.RespectNulls", "modulename": "sqlglot.expressions", "qualname": "RespectNulls", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Func": {"fullname": "sqlglot.expressions.Func", "modulename": "sqlglot.expressions", "qualname": "Func", "kind": "class", "doc": "

The base class for all function expressions.

\n\n
Attributes:
\n\n
    \n
  • is_var_len_args (bool): 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.
  • \n
  • _sql_names (list): 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.
  • \n
\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": "

\n", "signature": "(cls, args):", "funcdef": "def"}, "sqlglot.expressions.Func.sql_names": {"fullname": "sqlglot.expressions.Func.sql_names", "modulename": "sqlglot.expressions", "qualname": "Func.sql_names", "kind": "function", "doc": "

\n", "signature": "(cls):", "funcdef": "def"}, "sqlglot.expressions.Func.sql_name": {"fullname": "sqlglot.expressions.Func.sql_name", "modulename": "sqlglot.expressions", "qualname": "Func.sql_name", "kind": "function", "doc": "

\n", "signature": "(cls):", "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": "

\n", "signature": "(cls):", "funcdef": "def"}, "sqlglot.expressions.AggFunc": {"fullname": "sqlglot.expressions.AggFunc", "modulename": "sqlglot.expressions", "qualname": "AggFunc", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ParameterizedAgg": {"fullname": "sqlglot.expressions.ParameterizedAgg", "modulename": "sqlglot.expressions", "qualname": "ParameterizedAgg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Abs": {"fullname": "sqlglot.expressions.Abs", "modulename": "sqlglot.expressions", "qualname": "Abs", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Anonymous": {"fullname": "sqlglot.expressions.Anonymous", "modulename": "sqlglot.expressions", "qualname": "Anonymous", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Hll": {"fullname": "sqlglot.expressions.Hll", "modulename": "sqlglot.expressions", "qualname": "Hll", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.ApproxDistinct": {"fullname": "sqlglot.expressions.ApproxDistinct", "modulename": "sqlglot.expressions", "qualname": "ApproxDistinct", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Array": {"fullname": "sqlglot.expressions.Array", "modulename": "sqlglot.expressions", "qualname": "Array", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ToChar": {"fullname": "sqlglot.expressions.ToChar", "modulename": "sqlglot.expressions", "qualname": "ToChar", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.GenerateSeries": {"fullname": "sqlglot.expressions.GenerateSeries", "modulename": "sqlglot.expressions", "qualname": "GenerateSeries", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayAgg": {"fullname": "sqlglot.expressions.ArrayAgg", "modulename": "sqlglot.expressions", "qualname": "ArrayAgg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.ArrayAll": {"fullname": "sqlglot.expressions.ArrayAll", "modulename": "sqlglot.expressions", "qualname": "ArrayAll", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayAny": {"fullname": "sqlglot.expressions.ArrayAny", "modulename": "sqlglot.expressions", "qualname": "ArrayAny", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayConcat": {"fullname": "sqlglot.expressions.ArrayConcat", "modulename": "sqlglot.expressions", "qualname": "ArrayConcat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayContains": {"fullname": "sqlglot.expressions.ArrayContains", "modulename": "sqlglot.expressions", "qualname": "ArrayContains", "kind": "class", "doc": "

\n", "bases": "Binary, Func"}, "sqlglot.expressions.ArrayContained": {"fullname": "sqlglot.expressions.ArrayContained", "modulename": "sqlglot.expressions", "qualname": "ArrayContained", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.ArrayFilter": {"fullname": "sqlglot.expressions.ArrayFilter", "modulename": "sqlglot.expressions", "qualname": "ArrayFilter", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayJoin": {"fullname": "sqlglot.expressions.ArrayJoin", "modulename": "sqlglot.expressions", "qualname": "ArrayJoin", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArraySize": {"fullname": "sqlglot.expressions.ArraySize", "modulename": "sqlglot.expressions", "qualname": "ArraySize", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArraySort": {"fullname": "sqlglot.expressions.ArraySort", "modulename": "sqlglot.expressions", "qualname": "ArraySort", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArraySum": {"fullname": "sqlglot.expressions.ArraySum", "modulename": "sqlglot.expressions", "qualname": "ArraySum", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayUnionAgg": {"fullname": "sqlglot.expressions.ArrayUnionAgg", "modulename": "sqlglot.expressions", "qualname": "ArrayUnionAgg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Avg": {"fullname": "sqlglot.expressions.Avg", "modulename": "sqlglot.expressions", "qualname": "Avg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.AnyValue": {"fullname": "sqlglot.expressions.AnyValue", "modulename": "sqlglot.expressions", "qualname": "AnyValue", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Case": {"fullname": "sqlglot.expressions.Case", "modulename": "sqlglot.expressions", "qualname": "Case", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Case.when": {"fullname": "sqlglot.expressions.Case.when", "modulename": "sqlglot.expressions", "qualname": "Case.when", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcondition: Union[str, sqlglot.expressions.Expression],\tthen: Union[str, sqlglot.expressions.Expression],\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Case:", "funcdef": "def"}, "sqlglot.expressions.Case.else_": {"fullname": "sqlglot.expressions.Case.else_", "modulename": "sqlglot.expressions", "qualname": "Case.else_", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcondition: Union[str, sqlglot.expressions.Expression],\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Case:", "funcdef": "def"}, "sqlglot.expressions.Cast": {"fullname": "sqlglot.expressions.Cast", "modulename": "sqlglot.expressions", "qualname": "Cast", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Cast.output_name": {"fullname": "sqlglot.expressions.Cast.output_name", "modulename": "sqlglot.expressions", "qualname": "Cast.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Cast.is_type": {"fullname": "sqlglot.expressions.Cast.is_type", "modulename": "sqlglot.expressions", "qualname": "Cast.is_type", "kind": "function", "doc": "

\n", "signature": "(self, dtype: sqlglot.expressions.DataType.Type) -> bool:", "funcdef": "def"}, "sqlglot.expressions.CastToStrType": {"fullname": "sqlglot.expressions.CastToStrType", "modulename": "sqlglot.expressions", "qualname": "CastToStrType", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Collate": {"fullname": "sqlglot.expressions.Collate", "modulename": "sqlglot.expressions", "qualname": "Collate", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.TryCast": {"fullname": "sqlglot.expressions.TryCast", "modulename": "sqlglot.expressions", "qualname": "TryCast", "kind": "class", "doc": "

\n", "bases": "Cast"}, "sqlglot.expressions.Ceil": {"fullname": "sqlglot.expressions.Ceil", "modulename": "sqlglot.expressions", "qualname": "Ceil", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Coalesce": {"fullname": "sqlglot.expressions.Coalesce", "modulename": "sqlglot.expressions", "qualname": "Coalesce", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Concat": {"fullname": "sqlglot.expressions.Concat", "modulename": "sqlglot.expressions", "qualname": "Concat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ConcatWs": {"fullname": "sqlglot.expressions.ConcatWs", "modulename": "sqlglot.expressions", "qualname": "ConcatWs", "kind": "class", "doc": "

\n", "bases": "Concat"}, "sqlglot.expressions.Count": {"fullname": "sqlglot.expressions.Count", "modulename": "sqlglot.expressions", "qualname": "Count", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.CountIf": {"fullname": "sqlglot.expressions.CountIf", "modulename": "sqlglot.expressions", "qualname": "CountIf", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.CurrentDate": {"fullname": "sqlglot.expressions.CurrentDate", "modulename": "sqlglot.expressions", "qualname": "CurrentDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.CurrentDatetime": {"fullname": "sqlglot.expressions.CurrentDatetime", "modulename": "sqlglot.expressions", "qualname": "CurrentDatetime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.CurrentTime": {"fullname": "sqlglot.expressions.CurrentTime", "modulename": "sqlglot.expressions", "qualname": "CurrentTime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.CurrentTimestamp": {"fullname": "sqlglot.expressions.CurrentTimestamp", "modulename": "sqlglot.expressions", "qualname": "CurrentTimestamp", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.CurrentUser": {"fullname": "sqlglot.expressions.CurrentUser", "modulename": "sqlglot.expressions", "qualname": "CurrentUser", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DateAdd": {"fullname": "sqlglot.expressions.DateAdd", "modulename": "sqlglot.expressions", "qualname": "DateAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateSub": {"fullname": "sqlglot.expressions.DateSub", "modulename": "sqlglot.expressions", "qualname": "DateSub", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateDiff": {"fullname": "sqlglot.expressions.DateDiff", "modulename": "sqlglot.expressions", "qualname": "DateDiff", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateTrunc": {"fullname": "sqlglot.expressions.DateTrunc", "modulename": "sqlglot.expressions", "qualname": "DateTrunc", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DatetimeAdd": {"fullname": "sqlglot.expressions.DatetimeAdd", "modulename": "sqlglot.expressions", "qualname": "DatetimeAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeSub": {"fullname": "sqlglot.expressions.DatetimeSub", "modulename": "sqlglot.expressions", "qualname": "DatetimeSub", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeDiff": {"fullname": "sqlglot.expressions.DatetimeDiff", "modulename": "sqlglot.expressions", "qualname": "DatetimeDiff", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeTrunc": {"fullname": "sqlglot.expressions.DatetimeTrunc", "modulename": "sqlglot.expressions", "qualname": "DatetimeTrunc", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DayOfWeek": {"fullname": "sqlglot.expressions.DayOfWeek", "modulename": "sqlglot.expressions", "qualname": "DayOfWeek", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DayOfMonth": {"fullname": "sqlglot.expressions.DayOfMonth", "modulename": "sqlglot.expressions", "qualname": "DayOfMonth", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DayOfYear": {"fullname": "sqlglot.expressions.DayOfYear", "modulename": "sqlglot.expressions", "qualname": "DayOfYear", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.WeekOfYear": {"fullname": "sqlglot.expressions.WeekOfYear", "modulename": "sqlglot.expressions", "qualname": "WeekOfYear", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.LastDateOfMonth": {"fullname": "sqlglot.expressions.LastDateOfMonth", "modulename": "sqlglot.expressions", "qualname": "LastDateOfMonth", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Extract": {"fullname": "sqlglot.expressions.Extract", "modulename": "sqlglot.expressions", "qualname": "Extract", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimestampAdd": {"fullname": "sqlglot.expressions.TimestampAdd", "modulename": "sqlglot.expressions", "qualname": "TimestampAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampSub": {"fullname": "sqlglot.expressions.TimestampSub", "modulename": "sqlglot.expressions", "qualname": "TimestampSub", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampDiff": {"fullname": "sqlglot.expressions.TimestampDiff", "modulename": "sqlglot.expressions", "qualname": "TimestampDiff", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampTrunc": {"fullname": "sqlglot.expressions.TimestampTrunc", "modulename": "sqlglot.expressions", "qualname": "TimestampTrunc", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeAdd": {"fullname": "sqlglot.expressions.TimeAdd", "modulename": "sqlglot.expressions", "qualname": "TimeAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeSub": {"fullname": "sqlglot.expressions.TimeSub", "modulename": "sqlglot.expressions", "qualname": "TimeSub", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeDiff": {"fullname": "sqlglot.expressions.TimeDiff", "modulename": "sqlglot.expressions", "qualname": "TimeDiff", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeTrunc": {"fullname": "sqlglot.expressions.TimeTrunc", "modulename": "sqlglot.expressions", "qualname": "TimeTrunc", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateFromParts": {"fullname": "sqlglot.expressions.DateFromParts", "modulename": "sqlglot.expressions", "qualname": "DateFromParts", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DateStrToDate": {"fullname": "sqlglot.expressions.DateStrToDate", "modulename": "sqlglot.expressions", "qualname": "DateStrToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DateToDateStr": {"fullname": "sqlglot.expressions.DateToDateStr", "modulename": "sqlglot.expressions", "qualname": "DateToDateStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DateToDi": {"fullname": "sqlglot.expressions.DateToDi", "modulename": "sqlglot.expressions", "qualname": "DateToDi", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Day": {"fullname": "sqlglot.expressions.Day", "modulename": "sqlglot.expressions", "qualname": "Day", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Decode": {"fullname": "sqlglot.expressions.Decode", "modulename": "sqlglot.expressions", "qualname": "Decode", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DiToDate": {"fullname": "sqlglot.expressions.DiToDate", "modulename": "sqlglot.expressions", "qualname": "DiToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Encode": {"fullname": "sqlglot.expressions.Encode", "modulename": "sqlglot.expressions", "qualname": "Encode", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Exp": {"fullname": "sqlglot.expressions.Exp", "modulename": "sqlglot.expressions", "qualname": "Exp", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Explode": {"fullname": "sqlglot.expressions.Explode", "modulename": "sqlglot.expressions", "qualname": "Explode", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Floor": {"fullname": "sqlglot.expressions.Floor", "modulename": "sqlglot.expressions", "qualname": "Floor", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.FromBase64": {"fullname": "sqlglot.expressions.FromBase64", "modulename": "sqlglot.expressions", "qualname": "FromBase64", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ToBase64": {"fullname": "sqlglot.expressions.ToBase64", "modulename": "sqlglot.expressions", "qualname": "ToBase64", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Greatest": {"fullname": "sqlglot.expressions.Greatest", "modulename": "sqlglot.expressions", "qualname": "Greatest", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.GroupConcat": {"fullname": "sqlglot.expressions.GroupConcat", "modulename": "sqlglot.expressions", "qualname": "GroupConcat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Hex": {"fullname": "sqlglot.expressions.Hex", "modulename": "sqlglot.expressions", "qualname": "Hex", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.If": {"fullname": "sqlglot.expressions.If", "modulename": "sqlglot.expressions", "qualname": "If", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.IfNull": {"fullname": "sqlglot.expressions.IfNull", "modulename": "sqlglot.expressions", "qualname": "IfNull", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Initcap": {"fullname": "sqlglot.expressions.Initcap", "modulename": "sqlglot.expressions", "qualname": "Initcap", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.JSONKeyValue": {"fullname": "sqlglot.expressions.JSONKeyValue", "modulename": "sqlglot.expressions", "qualname": "JSONKeyValue", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.JSONObject": {"fullname": "sqlglot.expressions.JSONObject", "modulename": "sqlglot.expressions", "qualname": "JSONObject", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.OpenJSONColumnDef": {"fullname": "sqlglot.expressions.OpenJSONColumnDef", "modulename": "sqlglot.expressions", "qualname": "OpenJSONColumnDef", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.OpenJSON": {"fullname": "sqlglot.expressions.OpenJSON", "modulename": "sqlglot.expressions", "qualname": "OpenJSON", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.JSONBContains": {"fullname": "sqlglot.expressions.JSONBContains", "modulename": "sqlglot.expressions", "qualname": "JSONBContains", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.JSONExtract": {"fullname": "sqlglot.expressions.JSONExtract", "modulename": "sqlglot.expressions", "qualname": "JSONExtract", "kind": "class", "doc": "

\n", "bases": "Binary, Func"}, "sqlglot.expressions.JSONExtractScalar": {"fullname": "sqlglot.expressions.JSONExtractScalar", "modulename": "sqlglot.expressions", "qualname": "JSONExtractScalar", "kind": "class", "doc": "

\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONBExtract": {"fullname": "sqlglot.expressions.JSONBExtract", "modulename": "sqlglot.expressions", "qualname": "JSONBExtract", "kind": "class", "doc": "

\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONBExtractScalar": {"fullname": "sqlglot.expressions.JSONBExtractScalar", "modulename": "sqlglot.expressions", "qualname": "JSONBExtractScalar", "kind": "class", "doc": "

\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONFormat": {"fullname": "sqlglot.expressions.JSONFormat", "modulename": "sqlglot.expressions", "qualname": "JSONFormat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Least": {"fullname": "sqlglot.expressions.Least", "modulename": "sqlglot.expressions", "qualname": "Least", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Length": {"fullname": "sqlglot.expressions.Length", "modulename": "sqlglot.expressions", "qualname": "Length", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Levenshtein": {"fullname": "sqlglot.expressions.Levenshtein", "modulename": "sqlglot.expressions", "qualname": "Levenshtein", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Ln": {"fullname": "sqlglot.expressions.Ln", "modulename": "sqlglot.expressions", "qualname": "Ln", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Log": {"fullname": "sqlglot.expressions.Log", "modulename": "sqlglot.expressions", "qualname": "Log", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Log2": {"fullname": "sqlglot.expressions.Log2", "modulename": "sqlglot.expressions", "qualname": "Log2", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Log10": {"fullname": "sqlglot.expressions.Log10", "modulename": "sqlglot.expressions", "qualname": "Log10", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.LogicalOr": {"fullname": "sqlglot.expressions.LogicalOr", "modulename": "sqlglot.expressions", "qualname": "LogicalOr", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.LogicalAnd": {"fullname": "sqlglot.expressions.LogicalAnd", "modulename": "sqlglot.expressions", "qualname": "LogicalAnd", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Lower": {"fullname": "sqlglot.expressions.Lower", "modulename": "sqlglot.expressions", "qualname": "Lower", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Map": {"fullname": "sqlglot.expressions.Map", "modulename": "sqlglot.expressions", "qualname": "Map", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StarMap": {"fullname": "sqlglot.expressions.StarMap", "modulename": "sqlglot.expressions", "qualname": "StarMap", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.VarMap": {"fullname": "sqlglot.expressions.VarMap", "modulename": "sqlglot.expressions", "qualname": "VarMap", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.MatchAgainst": {"fullname": "sqlglot.expressions.MatchAgainst", "modulename": "sqlglot.expressions", "qualname": "MatchAgainst", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Max": {"fullname": "sqlglot.expressions.Max", "modulename": "sqlglot.expressions", "qualname": "Max", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.MD5": {"fullname": "sqlglot.expressions.MD5", "modulename": "sqlglot.expressions", "qualname": "MD5", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Min": {"fullname": "sqlglot.expressions.Min", "modulename": "sqlglot.expressions", "qualname": "Min", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Month": {"fullname": "sqlglot.expressions.Month", "modulename": "sqlglot.expressions", "qualname": "Month", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Nvl2": {"fullname": "sqlglot.expressions.Nvl2", "modulename": "sqlglot.expressions", "qualname": "Nvl2", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Posexplode": {"fullname": "sqlglot.expressions.Posexplode", "modulename": "sqlglot.expressions", "qualname": "Posexplode", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Pow": {"fullname": "sqlglot.expressions.Pow", "modulename": "sqlglot.expressions", "qualname": "Pow", "kind": "class", "doc": "

\n", "bases": "Binary, Func"}, "sqlglot.expressions.PercentileCont": {"fullname": "sqlglot.expressions.PercentileCont", "modulename": "sqlglot.expressions", "qualname": "PercentileCont", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.PercentileDisc": {"fullname": "sqlglot.expressions.PercentileDisc", "modulename": "sqlglot.expressions", "qualname": "PercentileDisc", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Quantile": {"fullname": "sqlglot.expressions.Quantile", "modulename": "sqlglot.expressions", "qualname": "Quantile", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.ApproxQuantile": {"fullname": "sqlglot.expressions.ApproxQuantile", "modulename": "sqlglot.expressions", "qualname": "ApproxQuantile", "kind": "class", "doc": "

\n", "bases": "Quantile"}, "sqlglot.expressions.RangeN": {"fullname": "sqlglot.expressions.RangeN", "modulename": "sqlglot.expressions", "qualname": "RangeN", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ReadCSV": {"fullname": "sqlglot.expressions.ReadCSV", "modulename": "sqlglot.expressions", "qualname": "ReadCSV", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Reduce": {"fullname": "sqlglot.expressions.Reduce", "modulename": "sqlglot.expressions", "qualname": "Reduce", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RegexpExtract": {"fullname": "sqlglot.expressions.RegexpExtract", "modulename": "sqlglot.expressions", "qualname": "RegexpExtract", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RegexpLike": {"fullname": "sqlglot.expressions.RegexpLike", "modulename": "sqlglot.expressions", "qualname": "RegexpLike", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RegexpILike": {"fullname": "sqlglot.expressions.RegexpILike", "modulename": "sqlglot.expressions", "qualname": "RegexpILike", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RegexpSplit": {"fullname": "sqlglot.expressions.RegexpSplit", "modulename": "sqlglot.expressions", "qualname": "RegexpSplit", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Repeat": {"fullname": "sqlglot.expressions.Repeat", "modulename": "sqlglot.expressions", "qualname": "Repeat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Round": {"fullname": "sqlglot.expressions.Round", "modulename": "sqlglot.expressions", "qualname": "Round", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RowNumber": {"fullname": "sqlglot.expressions.RowNumber", "modulename": "sqlglot.expressions", "qualname": "RowNumber", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.SafeDivide": {"fullname": "sqlglot.expressions.SafeDivide", "modulename": "sqlglot.expressions", "qualname": "SafeDivide", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.SetAgg": {"fullname": "sqlglot.expressions.SetAgg", "modulename": "sqlglot.expressions", "qualname": "SetAgg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.SHA": {"fullname": "sqlglot.expressions.SHA", "modulename": "sqlglot.expressions", "qualname": "SHA", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.SHA2": {"fullname": "sqlglot.expressions.SHA2", "modulename": "sqlglot.expressions", "qualname": "SHA2", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.SortArray": {"fullname": "sqlglot.expressions.SortArray", "modulename": "sqlglot.expressions", "qualname": "SortArray", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Split": {"fullname": "sqlglot.expressions.Split", "modulename": "sqlglot.expressions", "qualname": "Split", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Substring": {"fullname": "sqlglot.expressions.Substring", "modulename": "sqlglot.expressions", "qualname": "Substring", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StandardHash": {"fullname": "sqlglot.expressions.StandardHash", "modulename": "sqlglot.expressions", "qualname": "StandardHash", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StrPosition": {"fullname": "sqlglot.expressions.StrPosition", "modulename": "sqlglot.expressions", "qualname": "StrPosition", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StrToDate": {"fullname": "sqlglot.expressions.StrToDate", "modulename": "sqlglot.expressions", "qualname": "StrToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StrToTime": {"fullname": "sqlglot.expressions.StrToTime", "modulename": "sqlglot.expressions", "qualname": "StrToTime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StrToUnix": {"fullname": "sqlglot.expressions.StrToUnix", "modulename": "sqlglot.expressions", "qualname": "StrToUnix", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.NumberToStr": {"fullname": "sqlglot.expressions.NumberToStr", "modulename": "sqlglot.expressions", "qualname": "NumberToStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Struct": {"fullname": "sqlglot.expressions.Struct", "modulename": "sqlglot.expressions", "qualname": "Struct", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StructExtract": {"fullname": "sqlglot.expressions.StructExtract", "modulename": "sqlglot.expressions", "qualname": "StructExtract", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Sum": {"fullname": "sqlglot.expressions.Sum", "modulename": "sqlglot.expressions", "qualname": "Sum", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Sqrt": {"fullname": "sqlglot.expressions.Sqrt", "modulename": "sqlglot.expressions", "qualname": "Sqrt", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Stddev": {"fullname": "sqlglot.expressions.Stddev", "modulename": "sqlglot.expressions", "qualname": "Stddev", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.StddevPop": {"fullname": "sqlglot.expressions.StddevPop", "modulename": "sqlglot.expressions", "qualname": "StddevPop", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.StddevSamp": {"fullname": "sqlglot.expressions.StddevSamp", "modulename": "sqlglot.expressions", "qualname": "StddevSamp", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.TimeToStr": {"fullname": "sqlglot.expressions.TimeToStr", "modulename": "sqlglot.expressions", "qualname": "TimeToStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeToTimeStr": {"fullname": "sqlglot.expressions.TimeToTimeStr", "modulename": "sqlglot.expressions", "qualname": "TimeToTimeStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeToUnix": {"fullname": "sqlglot.expressions.TimeToUnix", "modulename": "sqlglot.expressions", "qualname": "TimeToUnix", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToDate": {"fullname": "sqlglot.expressions.TimeStrToDate", "modulename": "sqlglot.expressions", "qualname": "TimeStrToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToTime": {"fullname": "sqlglot.expressions.TimeStrToTime", "modulename": "sqlglot.expressions", "qualname": "TimeStrToTime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToUnix": {"fullname": "sqlglot.expressions.TimeStrToUnix", "modulename": "sqlglot.expressions", "qualname": "TimeStrToUnix", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Trim": {"fullname": "sqlglot.expressions.Trim", "modulename": "sqlglot.expressions", "qualname": "Trim", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TsOrDsAdd": {"fullname": "sqlglot.expressions.TsOrDsAdd", "modulename": "sqlglot.expressions", "qualname": "TsOrDsAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TsOrDsToDateStr": {"fullname": "sqlglot.expressions.TsOrDsToDateStr", "modulename": "sqlglot.expressions", "qualname": "TsOrDsToDateStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TsOrDsToDate": {"fullname": "sqlglot.expressions.TsOrDsToDate", "modulename": "sqlglot.expressions", "qualname": "TsOrDsToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TsOrDiToDi": {"fullname": "sqlglot.expressions.TsOrDiToDi", "modulename": "sqlglot.expressions", "qualname": "TsOrDiToDi", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Unhex": {"fullname": "sqlglot.expressions.Unhex", "modulename": "sqlglot.expressions", "qualname": "Unhex", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.UnixToStr": {"fullname": "sqlglot.expressions.UnixToStr", "modulename": "sqlglot.expressions", "qualname": "UnixToStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.UnixToTime": {"fullname": "sqlglot.expressions.UnixToTime", "modulename": "sqlglot.expressions", "qualname": "UnixToTime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.UnixToTimeStr": {"fullname": "sqlglot.expressions.UnixToTimeStr", "modulename": "sqlglot.expressions", "qualname": "UnixToTimeStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Upper": {"fullname": "sqlglot.expressions.Upper", "modulename": "sqlglot.expressions", "qualname": "Upper", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Variance": {"fullname": "sqlglot.expressions.Variance", "modulename": "sqlglot.expressions", "qualname": "Variance", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.VariancePop": {"fullname": "sqlglot.expressions.VariancePop", "modulename": "sqlglot.expressions", "qualname": "VariancePop", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Week": {"fullname": "sqlglot.expressions.Week", "modulename": "sqlglot.expressions", "qualname": "Week", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.XMLTable": {"fullname": "sqlglot.expressions.XMLTable", "modulename": "sqlglot.expressions", "qualname": "XMLTable", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Year": {"fullname": "sqlglot.expressions.Year", "modulename": "sqlglot.expressions", "qualname": "Year", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Use": {"fullname": "sqlglot.expressions.Use", "modulename": "sqlglot.expressions", "qualname": "Use", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Merge": {"fullname": "sqlglot.expressions.Merge", "modulename": "sqlglot.expressions", "qualname": "Merge", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.When": {"fullname": "sqlglot.expressions.When", "modulename": "sqlglot.expressions", "qualname": "When", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.NextValueFor": {"fullname": "sqlglot.expressions.NextValueFor", "modulename": "sqlglot.expressions", "qualname": "NextValueFor", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.maybe_parse": {"fullname": "sqlglot.expressions.maybe_parse", "modulename": "sqlglot.expressions", "qualname": "maybe_parse", "kind": "function", "doc": "

Gracefully handle a possible string or expression.

\n\n
Example:
\n\n
\n
\n
>>> maybe_parse("1")\n(LITERAL this: 1, is_string: False)\n>>> maybe_parse(to_identifier("x"))\n(IDENTIFIER this: x, quoted: False)\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • sql_or_expression: the SQL code string or an expression
  • \n
  • into: the SQLGlot Expression to parse into
  • \n
  • dialect: the dialect used to parse the input expressions (in the case that an\ninput expression is a SQL string).
  • \n
  • prefix: a string to prefix the sql with before it gets parsed\n(automatically includes a space)
  • \n
  • copy: whether or not to copy the expression.
  • \n
  • **opts: other options to use to parse the input expressions (again, in the case\nthat an input expression is a SQL string).
  • \n
\n\n
Returns:
\n\n
\n

Expression: the parsed or given expression.

\n
\n", "signature": "(\tsql_or_expression: Union[str, sqlglot.expressions.Expression],\t*,\tinto: Union[str, Type[sqlglot.expressions.Expression], Collection[Union[str, Type[sqlglot.expressions.Expression]]], NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tprefix: Optional[str] = None,\tcopy: bool = False,\t**opts) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.union": {"fullname": "sqlglot.expressions.union", "modulename": "sqlglot.expressions", "qualname": "union", "kind": "function", "doc": "

Initializes a syntax tree from one UNION expression.

\n\n
Example:
\n\n
\n
\n
>>> union("SELECT * FROM foo", "SELECT * FROM bla").sql()\n'SELECT * FROM foo UNION SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • left: the SQL code string corresponding to the left-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • right: the SQL code string corresponding to the right-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Union instance.

\n
\n", "signature": "(\tleft: Union[str, sqlglot.expressions.Expression],\tright: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Union:", "funcdef": "def"}, "sqlglot.expressions.intersect": {"fullname": "sqlglot.expressions.intersect", "modulename": "sqlglot.expressions", "qualname": "intersect", "kind": "function", "doc": "

Initializes a syntax tree from one INTERSECT expression.

\n\n
Example:
\n\n
\n
\n
>>> intersect("SELECT * FROM foo", "SELECT * FROM bla").sql()\n'SELECT * FROM foo INTERSECT SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • left: the SQL code string corresponding to the left-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • right: the SQL code string corresponding to the right-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Intersect instance.

\n
\n", "signature": "(\tleft: Union[str, sqlglot.expressions.Expression],\tright: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Intersect:", "funcdef": "def"}, "sqlglot.expressions.except_": {"fullname": "sqlglot.expressions.except_", "modulename": "sqlglot.expressions", "qualname": "except_", "kind": "function", "doc": "

Initializes a syntax tree from one EXCEPT expression.

\n\n
Example:
\n\n
\n
\n
>>> except_("SELECT * FROM foo", "SELECT * FROM bla").sql()\n'SELECT * FROM foo EXCEPT SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • left: the SQL code string corresponding to the left-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • right: the SQL code string corresponding to the right-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Except instance.

\n
\n", "signature": "(\tleft: Union[str, sqlglot.expressions.Expression],\tright: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Except:", "funcdef": "def"}, "sqlglot.expressions.select": {"fullname": "sqlglot.expressions.select", "modulename": "sqlglot.expressions", "qualname": "select", "kind": "function", "doc": "

Initializes a syntax tree from one or multiple SELECT expressions.

\n\n
Example:
\n\n
\n
\n
>>> select("col1", "col2").from_("tbl").sql()\n'SELECT col1, col2 FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code string to parse as the expressions of a\nSELECT statement. If an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expressions (in the case that an\ninput expression is a SQL string).
  • \n
  • **opts: other options to use to parse the input expressions (again, in the case\nthat an input expression is a SQL string).
  • \n
\n\n
Returns:
\n\n
\n

Select: the syntax tree for the SELECT statement.

\n
\n", "signature": "(\t*expressions: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.from_": {"fullname": "sqlglot.expressions.from_", "modulename": "sqlglot.expressions", "qualname": "from_", "kind": "function", "doc": "

Initializes a syntax tree from a FROM expression.

\n\n
Example:
\n\n
\n
\n
>>> from_("tbl").select("col1", "col2").sql()\n'SELECT col1, col2 FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expression: 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.
  • \n
  • dialect: the dialect used to parse the input expression (in the case that the\ninput expression is a SQL string).
  • \n
  • **opts: other options to use to parse the input expressions (again, in the case\nthat the input expression is a SQL string).
  • \n
\n\n
Returns:
\n\n
\n

Select: the syntax tree for the SELECT statement.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.update": {"fullname": "sqlglot.expressions.update", "modulename": "sqlglot.expressions", "qualname": "update", "kind": "function", "doc": "

Creates an update statement.

\n\n
Example:
\n\n
\n
\n
>>> update("my_table", {"x": 1, "y": "2", "z": None}, from_="baz", where="id > 1").sql()\n"UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *properties: dictionary of properties to set which are\nauto converted to sql objects eg None -> NULL
  • \n
  • where: sql conditional parsed into a WHERE statement
  • \n
  • from_: sql statement parsed into a FROM statement
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Update: the syntax tree for the UPDATE statement.

\n
\n", "signature": "(\ttable: str | sqlglot.expressions.Table,\tproperties: dict,\twhere: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tfrom_: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Update:", "funcdef": "def"}, "sqlglot.expressions.delete": {"fullname": "sqlglot.expressions.delete", "modulename": "sqlglot.expressions", "qualname": "delete", "kind": "function", "doc": "

Builds a delete statement.

\n\n
Example:
\n\n
\n
\n
>>> delete("my_table", where="id > 1").sql()\n'DELETE FROM my_table WHERE id > 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • where: sql conditional parsed into a WHERE statement
  • \n
  • returning: sql conditional parsed into a RETURNING statement
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Delete: the syntax tree for the DELETE statement.

\n
\n", "signature": "(\ttable: Union[str, sqlglot.expressions.Expression],\twhere: Union[str, sqlglot.expressions.Expression, NoneType] = None,\treturning: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Delete:", "funcdef": "def"}, "sqlglot.expressions.insert": {"fullname": "sqlglot.expressions.insert", "modulename": "sqlglot.expressions", "qualname": "insert", "kind": "function", "doc": "

Builds an INSERT statement.

\n\n
Example:
\n\n
\n
\n
>>> insert("VALUES (1, 2, 3)", "tbl").sql()\n'INSERT INTO tbl VALUES (1, 2, 3)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the sql string or expression of the INSERT statement
  • \n
  • into: the tbl to insert data to.
  • \n
  • columns: optionally the table's column names.
  • \n
  • overwrite: whether to INSERT OVERWRITE or not.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: whether or not to copy the expression.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Insert: the syntax tree for the INSERT statement.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tinto: Union[str, sqlglot.expressions.Expression],\tcolumns: Optional[Sequence[Union[str, sqlglot.expressions.Expression]]] = None,\toverwrite: Optional[bool] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Insert:", "funcdef": "def"}, "sqlglot.expressions.condition": {"fullname": "sqlglot.expressions.condition", "modulename": "sqlglot.expressions", "qualname": "condition", "kind": "function", "doc": "

Initialize a logical condition expression.

\n\n
Example:
\n\n
\n
\n
>>> condition("x=1").sql()\n'x = 1'\n
\n
\n \n

This is helpful for composing larger logical syntax trees:

\n \n
\n
>>> where = condition("x=1")\n>>> where = where.and_("y=1")\n>>> Select().from_("tbl").select("*").where(where).sql()\n'SELECT * FROM tbl WHERE x = 1 AND y = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expression: the SQL code string to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expression (in the case that the\ninput expression is a SQL string).
  • \n
  • copy: Whether or not to copy expression (only applies to expressions).
  • \n
  • **opts: other options to use to parse the input expressions (again, in the case\nthat the input expression is a SQL string).
  • \n
\n\n
Returns:
\n\n
\n

The new Condition instance

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Condition:", "funcdef": "def"}, "sqlglot.expressions.and_": {"fullname": "sqlglot.expressions.and_", "modulename": "sqlglot.expressions", "qualname": "and_", "kind": "function", "doc": "

Combine multiple conditions with an AND logical operator.

\n\n
Example:
\n\n
\n
\n
>>> and_("x=1", and_("y=1", "z=1")).sql()\n'x = 1 AND (y = 1 AND z = 1)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether or not to copy expressions (only applies to Expressions).
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

And: the new condition

\n
\n", "signature": "(\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Condition:", "funcdef": "def"}, "sqlglot.expressions.or_": {"fullname": "sqlglot.expressions.or_", "modulename": "sqlglot.expressions", "qualname": "or_", "kind": "function", "doc": "

Combine multiple conditions with an OR logical operator.

\n\n
Example:
\n\n
\n
\n
>>> or_("x=1", or_("y=1", "z=1")).sql()\n'x = 1 OR (y = 1 OR z = 1)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether or not to copy expressions (only applies to Expressions).
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Or: the new condition

\n
\n", "signature": "(\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Condition:", "funcdef": "def"}, "sqlglot.expressions.not_": {"fullname": "sqlglot.expressions.not_", "modulename": "sqlglot.expressions", "qualname": "not_", "kind": "function", "doc": "

Wrap a condition with a NOT operator.

\n\n
Example:
\n\n
\n
\n
>>> not_("this_suit='black'").sql()\n"NOT this_suit = 'black'"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether to copy the expression or not.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new condition.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Not:", "funcdef": "def"}, "sqlglot.expressions.paren": {"fullname": "sqlglot.expressions.paren", "modulename": "sqlglot.expressions", "qualname": "paren", "kind": "function", "doc": "

Wrap an expression in parentheses.

\n\n
Example:
\n\n
\n
\n
>>> paren("5 + 3").sql()\n'(5 + 3)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • copy: whether to copy the expression or not.
  • \n
\n\n
Returns:
\n\n
\n

The wrapped expression.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tcopy: bool = True) -> sqlglot.expressions.Paren:", "funcdef": "def"}, "sqlglot.expressions.to_identifier": {"fullname": "sqlglot.expressions.to_identifier", "modulename": "sqlglot.expressions", "qualname": "to_identifier", "kind": "function", "doc": "

Builds an identifier.

\n\n
Arguments:
\n\n
    \n
  • name: The name to turn into an identifier.
  • \n
  • quoted: Whether or not force quote the identifier.
  • \n
  • copy: Whether or not to copy a passed in Identefier node.
  • \n
\n\n
Returns:
\n\n
\n

The identifier ast node.

\n
\n", "signature": "(name, quoted=None, copy=True):", "funcdef": "def"}, "sqlglot.expressions.to_interval": {"fullname": "sqlglot.expressions.to_interval", "modulename": "sqlglot.expressions", "qualname": "to_interval", "kind": "function", "doc": "

Builds an interval expression from a string like '1 day' or '5 months'.

\n", "signature": "(\tinterval: str | sqlglot.expressions.Literal) -> sqlglot.expressions.Interval:", "funcdef": "def"}, "sqlglot.expressions.to_table": {"fullname": "sqlglot.expressions.to_table", "modulename": "sqlglot.expressions", "qualname": "to_table", "kind": "function", "doc": "

Create a table expression from a [catalog].[schema].[table] sql path. Catalog and schema are optional.\nIf a table is passed in then that table is returned.

\n\n
Arguments:
\n\n
    \n
  • sql_path: a [catalog].[schema].[table] string.
  • \n
  • dialect: the source dialect according to which the table name will be parsed.
  • \n
  • kwargs: the kwargs to instantiate the resulting Table expression with.
  • \n
\n\n
Returns:
\n\n
\n

A table expression.

\n
\n", "signature": "(\tsql_path: Union[str, sqlglot.expressions.Table, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**kwargs) -> Optional[sqlglot.expressions.Table]:", "funcdef": "def"}, "sqlglot.expressions.to_column": {"fullname": "sqlglot.expressions.to_column", "modulename": "sqlglot.expressions", "qualname": "to_column", "kind": "function", "doc": "

Create a column from a [table].[column] sql path. Schema is optional.

\n\n

If a column is passed in then that column is returned.

\n\n
Arguments:
\n\n
    \n
  • sql_path: [table].[column] string
  • \n
\n\n
Returns:
\n\n
\n

Table: A column expression

\n
\n", "signature": "(\tsql_path: str | sqlglot.expressions.Column,\t**kwargs) -> sqlglot.expressions.Column:", "funcdef": "def"}, "sqlglot.expressions.alias_": {"fullname": "sqlglot.expressions.alias_", "modulename": "sqlglot.expressions", "qualname": "alias_", "kind": "function", "doc": "

Create an Alias expression.

\n\n
Example:
\n\n
\n
\n
>>> alias_('foo', 'bar').sql()\n'foo AS bar'\n
\n
\n \n
\n
>>> alias_('(select 1, 2)', 'bar', table=['a', 'b']).sql()\n'(SELECT 1, 2) AS bar(a, b)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • alias: the alias name to use. If the name has\nspecial characters it is quoted.
  • \n
  • table: Whether or not to create a table alias, can also be a list of columns.
  • \n
  • quoted: whether or not to quote the alias
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: Whether or not to copy the expression.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Alias: the aliased expression

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\talias: str | sqlglot.expressions.Identifier,\ttable: Union[bool, Sequence[str | sqlglot.expressions.Identifier]] = False,\tquoted: Optional[bool] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts):", "funcdef": "def"}, "sqlglot.expressions.subquery": {"fullname": "sqlglot.expressions.subquery", "modulename": "sqlglot.expressions", "qualname": "subquery", "kind": "function", "doc": "

Build a subquery expression.

\n\n
Example:
\n\n
\n
\n
>>> subquery('select x from tbl', 'bar').select('x').sql()\n'SELECT x FROM (SELECT x FROM tbl) AS bar'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • alias: the alias name to use.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

A new Select instance with the subquery expression included.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\talias: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.column": {"fullname": "sqlglot.expressions.column", "modulename": "sqlglot.expressions", "qualname": "column", "kind": "function", "doc": "

Build a Column.

\n\n
Arguments:
\n\n
    \n
  • col: Column name.
  • \n
  • table: Table name.
  • \n
  • db: Database name.
  • \n
  • catalog: Catalog name.
  • \n
  • quoted: Whether to force quotes on the column's identifiers.
  • \n
\n\n
Returns:
\n\n
\n

The new Column instance.

\n
\n", "signature": "(\tcol: str | sqlglot.expressions.Identifier,\ttable: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tdb: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tcatalog: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tquoted: Optional[bool] = None) -> sqlglot.expressions.Column:", "funcdef": "def"}, "sqlglot.expressions.cast": {"fullname": "sqlglot.expressions.cast", "modulename": "sqlglot.expressions", "qualname": "cast", "kind": "function", "doc": "

Cast an expression to a data type.

\n\n
Example:
\n\n
\n
\n
>>> cast('x + 1', 'int').sql()\n'CAST(x + 1 AS INT)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: The expression to cast.
  • \n
  • to: The datatype to cast to.
  • \n
\n\n
Returns:
\n\n
\n

The new Cast instance.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tto: str | sqlglot.expressions.DataType | sqlglot.expressions.DataType.Type,\t**opts) -> sqlglot.expressions.Cast:", "funcdef": "def"}, "sqlglot.expressions.table_": {"fullname": "sqlglot.expressions.table_", "modulename": "sqlglot.expressions", "qualname": "table_", "kind": "function", "doc": "

Build a Table.

\n\n
Arguments:
\n\n
    \n
  • table: Table name.
  • \n
  • db: Database name.
  • \n
  • catalog: Catalog name.
  • \n
  • quote: Whether to force quotes on the table's identifiers.
  • \n
  • alias: Table's alias.
  • \n
\n\n
Returns:
\n\n
\n

The new Table instance.

\n
\n", "signature": "(\ttable: sqlglot.expressions.Identifier | str,\tdb: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tcatalog: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tquoted: Optional[bool] = None,\talias: Union[sqlglot.expressions.Identifier, str, NoneType] = None) -> sqlglot.expressions.Table:", "funcdef": "def"}, "sqlglot.expressions.values": {"fullname": "sqlglot.expressions.values", "modulename": "sqlglot.expressions", "qualname": "values", "kind": "function", "doc": "

Build VALUES statement.

\n\n
Example:
\n\n
\n
\n
>>> values([(1, '2')]).sql()\n"VALUES (1, '2')"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • values: values statements that will be converted to SQL
  • \n
  • alias: optional alias
  • \n
  • columns: Optional list of ordered column names or ordered dictionary of column names to types.\nIf either are provided then an alias is also required.
  • \n
\n\n
Returns:
\n\n
\n

Values: the Values expression object

\n
\n", "signature": "(\tvalues: Iterable[Tuple[Any, ...]],\talias: Optional[str] = None,\tcolumns: Union[Iterable[str], Dict[str, sqlglot.expressions.DataType], NoneType] = None) -> sqlglot.expressions.Values:", "funcdef": "def"}, "sqlglot.expressions.var": {"fullname": "sqlglot.expressions.var", "modulename": "sqlglot.expressions", "qualname": "var", "kind": "function", "doc": "

Build a SQL variable.

\n\n
Example:
\n\n
\n
\n
>>> repr(var('x'))\n'(VAR this: x)'\n
\n
\n \n
\n
>>> repr(var(column('x', table='y')))\n'(VAR this: x)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • name: The name of the var or an expression who's name will become the var.
  • \n
\n\n
Returns:
\n\n
\n

The new variable node.

\n
\n", "signature": "(\tname: Union[str, sqlglot.expressions.Expression, NoneType]) -> sqlglot.expressions.Var:", "funcdef": "def"}, "sqlglot.expressions.rename_table": {"fullname": "sqlglot.expressions.rename_table", "modulename": "sqlglot.expressions", "qualname": "rename_table", "kind": "function", "doc": "

Build ALTER TABLE... RENAME... expression

\n\n
Arguments:
\n\n
    \n
  • old_name: The old name of the table
  • \n
  • new_name: The new name of the table
  • \n
\n\n
Returns:
\n\n
\n

Alter table expression

\n
\n", "signature": "(\told_name: str | sqlglot.expressions.Table,\tnew_name: str | sqlglot.expressions.Table) -> sqlglot.expressions.AlterTable:", "funcdef": "def"}, "sqlglot.expressions.convert": {"fullname": "sqlglot.expressions.convert", "modulename": "sqlglot.expressions", "qualname": "convert", "kind": "function", "doc": "

Convert a python value into an expression object.

\n\n

Raises an error if a conversion is not possible.

\n\n
Arguments:
\n\n
    \n
  • value: A python object.
  • \n
  • copy: Whether or not to copy value (only applies to Expressions and collections).
  • \n
\n\n
Returns:
\n\n
\n

Expression: the equivalent expression object.

\n
\n", "signature": "(value: Any, copy: bool = False) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.replace_children": {"fullname": "sqlglot.expressions.replace_children", "modulename": "sqlglot.expressions", "qualname": "replace_children", "kind": "function", "doc": "

Replace children of an expression with the result of a lambda fun(child) -> exp.

\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tfun: Callable,\t*args,\t**kwargs) -> None:", "funcdef": "def"}, "sqlglot.expressions.column_table_names": {"fullname": "sqlglot.expressions.column_table_names", "modulename": "sqlglot.expressions", "qualname": "column_table_names", "kind": "function", "doc": "

Return all table names referenced through columns in an expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> column_table_names(sqlglot.parse_one("a.b AND c.d AND c.e"))\n['c', 'a']\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: expression to find table names.
  • \n
\n\n
Returns:
\n\n
\n

A list of unique names.

\n
\n", "signature": "(expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.expressions.table_name": {"fullname": "sqlglot.expressions.table_name", "modulename": "sqlglot.expressions", "qualname": "table_name", "kind": "function", "doc": "

Get the full name of a table as a string.

\n\n
Arguments:
\n\n
    \n
  • table: table expression node or string.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> from sqlglot import exp, parse_one\n>>> table_name(parse_one("select * from a.b.c").find(exp.Table))\n'a.b.c'\n
\n
\n
\n\n
Returns:
\n\n
\n

The table name.

\n
\n", "signature": "(table: sqlglot.expressions.Table | str) -> str:", "funcdef": "def"}, "sqlglot.expressions.replace_tables": {"fullname": "sqlglot.expressions.replace_tables", "modulename": "sqlglot.expressions", "qualname": "replace_tables", "kind": "function", "doc": "

Replace all tables in expression according to the mapping.

\n\n
Arguments:
\n\n
    \n
  • expression: expression node to be transformed and replaced.
  • \n
  • mapping: mapping of table names.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> from sqlglot import exp, parse_one\n>>> replace_tables(parse_one("select * from a.b"), {"a.b": "c"}).sql()\n'SELECT * FROM c'\n
\n
\n
\n\n
Returns:
\n\n
\n

The mapped expression.

\n
\n", "signature": "(expression: ~E, mapping: Dict[str, str]) -> ~E:", "funcdef": "def"}, "sqlglot.expressions.replace_placeholders": {"fullname": "sqlglot.expressions.replace_placeholders", "modulename": "sqlglot.expressions", "qualname": "replace_placeholders", "kind": "function", "doc": "

Replace placeholders in an expression.

\n\n
Arguments:
\n\n
    \n
  • expression: expression node to be transformed and replaced.
  • \n
  • args: positional names that will substitute unnamed placeholders in the given order.
  • \n
  • kwargs: keyword arguments that will substitute named placeholders.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> from sqlglot import exp, parse_one\n>>> replace_placeholders(\n...     parse_one("select * from :tbl where ? = ?"),\n...     exp.to_identifier("str_col"), "b", tbl=exp.to_identifier("foo")\n... ).sql()\n"SELECT * FROM foo WHERE str_col = 'b'"\n
\n
\n
\n\n
Returns:
\n\n
\n

The mapped expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\t*args,\t**kwargs) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.expand": {"fullname": "sqlglot.expressions.expand", "modulename": "sqlglot.expressions", "qualname": "expand", "kind": "function", "doc": "

Transforms an expression by expanding all referenced sources into subqueries.

\n\n
Examples:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y")}).sql()\n'SELECT * FROM (SELECT * FROM y) AS z /* source: x */'\n
\n
\n \n
\n
>>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y"), "y": parse_one("select * from z")}).sql()\n'SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: The expression to expand.
  • \n
  • sources: A dictionary of name to Subqueryables.
  • \n
  • copy: Whether or not to copy the expression during transformation. Defaults to True.
  • \n
\n\n
Returns:
\n\n
\n

The transformed expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tsources: Dict[str, sqlglot.expressions.Subqueryable],\tcopy: bool = True) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.func": {"fullname": "sqlglot.expressions.func", "modulename": "sqlglot.expressions", "qualname": "func", "kind": "function", "doc": "

Returns a Func expression.

\n\n
Examples:
\n\n
\n
\n
>>> func("abs", 5).sql()\n'ABS(5)'\n
\n
\n \n
\n
>>> func("cast", this=5, to=DataType.build("DOUBLE")).sql()\n'CAST(5 AS DOUBLE)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • name: the name of the function to build.
  • \n
  • args: the args used to instantiate the function of interest.
  • \n
  • dialect: the source dialect.
  • \n
  • kwargs: the kwargs used to instantiate the function of interest.
  • \n
\n\n
Note:
\n\n
\n

The arguments args and kwargs are mutually exclusive.

\n
\n\n
Returns:
\n\n
\n

An instance of the function of interest, or an anonymous function, if name doesn't\n correspond to an existing sqlglot.expressions.Func class.

\n
\n", "signature": "(\tname: str,\t*args,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**kwargs) -> sqlglot.expressions.Func:", "funcdef": "def"}, "sqlglot.expressions.true": {"fullname": "sqlglot.expressions.true", "modulename": "sqlglot.expressions", "qualname": "true", "kind": "function", "doc": "

Returns a true Boolean expression.

\n", "signature": "() -> sqlglot.expressions.Boolean:", "funcdef": "def"}, "sqlglot.expressions.false": {"fullname": "sqlglot.expressions.false", "modulename": "sqlglot.expressions", "qualname": "false", "kind": "function", "doc": "

Returns a false Boolean expression.

\n", "signature": "() -> sqlglot.expressions.Boolean:", "funcdef": "def"}, "sqlglot.expressions.null": {"fullname": "sqlglot.expressions.null", "modulename": "sqlglot.expressions", "qualname": "null", "kind": "function", "doc": "

Returns a Null expression.

\n", "signature": "() -> sqlglot.expressions.Null:", "funcdef": "def"}, "sqlglot.generator": {"fullname": "sqlglot.generator", "modulename": "sqlglot.generator", "kind": "module", "doc": "

\n"}, "sqlglot.generator.Generator": {"fullname": "sqlglot.generator.Generator", "modulename": "sqlglot.generator", "qualname": "Generator", "kind": "class", "doc": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n"}, "sqlglot.generator.Generator.__init__": {"fullname": "sqlglot.generator.Generator.__init__", "modulename": "sqlglot.generator", "qualname": "Generator.__init__", "kind": "function", "doc": "

\n", "signature": "(\ttime_mapping=None,\ttime_trie=None,\tpretty=None,\tquote_start=None,\tquote_end=None,\tidentifier_start=None,\tidentifier_end=None,\tbit_start=None,\tbit_end=None,\thex_start=None,\thex_end=None,\tbyte_start=None,\tbyte_end=None,\traw_start=None,\traw_end=None,\tidentify=False,\tnormalize=False,\tstring_escape=None,\tidentifier_escape=None,\tpad=2,\tindent=2,\tindex_offset=0,\tunnest_column_only=False,\talias_post_tablesample=False,\tnormalize_functions='upper',\tunsupported_level=<ErrorLevel.WARN: 'WARN'>,\tnull_ordering=None,\tmax_unsupported=3,\tleading_comma=False,\tmax_text_width=80,\tcomments=True)"}, "sqlglot.generator.Generator.generate": {"fullname": "sqlglot.generator.Generator.generate", "modulename": "sqlglot.generator", "qualname": "Generator.generate", "kind": "function", "doc": "

Generates a SQL string by interpreting the given syntax tree.

\n\n

Args\n expression: the syntax tree.\n cache: an optional sql string cache. this leverages the hash of an expression which is slow, so only use this if you set _hash on each node.

\n\n

Returns\n the SQL string.

\n", "signature": "(\tself,\texpression: Optional[sqlglot.expressions.Expression],\tcache: Optional[Dict[int, str]] = None) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.unsupported": {"fullname": "sqlglot.generator.Generator.unsupported", "modulename": "sqlglot.generator", "qualname": "Generator.unsupported", "kind": "function", "doc": "

\n", "signature": "(self, message: str) -> None:", "funcdef": "def"}, "sqlglot.generator.Generator.sep": {"fullname": "sqlglot.generator.Generator.sep", "modulename": "sqlglot.generator", "qualname": "Generator.sep", "kind": "function", "doc": "

\n", "signature": "(self, sep: str = ' ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.seg": {"fullname": "sqlglot.generator.Generator.seg", "modulename": "sqlglot.generator", "qualname": "Generator.seg", "kind": "function", "doc": "

\n", "signature": "(self, sql: str, sep: str = ' ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.pad_comment": {"fullname": "sqlglot.generator.Generator.pad_comment", "modulename": "sqlglot.generator", "qualname": "Generator.pad_comment", "kind": "function", "doc": "

\n", "signature": "(self, comment: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.maybe_comment": {"fullname": "sqlglot.generator.Generator.maybe_comment", "modulename": "sqlglot.generator", "qualname": "Generator.maybe_comment", "kind": "function", "doc": "

\n", "signature": "(\tself,\tsql: str,\texpression: Optional[sqlglot.expressions.Expression] = None,\tcomments: Optional[List[str]] = None) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.wrap": {"fullname": "sqlglot.generator.Generator.wrap", "modulename": "sqlglot.generator", "qualname": "Generator.wrap", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression | str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.no_identify": {"fullname": "sqlglot.generator.Generator.no_identify", "modulename": "sqlglot.generator", "qualname": "Generator.no_identify", "kind": "function", "doc": "

\n", "signature": "(self, func: Callable[..., str], *args, **kwargs) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.normalize_func": {"fullname": "sqlglot.generator.Generator.normalize_func", "modulename": "sqlglot.generator", "qualname": "Generator.normalize_func", "kind": "function", "doc": "

\n", "signature": "(self, name: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.indent": {"fullname": "sqlglot.generator.Generator.indent", "modulename": "sqlglot.generator", "qualname": "Generator.indent", "kind": "function", "doc": "

\n", "signature": "(\tself,\tsql: str,\tlevel: int = 0,\tpad: Optional[int] = None,\tskip_first: bool = False,\tskip_last: bool = False) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.sql": {"fullname": "sqlglot.generator.Generator.sql", "modulename": "sqlglot.generator", "qualname": "Generator.sql", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, NoneType],\tkey: Optional[str] = None,\tcomment: bool = True) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.uncache_sql": {"fullname": "sqlglot.generator.Generator.uncache_sql", "modulename": "sqlglot.generator", "qualname": "Generator.uncache_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Uncache) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.cache_sql": {"fullname": "sqlglot.generator.Generator.cache_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cache_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Cache) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.characterset_sql": {"fullname": "sqlglot.generator.Generator.characterset_sql", "modulename": "sqlglot.generator", "qualname": "Generator.characterset_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.CharacterSet) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.column_sql": {"fullname": "sqlglot.generator.Generator.column_sql", "modulename": "sqlglot.generator", "qualname": "Generator.column_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Column) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.columnposition_sql": {"fullname": "sqlglot.generator.Generator.columnposition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columnposition_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ColumnPosition) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.columndef_sql": {"fullname": "sqlglot.generator.Generator.columndef_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columndef_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ColumnDef, sep: str = ' ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.columnconstraint_sql": {"fullname": "sqlglot.generator.Generator.columnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.autoincrementcolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, _) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.compresscolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.compresscolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.CompressColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.generatedasidentitycolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.GeneratedAsIdentityColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.notnullcolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.notnullcolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NotNullColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.primarykeycolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.primarykeycolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.PrimaryKeyColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.uniquecolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.uniquecolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, _) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.create_sql": {"fullname": "sqlglot.generator.Generator.create_sql", "modulename": "sqlglot.generator", "qualname": "Generator.create_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Create) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.clone_sql": {"fullname": "sqlglot.generator.Generator.clone_sql", "modulename": "sqlglot.generator", "qualname": "Generator.clone_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Clone) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.describe_sql": {"fullname": "sqlglot.generator.Generator.describe_sql", "modulename": "sqlglot.generator", "qualname": "Generator.describe_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Describe) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.prepend_ctes": {"fullname": "sqlglot.generator.Generator.prepend_ctes", "modulename": "sqlglot.generator", "qualname": "Generator.prepend_ctes", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression, sql: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.with_sql": {"fullname": "sqlglot.generator.Generator.with_sql", "modulename": "sqlglot.generator", "qualname": "Generator.with_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.With) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.cte_sql": {"fullname": "sqlglot.generator.Generator.cte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cte_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.CTE) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tablealias_sql": {"fullname": "sqlglot.generator.Generator.tablealias_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tablealias_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.TableAlias) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitstring_sql": {"fullname": "sqlglot.generator.Generator.bitstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitstring_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitString) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.hexstring_sql": {"fullname": "sqlglot.generator.Generator.hexstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.hexstring_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.HexString) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bytestring_sql": {"fullname": "sqlglot.generator.Generator.bytestring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bytestring_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ByteString) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.rawstring_sql": {"fullname": "sqlglot.generator.Generator.rawstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rawstring_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.RawString) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.datatypesize_sql": {"fullname": "sqlglot.generator.Generator.datatypesize_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datatypesize_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DataTypeSize) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.datatype_sql": {"fullname": "sqlglot.generator.Generator.datatype_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datatype_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DataType) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.directory_sql": {"fullname": "sqlglot.generator.Generator.directory_sql", "modulename": "sqlglot.generator", "qualname": "Generator.directory_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Directory) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.delete_sql": {"fullname": "sqlglot.generator.Generator.delete_sql", "modulename": "sqlglot.generator", "qualname": "Generator.delete_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Delete) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.drop_sql": {"fullname": "sqlglot.generator.Generator.drop_sql", "modulename": "sqlglot.generator", "qualname": "Generator.drop_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Drop) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.except_sql": {"fullname": "sqlglot.generator.Generator.except_sql", "modulename": "sqlglot.generator", "qualname": "Generator.except_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Except) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.except_op": {"fullname": "sqlglot.generator.Generator.except_op", "modulename": "sqlglot.generator", "qualname": "Generator.except_op", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Except) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.fetch_sql": {"fullname": "sqlglot.generator.Generator.fetch_sql", "modulename": "sqlglot.generator", "qualname": "Generator.fetch_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Fetch) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.filter_sql": {"fullname": "sqlglot.generator.Generator.filter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.filter_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Filter) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.hint_sql": {"fullname": "sqlglot.generator.Generator.hint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.hint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Hint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.index_sql": {"fullname": "sqlglot.generator.Generator.index_sql", "modulename": "sqlglot.generator", "qualname": "Generator.index_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Index) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.identifier_sql": {"fullname": "sqlglot.generator.Generator.identifier_sql", "modulename": "sqlglot.generator", "qualname": "Generator.identifier_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Identifier) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.inputoutputformat_sql": {"fullname": "sqlglot.generator.Generator.inputoutputformat_sql", "modulename": "sqlglot.generator", "qualname": "Generator.inputoutputformat_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.InputOutputFormat) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.national_sql": {"fullname": "sqlglot.generator.Generator.national_sql", "modulename": "sqlglot.generator", "qualname": "Generator.national_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.National, prefix: str = 'N') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.partition_sql": {"fullname": "sqlglot.generator.Generator.partition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.partition_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Partition) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.properties_sql": {"fullname": "sqlglot.generator.Generator.properties_sql", "modulename": "sqlglot.generator", "qualname": "Generator.properties_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.root_properties": {"fullname": "sqlglot.generator.Generator.root_properties", "modulename": "sqlglot.generator", "qualname": "Generator.root_properties", "kind": "function", "doc": "

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.properties": {"fullname": "sqlglot.generator.Generator.properties", "modulename": "sqlglot.generator", "qualname": "Generator.properties", "kind": "function", "doc": "

\n", "signature": "(\tself,\tproperties: sqlglot.expressions.Properties,\tprefix: str = '',\tsep: str = ', ',\tsuffix: str = '',\twrapped: bool = True) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.with_properties": {"fullname": "sqlglot.generator.Generator.with_properties", "modulename": "sqlglot.generator", "qualname": "Generator.with_properties", "kind": "function", "doc": "

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.locate_properties": {"fullname": "sqlglot.generator.Generator.locate_properties", "modulename": "sqlglot.generator", "qualname": "Generator.locate_properties", "kind": "function", "doc": "

\n", "signature": "(\tself,\tproperties: sqlglot.expressions.Properties) -> Dict[sqlglot.expressions.Properties.Location, list[sqlglot.expressions.Property]]:", "funcdef": "def"}, "sqlglot.generator.Generator.property_sql": {"fullname": "sqlglot.generator.Generator.property_sql", "modulename": "sqlglot.generator", "qualname": "Generator.property_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Property) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.likeproperty_sql": {"fullname": "sqlglot.generator.Generator.likeproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.likeproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LikeProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.fallbackproperty_sql": {"fullname": "sqlglot.generator.Generator.fallbackproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.fallbackproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.FallbackProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.journalproperty_sql": {"fullname": "sqlglot.generator.Generator.journalproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.journalproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.JournalProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.freespaceproperty_sql": {"fullname": "sqlglot.generator.Generator.freespaceproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.freespaceproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.FreespaceProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.checksumproperty_sql": {"fullname": "sqlglot.generator.Generator.checksumproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.checksumproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ChecksumProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"fullname": "sqlglot.generator.Generator.mergeblockratioproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mergeblockratioproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MergeBlockRatioProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"fullname": "sqlglot.generator.Generator.datablocksizeproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datablocksizeproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DataBlocksizeProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"fullname": "sqlglot.generator.Generator.blockcompressionproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.blockcompressionproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BlockCompressionProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"fullname": "sqlglot.generator.Generator.isolatedloadingproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.isolatedloadingproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.IsolatedLoadingProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lockingproperty_sql": {"fullname": "sqlglot.generator.Generator.lockingproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lockingproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LockingProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.withdataproperty_sql": {"fullname": "sqlglot.generator.Generator.withdataproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.withdataproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.WithDataProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.insert_sql": {"fullname": "sqlglot.generator.Generator.insert_sql", "modulename": "sqlglot.generator", "qualname": "Generator.insert_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Insert) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.intersect_sql": {"fullname": "sqlglot.generator.Generator.intersect_sql", "modulename": "sqlglot.generator", "qualname": "Generator.intersect_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Intersect) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.intersect_op": {"fullname": "sqlglot.generator.Generator.intersect_op", "modulename": "sqlglot.generator", "qualname": "Generator.intersect_op", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Intersect) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.introducer_sql": {"fullname": "sqlglot.generator.Generator.introducer_sql", "modulename": "sqlglot.generator", "qualname": "Generator.introducer_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Introducer) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.pseudotype_sql": {"fullname": "sqlglot.generator.Generator.pseudotype_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pseudotype_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.PseudoType) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.onconflict_sql": {"fullname": "sqlglot.generator.Generator.onconflict_sql", "modulename": "sqlglot.generator", "qualname": "Generator.onconflict_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.OnConflict) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.returning_sql": {"fullname": "sqlglot.generator.Generator.returning_sql", "modulename": "sqlglot.generator", "qualname": "Generator.returning_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Returning) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"fullname": "sqlglot.generator.Generator.rowformatdelimitedproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rowformatdelimitedproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.RowFormatDelimitedProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.table_sql": {"fullname": "sqlglot.generator.Generator.table_sql", "modulename": "sqlglot.generator", "qualname": "Generator.table_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Table, sep: str = ' AS ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tablesample_sql": {"fullname": "sqlglot.generator.Generator.tablesample_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tablesample_sql", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.TableSample,\tseed_prefix: str = 'SEED',\tsep=' AS ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.pivot_sql": {"fullname": "sqlglot.generator.Generator.pivot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pivot_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Pivot) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tuple_sql": {"fullname": "sqlglot.generator.Generator.tuple_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tuple_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Tuple) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.update_sql": {"fullname": "sqlglot.generator.Generator.update_sql", "modulename": "sqlglot.generator", "qualname": "Generator.update_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Update) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.values_sql": {"fullname": "sqlglot.generator.Generator.values_sql", "modulename": "sqlglot.generator", "qualname": "Generator.values_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Values) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.var_sql": {"fullname": "sqlglot.generator.Generator.var_sql", "modulename": "sqlglot.generator", "qualname": "Generator.var_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Var) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.into_sql": {"fullname": "sqlglot.generator.Generator.into_sql", "modulename": "sqlglot.generator", "qualname": "Generator.into_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Into) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.from_sql": {"fullname": "sqlglot.generator.Generator.from_sql", "modulename": "sqlglot.generator", "qualname": "Generator.from_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.From) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.group_sql": {"fullname": "sqlglot.generator.Generator.group_sql", "modulename": "sqlglot.generator", "qualname": "Generator.group_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Group) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.having_sql": {"fullname": "sqlglot.generator.Generator.having_sql", "modulename": "sqlglot.generator", "qualname": "Generator.having_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Having) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.join_sql": {"fullname": "sqlglot.generator.Generator.join_sql", "modulename": "sqlglot.generator", "qualname": "Generator.join_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Join) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lambda_sql": {"fullname": "sqlglot.generator.Generator.lambda_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lambda_sql", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.Lambda,\tarrow_sep: str = '->') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lateral_sql": {"fullname": "sqlglot.generator.Generator.lateral_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lateral_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Lateral) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.limit_sql": {"fullname": "sqlglot.generator.Generator.limit_sql", "modulename": "sqlglot.generator", "qualname": "Generator.limit_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Limit) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.offset_sql": {"fullname": "sqlglot.generator.Generator.offset_sql", "modulename": "sqlglot.generator", "qualname": "Generator.offset_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Offset) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.setitem_sql": {"fullname": "sqlglot.generator.Generator.setitem_sql", "modulename": "sqlglot.generator", "qualname": "Generator.setitem_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.SetItem) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.set_sql": {"fullname": "sqlglot.generator.Generator.set_sql", "modulename": "sqlglot.generator", "qualname": "Generator.set_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Set) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.pragma_sql": {"fullname": "sqlglot.generator.Generator.pragma_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pragma_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Pragma) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lock_sql": {"fullname": "sqlglot.generator.Generator.lock_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lock_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Lock) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.literal_sql": {"fullname": "sqlglot.generator.Generator.literal_sql", "modulename": "sqlglot.generator", "qualname": "Generator.literal_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Literal) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.loaddata_sql": {"fullname": "sqlglot.generator.Generator.loaddata_sql", "modulename": "sqlglot.generator", "qualname": "Generator.loaddata_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LoadData) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.null_sql": {"fullname": "sqlglot.generator.Generator.null_sql", "modulename": "sqlglot.generator", "qualname": "Generator.null_sql", "kind": "function", "doc": "

\n", "signature": "(self, *_) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.boolean_sql": {"fullname": "sqlglot.generator.Generator.boolean_sql", "modulename": "sqlglot.generator", "qualname": "Generator.boolean_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Boolean) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.order_sql": {"fullname": "sqlglot.generator.Generator.order_sql", "modulename": "sqlglot.generator", "qualname": "Generator.order_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Order, flat: bool = False) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.cluster_sql": {"fullname": "sqlglot.generator.Generator.cluster_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cluster_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Cluster) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.distribute_sql": {"fullname": "sqlglot.generator.Generator.distribute_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distribute_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Distribute) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.sort_sql": {"fullname": "sqlglot.generator.Generator.sort_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sort_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Sort) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.ordered_sql": {"fullname": "sqlglot.generator.Generator.ordered_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ordered_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Ordered) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.matchrecognize_sql": {"fullname": "sqlglot.generator.Generator.matchrecognize_sql", "modulename": "sqlglot.generator", "qualname": "Generator.matchrecognize_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MatchRecognize) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.query_modifiers": {"fullname": "sqlglot.generator.Generator.query_modifiers", "modulename": "sqlglot.generator", "qualname": "Generator.query_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression, *sqls: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.after_having_modifiers": {"fullname": "sqlglot.generator.Generator.after_having_modifiers", "modulename": "sqlglot.generator", "qualname": "Generator.after_having_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.generator.Generator.after_limit_modifiers": {"fullname": "sqlglot.generator.Generator.after_limit_modifiers", "modulename": "sqlglot.generator", "qualname": "Generator.after_limit_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.generator.Generator.select_sql": {"fullname": "sqlglot.generator.Generator.select_sql", "modulename": "sqlglot.generator", "qualname": "Generator.select_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Select) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.schema_sql": {"fullname": "sqlglot.generator.Generator.schema_sql", "modulename": "sqlglot.generator", "qualname": "Generator.schema_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Schema) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.star_sql": {"fullname": "sqlglot.generator.Generator.star_sql", "modulename": "sqlglot.generator", "qualname": "Generator.star_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Star) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.parameter_sql": {"fullname": "sqlglot.generator.Generator.parameter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.parameter_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Parameter) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.sessionparameter_sql": {"fullname": "sqlglot.generator.Generator.sessionparameter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sessionparameter_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.SessionParameter) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.placeholder_sql": {"fullname": "sqlglot.generator.Generator.placeholder_sql", "modulename": "sqlglot.generator", "qualname": "Generator.placeholder_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Placeholder) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.subquery_sql": {"fullname": "sqlglot.generator.Generator.subquery_sql", "modulename": "sqlglot.generator", "qualname": "Generator.subquery_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Subquery, sep: str = ' AS ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.qualify_sql": {"fullname": "sqlglot.generator.Generator.qualify_sql", "modulename": "sqlglot.generator", "qualname": "Generator.qualify_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Qualify) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.union_sql": {"fullname": "sqlglot.generator.Generator.union_sql", "modulename": "sqlglot.generator", "qualname": "Generator.union_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Union) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.union_op": {"fullname": "sqlglot.generator.Generator.union_op", "modulename": "sqlglot.generator", "qualname": "Generator.union_op", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Union) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.unnest_sql": {"fullname": "sqlglot.generator.Generator.unnest_sql", "modulename": "sqlglot.generator", "qualname": "Generator.unnest_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Unnest) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.where_sql": {"fullname": "sqlglot.generator.Generator.where_sql", "modulename": "sqlglot.generator", "qualname": "Generator.where_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Where) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.window_sql": {"fullname": "sqlglot.generator.Generator.window_sql", "modulename": "sqlglot.generator", "qualname": "Generator.window_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Window) -> str:", "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": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.Window | sqlglot.expressions.MatchRecognize) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.windowspec_sql": {"fullname": "sqlglot.generator.Generator.windowspec_sql", "modulename": "sqlglot.generator", "qualname": "Generator.windowspec_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.WindowSpec) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.withingroup_sql": {"fullname": "sqlglot.generator.Generator.withingroup_sql", "modulename": "sqlglot.generator", "qualname": "Generator.withingroup_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.WithinGroup) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.between_sql": {"fullname": "sqlglot.generator.Generator.between_sql", "modulename": "sqlglot.generator", "qualname": "Generator.between_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Between) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bracket_sql": {"fullname": "sqlglot.generator.Generator.bracket_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bracket_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Bracket) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.all_sql": {"fullname": "sqlglot.generator.Generator.all_sql", "modulename": "sqlglot.generator", "qualname": "Generator.all_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.All) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.any_sql": {"fullname": "sqlglot.generator.Generator.any_sql", "modulename": "sqlglot.generator", "qualname": "Generator.any_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Any) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.exists_sql": {"fullname": "sqlglot.generator.Generator.exists_sql", "modulename": "sqlglot.generator", "qualname": "Generator.exists_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Exists) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.case_sql": {"fullname": "sqlglot.generator.Generator.case_sql", "modulename": "sqlglot.generator", "qualname": "Generator.case_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Case) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.constraint_sql": {"fullname": "sqlglot.generator.Generator.constraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.constraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Constraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.nextvaluefor_sql": {"fullname": "sqlglot.generator.Generator.nextvaluefor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nextvaluefor_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NextValueFor) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.extract_sql": {"fullname": "sqlglot.generator.Generator.extract_sql", "modulename": "sqlglot.generator", "qualname": "Generator.extract_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Extract) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.trim_sql": {"fullname": "sqlglot.generator.Generator.trim_sql", "modulename": "sqlglot.generator", "qualname": "Generator.trim_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Trim) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.concat_sql": {"fullname": "sqlglot.generator.Generator.concat_sql", "modulename": "sqlglot.generator", "qualname": "Generator.concat_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Concat) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.check_sql": {"fullname": "sqlglot.generator.Generator.check_sql", "modulename": "sqlglot.generator", "qualname": "Generator.check_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Check) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.foreignkey_sql": {"fullname": "sqlglot.generator.Generator.foreignkey_sql", "modulename": "sqlglot.generator", "qualname": "Generator.foreignkey_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ForeignKey) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.primarykey_sql": {"fullname": "sqlglot.generator.Generator.primarykey_sql", "modulename": "sqlglot.generator", "qualname": "Generator.primarykey_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ForeignKey) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.unique_sql": {"fullname": "sqlglot.generator.Generator.unique_sql", "modulename": "sqlglot.generator", "qualname": "Generator.unique_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Unique) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.if_sql": {"fullname": "sqlglot.generator.Generator.if_sql", "modulename": "sqlglot.generator", "qualname": "Generator.if_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.If) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.matchagainst_sql": {"fullname": "sqlglot.generator.Generator.matchagainst_sql", "modulename": "sqlglot.generator", "qualname": "Generator.matchagainst_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MatchAgainst) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"fullname": "sqlglot.generator.Generator.jsonkeyvalue_sql", "modulename": "sqlglot.generator", "qualname": "Generator.jsonkeyvalue_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.JSONKeyValue) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.jsonobject_sql": {"fullname": "sqlglot.generator.Generator.jsonobject_sql", "modulename": "sqlglot.generator", "qualname": "Generator.jsonobject_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.JSONObject) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"fullname": "sqlglot.generator.Generator.openjsoncolumndef_sql", "modulename": "sqlglot.generator", "qualname": "Generator.openjsoncolumndef_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.OpenJSONColumnDef) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.openjson_sql": {"fullname": "sqlglot.generator.Generator.openjson_sql", "modulename": "sqlglot.generator", "qualname": "Generator.openjson_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.OpenJSON) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.in_sql": {"fullname": "sqlglot.generator.Generator.in_sql", "modulename": "sqlglot.generator", "qualname": "Generator.in_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.In) -> str:", "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": "

\n", "signature": "(self, unnest: sqlglot.expressions.Unnest) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.interval_sql": {"fullname": "sqlglot.generator.Generator.interval_sql", "modulename": "sqlglot.generator", "qualname": "Generator.interval_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Interval) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.return_sql": {"fullname": "sqlglot.generator.Generator.return_sql", "modulename": "sqlglot.generator", "qualname": "Generator.return_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Return) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.reference_sql": {"fullname": "sqlglot.generator.Generator.reference_sql", "modulename": "sqlglot.generator", "qualname": "Generator.reference_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Reference) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.anonymous_sql": {"fullname": "sqlglot.generator.Generator.anonymous_sql", "modulename": "sqlglot.generator", "qualname": "Generator.anonymous_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Anonymous) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.paren_sql": {"fullname": "sqlglot.generator.Generator.paren_sql", "modulename": "sqlglot.generator", "qualname": "Generator.paren_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Paren) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.neg_sql": {"fullname": "sqlglot.generator.Generator.neg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.neg_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Neg) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.not_sql": {"fullname": "sqlglot.generator.Generator.not_sql", "modulename": "sqlglot.generator", "qualname": "Generator.not_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Not) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.alias_sql": {"fullname": "sqlglot.generator.Generator.alias_sql", "modulename": "sqlglot.generator", "qualname": "Generator.alias_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Alias) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.aliases_sql": {"fullname": "sqlglot.generator.Generator.aliases_sql", "modulename": "sqlglot.generator", "qualname": "Generator.aliases_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Aliases) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.attimezone_sql": {"fullname": "sqlglot.generator.Generator.attimezone_sql", "modulename": "sqlglot.generator", "qualname": "Generator.attimezone_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.AtTimeZone) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.add_sql": {"fullname": "sqlglot.generator.Generator.add_sql", "modulename": "sqlglot.generator", "qualname": "Generator.add_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Add) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.and_sql": {"fullname": "sqlglot.generator.Generator.and_sql", "modulename": "sqlglot.generator", "qualname": "Generator.and_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.And) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.connector_sql": {"fullname": "sqlglot.generator.Generator.connector_sql", "modulename": "sqlglot.generator", "qualname": "Generator.connector_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Connector, op: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseand_sql": {"fullname": "sqlglot.generator.Generator.bitwiseand_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseand_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseAnd) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"fullname": "sqlglot.generator.Generator.bitwiseleftshift_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseleftshift_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseLeftShift) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwisenot_sql": {"fullname": "sqlglot.generator.Generator.bitwisenot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwisenot_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseNot) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseor_sql": {"fullname": "sqlglot.generator.Generator.bitwiseor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseor_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseOr) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"fullname": "sqlglot.generator.Generator.bitwiserightshift_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiserightshift_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseRightShift) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwisexor_sql": {"fullname": "sqlglot.generator.Generator.bitwisexor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwisexor_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseXor) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.cast_sql": {"fullname": "sqlglot.generator.Generator.cast_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cast_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Cast) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.currentdate_sql": {"fullname": "sqlglot.generator.Generator.currentdate_sql", "modulename": "sqlglot.generator", "qualname": "Generator.currentdate_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.CurrentDate) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.collate_sql": {"fullname": "sqlglot.generator.Generator.collate_sql", "modulename": "sqlglot.generator", "qualname": "Generator.collate_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Collate) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.command_sql": {"fullname": "sqlglot.generator.Generator.command_sql", "modulename": "sqlglot.generator", "qualname": "Generator.command_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Command) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.comment_sql": {"fullname": "sqlglot.generator.Generator.comment_sql", "modulename": "sqlglot.generator", "qualname": "Generator.comment_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Comment) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mergetreettlaction_sql": {"fullname": "sqlglot.generator.Generator.mergetreettlaction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mergetreettlaction_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MergeTreeTTLAction) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mergetreettl_sql": {"fullname": "sqlglot.generator.Generator.mergetreettl_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mergetreettl_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MergeTreeTTL) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.transaction_sql": {"fullname": "sqlglot.generator.Generator.transaction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.transaction_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Transaction) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.commit_sql": {"fullname": "sqlglot.generator.Generator.commit_sql", "modulename": "sqlglot.generator", "qualname": "Generator.commit_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Commit) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.rollback_sql": {"fullname": "sqlglot.generator.Generator.rollback_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rollback_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Rollback) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.altercolumn_sql": {"fullname": "sqlglot.generator.Generator.altercolumn_sql", "modulename": "sqlglot.generator", "qualname": "Generator.altercolumn_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.AlterColumn) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.renametable_sql": {"fullname": "sqlglot.generator.Generator.renametable_sql", "modulename": "sqlglot.generator", "qualname": "Generator.renametable_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.RenameTable) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.altertable_sql": {"fullname": "sqlglot.generator.Generator.altertable_sql", "modulename": "sqlglot.generator", "qualname": "Generator.altertable_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.AlterTable) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.droppartition_sql": {"fullname": "sqlglot.generator.Generator.droppartition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.droppartition_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DropPartition) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.addconstraint_sql": {"fullname": "sqlglot.generator.Generator.addconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.addconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.AddConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.distinct_sql": {"fullname": "sqlglot.generator.Generator.distinct_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distinct_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Distinct) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.ignorenulls_sql": {"fullname": "sqlglot.generator.Generator.ignorenulls_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ignorenulls_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.IgnoreNulls) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.respectnulls_sql": {"fullname": "sqlglot.generator.Generator.respectnulls_sql", "modulename": "sqlglot.generator", "qualname": "Generator.respectnulls_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.RespectNulls) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.intdiv_sql": {"fullname": "sqlglot.generator.Generator.intdiv_sql", "modulename": "sqlglot.generator", "qualname": "Generator.intdiv_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.IntDiv) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.dpipe_sql": {"fullname": "sqlglot.generator.Generator.dpipe_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dpipe_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DPipe) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.div_sql": {"fullname": "sqlglot.generator.Generator.div_sql", "modulename": "sqlglot.generator", "qualname": "Generator.div_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Div) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.overlaps_sql": {"fullname": "sqlglot.generator.Generator.overlaps_sql", "modulename": "sqlglot.generator", "qualname": "Generator.overlaps_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Overlaps) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.distance_sql": {"fullname": "sqlglot.generator.Generator.distance_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distance_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Distance) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.dot_sql": {"fullname": "sqlglot.generator.Generator.dot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dot_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Dot) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.eq_sql": {"fullname": "sqlglot.generator.Generator.eq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.eq_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.EQ) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.escape_sql": {"fullname": "sqlglot.generator.Generator.escape_sql", "modulename": "sqlglot.generator", "qualname": "Generator.escape_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Escape) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.glob_sql": {"fullname": "sqlglot.generator.Generator.glob_sql", "modulename": "sqlglot.generator", "qualname": "Generator.glob_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Glob) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.gt_sql": {"fullname": "sqlglot.generator.Generator.gt_sql", "modulename": "sqlglot.generator", "qualname": "Generator.gt_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.GT) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.gte_sql": {"fullname": "sqlglot.generator.Generator.gte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.gte_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.GTE) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.ilike_sql": {"fullname": "sqlglot.generator.Generator.ilike_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ilike_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ILike) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.ilikeany_sql": {"fullname": "sqlglot.generator.Generator.ilikeany_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ilikeany_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ILikeAny) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.is_sql": {"fullname": "sqlglot.generator.Generator.is_sql", "modulename": "sqlglot.generator", "qualname": "Generator.is_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Is) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.like_sql": {"fullname": "sqlglot.generator.Generator.like_sql", "modulename": "sqlglot.generator", "qualname": "Generator.like_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Like) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.likeany_sql": {"fullname": "sqlglot.generator.Generator.likeany_sql", "modulename": "sqlglot.generator", "qualname": "Generator.likeany_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LikeAny) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.similarto_sql": {"fullname": "sqlglot.generator.Generator.similarto_sql", "modulename": "sqlglot.generator", "qualname": "Generator.similarto_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.SimilarTo) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lt_sql": {"fullname": "sqlglot.generator.Generator.lt_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lt_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LT) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lte_sql": {"fullname": "sqlglot.generator.Generator.lte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lte_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LTE) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mod_sql": {"fullname": "sqlglot.generator.Generator.mod_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mod_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Mod) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mul_sql": {"fullname": "sqlglot.generator.Generator.mul_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mul_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Mul) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.neq_sql": {"fullname": "sqlglot.generator.Generator.neq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.neq_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NEQ) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.nullsafeeq_sql": {"fullname": "sqlglot.generator.Generator.nullsafeeq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nullsafeeq_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NullSafeEQ) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.nullsafeneq_sql": {"fullname": "sqlglot.generator.Generator.nullsafeneq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nullsafeneq_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NullSafeNEQ) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.or_sql": {"fullname": "sqlglot.generator.Generator.or_sql", "modulename": "sqlglot.generator", "qualname": "Generator.or_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Or) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.slice_sql": {"fullname": "sqlglot.generator.Generator.slice_sql", "modulename": "sqlglot.generator", "qualname": "Generator.slice_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Slice) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.sub_sql": {"fullname": "sqlglot.generator.Generator.sub_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sub_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Sub) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.trycast_sql": {"fullname": "sqlglot.generator.Generator.trycast_sql", "modulename": "sqlglot.generator", "qualname": "Generator.trycast_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.TryCast) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.use_sql": {"fullname": "sqlglot.generator.Generator.use_sql", "modulename": "sqlglot.generator", "qualname": "Generator.use_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Use) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.binary": {"fullname": "sqlglot.generator.Generator.binary", "modulename": "sqlglot.generator", "qualname": "Generator.binary", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Binary, op: str) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Func) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.func": {"fullname": "sqlglot.generator.Generator.func", "modulename": "sqlglot.generator", "qualname": "Generator.func", "kind": "function", "doc": "

\n", "signature": "(\tself,\tname: str,\t*args: Union[str, sqlglot.expressions.Expression, NoneType]) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.format_args": {"fullname": "sqlglot.generator.Generator.format_args", "modulename": "sqlglot.generator", "qualname": "Generator.format_args", "kind": "function", "doc": "

\n", "signature": "(self, *args: Union[str, sqlglot.expressions.Expression, NoneType]) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.text_width": {"fullname": "sqlglot.generator.Generator.text_width", "modulename": "sqlglot.generator", "qualname": "Generator.text_width", "kind": "function", "doc": "

\n", "signature": "(self, args: Iterable) -> int:", "funcdef": "def"}, "sqlglot.generator.Generator.format_time": {"fullname": "sqlglot.generator.Generator.format_time", "modulename": "sqlglot.generator", "qualname": "Generator.format_time", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> Optional[str]:", "funcdef": "def"}, "sqlglot.generator.Generator.expressions": {"fullname": "sqlglot.generator.Generator.expressions", "modulename": "sqlglot.generator", "qualname": "Generator.expressions", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: Optional[sqlglot.expressions.Expression] = None,\tkey: Optional[str] = None,\tsqls: Optional[List[str]] = None,\tflat: bool = False,\tindent: bool = True,\tsep: str = ', ',\tprefix: str = '') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.op_expressions": {"fullname": "sqlglot.generator.Generator.op_expressions", "modulename": "sqlglot.generator", "qualname": "Generator.op_expressions", "kind": "function", "doc": "

\n", "signature": "(\tself,\top: str,\texpression: sqlglot.expressions.Expression,\tflat: bool = False) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.naked_property": {"fullname": "sqlglot.generator.Generator.naked_property", "modulename": "sqlglot.generator", "qualname": "Generator.naked_property", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Property) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.set_operation": {"fullname": "sqlglot.generator.Generator.set_operation", "modulename": "sqlglot.generator", "qualname": "Generator.set_operation", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression, op: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tag_sql": {"fullname": "sqlglot.generator.Generator.tag_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tag_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Tag) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.token_sql": {"fullname": "sqlglot.generator.Generator.token_sql", "modulename": "sqlglot.generator", "qualname": "Generator.token_sql", "kind": "function", "doc": "

\n", "signature": "(self, token_type: sqlglot.tokens.TokenType) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"fullname": "sqlglot.generator.Generator.userdefinedfunction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.userdefinedfunction_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.UserDefinedFunction) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.joinhint_sql": {"fullname": "sqlglot.generator.Generator.joinhint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.joinhint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.JoinHint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.kwarg_sql": {"fullname": "sqlglot.generator.Generator.kwarg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.kwarg_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Kwarg) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.when_sql": {"fullname": "sqlglot.generator.Generator.when_sql", "modulename": "sqlglot.generator", "qualname": "Generator.when_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.When) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.merge_sql": {"fullname": "sqlglot.generator.Generator.merge_sql", "modulename": "sqlglot.generator", "qualname": "Generator.merge_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Merge) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tochar_sql": {"fullname": "sqlglot.generator.Generator.tochar_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tochar_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ToChar) -> str:", "funcdef": "def"}, "sqlglot.generator.cached_generator": {"fullname": "sqlglot.generator.cached_generator", "modulename": "sqlglot.generator", "qualname": "cached_generator", "kind": "function", "doc": "

Returns a cached generator.

\n", "signature": "(\tcache: Optional[Dict[int, str]] = None) -> Callable[[sqlglot.expressions.Expression], str]:", "funcdef": "def"}, "sqlglot.helper": {"fullname": "sqlglot.helper", "modulename": "sqlglot.helper", "kind": "module", "doc": "

\n"}, "sqlglot.helper.AutoName": {"fullname": "sqlglot.helper.AutoName", "modulename": "sqlglot.helper", "qualname": "AutoName", "kind": "class", "doc": "

This is used for creating enum classes where auto() is the string form of the corresponding value's name.

\n", "bases": "enum.Enum"}, "sqlglot.helper.seq_get": {"fullname": "sqlglot.helper.seq_get", "modulename": "sqlglot.helper", "qualname": "seq_get", "kind": "function", "doc": "

Returns the value in seq at position index, or None if index is out of bounds.

\n", "signature": "(seq: Sequence[~T], index: int) -> Optional[~T]:", "funcdef": "def"}, "sqlglot.helper.ensure_list": {"fullname": "sqlglot.helper.ensure_list", "modulename": "sqlglot.helper", "qualname": "ensure_list", "kind": "function", "doc": "

Ensures that a value is a list, otherwise casts or wraps it into one.

\n\n
Arguments:
\n\n
    \n
  • value: the value of interest.
  • \n
\n\n
Returns:
\n\n
\n

The value cast as a list if it's a list or a tuple, or else the value wrapped in a list.

\n
\n", "signature": "(value):", "funcdef": "def"}, "sqlglot.helper.ensure_collection": {"fullname": "sqlglot.helper.ensure_collection", "modulename": "sqlglot.helper", "qualname": "ensure_collection", "kind": "function", "doc": "

Ensures that a value is a collection (excluding str and bytes), otherwise wraps it into a list.

\n\n
Arguments:
\n\n
    \n
  • value: the value of interest.
  • \n
\n\n
Returns:
\n\n
\n

The value if it's a collection, or else the value wrapped in a list.

\n
\n", "signature": "(value):", "funcdef": "def"}, "sqlglot.helper.csv": {"fullname": "sqlglot.helper.csv", "modulename": "sqlglot.helper", "qualname": "csv", "kind": "function", "doc": "

Formats any number of string arguments as CSV.

\n\n
Arguments:
\n\n
    \n
  • args: the string arguments to format.
  • \n
  • sep: the argument separator.
  • \n
\n\n
Returns:
\n\n
\n

The arguments formatted as a CSV string.

\n
\n", "signature": "(*args: str, sep: str = ', ') -> str:", "funcdef": "def"}, "sqlglot.helper.subclasses": {"fullname": "sqlglot.helper.subclasses", "modulename": "sqlglot.helper", "qualname": "subclasses", "kind": "function", "doc": "

Returns all subclasses for a collection of classes, possibly excluding some of them.

\n\n
Arguments:
\n\n
    \n
  • module_name: the name of the module to search for subclasses in.
  • \n
  • classes: class(es) we want to find the subclasses of.
  • \n
  • exclude: class(es) we want to exclude from the returned list.
  • \n
\n\n
Returns:
\n\n
\n

The target subclasses.

\n
\n", "signature": "(\tmodule_name: str,\tclasses: Union[Type, Tuple[Type, ...]],\texclude: Union[Type, Tuple[Type, ...]] = ()) -> List[Type]:", "funcdef": "def"}, "sqlglot.helper.apply_index_offset": {"fullname": "sqlglot.helper.apply_index_offset", "modulename": "sqlglot.helper", "qualname": "apply_index_offset", "kind": "function", "doc": "

Applies an offset to a given integer literal expression.

\n\n
Arguments:
\n\n
    \n
  • this: the target of the index
  • \n
  • expressions: the expression the offset will be applied to, wrapped in a list.
  • \n
  • offset: the offset that will be applied.
  • \n
\n\n
Returns:
\n\n
\n

The original expression with the offset applied to it, wrapped in a list. If the provided\n expressions argument contains more than one expressions, it's returned unaffected.

\n
\n", "signature": "(\tthis: sqlglot.expressions.Expression,\texpressions: List[Optional[~E]],\toffset: int) -> List[Optional[~E]]:", "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": "

Converts name from camelCase to snake_case and returns the result.

\n", "signature": "(name: str) -> str:", "funcdef": "def"}, "sqlglot.helper.while_changing": {"fullname": "sqlglot.helper.while_changing", "modulename": "sqlglot.helper", "qualname": "while_changing", "kind": "function", "doc": "

Applies a transformation to a given expression until a fix point is reached.

\n\n
Arguments:
\n\n
    \n
  • expression: the expression to be transformed.
  • \n
  • func: the transformation to be applied.
  • \n
\n\n
Returns:
\n\n
\n

The transformed expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tfunc: Callable[[sqlglot.expressions.Expression], ~E]) -> ~E:", "funcdef": "def"}, "sqlglot.helper.tsort": {"fullname": "sqlglot.helper.tsort", "modulename": "sqlglot.helper", "qualname": "tsort", "kind": "function", "doc": "

Sorts a given directed acyclic graph in topological order.

\n\n
Arguments:
\n\n
    \n
  • dag: the graph to be sorted.
  • \n
\n\n
Returns:
\n\n
\n

A list that contains all of the graph's nodes in topological order.

\n
\n", "signature": "(dag: Dict[~T, List[~T]]) -> List[~T]:", "funcdef": "def"}, "sqlglot.helper.open_file": {"fullname": "sqlglot.helper.open_file", "modulename": "sqlglot.helper", "qualname": "open_file", "kind": "function", "doc": "

Open a file that may be compressed as gzip and return it in universal newline mode.

\n", "signature": "(file_name: str) -> <class 'TextIO'>:", "funcdef": "def"}, "sqlglot.helper.csv_reader": {"fullname": "sqlglot.helper.csv_reader", "modulename": "sqlglot.helper", "qualname": "csv_reader", "kind": "function", "doc": "

Returns a csv reader given the expression READ_CSV(name, ['delimiter', '|', ...]).

\n\n
Arguments:
\n\n
    \n
  • read_csv: a ReadCSV function call
  • \n
\n\n
Yields:
\n\n
\n

A python csv reader.

\n
\n", "signature": "(read_csv: sqlglot.expressions.ReadCSV) -> Any:", "funcdef": "def"}, "sqlglot.helper.find_new_name": {"fullname": "sqlglot.helper.find_new_name", "modulename": "sqlglot.helper", "qualname": "find_new_name", "kind": "function", "doc": "

Searches for a new name.

\n\n
Arguments:
\n\n
    \n
  • taken: a collection of taken names.
  • \n
  • base: base name to alter.
  • \n
\n\n
Returns:
\n\n
\n

The new, available name.

\n
\n", "signature": "(taken: Collection[str], base: str) -> str:", "funcdef": "def"}, "sqlglot.helper.object_to_dict": {"fullname": "sqlglot.helper.object_to_dict", "modulename": "sqlglot.helper", "qualname": "object_to_dict", "kind": "function", "doc": "

Returns a dictionary created from an object's attributes.

\n", "signature": "(obj: Any, **kwargs) -> Dict:", "funcdef": "def"}, "sqlglot.helper.split_num_words": {"fullname": "sqlglot.helper.split_num_words", "modulename": "sqlglot.helper", "qualname": "split_num_words", "kind": "function", "doc": "

Perform a split on a value and return N words as a result with None used for words that don't exist.

\n\n
Arguments:
\n\n
    \n
  • value: the value to be split.
  • \n
  • sep: the value to use to split on.
  • \n
  • min_num_words: the minimum number of words that are going to be in the result.
  • \n
  • fill_from_start: indicates that if None values should be inserted at the start or end of the list.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> split_num_words("db.table", ".", 3)\n[None, 'db', 'table']\n>>> split_num_words("db.table", ".", 3, fill_from_start=False)\n['db', 'table', None]\n>>> split_num_words("db.table", ".", 1)\n['db', 'table']\n
\n
\n
\n\n
Returns:
\n\n
\n

The list of words returned by split, possibly augmented by a number of None values.

\n
\n", "signature": "(\tvalue: str,\tsep: str,\tmin_num_words: int,\tfill_from_start: bool = True) -> List[Optional[str]]:", "funcdef": "def"}, "sqlglot.helper.is_iterable": {"fullname": "sqlglot.helper.is_iterable", "modulename": "sqlglot.helper", "qualname": "is_iterable", "kind": "function", "doc": "

Checks if the value is an iterable, excluding the types str and bytes.

\n\n
Examples:
\n\n
\n
\n
>>> is_iterable([1,2])\nTrue\n>>> is_iterable("test")\nFalse\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • value: the value to check if it is an iterable.
  • \n
\n\n
Returns:
\n\n
\n

A bool value indicating if it is an iterable.

\n
\n", "signature": "(value: Any) -> bool:", "funcdef": "def"}, "sqlglot.helper.flatten": {"fullname": "sqlglot.helper.flatten", "modulename": "sqlglot.helper", "qualname": "flatten", "kind": "function", "doc": "

Flattens an iterable that can contain both iterable and non-iterable elements. Objects of\ntype str and bytes are not regarded as iterables.

\n\n
Examples:
\n\n
\n
\n
>>> list(flatten([[1, 2], 3, {4}, (5, "bla")]))\n[1, 2, 3, 4, 5, 'bla']\n>>> list(flatten([1, 2, 3]))\n[1, 2, 3]\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • values: the value to be flattened.
  • \n
\n\n
Yields:
\n\n
\n

Non-iterable elements in values.

\n
\n", "signature": "(values: Iterable[Union[Iterable[Any], Any]]) -> Iterator[Any]:", "funcdef": "def"}, "sqlglot.helper.dict_depth": {"fullname": "sqlglot.helper.dict_depth", "modulename": "sqlglot.helper", "qualname": "dict_depth", "kind": "function", "doc": "

Get the nesting depth of a dictionary.

\n\n
For example:
\n\n
\n
\n
>>> dict_depth(None)\n0\n>>> dict_depth({})\n1\n>>> dict_depth({"a": "b"})\n1\n>>> dict_depth({"a": {}})\n2\n>>> dict_depth({"a": {"b": {}}})\n3\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • d (dict): dictionary
  • \n
\n\n
Returns:
\n\n
\n

int: depth

\n
\n", "signature": "(d: Dict) -> int:", "funcdef": "def"}, "sqlglot.helper.first": {"fullname": "sqlglot.helper.first", "modulename": "sqlglot.helper", "qualname": "first", "kind": "function", "doc": "

Returns the first element from an iterable.

\n\n

Useful for sets.

\n", "signature": "(it: Iterable[~T]) -> ~T:", "funcdef": "def"}, "sqlglot.helper.should_identify": {"fullname": "sqlglot.helper.should_identify", "modulename": "sqlglot.helper", "qualname": "should_identify", "kind": "function", "doc": "

Checks if text should be identified given an identify option.

\n\n
Arguments:
\n\n
    \n
  • text: the text to check.
  • \n
  • identify: \"always\" | True - always returns true, \"safe\" - true if no upper case
  • \n
\n\n
Returns:
\n\n
\n

Whether or not a string should be identified.

\n
\n", "signature": "(text: str, identify: str | bool) -> bool:", "funcdef": "def"}, "sqlglot.lineage": {"fullname": "sqlglot.lineage", "modulename": "sqlglot.lineage", "kind": "module", "doc": "

\n"}, "sqlglot.lineage.Node": {"fullname": "sqlglot.lineage.Node", "modulename": "sqlglot.lineage", "qualname": "Node", "kind": "class", "doc": "

\n"}, "sqlglot.lineage.Node.__init__": {"fullname": "sqlglot.lineage.Node.__init__", "modulename": "sqlglot.lineage", "qualname": "Node.__init__", "kind": "function", "doc": "

\n", "signature": "(\tname: str,\texpression: sqlglot.expressions.Expression,\tsource: sqlglot.expressions.Expression,\tdownstream: List[sqlglot.lineage.Node] = <factory>,\talias: str = '')"}, "sqlglot.lineage.Node.walk": {"fullname": "sqlglot.lineage.Node.walk", "modulename": "sqlglot.lineage", "qualname": "Node.walk", "kind": "function", "doc": "

\n", "signature": "(self) -> Iterator[sqlglot.lineage.Node]:", "funcdef": "def"}, "sqlglot.lineage.Node.to_html": {"fullname": "sqlglot.lineage.Node.to_html", "modulename": "sqlglot.lineage", "qualname": "Node.to_html", "kind": "function", "doc": "

\n", "signature": "(self, **opts) -> sqlglot.lineage.LineageHTML:", "funcdef": "def"}, "sqlglot.lineage.lineage": {"fullname": "sqlglot.lineage.lineage", "modulename": "sqlglot.lineage", "qualname": "lineage", "kind": "function", "doc": "

Build the lineage graph for a column of a SQL query.

\n\n
Arguments:
\n\n
    \n
  • column: The column to build the lineage for.
  • \n
  • sql: The SQL string or expression.
  • \n
  • schema: The schema of tables.
  • \n
  • sources: A mapping of queries which will be used to continue building lineage.
  • \n
  • rules: Optimizer rules to apply, by default only qualifying tables and columns.
  • \n
  • dialect: The dialect of input SQL.
  • \n
\n\n
Returns:
\n\n
\n

A lineage node.

\n
\n", "signature": "(\tcolumn: str | sqlglot.expressions.Column,\tsql: str | sqlglot.expressions.Expression,\tschema: Union[Dict, sqlglot.schema.Schema, NoneType] = None,\tsources: Optional[Dict[str, str | sqlglot.expressions.Subqueryable]] = None,\trules: Sequence[Callable] = (<function lower_identities at 0x7f0af2fc76d0>, <function qualify_tables at 0x7f0af2fa1d80>, <function qualify_columns at 0x7f0af2fa0c10>),\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> sqlglot.lineage.Node:", "funcdef": "def"}, "sqlglot.lineage.LineageHTML": {"fullname": "sqlglot.lineage.LineageHTML", "modulename": "sqlglot.lineage", "qualname": "LineageHTML", "kind": "class", "doc": "

Node to HTML generator using vis.js.

\n\n

https://visjs.github.io/vis-network/docs/network/

\n"}, "sqlglot.lineage.LineageHTML.__init__": {"fullname": "sqlglot.lineage.LineageHTML.__init__", "modulename": "sqlglot.lineage", "qualname": "LineageHTML.__init__", "kind": "function", "doc": "

\n", "signature": "(\tnode: sqlglot.lineage.Node,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\timports: bool = True,\t**opts: Any)"}, "sqlglot.optimizer": {"fullname": "sqlglot.optimizer", "modulename": "sqlglot.optimizer", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.annotate_types": {"fullname": "sqlglot.optimizer.annotate_types", "modulename": "sqlglot.optimizer.annotate_types", "kind": "module", "doc": "

\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": "

Recursively infer & annotate types in an expression syntax tree against a schema.\nAssumes that we've already executed the optimizer's qualify_columns step.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> schema = {"y": {"cola": "SMALLINT"}}\n>>> sql = "SELECT x.cola + 2.5 AS cola FROM (SELECT y.cola AS cola FROM y AS y) AS x"\n>>> annotated_expr = annotate_types(sqlglot.parse_one(sql), schema=schema)\n>>> annotated_expr.expressions[0].type.this  # Get the type of "x.cola + 2.5 AS cola"\n<Type.DOUBLE: 'DOUBLE'>\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): Expression to annotate.
  • \n
  • schema (dict|sqlglot.optimizer.Schema): Database schema.
  • \n
  • annotators (dict): Maps expression type to corresponding annotation function.
  • \n
  • coerces_to (dict): Maps expression type to set of types that it can be coerced into.
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: expression annotated with types

\n
\n", "signature": "(expression, schema=None, annotators=None, coerces_to=None):", "funcdef": "def"}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator", "kind": "class", "doc": "

\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": "

\n", "signature": "(schema=None, annotators=None, coerces_to=None)"}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator.annotate", "kind": "function", "doc": "

\n", "signature": "(self, expression):", "funcdef": "def"}, "sqlglot.optimizer.canonicalize": {"fullname": "sqlglot.optimizer.canonicalize", "modulename": "sqlglot.optimizer.canonicalize", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.canonicalize.canonicalize": {"fullname": "sqlglot.optimizer.canonicalize.canonicalize", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "canonicalize", "kind": "function", "doc": "

Converts a sql expression into a standard form.

\n\n

This method relies on annotate_types because many of the\nconversions rely on type inference.

\n\n
Arguments:
\n\n
    \n
  • expression: The expression to canonicalize.
  • \n
  • identify: Whether or not to force identify identifier.
  • \n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tidentify: str = 'safe') -> sqlglot.expressions.Expression:", "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": "

\n", "signature": "(node: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.optimizer.canonicalize.coerce_type": {"fullname": "sqlglot.optimizer.canonicalize.coerce_type", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "coerce_type", "kind": "function", "doc": "

\n", "signature": "(node: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "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": "

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "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": "

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.optimizer.eliminate_ctes": {"fullname": "sqlglot.optimizer.eliminate_ctes", "modulename": "sqlglot.optimizer.eliminate_ctes", "kind": "module", "doc": "

\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": "

Remove unused CTEs from an expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sql = "WITH y AS (SELECT a FROM x) SELECT a FROM z"\n>>> expression = sqlglot.parse_one(sql)\n>>> eliminate_ctes(expression).sql()\n'SELECT a FROM z'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.eliminate_joins": {"fullname": "sqlglot.optimizer.eliminate_joins", "modulename": "sqlglot.optimizer.eliminate_joins", "kind": "module", "doc": "

\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": "

Remove unused joins from an expression.

\n\n

This only removes joins when we know that the join condition doesn't produce duplicate rows.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sql = "SELECT x.a FROM x LEFT JOIN (SELECT DISTINCT y.b FROM y) AS y ON x.b = y.b"\n>>> expression = sqlglot.parse_one(sql)\n>>> eliminate_joins(expression).sql()\n'SELECT x.a FROM x'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression):", "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": "

Extract the join condition from a join expression.

\n\n
Arguments:
\n\n
    \n
  • join (exp.Join)
  • \n
\n\n
Returns:
\n\n
\n

tuple[list[str], list[str], exp.Expression]:\n Tuple of (source key, join key, remaining predicate)

\n
\n", "signature": "(join):", "funcdef": "def"}, "sqlglot.optimizer.eliminate_subqueries": {"fullname": "sqlglot.optimizer.eliminate_subqueries", "modulename": "sqlglot.optimizer.eliminate_subqueries", "kind": "module", "doc": "

\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": "

Rewrite derived tables as CTES, deduplicating if possible.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT a FROM (SELECT * FROM x) AS y")\n>>> eliminate_subqueries(expression).sql()\n'WITH y AS (SELECT * FROM x) SELECT a FROM y AS y'\n
\n
\n
\n\n
This also deduplicates common subqueries:
\n\n
\n
\n
>>> expression = sqlglot.parse_one("SELECT a FROM (SELECT * FROM x) AS y CROSS JOIN (SELECT * FROM x) AS z")\n>>> eliminate_subqueries(expression).sql()\n'WITH y AS (SELECT * FROM x) SELECT a FROM y AS y CROSS JOIN y AS z'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.isolate_table_selects": {"fullname": "sqlglot.optimizer.isolate_table_selects", "modulename": "sqlglot.optimizer.isolate_table_selects", "kind": "module", "doc": "

\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": "

\n", "signature": "(expression, schema=None):", "funcdef": "def"}, "sqlglot.optimizer.lower_identities": {"fullname": "sqlglot.optimizer.lower_identities", "modulename": "sqlglot.optimizer.lower_identities", "kind": "module", "doc": "

\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": "

Convert all unquoted identifiers to lower case.

\n\n

Assuming the schema is all lower case, this essentially makes identifiers case-insensitive.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one('SELECT Bar.A AS A FROM "Foo".Bar')\n>>> lower_identities(expression).sql()\n'SELECT bar.a AS A FROM "Foo".bar'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to quote
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: quoted expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.merge_subqueries": {"fullname": "sqlglot.optimizer.merge_subqueries", "modulename": "sqlglot.optimizer.merge_subqueries", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to merge derived tables into the outer query.

\n\n

This also merges CTEs if they are selected from only once.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT a FROM (SELECT x.a FROM x) CROSS JOIN y")\n>>> merge_subqueries(expression).sql()\n'SELECT x.a FROM x CROSS JOIN y'\n
\n
\n
\n\n

If leave_tables_isolated is True, this will not merge inner queries into outer\nqueries if it would result in multiple table selects in a single query:

\n\n
\n
\n
\n

expression = sqlglot.parse_one(\"SELECT a FROM (SELECT x.a FROM x) CROSS JOIN y\")\n merge_subqueries(expression, leave_tables_isolated=True).sql()\n 'SELECT a FROM (SELECT x.a FROM x) CROSS JOIN y'

\n
\n
\n
\n\n

Inspired by https://dev.mysql.com/doc/refman/8.0/en/derived-table-optimization.html

\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
  • leave_tables_isolated (bool):
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression, leave_tables_isolated=False):", "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": "

\n", "signature": "(expression, leave_tables_isolated=False):", "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": "

\n", "signature": "(expression, leave_tables_isolated=False):", "funcdef": "def"}, "sqlglot.optimizer.normalize": {"fullname": "sqlglot.optimizer.normalize", "modulename": "sqlglot.optimizer.normalize", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.normalize.normalize": {"fullname": "sqlglot.optimizer.normalize.normalize", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalize", "kind": "function", "doc": "

Rewrite sqlglot AST into conjunctive normal form or disjunctive normal form.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("(x AND y) OR z")\n>>> normalize(expression, dnf=False).sql()\n'(x OR z) AND (y OR z)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: expression to normalize
  • \n
  • dnf: rewrite in disjunctive normal form instead.
  • \n
  • max_distance (int): the maximal estimated distance from cnf/dnf to attempt conversion
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: normalized expression

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tdnf: bool = False,\tmax_distance: int = 128):", "funcdef": "def"}, "sqlglot.optimizer.normalize.normalized": {"fullname": "sqlglot.optimizer.normalize.normalized", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalized", "kind": "function", "doc": "

\n", "signature": "(expression, dnf=False):", "funcdef": "def"}, "sqlglot.optimizer.normalize.normalization_distance": {"fullname": "sqlglot.optimizer.normalize.normalization_distance", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalization_distance", "kind": "function", "doc": "

The difference in the number of predicates between the current expression and the normalized form.

\n\n

This is used as an estimate of the cost of the conversion which is exponential in complexity.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("(a AND b) OR (c AND d)")\n>>> normalization_distance(expression)\n4\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to compute distance
  • \n
  • dnf (bool): compute to dnf distance instead
  • \n
\n\n
Returns:
\n\n
\n

int: difference

\n
\n", "signature": "(expression, dnf=False):", "funcdef": "def"}, "sqlglot.optimizer.normalize.distributive_law": {"fullname": "sqlglot.optimizer.normalize.distributive_law", "modulename": "sqlglot.optimizer.normalize", "qualname": "distributive_law", "kind": "function", "doc": "

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)

\n", "signature": "(expression, dnf, max_distance, generate):", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins": {"fullname": "sqlglot.optimizer.optimize_joins", "modulename": "sqlglot.optimizer.optimize_joins", "kind": "module", "doc": "

\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": "

Removes cross joins if possible and reorder joins based on predicate dependencies.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> optimize_joins(parse_one("SELECT * FROM x CROSS JOIN y JOIN z ON x.a = z.a AND y.a = z.a")).sql()\n'SELECT * FROM x JOIN z ON x.a = z.a AND TRUE JOIN y ON y.a = z.a'\n
\n
\n
\n", "signature": "(expression):", "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": "

Reorder joins by topological sort order based on predicate references.

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins.normalize": {"fullname": "sqlglot.optimizer.optimize_joins.normalize", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "normalize", "kind": "function", "doc": "

Remove INNER and OUTER from joins as they are optional.

\n", "signature": "(expression):", "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": "

\n", "signature": "(join, exclude):", "funcdef": "def"}, "sqlglot.optimizer.optimizer": {"fullname": "sqlglot.optimizer.optimizer", "modulename": "sqlglot.optimizer.optimizer", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.optimizer.optimize": {"fullname": "sqlglot.optimizer.optimizer.optimize", "modulename": "sqlglot.optimizer.optimizer", "qualname": "optimize", "kind": "function", "doc": "

Rewrite a sqlglot AST into an optimized form.

\n\n
Arguments:
\n\n
    \n
  • expression: expression to optimize
  • \n
  • schema: database schema.\nThis can either be an instance of sqlglot.optimizer.Schema 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 sqlgot.schema will be used
  • \n
  • db: specify the default database, as might be set by a USE DATABASE db statement
  • \n
  • catalog: specify the default catalog, as might be set by a USE CATALOG c statement
  • \n
  • dialect: The dialect to parse the sql string.
  • \n
  • rules: 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!
  • \n
  • *kwargs: If a rule has a keyword argument with a same name in *kwargs, it will be passed in.
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(\texpression: str | sqlglot.expressions.Expression,\tschema: Union[dict, sqlglot.schema.Schema, NoneType] = None,\tdb: Optional[str] = None,\tcatalog: Optional[str] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\trules: Sequence[Callable] = (<function lower_identities at 0x7f0af2fc76d0>, <function qualify_tables at 0x7f0af2fa1d80>, <function isolate_table_selects at 0x7f0af2fc7370>, <function qualify_columns at 0x7f0af2fa0c10>, <function pushdown_projections at 0x7f0af2fa1750>, <function validate_qualify_columns at 0x7f0af2fa0ca0>, <function normalize at 0x7f0af2fc5630>, <function unnest_subqueries at 0x7f0af2fa1e10>, <function pushdown_predicates at 0x7f0af2fa0700>, <function optimize_joins at 0x7f0af2fa03a0>, <function eliminate_subqueries at 0x7f0af2fc72e0>, <function merge_subqueries at 0x7f0af2fc79a0>, <function eliminate_joins at 0x7f0af2fc53f0>, <function eliminate_ctes at 0x7f0af2fc52d0>, <function annotate_types at 0x7f0af2ff9a20>, <function canonicalize at 0x7f0af2fc4d30>, <function simplify at 0x7f0af2fc57e0>),\t**kwargs):", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates": {"fullname": "sqlglot.optimizer.pushdown_predicates", "modulename": "sqlglot.optimizer.pushdown_predicates", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to pushdown predicates in FROMS and JOINS

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sql = "SELECT * FROM (SELECT * FROM x AS x) AS y WHERE y.a = 1"\n>>> expression = sqlglot.parse_one(sql)\n>>> pushdown_predicates(expression).sql()\n'SELECT * FROM (SELECT * FROM x AS x WHERE y.a = 1) AS y WHERE TRUE'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown", "kind": "function", "doc": "

\n", "signature": "(condition, sources, scope_ref_count):", "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": "

If the predicates are in CNF like form, we can simply replace each block in the parent.

\n", "signature": "(predicates, scope, scope_ref_count):", "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": "

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.

\n", "signature": "(predicates, scope, scope_ref_count):", "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": "

\n", "signature": "(predicate, sources, scope_ref_count):", "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": "

\n", "signature": "(source, predicate):", "funcdef": "def"}, "sqlglot.optimizer.pushdown_projections": {"fullname": "sqlglot.optimizer.pushdown_projections", "modulename": "sqlglot.optimizer.pushdown_projections", "kind": "module", "doc": "

\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": "

\n", "signature": "():", "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": "

Rewrite sqlglot AST to remove unused columns projections.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a, x.b AS b FROM x) AS y"\n>>> expression = sqlglot.parse_one(sql)\n>>> pushdown_projections(expression).sql()\n'SELECT y.a AS a FROM (SELECT x.a AS a FROM x) AS y'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
  • remove_unused_selections (bool): remove selects that are unused
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression, schema=None, remove_unused_selections=True):", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns": {"fullname": "sqlglot.optimizer.qualify_columns", "modulename": "sqlglot.optimizer.qualify_columns", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to have fully qualified columns.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> schema = {"tbl": {"col": "INT"}}\n>>> expression = sqlglot.parse_one("SELECT col FROM tbl")\n>>> qualify_columns(expression, schema).sql()\n'SELECT tbl.col AS col FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: expression to qualify
  • \n
  • schema: Database schema
  • \n
  • expand_alias_refs: whether or not to expand references to aliases
  • \n
  • infer_schema: whether or not to infer the schema if missing
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: qualified expression

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tschema: dict | sqlglot.schema.Schema,\texpand_alias_refs: bool = True,\tinfer_schema: Optional[bool] = None) -> sqlglot.expressions.Expression:", "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": "

Raise an OptimizeError if any columns aren't qualified

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns.Resolver": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver", "kind": "class", "doc": "

Helper for resolving columns.

\n\n

This is a class so we can lazily load some things and easily share them across functions.

\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": "

\n", "signature": "(scope, schema, infer_schema: bool = True)"}, "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": "

Get the table for a column name.

\n\n
Arguments:
\n\n
    \n
  • column_name: The column name to find the table for.
  • \n
\n\n
Returns:
\n\n
\n

The table name if it can be found/inferred.

\n
\n", "signature": "(self, column_name: str) -> Optional[sqlglot.expressions.Identifier]:", "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": "

All available columns of all sources in this scope

\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": "

Resolve the source columns for a given source name

\n", "signature": "(self, name, only_visible=False):", "funcdef": "def"}, "sqlglot.optimizer.qualify_tables": {"fullname": "sqlglot.optimizer.qualify_tables", "modulename": "sqlglot.optimizer.qualify_tables", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to have fully qualified tables. Additionally, this\nreplaces \"join constructs\" (*) by equivalent SELECT * subqueries.

\n\n
Examples:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT 1 FROM tbl")\n>>> qualify_tables(expression, db="db").sql()\n'SELECT 1 FROM db.tbl AS tbl'\n>>>\n>>> expression = sqlglot.parse_one("SELECT * FROM (tbl1 JOIN tbl2 ON id1 = id2)")\n>>> qualify_tables(expression).sql()\n'SELECT * FROM (SELECT * FROM tbl1 AS tbl1 JOIN tbl2 AS tbl2 ON id1 = id2) AS _q_0'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to qualify
  • \n
  • db (str): Database name
  • \n
  • catalog (str): Catalog name
  • \n
  • schema: A schema to populate
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: qualified expression

\n
\n\n

(*) See section 7.2.1.2 in https://www.postgresql.org/docs/current/queries-table-expressions.html

\n", "signature": "(expression, db=None, catalog=None, schema=None):", "funcdef": "def"}, "sqlglot.optimizer.scope": {"fullname": "sqlglot.optimizer.scope", "modulename": "sqlglot.optimizer.scope", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.scope.ScopeType": {"fullname": "sqlglot.optimizer.scope.ScopeType", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType", "kind": "class", "doc": "

An enumeration.

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<ScopeType.UDTF: 6>"}, "sqlglot.optimizer.scope.Scope": {"fullname": "sqlglot.optimizer.scope.Scope", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope", "kind": "class", "doc": "

Selection scope.

\n\n
Attributes:
\n\n
    \n
  • expression (exp.Select|exp.Union): Root expression of this scope
  • \n
  • sources (dict[str, exp.Table|Scope]): 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(...)}
  • \n
  • lateral_sources (dict[str, exp.Table|Scope]): 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.
  • \n
  • outer_column_list (list[str]): 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 [\"col1\", \"col2\"] for its outer_column_list
  • \n
  • parent (Scope): Parent scope
  • \n
  • scope_type (ScopeType): Type of this scope, relative to it's parent
  • \n
  • subquery_scopes (list[Scope]): List of all child scopes for subqueries
  • \n
  • cte_scopes (list[Scope]): List of all child scopes for CTEs
  • \n
  • derived_table_scopes (list[Scope]): List of all child scopes for derived_tables
  • \n
  • udtf_scopes (list[Scope]): List of all child scopes for user defined tabular functions
  • \n
  • table_scopes (list[Scope]): derived_table_scopes + udtf_scopes, in the order that they're defined
  • \n
  • union_scopes (list[Scope, Scope]): If this Scope is for a Union expression, this will be\na list of the left and right child scopes.
  • \n
\n"}, "sqlglot.optimizer.scope.Scope.__init__": {"fullname": "sqlglot.optimizer.scope.Scope.__init__", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.__init__", "kind": "function", "doc": "

\n", "signature": "(\texpression,\tsources=None,\touter_column_list=None,\tparent=None,\tscope_type=<ScopeType.ROOT: 1>,\tlateral_sources=None)"}, "sqlglot.optimizer.scope.Scope.clear_cache": {"fullname": "sqlglot.optimizer.scope.Scope.clear_cache", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.clear_cache", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.branch": {"fullname": "sqlglot.optimizer.scope.Scope.branch", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.branch", "kind": "function", "doc": "

Branch from the current scope to a new, inner scope

\n", "signature": "(self, expression, scope_type, chain_sources=None, **kwargs):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.walk": {"fullname": "sqlglot.optimizer.scope.Scope.walk", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.walk", "kind": "function", "doc": "

\n", "signature": "(self, bfs=True):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.find": {"fullname": "sqlglot.optimizer.scope.Scope.find", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.find", "kind": "function", "doc": "

Returns the first node in this scope which matches at least one of the specified types.

\n\n

This does NOT traverse into subscopes.

\n\n
Arguments:
\n\n
    \n
  • expression_types (type): the expression type(s) to match.
  • \n
  • bfs (bool): True to use breadth-first search, False to use depth-first.
  • \n
\n\n
Returns:
\n\n
\n

exp.Expression: the node which matches the criteria or None if no node matching\n the criteria was found.

\n
\n", "signature": "(self, *expression_types, bfs=True):", "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": "

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.

\n\n

This does NOT traverse into subscopes.

\n\n
Arguments:
\n\n
    \n
  • expression_types (type): the expression type(s) to match.
  • \n
  • bfs (bool): True to use breadth-first search, False to use depth-first.
  • \n
\n\n
Yields:
\n\n
\n

exp.Expression: nodes

\n
\n", "signature": "(self, *expression_types, bfs=True):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.replace": {"fullname": "sqlglot.optimizer.scope.Scope.replace", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.replace", "kind": "function", "doc": "

Replace old with new.

\n\n

This can be used instead of exp.Expression.replace to ensure the Scope is kept up-to-date.

\n\n
Arguments:
\n\n
    \n
  • old (exp.Expression): old node
  • \n
  • new (exp.Expression): new node
  • \n
\n", "signature": "(self, old, new):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.tables": {"fullname": "sqlglot.optimizer.scope.Scope.tables", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.tables", "kind": "variable", "doc": "

List of tables in this scope.

\n\n
Returns:
\n\n
\n

list[exp.Table]: tables

\n
\n"}, "sqlglot.optimizer.scope.Scope.ctes": {"fullname": "sqlglot.optimizer.scope.Scope.ctes", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.ctes", "kind": "variable", "doc": "

List of CTEs in this scope.

\n\n
Returns:
\n\n
\n

list[exp.CTE]: ctes

\n
\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": "

List of derived tables in this scope.

\n\n
For example:
\n\n
\n

SELECT * FROM (SELECT ...) <- that's a derived table

\n
\n\n
Returns:
\n\n
\n

list[exp.Subquery]: derived tables

\n
\n"}, "sqlglot.optimizer.scope.Scope.udtfs": {"fullname": "sqlglot.optimizer.scope.Scope.udtfs", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.udtfs", "kind": "variable", "doc": "

List of \"User Defined Tabular Functions\" in this scope.

\n\n
Returns:
\n\n
\n

list[exp.UDTF]: UDTFs

\n
\n"}, "sqlglot.optimizer.scope.Scope.subqueries": {"fullname": "sqlglot.optimizer.scope.Scope.subqueries", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.subqueries", "kind": "variable", "doc": "

List of subqueries in this scope.

\n\n
For example:
\n\n
\n

SELECT * FROM x WHERE a IN (SELECT ...) <- that's a subquery

\n
\n\n
Returns:
\n\n
\n

list[exp.Subqueryable]: subqueries

\n
\n"}, "sqlglot.optimizer.scope.Scope.columns": {"fullname": "sqlglot.optimizer.scope.Scope.columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.columns", "kind": "variable", "doc": "

List of columns in this scope.

\n\n
Returns:
\n\n
\n

list[exp.Column]: Column instances in this scope, plus any\n Columns that reference this scope from correlated subqueries.

\n
\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": "

Mapping of nodes and sources that are actually selected from in this scope.

\n\n

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.

\n\n
Returns:
\n\n
\n

dict[str, (exp.Table|exp.Select, exp.Table|Scope)]: selected sources and nodes

\n
\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": "

Sources that are CTEs.

\n\n
Returns:
\n\n
\n

dict[str, Scope]: Mapping of source alias to Scope

\n
\n"}, "sqlglot.optimizer.scope.Scope.selects": {"fullname": "sqlglot.optimizer.scope.Scope.selects", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.selects", "kind": "variable", "doc": "

Select expressions of this scope.

\n\n

For example, for the following expression:\n SELECT 1 as a, 2 as b FROM x

\n\n

The outputs are the \"1 as a\" and \"2 as b\" expressions.

\n\n
Returns:
\n\n
\n

list[exp.Expression]: expressions

\n
\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": "

Columns that appear to reference sources in outer scopes.

\n\n
Returns:
\n\n
\n

list[exp.Column]: Column instances that don't reference\n sources in the current scope.

\n
\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": "

Unqualified columns in the current scope.

\n\n
Returns:
\n\n
\n

list[exp.Column]: Unqualified columns

\n
\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": "

Hints that exist in the scope that reference tables

\n\n
Returns:
\n\n
\n

list[exp.JoinHint]: Join hints that are referenced within the scope

\n
\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": "

Get all columns in the current scope for a particular source.

\n\n
Arguments:
\n\n
    \n
  • source_name (str): Name of the source
  • \n
\n\n
Returns:
\n\n
\n

list[exp.Column]: Column instances that reference source_name

\n
\n", "signature": "(self, source_name):", "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": "

Determine if this scope is a subquery

\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": "

Determine if this scope is a derived table

\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": "

Determine if this scope is a union

\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": "

Determine if this scope is a common table expression

\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": "

Determine if this is the root scope

\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": "

Determine if this scope is a UDTF (User Defined Table Function)

\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": "

Determine if this scope is a correlated subquery

\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": "

Rename a source in this scope

\n", "signature": "(self, old_name, new_name):", "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": "

Add a source to this scope

\n", "signature": "(self, name, source):", "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": "

Remove a source from this scope

\n", "signature": "(self, name):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.traverse": {"fullname": "sqlglot.optimizer.scope.Scope.traverse", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.traverse", "kind": "function", "doc": "

Traverse the scope tree from this node.

\n\n
Yields:
\n\n
\n

Scope: scope instances in depth-first-search post-order

\n
\n", "signature": "(self):", "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": "

Count the number of times each scope in this tree is referenced.

\n\n
Returns:
\n\n
\n

dict[int, int]: Mapping of Scope instance ID to reference count

\n
\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.optimizer.scope.traverse_scope": {"fullname": "sqlglot.optimizer.scope.traverse_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "traverse_scope", "kind": "function", "doc": "

Traverse an expression by it's \"scopes\".

\n\n

\"Scope\" represents the current context of a Select statement.

\n\n

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.

\n\n
Examples:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT a FROM (SELECT a FROM x) AS y")\n>>> scopes = traverse_scope(expression)\n>>> scopes[0].expression.sql(), list(scopes[0].sources)\n('SELECT a FROM x', ['x'])\n>>> scopes[1].expression.sql(), list(scopes[1].sources)\n('SELECT a FROM (SELECT a FROM x) AS y', ['y'])\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (exp.Expression): expression to traverse
  • \n
\n\n
Returns:
\n\n
\n

list[Scope]: scope instances

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> List[sqlglot.optimizer.scope.Scope]:", "funcdef": "def"}, "sqlglot.optimizer.scope.build_scope": {"fullname": "sqlglot.optimizer.scope.build_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "build_scope", "kind": "function", "doc": "

Build a scope tree.

\n\n
Arguments:
\n\n
    \n
  • expression (exp.Expression): expression to build the scope tree for
  • \n
\n\n
Returns:
\n\n
\n

Scope: root scope

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> Optional[sqlglot.optimizer.scope.Scope]:", "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": "

Returns a generator object which visits all nodes in the syntrax tree, stopping at\nnodes that start child scopes.

\n\n
Arguments:
\n\n
    \n
  • expression (exp.Expression):
  • \n
  • bfs (bool): if set to True the BFS traversal order will be applied,\notherwise the DFS traversal will be used instead.
  • \n
\n\n
Yields:
\n\n
\n

tuple[exp.Expression, Optional[exp.Expression], str]: node, parent, arg key

\n
\n", "signature": "(expression, bfs=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify": {"fullname": "sqlglot.optimizer.simplify", "modulename": "sqlglot.optimizer.simplify", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.simplify.simplify": {"fullname": "sqlglot.optimizer.simplify.simplify", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify", "kind": "function", "doc": "

Rewrite sqlglot AST to simplify expressions.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("TRUE AND TRUE")\n>>> simplify(expression).sql()\n'TRUE'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to simplify
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: simplified expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.rewrite_between": {"fullname": "sqlglot.optimizer.simplify.rewrite_between", "modulename": "sqlglot.optimizer.simplify", "qualname": "rewrite_between", "kind": "function", "doc": "

Rewrite x between y and z to x >= y AND x <= z.

\n\n

This is done because comparison simplification is only done on lt/lte/gt/gte.

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_not": {"fullname": "sqlglot.optimizer.simplify.simplify_not", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_not", "kind": "function", "doc": "

Demorgan's Law\nNOT (x OR y) -> NOT x AND NOT y\nNOT (x AND y) -> NOT x OR NOT y

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.flatten": {"fullname": "sqlglot.optimizer.simplify.flatten", "modulename": "sqlglot.optimizer.simplify", "qualname": "flatten", "kind": "function", "doc": "

A AND (B AND C) -> A AND B AND C\nA OR (B OR C) -> A OR B OR C

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_connectors": {"fullname": "sqlglot.optimizer.simplify.simplify_connectors", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_connectors", "kind": "function", "doc": "

\n", "signature": "(expression, root=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify.remove_compliments": {"fullname": "sqlglot.optimizer.simplify.remove_compliments", "modulename": "sqlglot.optimizer.simplify", "qualname": "remove_compliments", "kind": "function", "doc": "

Removing compliments.

\n\n

A AND NOT A -> FALSE\nA OR NOT A -> TRUE

\n", "signature": "(expression, root=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify.uniq_sort": {"fullname": "sqlglot.optimizer.simplify.uniq_sort", "modulename": "sqlglot.optimizer.simplify", "qualname": "uniq_sort", "kind": "function", "doc": "

Uniq and sort a connector.

\n\n

C AND A AND B AND B -> A AND B AND C

\n", "signature": "(expression, generate, root=True):", "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": "

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

\n", "signature": "(expression, root=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_literals": {"fullname": "sqlglot.optimizer.simplify.simplify_literals", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_literals", "kind": "function", "doc": "

\n", "signature": "(expression, root=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_parens": {"fullname": "sqlglot.optimizer.simplify.simplify_parens", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_parens", "kind": "function", "doc": "

\n", "signature": "(expression):", "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": "

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.always_true": {"fullname": "sqlglot.optimizer.simplify.always_true", "modulename": "sqlglot.optimizer.simplify", "qualname": "always_true", "kind": "function", "doc": "

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.is_complement": {"fullname": "sqlglot.optimizer.simplify.is_complement", "modulename": "sqlglot.optimizer.simplify", "qualname": "is_complement", "kind": "function", "doc": "

\n", "signature": "(a, b):", "funcdef": "def"}, "sqlglot.optimizer.simplify.is_false": {"fullname": "sqlglot.optimizer.simplify.is_false", "modulename": "sqlglot.optimizer.simplify", "qualname": "is_false", "kind": "function", "doc": "

\n", "signature": "(a: sqlglot.expressions.Expression) -> bool:", "funcdef": "def"}, "sqlglot.optimizer.simplify.is_null": {"fullname": "sqlglot.optimizer.simplify.is_null", "modulename": "sqlglot.optimizer.simplify", "qualname": "is_null", "kind": "function", "doc": "

\n", "signature": "(a: sqlglot.expressions.Expression) -> bool:", "funcdef": "def"}, "sqlglot.optimizer.simplify.eval_boolean": {"fullname": "sqlglot.optimizer.simplify.eval_boolean", "modulename": "sqlglot.optimizer.simplify", "qualname": "eval_boolean", "kind": "function", "doc": "

\n", "signature": "(expression, a, b):", "funcdef": "def"}, "sqlglot.optimizer.simplify.extract_date": {"fullname": "sqlglot.optimizer.simplify.extract_date", "modulename": "sqlglot.optimizer.simplify", "qualname": "extract_date", "kind": "function", "doc": "

\n", "signature": "(cast):", "funcdef": "def"}, "sqlglot.optimizer.simplify.extract_interval": {"fullname": "sqlglot.optimizer.simplify.extract_interval", "modulename": "sqlglot.optimizer.simplify", "qualname": "extract_interval", "kind": "function", "doc": "

\n", "signature": "(interval):", "funcdef": "def"}, "sqlglot.optimizer.simplify.date_literal": {"fullname": "sqlglot.optimizer.simplify.date_literal", "modulename": "sqlglot.optimizer.simplify", "qualname": "date_literal", "kind": "function", "doc": "

\n", "signature": "(date):", "funcdef": "def"}, "sqlglot.optimizer.simplify.boolean_literal": {"fullname": "sqlglot.optimizer.simplify.boolean_literal", "modulename": "sqlglot.optimizer.simplify", "qualname": "boolean_literal", "kind": "function", "doc": "

\n", "signature": "(condition):", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries": {"fullname": "sqlglot.optimizer.unnest_subqueries", "modulename": "sqlglot.optimizer.unnest_subqueries", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to convert some predicates with subqueries into joins.

\n\n

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.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT * FROM x AS x WHERE (SELECT y.a AS a FROM y AS y WHERE x.a = y.a) = 1 ")\n>>> unnest_subqueries(expression).sql()\n'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'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to unnest
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: unnested expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries.unnest": {"fullname": "sqlglot.optimizer.unnest_subqueries.unnest", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "unnest", "kind": "function", "doc": "

\n", "signature": "(select, parent_select, sequence):", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"fullname": "sqlglot.optimizer.unnest_subqueries.decorrelate", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "decorrelate", "kind": "function", "doc": "

\n", "signature": "(select, parent_select, external_columns, sequence):", "funcdef": "def"}, "sqlglot.parser": {"fullname": "sqlglot.parser", "modulename": "sqlglot.parser", "kind": "module", "doc": "

\n"}, "sqlglot.parser.parse_var_map": {"fullname": "sqlglot.parser.parse_var_map", "modulename": "sqlglot.parser", "qualname": "parse_var_map", "kind": "function", "doc": "

\n", "signature": "(args: List) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.parser.parse_like": {"fullname": "sqlglot.parser.parse_like", "modulename": "sqlglot.parser", "qualname": "parse_like", "kind": "function", "doc": "

\n", "signature": "(args: List) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.parser.binary_range_parser": {"fullname": "sqlglot.parser.binary_range_parser", "modulename": "sqlglot.parser", "qualname": "binary_range_parser", "kind": "function", "doc": "

\n", "signature": "(\texpr_type: Type[sqlglot.expressions.Expression]) -> Callable[[sqlglot.parser.Parser, Optional[sqlglot.expressions.Expression]], Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.parser.Parser": {"fullname": "sqlglot.parser.Parser", "modulename": "sqlglot.parser", "qualname": "Parser", "kind": "class", "doc": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.RAISE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\n"}, "sqlglot.parser.Parser.__init__": {"fullname": "sqlglot.parser.Parser.__init__", "modulename": "sqlglot.parser", "qualname": "Parser.__init__", "kind": "function", "doc": "

\n", "signature": "(\terror_level: Optional[sqlglot.errors.ErrorLevel] = None,\terror_message_context: int = 100,\tindex_offset: int = 0,\tunnest_column_only: bool = False,\talias_post_tablesample: bool = False,\tmax_errors: int = 3,\tnull_ordering: Optional[str] = None)"}, "sqlglot.parser.Parser.reset": {"fullname": "sqlglot.parser.Parser.reset", "modulename": "sqlglot.parser", "qualname": "Parser.reset", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.parser.Parser.parse": {"fullname": "sqlglot.parser.Parser.parse", "modulename": "sqlglot.parser", "qualname": "Parser.parse", "kind": "function", "doc": "

Parses a list of tokens and returns a list of syntax trees, one tree\nper parsed SQL statement.

\n\n
Arguments:
\n\n
    \n
  • raw_tokens: the list of tokens.
  • \n
  • sql: the original SQL string, used to produce helpful debug messages.
  • \n
\n\n
Returns:
\n\n
\n

The list of syntax trees.

\n
\n", "signature": "(\tself,\traw_tokens: List[sqlglot.tokens.Token],\tsql: Optional[str] = None) -> List[Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.parser.Parser.parse_into": {"fullname": "sqlglot.parser.Parser.parse_into", "modulename": "sqlglot.parser", "qualname": "Parser.parse_into", "kind": "function", "doc": "

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.

\n\n
Arguments:
\n\n
    \n
  • expression_types: the expression type(s) to try and parse the token list into.
  • \n
  • raw_tokens: the list of tokens.
  • \n
  • sql: the original SQL string, used to produce helpful debug messages.
  • \n
\n\n
Returns:
\n\n
\n

The target Expression.

\n
\n", "signature": "(\tself,\texpression_types: Union[str, Type[sqlglot.expressions.Expression], Collection[Union[str, Type[sqlglot.expressions.Expression]]]],\traw_tokens: List[sqlglot.tokens.Token],\tsql: Optional[str] = None) -> List[Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.parser.Parser.check_errors": {"fullname": "sqlglot.parser.Parser.check_errors", "modulename": "sqlglot.parser", "qualname": "Parser.check_errors", "kind": "function", "doc": "

Logs or raises any found errors, depending on the chosen error level setting.

\n", "signature": "(self) -> None:", "funcdef": "def"}, "sqlglot.parser.Parser.raise_error": {"fullname": "sqlglot.parser.Parser.raise_error", "modulename": "sqlglot.parser", "qualname": "Parser.raise_error", "kind": "function", "doc": "

Appends an error in the list of recorded errors or raises it, depending on the chosen\nerror level setting.

\n", "signature": "(self, message: str, token: Optional[sqlglot.tokens.Token] = None) -> None:", "funcdef": "def"}, "sqlglot.parser.Parser.expression": {"fullname": "sqlglot.parser.Parser.expression", "modulename": "sqlglot.parser", "qualname": "Parser.expression", "kind": "function", "doc": "

Creates a new, validated Expression.

\n\n
Arguments:
\n\n
    \n
  • exp_class: the expression class to instantiate.
  • \n
  • comments: an optional list of comments to attach to the expression.
  • \n
  • kwargs: the arguments to set for the expression along with their respective values.
  • \n
\n\n
Returns:
\n\n
\n

The target expression.

\n
\n", "signature": "(\tself,\texp_class: Type[~E],\tcomments: Optional[List[str]] = None,\t**kwargs) -> ~E:", "funcdef": "def"}, "sqlglot.parser.Parser.validate_expression": {"fullname": "sqlglot.parser.Parser.validate_expression", "modulename": "sqlglot.parser", "qualname": "Parser.validate_expression", "kind": "function", "doc": "

Validates an already instantiated expression, making sure that all its mandatory arguments\nare set.

\n\n
Arguments:
\n\n
    \n
  • expression: the expression to validate.
  • \n
  • args: an optional list of items that was used to instantiate the expression, if it's a Func.
  • \n
\n", "signature": "(\tself,\texpression: sqlglot.expressions.Expression,\targs: Optional[List] = None) -> None:", "funcdef": "def"}, "sqlglot.planner": {"fullname": "sqlglot.planner", "modulename": "sqlglot.planner", "kind": "module", "doc": "

\n"}, "sqlglot.planner.Plan": {"fullname": "sqlglot.planner.Plan", "modulename": "sqlglot.planner", "qualname": "Plan", "kind": "class", "doc": "

\n"}, "sqlglot.planner.Plan.__init__": {"fullname": "sqlglot.planner.Plan.__init__", "modulename": "sqlglot.planner", "qualname": "Plan.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression)"}, "sqlglot.planner.Step": {"fullname": "sqlglot.planner.Step", "modulename": "sqlglot.planner", "qualname": "Step", "kind": "class", "doc": "

\n"}, "sqlglot.planner.Step.from_expression": {"fullname": "sqlglot.planner.Step.from_expression", "modulename": "sqlglot.planner", "qualname": "Step.from_expression", "kind": "function", "doc": "

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:

\n\n

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

\n\n

the following DAG is produced (the expression IDs might differ per execution):

\n\n
    \n
  • Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n
      \n
    • x.a
    • \n
    • \"x\".\"\"\nDependencies:\n
        \n
      • Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:
      • \n
    • \n
    • Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:
    • \n
    • Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:
    • \n
  • \n
\n\n
Arguments:
\n\n
    \n
  • expression: the expression to build the DAG from.
  • \n
  • ctes: a dictionary that maps CTEs to their corresponding Step DAG by name.
  • \n
\n\n
Returns:
\n\n
\n

A Step DAG corresponding to expression.

\n
\n", "signature": "(\tcls,\texpression: sqlglot.expressions.Expression,\tctes: Optional[Dict[str, sqlglot.planner.Step]] = None) -> sqlglot.planner.Step:", "funcdef": "def"}, "sqlglot.planner.Step.add_dependency": {"fullname": "sqlglot.planner.Step.add_dependency", "modulename": "sqlglot.planner", "qualname": "Step.add_dependency", "kind": "function", "doc": "

\n", "signature": "(self, dependency: sqlglot.planner.Step) -> None:", "funcdef": "def"}, "sqlglot.planner.Step.to_s": {"fullname": "sqlglot.planner.Step.to_s", "modulename": "sqlglot.planner", "qualname": "Step.to_s", "kind": "function", "doc": "

\n", "signature": "(self, level: int = 0) -> str:", "funcdef": "def"}, "sqlglot.planner.Scan": {"fullname": "sqlglot.planner.Scan", "modulename": "sqlglot.planner", "qualname": "Scan", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.Scan.from_expression": {"fullname": "sqlglot.planner.Scan.from_expression", "modulename": "sqlglot.planner", "qualname": "Scan.from_expression", "kind": "function", "doc": "

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:

\n\n

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

\n\n

the following DAG is produced (the expression IDs might differ per execution):

\n\n
    \n
  • Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n
      \n
    • x.a
    • \n
    • \"x\".\"\"\nDependencies:\n
        \n
      • Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:
      • \n
    • \n
    • Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:
    • \n
    • Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:
    • \n
  • \n
\n\n
Arguments:
\n\n
    \n
  • expression: the expression to build the DAG from.
  • \n
  • ctes: a dictionary that maps CTEs to their corresponding Step DAG by name.
  • \n
\n\n
Returns:
\n\n
\n

A Step DAG corresponding to expression.

\n
\n", "signature": "(\tcls,\texpression: sqlglot.expressions.Expression,\tctes: Optional[Dict[str, sqlglot.planner.Step]] = None) -> sqlglot.planner.Step:", "funcdef": "def"}, "sqlglot.planner.Join": {"fullname": "sqlglot.planner.Join", "modulename": "sqlglot.planner", "qualname": "Join", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.Join.from_joins": {"fullname": "sqlglot.planner.Join.from_joins", "modulename": "sqlglot.planner", "qualname": "Join.from_joins", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tjoins: Iterable[sqlglot.expressions.Join],\tctes: Optional[Dict[str, sqlglot.planner.Step]] = None) -> sqlglot.planner.Step:", "funcdef": "def"}, "sqlglot.planner.Aggregate": {"fullname": "sqlglot.planner.Aggregate", "modulename": "sqlglot.planner", "qualname": "Aggregate", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.Sort": {"fullname": "sqlglot.planner.Sort", "modulename": "sqlglot.planner", "qualname": "Sort", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.SetOperation": {"fullname": "sqlglot.planner.SetOperation", "modulename": "sqlglot.planner", "qualname": "SetOperation", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.SetOperation.__init__": {"fullname": "sqlglot.planner.SetOperation.__init__", "modulename": "sqlglot.planner", "qualname": "SetOperation.__init__", "kind": "function", "doc": "

\n", "signature": "(\top: Type[sqlglot.expressions.Expression],\tleft: str | None,\tright: str | None,\tdistinct: bool = False)"}, "sqlglot.planner.SetOperation.from_expression": {"fullname": "sqlglot.planner.SetOperation.from_expression", "modulename": "sqlglot.planner", "qualname": "SetOperation.from_expression", "kind": "function", "doc": "

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:

\n\n

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

\n\n

the following DAG is produced (the expression IDs might differ per execution):

\n\n
    \n
  • Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n
      \n
    • x.a
    • \n
    • \"x\".\"\"\nDependencies:\n
        \n
      • Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:
      • \n
    • \n
    • Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:
    • \n
    • Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:
    • \n
  • \n
\n\n
Arguments:
\n\n
    \n
  • expression: the expression to build the DAG from.
  • \n
  • ctes: a dictionary that maps CTEs to their corresponding Step DAG by name.
  • \n
\n\n
Returns:
\n\n
\n

A Step DAG corresponding to expression.

\n
\n", "signature": "(\tcls,\texpression: sqlglot.expressions.Expression,\tctes: Optional[Dict[str, sqlglot.planner.Step]] = None) -> sqlglot.planner.Step:", "funcdef": "def"}, "sqlglot.schema.Schema": {"fullname": "sqlglot.schema.Schema", "modulename": "sqlglot.schema", "qualname": "Schema", "kind": "class", "doc": "

Abstract base class for database schemas

\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": "

Register or update a table. Some implementing classes may require column information to also be provided.

\n\n
Arguments:
\n\n
    \n
  • table: the Table expression instance or string representing the table.
  • \n
  • column_mapping: a column mapping that describes the structure of the table.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tcolumn_mapping: Union[Dict, str, sqlglot.dataframe.sql.types.StructType, List, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> None:", "funcdef": "def"}, "sqlglot.schema.Schema.column_names": {"fullname": "sqlglot.schema.Schema.column_names", "modulename": "sqlglot.schema", "qualname": "Schema.column_names", "kind": "function", "doc": "

Get the column names for a table.

\n\n
Arguments:
\n\n
    \n
  • table: the Table expression instance.
  • \n
  • only_visible: whether to include invisible columns.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n\n
Returns:
\n\n
\n

The list of column names.

\n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tonly_visible: bool = False,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> List[str]:", "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": "

Get the sqlglot.exp.DataType type of a column in the schema.

\n\n
Arguments:
\n\n
    \n
  • table: the source table.
  • \n
  • column: the target column.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n\n
Returns:
\n\n
\n

The resulting column type.

\n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tcolumn: sqlglot.expressions.Column,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> sqlglot.expressions.DataType:", "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": "

Table arguments this schema support, e.g. (\"this\", \"db\", \"catalog\")

\n", "annotation": ": Tuple[str, ...]"}, "sqlglot.schema.Schema.empty": {"fullname": "sqlglot.schema.Schema.empty", "modulename": "sqlglot.schema", "qualname": "Schema.empty", "kind": "variable", "doc": "

Returns whether or not the schema is empty.

\n", "annotation": ": bool"}, "sqlglot.schema.AbstractMappingSchema": {"fullname": "sqlglot.schema.AbstractMappingSchema", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema", "kind": "class", "doc": "

Abstract base class for generic types.

\n\n

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::

\n\n

class Mapping(Generic[KT, VT]):\n def __getitem__(self, key: KT) -> VT:\n ...\n # Etc.

\n\n

This class can then be used as follows::

\n\n

def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:\n try:\n return mapping[key]\n except KeyError:\n return default

\n", "bases": "typing.Generic[~T]"}, "sqlglot.schema.AbstractMappingSchema.__init__": {"fullname": "sqlglot.schema.AbstractMappingSchema.__init__", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.__init__", "kind": "function", "doc": "

\n", "signature": "(mapping: Optional[Dict] = None)"}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"fullname": "sqlglot.schema.AbstractMappingSchema.table_parts", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.table_parts", "kind": "function", "doc": "

\n", "signature": "(self, table: sqlglot.expressions.Table) -> List[str]:", "funcdef": "def"}, "sqlglot.schema.AbstractMappingSchema.find": {"fullname": "sqlglot.schema.AbstractMappingSchema.find", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.find", "kind": "function", "doc": "

\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table,\ttrie: Optional[Dict] = None,\traise_on_missing: bool = True) -> Optional[~T]:", "funcdef": "def"}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"fullname": "sqlglot.schema.AbstractMappingSchema.nested_get", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.nested_get", "kind": "function", "doc": "

\n", "signature": "(\tself,\tparts: Sequence[str],\td: Optional[Dict] = None,\traise_on_missing=True) -> Optional[Any]:", "funcdef": "def"}, "sqlglot.schema.MappingSchema": {"fullname": "sqlglot.schema.MappingSchema", "modulename": "sqlglot.schema", "qualname": "MappingSchema", "kind": "class", "doc": "

Schema based on a nested mapping.

\n\n
Arguments:
\n\n
    \n
  • schema: Mapping in one of the following forms:\n
      \n
    1. {table: {col: type}}
    2. \n
    3. {db: {table: {col: type}}}
    4. \n
    5. {catalog: {db: {table: {col: type}}}}
    6. \n
    7. None - Tables will be added later
    8. \n
  • \n
  • visible: 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
      \n
    1. {table: set(cols)}}
    2. \n
    3. {db: {table: set(cols)}}}
    4. \n
    5. {catalog: {db: {table: set(*cols)}}}}
    6. \n
  • \n
  • dialect: The dialect to be used for custom type mappings & parsing string arguments.
  • \n
\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": "

\n", "signature": "(\tschema: Optional[Dict] = None,\tvisible: Optional[Dict] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None)"}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"fullname": "sqlglot.schema.MappingSchema.from_mapping_schema", "modulename": "sqlglot.schema", "qualname": "MappingSchema.from_mapping_schema", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tmapping_schema: sqlglot.schema.MappingSchema) -> sqlglot.schema.MappingSchema:", "funcdef": "def"}, "sqlglot.schema.MappingSchema.copy": {"fullname": "sqlglot.schema.MappingSchema.copy", "modulename": "sqlglot.schema", "qualname": "MappingSchema.copy", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> sqlglot.schema.MappingSchema:", "funcdef": "def"}, "sqlglot.schema.MappingSchema.add_table": {"fullname": "sqlglot.schema.MappingSchema.add_table", "modulename": "sqlglot.schema", "qualname": "MappingSchema.add_table", "kind": "function", "doc": "

Register or update a table. Updates are only performed if a new column mapping is provided.

\n\n
Arguments:
\n\n
    \n
  • table: the Table expression instance or string representing the table.
  • \n
  • column_mapping: a column mapping that describes the structure of the table.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tcolumn_mapping: Union[Dict, str, sqlglot.dataframe.sql.types.StructType, List, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> None:", "funcdef": "def"}, "sqlglot.schema.MappingSchema.column_names": {"fullname": "sqlglot.schema.MappingSchema.column_names", "modulename": "sqlglot.schema", "qualname": "MappingSchema.column_names", "kind": "function", "doc": "

Get the column names for a table.

\n\n
Arguments:
\n\n
    \n
  • table: the Table expression instance.
  • \n
  • only_visible: whether to include invisible columns.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n\n
Returns:
\n\n
\n

The list of column names.

\n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tonly_visible: bool = False,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> List[str]:", "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": "

Get the sqlglot.exp.DataType type of a column in the schema.

\n\n
Arguments:
\n\n
    \n
  • table: the source table.
  • \n
  • column: the target column.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n\n
Returns:
\n\n
\n

The resulting column type.

\n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tcolumn: sqlglot.expressions.Column,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> sqlglot.expressions.DataType:", "funcdef": "def"}, "sqlglot.schema.ensure_schema": {"fullname": "sqlglot.schema.ensure_schema", "modulename": "sqlglot.schema", "qualname": "ensure_schema", "kind": "function", "doc": "

\n", "signature": "(\tschema: Any,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> sqlglot.schema.Schema:", "funcdef": "def"}, "sqlglot.schema.ensure_column_mapping": {"fullname": "sqlglot.schema.ensure_column_mapping", "modulename": "sqlglot.schema", "qualname": "ensure_column_mapping", "kind": "function", "doc": "

\n", "signature": "(\tmapping: Union[Dict, str, sqlglot.dataframe.sql.types.StructType, List, NoneType]) -> Dict:", "funcdef": "def"}, "sqlglot.schema.flatten_schema": {"fullname": "sqlglot.schema.flatten_schema", "modulename": "sqlglot.schema", "qualname": "flatten_schema", "kind": "function", "doc": "

\n", "signature": "(\tschema: Dict,\tdepth: int,\tkeys: Optional[List[str]] = None) -> List[List[str]]:", "funcdef": "def"}, "sqlglot.schema.nested_get": {"fullname": "sqlglot.schema.nested_get", "modulename": "sqlglot.schema", "qualname": "nested_get", "kind": "function", "doc": "

Get a value for a nested dictionary.

\n\n
Arguments:
\n\n
    \n
  • d: the dictionary to search.
  • \n
  • *path: tuples of (name, key), where:\nkey is the key in the dictionary to get.\nname is a string to use in the error if key isn't found.
  • \n
\n\n
Returns:
\n\n
\n

The value or None if it doesn't exist.

\n
\n", "signature": "(\td: Dict,\t*path: Tuple[str, str],\traise_on_missing: bool = True) -> Optional[Any]:", "funcdef": "def"}, "sqlglot.schema.nested_set": {"fullname": "sqlglot.schema.nested_set", "modulename": "sqlglot.schema", "qualname": "nested_set", "kind": "function", "doc": "

In-place set a value for a nested dictionary

\n\n
Example:
\n\n
\n
\n
>>> nested_set({}, ["top_key", "second_key"], "value")\n{'top_key': {'second_key': 'value'}}\n
\n
\n \n
\n
>>> nested_set({"top_key": {"third_key": "third_value"}}, ["top_key", "second_key"], "value")\n{'top_key': {'third_key': 'third_value', 'second_key': 'value'}}\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • d: dictionary to update.
  • \n
  • keys: the keys that makeup the path to value.
  • \n
  • value: the value to set in the dictionary for the given key path.
  • \n
\n\n
Returns:
\n\n
\n

The (possibly) updated dictionary.

\n
\n", "signature": "(d: Dict, keys: Sequence[str], value: Any) -> Dict:", "funcdef": "def"}, "sqlglot.serde": {"fullname": "sqlglot.serde", "modulename": "sqlglot.serde", "kind": "module", "doc": "

\n"}, "sqlglot.serde.dump": {"fullname": "sqlglot.serde.dump", "modulename": "sqlglot.serde", "qualname": "dump", "kind": "function", "doc": "

Recursively dump an AST into a JSON-serializable dict.

\n", "signature": "(\tnode: Union[List[ForwardRef('Node')], sqlglot.expressions.DataType.Type, sqlglot.expressions.Expression, dict, list, str, float, int, bool]) -> Union[dict, list, str, float, int, bool]:", "funcdef": "def"}, "sqlglot.serde.load": {"fullname": "sqlglot.serde.load", "modulename": "sqlglot.serde", "qualname": "load", "kind": "function", "doc": "

Recursively load a dict (as returned by dump) into an AST.

\n", "signature": "(\tobj: Union[dict, list, str, float, int, bool]) -> Union[List[ForwardRef('Node')], sqlglot.expressions.DataType.Type, sqlglot.expressions.Expression, dict, list, str, float, int, bool]:", "funcdef": "def"}, "sqlglot.time": {"fullname": "sqlglot.time", "modulename": "sqlglot.time", "kind": "module", "doc": "

\n"}, "sqlglot.time.format_time": {"fullname": "sqlglot.time.format_time", "modulename": "sqlglot.time", "qualname": "format_time", "kind": "function", "doc": "

Converts a time string given a mapping.

\n\n
Examples:
\n\n
\n
\n
>>> format_time("%Y", {"%Y": "YYYY"})\n'YYYY'\n
\n
\n \n

Args:\n mapping: dictionary of time format to target time format.\n trie: optional trie, can be passed in for performance.

\n \n

Returns:\n The converted time string.

\n
\n", "signature": "(\tstring: str,\tmapping: Dict[str, str],\ttrie: Optional[Dict] = None) -> Optional[str]:", "funcdef": "def"}, "sqlglot.tokens": {"fullname": "sqlglot.tokens", "modulename": "sqlglot.tokens", "kind": "module", "doc": "

\n"}, "sqlglot.tokens.TokenType": {"fullname": "sqlglot.tokens.TokenType", "modulename": "sqlglot.tokens", "qualname": "TokenType", "kind": "class", "doc": "

An enumeration.

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.COMMA: 'COMMA'>"}, "sqlglot.tokens.TokenType.DOT": {"fullname": "sqlglot.tokens.TokenType.DOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DOT: 'DOT'>"}, "sqlglot.tokens.TokenType.DASH": {"fullname": "sqlglot.tokens.TokenType.DASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.DASH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DASH: 'DASH'>"}, "sqlglot.tokens.TokenType.PLUS": {"fullname": "sqlglot.tokens.TokenType.PLUS", "modulename": "sqlglot.tokens", "qualname": "TokenType.PLUS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PLUS: 'PLUS'>"}, "sqlglot.tokens.TokenType.COLON": {"fullname": "sqlglot.tokens.TokenType.COLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COLON: 'COLON'>"}, "sqlglot.tokens.TokenType.DCOLON": {"fullname": "sqlglot.tokens.TokenType.DCOLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.DCOLON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DCOLON: 'DCOLON'>"}, "sqlglot.tokens.TokenType.SEMICOLON": {"fullname": "sqlglot.tokens.TokenType.SEMICOLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEMICOLON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SEMICOLON: 'SEMICOLON'>"}, "sqlglot.tokens.TokenType.STAR": {"fullname": "sqlglot.tokens.TokenType.STAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.STAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.STAR: 'STAR'>"}, "sqlglot.tokens.TokenType.BACKSLASH": {"fullname": "sqlglot.tokens.TokenType.BACKSLASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.BACKSLASH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BACKSLASH: 'BACKSLASH'>"}, "sqlglot.tokens.TokenType.SLASH": {"fullname": "sqlglot.tokens.TokenType.SLASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.SLASH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SLASH: 'SLASH'>"}, "sqlglot.tokens.TokenType.LT": {"fullname": "sqlglot.tokens.TokenType.LT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LT: 'LT'>"}, "sqlglot.tokens.TokenType.LTE": {"fullname": "sqlglot.tokens.TokenType.LTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LTE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LTE: 'LTE'>"}, "sqlglot.tokens.TokenType.GT": {"fullname": "sqlglot.tokens.TokenType.GT", "modulename": "sqlglot.tokens", "qualname": "TokenType.GT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GT: 'GT'>"}, "sqlglot.tokens.TokenType.GTE": {"fullname": "sqlglot.tokens.TokenType.GTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.GTE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GTE: 'GTE'>"}, "sqlglot.tokens.TokenType.NOT": {"fullname": "sqlglot.tokens.TokenType.NOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.NOT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NOT: 'NOT'>"}, "sqlglot.tokens.TokenType.EQ": {"fullname": "sqlglot.tokens.TokenType.EQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.EQ", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.EQ: 'EQ'>"}, "sqlglot.tokens.TokenType.NEQ": {"fullname": "sqlglot.tokens.TokenType.NEQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEQ", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.AND: 'AND'>"}, "sqlglot.tokens.TokenType.OR": {"fullname": "sqlglot.tokens.TokenType.OR", "modulename": "sqlglot.tokens", "qualname": "TokenType.OR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OR: 'OR'>"}, "sqlglot.tokens.TokenType.AMP": {"fullname": "sqlglot.tokens.TokenType.AMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.AMP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.AMP: 'AMP'>"}, "sqlglot.tokens.TokenType.DPIPE": {"fullname": "sqlglot.tokens.TokenType.DPIPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DPIPE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DPIPE: 'DPIPE'>"}, "sqlglot.tokens.TokenType.PIPE": {"fullname": "sqlglot.tokens.TokenType.PIPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.PIPE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PIPE: 'PIPE'>"}, "sqlglot.tokens.TokenType.CARET": {"fullname": "sqlglot.tokens.TokenType.CARET", "modulename": "sqlglot.tokens", "qualname": "TokenType.CARET", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CARET: 'CARET'>"}, "sqlglot.tokens.TokenType.TILDA": {"fullname": "sqlglot.tokens.TokenType.TILDA", "modulename": "sqlglot.tokens", "qualname": "TokenType.TILDA", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TILDA: 'TILDA'>"}, "sqlglot.tokens.TokenType.ARROW": {"fullname": "sqlglot.tokens.TokenType.ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.ARROW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ARROW: 'ARROW'>"}, "sqlglot.tokens.TokenType.DARROW": {"fullname": "sqlglot.tokens.TokenType.DARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.DARROW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DARROW: 'DARROW'>"}, "sqlglot.tokens.TokenType.FARROW": {"fullname": "sqlglot.tokens.TokenType.FARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.FARROW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FARROW: 'FARROW'>"}, "sqlglot.tokens.TokenType.HASH": {"fullname": "sqlglot.tokens.TokenType.HASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.HASH", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.DOLLAR: 'DOLLAR'>"}, "sqlglot.tokens.TokenType.PARAMETER": {"fullname": "sqlglot.tokens.TokenType.PARAMETER", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARAMETER", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.SESSION_PARAMETER: 'SESSION_PARAMETER'>"}, "sqlglot.tokens.TokenType.DAMP": {"fullname": "sqlglot.tokens.TokenType.DAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.DAMP", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.SPACE: 'SPACE'>"}, "sqlglot.tokens.TokenType.BREAK": {"fullname": "sqlglot.tokens.TokenType.BREAK", "modulename": "sqlglot.tokens", "qualname": "TokenType.BREAK", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BREAK: 'BREAK'>"}, "sqlglot.tokens.TokenType.STRING": {"fullname": "sqlglot.tokens.TokenType.STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.STRING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.STRING: 'STRING'>"}, "sqlglot.tokens.TokenType.NUMBER": {"fullname": "sqlglot.tokens.TokenType.NUMBER", "modulename": "sqlglot.tokens", "qualname": "TokenType.NUMBER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NUMBER: 'NUMBER'>"}, "sqlglot.tokens.TokenType.IDENTIFIER": {"fullname": "sqlglot.tokens.TokenType.IDENTIFIER", "modulename": "sqlglot.tokens", "qualname": "TokenType.IDENTIFIER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IDENTIFIER: 'IDENTIFIER'>"}, "sqlglot.tokens.TokenType.DATABASE": {"fullname": "sqlglot.tokens.TokenType.DATABASE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATABASE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATABASE: 'DATABASE'>"}, "sqlglot.tokens.TokenType.COLUMN": {"fullname": "sqlglot.tokens.TokenType.COLUMN", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLUMN", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.SCHEMA: 'SCHEMA'>"}, "sqlglot.tokens.TokenType.TABLE": {"fullname": "sqlglot.tokens.TokenType.TABLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TABLE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TABLE: 'TABLE'>"}, "sqlglot.tokens.TokenType.VAR": {"fullname": "sqlglot.tokens.TokenType.VAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.VAR", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.BYTE_STRING: 'BYTE_STRING'>"}, "sqlglot.tokens.TokenType.NATIONAL_STRING": {"fullname": "sqlglot.tokens.TokenType.NATIONAL_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.NATIONAL_STRING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NATIONAL_STRING: 'NATIONAL_STRING'>"}, "sqlglot.tokens.TokenType.RAW_STRING": {"fullname": "sqlglot.tokens.TokenType.RAW_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.RAW_STRING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RAW_STRING: 'RAW_STRING'>"}, "sqlglot.tokens.TokenType.BIT": {"fullname": "sqlglot.tokens.TokenType.BIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BIT: 'BIT'>"}, "sqlglot.tokens.TokenType.BOOLEAN": {"fullname": "sqlglot.tokens.TokenType.BOOLEAN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BOOLEAN", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BOOLEAN: 'BOOLEAN'>"}, "sqlglot.tokens.TokenType.TINYINT": {"fullname": "sqlglot.tokens.TokenType.TINYINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.TINYINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TINYINT: 'TINYINT'>"}, "sqlglot.tokens.TokenType.UTINYINT": {"fullname": "sqlglot.tokens.TokenType.UTINYINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UTINYINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UTINYINT: 'UTINYINT'>"}, "sqlglot.tokens.TokenType.SMALLINT": {"fullname": "sqlglot.tokens.TokenType.SMALLINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SMALLINT: 'SMALLINT'>"}, "sqlglot.tokens.TokenType.USMALLINT": {"fullname": "sqlglot.tokens.TokenType.USMALLINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.USMALLINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.USMALLINT: 'USMALLINT'>"}, "sqlglot.tokens.TokenType.INT": {"fullname": "sqlglot.tokens.TokenType.INT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT: 'INT'>"}, "sqlglot.tokens.TokenType.UINT": {"fullname": "sqlglot.tokens.TokenType.UINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UINT: 'UINT'>"}, "sqlglot.tokens.TokenType.BIGINT": {"fullname": "sqlglot.tokens.TokenType.BIGINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BIGINT: 'BIGINT'>"}, "sqlglot.tokens.TokenType.UBIGINT": {"fullname": "sqlglot.tokens.TokenType.UBIGINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UBIGINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UBIGINT: 'UBIGINT'>"}, "sqlglot.tokens.TokenType.INT128": {"fullname": "sqlglot.tokens.TokenType.INT128", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT128", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT128: 'INT128'>"}, "sqlglot.tokens.TokenType.UINT128": {"fullname": "sqlglot.tokens.TokenType.UINT128", "modulename": "sqlglot.tokens", "qualname": "TokenType.UINT128", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UINT128: 'UINT128'>"}, "sqlglot.tokens.TokenType.INT256": {"fullname": "sqlglot.tokens.TokenType.INT256", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT256", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT256: 'INT256'>"}, "sqlglot.tokens.TokenType.UINT256": {"fullname": "sqlglot.tokens.TokenType.UINT256", "modulename": "sqlglot.tokens", "qualname": "TokenType.UINT256", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UINT256: 'UINT256'>"}, "sqlglot.tokens.TokenType.FLOAT": {"fullname": "sqlglot.tokens.TokenType.FLOAT", "modulename": "sqlglot.tokens", "qualname": "TokenType.FLOAT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FLOAT: 'FLOAT'>"}, "sqlglot.tokens.TokenType.DOUBLE": {"fullname": "sqlglot.tokens.TokenType.DOUBLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOUBLE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DOUBLE: 'DOUBLE'>"}, "sqlglot.tokens.TokenType.DECIMAL": {"fullname": "sqlglot.tokens.TokenType.DECIMAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.DECIMAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DECIMAL: 'DECIMAL'>"}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"fullname": "sqlglot.tokens.TokenType.BIGDECIMAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGDECIMAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BIGDECIMAL: 'BIGDECIMAL'>"}, "sqlglot.tokens.TokenType.CHAR": {"fullname": "sqlglot.tokens.TokenType.CHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.CHAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CHAR: 'CHAR'>"}, "sqlglot.tokens.TokenType.NCHAR": {"fullname": "sqlglot.tokens.TokenType.NCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NCHAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NCHAR: 'NCHAR'>"}, "sqlglot.tokens.TokenType.VARCHAR": {"fullname": "sqlglot.tokens.TokenType.VARCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARCHAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VARCHAR: 'VARCHAR'>"}, "sqlglot.tokens.TokenType.NVARCHAR": {"fullname": "sqlglot.tokens.TokenType.NVARCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NVARCHAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NVARCHAR: 'NVARCHAR'>"}, "sqlglot.tokens.TokenType.TEXT": {"fullname": "sqlglot.tokens.TokenType.TEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.TEXT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TEXT: 'TEXT'>"}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"fullname": "sqlglot.tokens.TokenType.MEDIUMTEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.MEDIUMTEXT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MEDIUMTEXT: 'MEDIUMTEXT'>"}, "sqlglot.tokens.TokenType.LONGTEXT": {"fullname": "sqlglot.tokens.TokenType.LONGTEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LONGTEXT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LONGTEXT: 'LONGTEXT'>"}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"fullname": "sqlglot.tokens.TokenType.MEDIUMBLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.MEDIUMBLOB", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MEDIUMBLOB: 'MEDIUMBLOB'>"}, "sqlglot.tokens.TokenType.LONGBLOB": {"fullname": "sqlglot.tokens.TokenType.LONGBLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.LONGBLOB", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LONGBLOB: 'LONGBLOB'>"}, "sqlglot.tokens.TokenType.BINARY": {"fullname": "sqlglot.tokens.TokenType.BINARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.BINARY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BINARY: 'BINARY'>"}, "sqlglot.tokens.TokenType.VARBINARY": {"fullname": "sqlglot.tokens.TokenType.VARBINARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARBINARY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VARBINARY: 'VARBINARY'>"}, "sqlglot.tokens.TokenType.JSON": {"fullname": "sqlglot.tokens.TokenType.JSON", "modulename": "sqlglot.tokens", "qualname": "TokenType.JSON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.JSON: 'JSON'>"}, "sqlglot.tokens.TokenType.JSONB": {"fullname": "sqlglot.tokens.TokenType.JSONB", "modulename": "sqlglot.tokens", "qualname": "TokenType.JSONB", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.JSONB: 'JSONB'>"}, "sqlglot.tokens.TokenType.TIME": {"fullname": "sqlglot.tokens.TokenType.TIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIME", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TIME: 'TIME'>"}, "sqlglot.tokens.TokenType.TIMESTAMP": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TIMESTAMP: 'TIMESTAMP'>"}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMPTZ", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMPTZ", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TIMESTAMPTZ: 'TIMESTAMPTZ'>"}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMPLTZ", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMPLTZ", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>"}, "sqlglot.tokens.TokenType.DATETIME": {"fullname": "sqlglot.tokens.TokenType.DATETIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATETIME", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATETIME: 'DATETIME'>"}, "sqlglot.tokens.TokenType.DATETIME64": {"fullname": "sqlglot.tokens.TokenType.DATETIME64", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATETIME64", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATETIME64: 'DATETIME64'>"}, "sqlglot.tokens.TokenType.DATE": {"fullname": "sqlglot.tokens.TokenType.DATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATE: 'DATE'>"}, "sqlglot.tokens.TokenType.UUID": {"fullname": "sqlglot.tokens.TokenType.UUID", "modulename": "sqlglot.tokens", "qualname": "TokenType.UUID", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UUID: 'UUID'>"}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"fullname": "sqlglot.tokens.TokenType.GEOGRAPHY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GEOGRAPHY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GEOGRAPHY: 'GEOGRAPHY'>"}, "sqlglot.tokens.TokenType.NULLABLE": {"fullname": "sqlglot.tokens.TokenType.NULLABLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLABLE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NULLABLE: 'NULLABLE'>"}, "sqlglot.tokens.TokenType.GEOMETRY": {"fullname": "sqlglot.tokens.TokenType.GEOMETRY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GEOMETRY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GEOMETRY: 'GEOMETRY'>"}, "sqlglot.tokens.TokenType.HLLSKETCH": {"fullname": "sqlglot.tokens.TokenType.HLLSKETCH", "modulename": "sqlglot.tokens", "qualname": "TokenType.HLLSKETCH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.HLLSKETCH: 'HLLSKETCH'>"}, "sqlglot.tokens.TokenType.HSTORE": {"fullname": "sqlglot.tokens.TokenType.HSTORE", "modulename": "sqlglot.tokens", "qualname": "TokenType.HSTORE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.HSTORE: 'HSTORE'>"}, "sqlglot.tokens.TokenType.SUPER": {"fullname": "sqlglot.tokens.TokenType.SUPER", "modulename": "sqlglot.tokens", "qualname": "TokenType.SUPER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SUPER: 'SUPER'>"}, "sqlglot.tokens.TokenType.SERIAL": {"fullname": "sqlglot.tokens.TokenType.SERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.SERIAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SERIAL: 'SERIAL'>"}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"fullname": "sqlglot.tokens.TokenType.SMALLSERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLSERIAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SMALLSERIAL: 'SMALLSERIAL'>"}, "sqlglot.tokens.TokenType.BIGSERIAL": {"fullname": "sqlglot.tokens.TokenType.BIGSERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGSERIAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BIGSERIAL: 'BIGSERIAL'>"}, "sqlglot.tokens.TokenType.XML": {"fullname": "sqlglot.tokens.TokenType.XML", "modulename": "sqlglot.tokens", "qualname": "TokenType.XML", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.XML: 'XML'>"}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"fullname": "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNIQUEIDENTIFIER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>"}, "sqlglot.tokens.TokenType.MONEY": {"fullname": "sqlglot.tokens.TokenType.MONEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.MONEY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MONEY: 'MONEY'>"}, "sqlglot.tokens.TokenType.SMALLMONEY": {"fullname": "sqlglot.tokens.TokenType.SMALLMONEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLMONEY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SMALLMONEY: 'SMALLMONEY'>"}, "sqlglot.tokens.TokenType.ROWVERSION": {"fullname": "sqlglot.tokens.TokenType.ROWVERSION", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROWVERSION", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROWVERSION: 'ROWVERSION'>"}, "sqlglot.tokens.TokenType.IMAGE": {"fullname": "sqlglot.tokens.TokenType.IMAGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.IMAGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IMAGE: 'IMAGE'>"}, "sqlglot.tokens.TokenType.VARIANT": {"fullname": "sqlglot.tokens.TokenType.VARIANT", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARIANT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VARIANT: 'VARIANT'>"}, "sqlglot.tokens.TokenType.OBJECT": {"fullname": "sqlglot.tokens.TokenType.OBJECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.OBJECT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OBJECT: 'OBJECT'>"}, "sqlglot.tokens.TokenType.INET": {"fullname": "sqlglot.tokens.TokenType.INET", "modulename": "sqlglot.tokens", "qualname": "TokenType.INET", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INET: 'INET'>"}, "sqlglot.tokens.TokenType.ALIAS": {"fullname": "sqlglot.tokens.TokenType.ALIAS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALIAS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ALIAS: 'ALIAS'>"}, "sqlglot.tokens.TokenType.ALTER": {"fullname": "sqlglot.tokens.TokenType.ALTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALTER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ALTER: 'ALTER'>"}, "sqlglot.tokens.TokenType.ALWAYS": {"fullname": "sqlglot.tokens.TokenType.ALWAYS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALWAYS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ALWAYS: 'ALWAYS'>"}, "sqlglot.tokens.TokenType.ALL": {"fullname": "sqlglot.tokens.TokenType.ALL", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ALL: 'ALL'>"}, "sqlglot.tokens.TokenType.ANTI": {"fullname": "sqlglot.tokens.TokenType.ANTI", "modulename": "sqlglot.tokens", "qualname": "TokenType.ANTI", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ANTI: 'ANTI'>"}, "sqlglot.tokens.TokenType.ANY": {"fullname": "sqlglot.tokens.TokenType.ANY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ANY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ANY: 'ANY'>"}, "sqlglot.tokens.TokenType.APPLY": {"fullname": "sqlglot.tokens.TokenType.APPLY", "modulename": "sqlglot.tokens", "qualname": "TokenType.APPLY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.APPLY: 'APPLY'>"}, "sqlglot.tokens.TokenType.ARRAY": {"fullname": "sqlglot.tokens.TokenType.ARRAY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ARRAY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ARRAY: 'ARRAY'>"}, "sqlglot.tokens.TokenType.ASC": {"fullname": "sqlglot.tokens.TokenType.ASC", "modulename": "sqlglot.tokens", "qualname": "TokenType.ASC", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ASC: 'ASC'>"}, "sqlglot.tokens.TokenType.ASOF": {"fullname": "sqlglot.tokens.TokenType.ASOF", "modulename": "sqlglot.tokens", "qualname": "TokenType.ASOF", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ASOF: 'ASOF'>"}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"fullname": "sqlglot.tokens.TokenType.AUTO_INCREMENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.AUTO_INCREMENT", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.BEGIN: 'BEGIN'>"}, "sqlglot.tokens.TokenType.BETWEEN": {"fullname": "sqlglot.tokens.TokenType.BETWEEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BETWEEN", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BETWEEN: 'BETWEEN'>"}, "sqlglot.tokens.TokenType.CACHE": {"fullname": "sqlglot.tokens.TokenType.CACHE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CACHE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CACHE: 'CACHE'>"}, "sqlglot.tokens.TokenType.CASE": {"fullname": "sqlglot.tokens.TokenType.CASE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CASE", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.CHARACTER_SET: 'CHARACTER_SET'>"}, "sqlglot.tokens.TokenType.COLLATE": {"fullname": "sqlglot.tokens.TokenType.COLLATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLLATE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COLLATE: 'COLLATE'>"}, "sqlglot.tokens.TokenType.COMMAND": {"fullname": "sqlglot.tokens.TokenType.COMMAND", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMAND", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COMMAND: 'COMMAND'>"}, "sqlglot.tokens.TokenType.COMMENT": {"fullname": "sqlglot.tokens.TokenType.COMMENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMENT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COMMENT: 'COMMENT'>"}, "sqlglot.tokens.TokenType.COMMIT": {"fullname": "sqlglot.tokens.TokenType.COMMIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMIT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COMMIT: 'COMMIT'>"}, "sqlglot.tokens.TokenType.CONSTRAINT": {"fullname": "sqlglot.tokens.TokenType.CONSTRAINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.CONSTRAINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CONSTRAINT: 'CONSTRAINT'>"}, "sqlglot.tokens.TokenType.CREATE": {"fullname": "sqlglot.tokens.TokenType.CREATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CREATE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CREATE: 'CREATE'>"}, "sqlglot.tokens.TokenType.CROSS": {"fullname": "sqlglot.tokens.TokenType.CROSS", "modulename": "sqlglot.tokens", "qualname": "TokenType.CROSS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CROSS: 'CROSS'>"}, "sqlglot.tokens.TokenType.CUBE": {"fullname": "sqlglot.tokens.TokenType.CUBE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CUBE", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.CURRENT_DATETIME: 'CURRENT_DATETIME'>"}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"fullname": "sqlglot.tokens.TokenType.CURRENT_TIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_TIME", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'>"}, "sqlglot.tokens.TokenType.CURRENT_USER": {"fullname": "sqlglot.tokens.TokenType.CURRENT_USER", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_USER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CURRENT_USER: 'CURRENT_USER'>"}, "sqlglot.tokens.TokenType.DEFAULT": {"fullname": "sqlglot.tokens.TokenType.DEFAULT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DEFAULT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DEFAULT: 'DEFAULT'>"}, "sqlglot.tokens.TokenType.DELETE": {"fullname": "sqlglot.tokens.TokenType.DELETE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DELETE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DELETE: 'DELETE'>"}, "sqlglot.tokens.TokenType.DESC": {"fullname": "sqlglot.tokens.TokenType.DESC", "modulename": "sqlglot.tokens", "qualname": "TokenType.DESC", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DESC: 'DESC'>"}, "sqlglot.tokens.TokenType.DESCRIBE": {"fullname": "sqlglot.tokens.TokenType.DESCRIBE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DESCRIBE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DESCRIBE: 'DESCRIBE'>"}, "sqlglot.tokens.TokenType.DISTINCT": {"fullname": "sqlglot.tokens.TokenType.DISTINCT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DISTINCT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DISTINCT: 'DISTINCT'>"}, "sqlglot.tokens.TokenType.DIV": {"fullname": "sqlglot.tokens.TokenType.DIV", "modulename": "sqlglot.tokens", "qualname": "TokenType.DIV", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DIV: 'DIV'>"}, "sqlglot.tokens.TokenType.DROP": {"fullname": "sqlglot.tokens.TokenType.DROP", "modulename": "sqlglot.tokens", "qualname": "TokenType.DROP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DROP: 'DROP'>"}, "sqlglot.tokens.TokenType.ELSE": {"fullname": "sqlglot.tokens.TokenType.ELSE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ELSE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ELSE: 'ELSE'>"}, "sqlglot.tokens.TokenType.END": {"fullname": "sqlglot.tokens.TokenType.END", "modulename": "sqlglot.tokens", "qualname": "TokenType.END", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.END: 'END'>"}, "sqlglot.tokens.TokenType.ESCAPE": {"fullname": "sqlglot.tokens.TokenType.ESCAPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ESCAPE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ESCAPE: 'ESCAPE'>"}, "sqlglot.tokens.TokenType.EXCEPT": {"fullname": "sqlglot.tokens.TokenType.EXCEPT", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXCEPT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.EXCEPT: 'EXCEPT'>"}, "sqlglot.tokens.TokenType.EXECUTE": {"fullname": "sqlglot.tokens.TokenType.EXECUTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXECUTE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.EXECUTE: 'EXECUTE'>"}, "sqlglot.tokens.TokenType.EXISTS": {"fullname": "sqlglot.tokens.TokenType.EXISTS", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXISTS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.EXISTS: 'EXISTS'>"}, "sqlglot.tokens.TokenType.FALSE": {"fullname": "sqlglot.tokens.TokenType.FALSE", "modulename": "sqlglot.tokens", "qualname": "TokenType.FALSE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FALSE: 'FALSE'>"}, "sqlglot.tokens.TokenType.FETCH": {"fullname": "sqlglot.tokens.TokenType.FETCH", "modulename": "sqlglot.tokens", "qualname": "TokenType.FETCH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FETCH: 'FETCH'>"}, "sqlglot.tokens.TokenType.FILTER": {"fullname": "sqlglot.tokens.TokenType.FILTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.FILTER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FILTER: 'FILTER'>"}, "sqlglot.tokens.TokenType.FINAL": {"fullname": "sqlglot.tokens.TokenType.FINAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.FINAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FINAL: 'FINAL'>"}, "sqlglot.tokens.TokenType.FIRST": {"fullname": "sqlglot.tokens.TokenType.FIRST", "modulename": "sqlglot.tokens", "qualname": "TokenType.FIRST", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FIRST: 'FIRST'>"}, "sqlglot.tokens.TokenType.FOR": {"fullname": "sqlglot.tokens.TokenType.FOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.FOR", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.FORMAT: 'FORMAT'>"}, "sqlglot.tokens.TokenType.FROM": {"fullname": "sqlglot.tokens.TokenType.FROM", "modulename": "sqlglot.tokens", "qualname": "TokenType.FROM", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FROM: 'FROM'>"}, "sqlglot.tokens.TokenType.FULL": {"fullname": "sqlglot.tokens.TokenType.FULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.FULL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FULL: 'FULL'>"}, "sqlglot.tokens.TokenType.FUNCTION": {"fullname": "sqlglot.tokens.TokenType.FUNCTION", "modulename": "sqlglot.tokens", "qualname": "TokenType.FUNCTION", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FUNCTION: 'FUNCTION'>"}, "sqlglot.tokens.TokenType.GLOB": {"fullname": "sqlglot.tokens.TokenType.GLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.GLOB", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GLOB: 'GLOB'>"}, "sqlglot.tokens.TokenType.GLOBAL": {"fullname": "sqlglot.tokens.TokenType.GLOBAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.GLOBAL", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.HAVING: 'HAVING'>"}, "sqlglot.tokens.TokenType.HINT": {"fullname": "sqlglot.tokens.TokenType.HINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.HINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.HINT: 'HINT'>"}, "sqlglot.tokens.TokenType.IF": {"fullname": "sqlglot.tokens.TokenType.IF", "modulename": "sqlglot.tokens", "qualname": "TokenType.IF", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IF: 'IF'>"}, "sqlglot.tokens.TokenType.ILIKE": {"fullname": "sqlglot.tokens.TokenType.ILIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ILIKE", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.IN: 'IN'>"}, "sqlglot.tokens.TokenType.INDEX": {"fullname": "sqlglot.tokens.TokenType.INDEX", "modulename": "sqlglot.tokens", "qualname": "TokenType.INDEX", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INDEX: 'INDEX'>"}, "sqlglot.tokens.TokenType.INNER": {"fullname": "sqlglot.tokens.TokenType.INNER", "modulename": "sqlglot.tokens", "qualname": "TokenType.INNER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INNER: 'INNER'>"}, "sqlglot.tokens.TokenType.INSERT": {"fullname": "sqlglot.tokens.TokenType.INSERT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INSERT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INSERT: 'INSERT'>"}, "sqlglot.tokens.TokenType.INTERSECT": {"fullname": "sqlglot.tokens.TokenType.INTERSECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTERSECT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INTERSECT: 'INTERSECT'>"}, "sqlglot.tokens.TokenType.INTERVAL": {"fullname": "sqlglot.tokens.TokenType.INTERVAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTERVAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INTERVAL: 'INTERVAL'>"}, "sqlglot.tokens.TokenType.INTO": {"fullname": "sqlglot.tokens.TokenType.INTO", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTO", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INTO: 'INTO'>"}, "sqlglot.tokens.TokenType.INTRODUCER": {"fullname": "sqlglot.tokens.TokenType.INTRODUCER", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTRODUCER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INTRODUCER: 'INTRODUCER'>"}, "sqlglot.tokens.TokenType.IRLIKE": {"fullname": "sqlglot.tokens.TokenType.IRLIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.IRLIKE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IRLIKE: 'IRLIKE'>"}, "sqlglot.tokens.TokenType.IS": {"fullname": "sqlglot.tokens.TokenType.IS", "modulename": "sqlglot.tokens", "qualname": "TokenType.IS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IS: 'IS'>"}, "sqlglot.tokens.TokenType.ISNULL": {"fullname": "sqlglot.tokens.TokenType.ISNULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.ISNULL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ISNULL: 'ISNULL'>"}, "sqlglot.tokens.TokenType.JOIN": {"fullname": "sqlglot.tokens.TokenType.JOIN", "modulename": "sqlglot.tokens", "qualname": "TokenType.JOIN", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.JOIN_MARKER: 'JOIN_MARKER'>"}, "sqlglot.tokens.TokenType.KEEP": {"fullname": "sqlglot.tokens.TokenType.KEEP", "modulename": "sqlglot.tokens", "qualname": "TokenType.KEEP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.KEEP: 'KEEP'>"}, "sqlglot.tokens.TokenType.LANGUAGE": {"fullname": "sqlglot.tokens.TokenType.LANGUAGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LANGUAGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LANGUAGE: 'LANGUAGE'>"}, "sqlglot.tokens.TokenType.LATERAL": {"fullname": "sqlglot.tokens.TokenType.LATERAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.LATERAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LATERAL: 'LATERAL'>"}, "sqlglot.tokens.TokenType.LEFT": {"fullname": "sqlglot.tokens.TokenType.LEFT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LEFT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LEFT: 'LEFT'>"}, "sqlglot.tokens.TokenType.LIKE": {"fullname": "sqlglot.tokens.TokenType.LIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LIKE", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.LIMIT: 'LIMIT'>"}, "sqlglot.tokens.TokenType.LOAD": {"fullname": "sqlglot.tokens.TokenType.LOAD", "modulename": "sqlglot.tokens", "qualname": "TokenType.LOAD", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LOAD: 'LOAD'>"}, "sqlglot.tokens.TokenType.LOCK": {"fullname": "sqlglot.tokens.TokenType.LOCK", "modulename": "sqlglot.tokens", "qualname": "TokenType.LOCK", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LOCK: 'LOCK'>"}, "sqlglot.tokens.TokenType.MAP": {"fullname": "sqlglot.tokens.TokenType.MAP", "modulename": "sqlglot.tokens", "qualname": "TokenType.MAP", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.MATCH_RECOGNIZE: 'MATCH_RECOGNIZE'>"}, "sqlglot.tokens.TokenType.MERGE": {"fullname": "sqlglot.tokens.TokenType.MERGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.MERGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MERGE: 'MERGE'>"}, "sqlglot.tokens.TokenType.MOD": {"fullname": "sqlglot.tokens.TokenType.MOD", "modulename": "sqlglot.tokens", "qualname": "TokenType.MOD", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MOD: 'MOD'>"}, "sqlglot.tokens.TokenType.NATURAL": {"fullname": "sqlglot.tokens.TokenType.NATURAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NATURAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NATURAL: 'NATURAL'>"}, "sqlglot.tokens.TokenType.NEXT": {"fullname": "sqlglot.tokens.TokenType.NEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEXT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NEXT: 'NEXT'>"}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"fullname": "sqlglot.tokens.TokenType.NEXT_VALUE_FOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEXT_VALUE_FOR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NEXT_VALUE_FOR: 'NEXT_VALUE_FOR'>"}, "sqlglot.tokens.TokenType.NOTNULL": {"fullname": "sqlglot.tokens.TokenType.NOTNULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NOTNULL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NOTNULL: 'NOTNULL'>"}, "sqlglot.tokens.TokenType.NULL": {"fullname": "sqlglot.tokens.TokenType.NULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NULL: 'NULL'>"}, "sqlglot.tokens.TokenType.OFFSET": {"fullname": "sqlglot.tokens.TokenType.OFFSET", "modulename": "sqlglot.tokens", "qualname": "TokenType.OFFSET", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OFFSET: 'OFFSET'>"}, "sqlglot.tokens.TokenType.ON": {"fullname": "sqlglot.tokens.TokenType.ON", "modulename": "sqlglot.tokens", "qualname": "TokenType.ON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ON: 'ON'>"}, "sqlglot.tokens.TokenType.ORDER_BY": {"fullname": "sqlglot.tokens.TokenType.ORDER_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDER_BY", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.ORDERED: 'ORDERED'>"}, "sqlglot.tokens.TokenType.ORDINALITY": {"fullname": "sqlglot.tokens.TokenType.ORDINALITY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDINALITY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ORDINALITY: 'ORDINALITY'>"}, "sqlglot.tokens.TokenType.OUTER": {"fullname": "sqlglot.tokens.TokenType.OUTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.OUTER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OUTER: 'OUTER'>"}, "sqlglot.tokens.TokenType.OVER": {"fullname": "sqlglot.tokens.TokenType.OVER", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OVER: 'OVER'>"}, "sqlglot.tokens.TokenType.OVERLAPS": {"fullname": "sqlglot.tokens.TokenType.OVERLAPS", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVERLAPS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OVERLAPS: 'OVERLAPS'>"}, "sqlglot.tokens.TokenType.OVERWRITE": {"fullname": "sqlglot.tokens.TokenType.OVERWRITE", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVERWRITE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OVERWRITE: 'OVERWRITE'>"}, "sqlglot.tokens.TokenType.PARTITION": {"fullname": "sqlglot.tokens.TokenType.PARTITION", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARTITION", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.PERCENT: 'PERCENT'>"}, "sqlglot.tokens.TokenType.PIVOT": {"fullname": "sqlglot.tokens.TokenType.PIVOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.PIVOT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PIVOT: 'PIVOT'>"}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"fullname": "sqlglot.tokens.TokenType.PLACEHOLDER", "modulename": "sqlglot.tokens", "qualname": "TokenType.PLACEHOLDER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PLACEHOLDER: 'PLACEHOLDER'>"}, "sqlglot.tokens.TokenType.PRAGMA": {"fullname": "sqlglot.tokens.TokenType.PRAGMA", "modulename": "sqlglot.tokens", "qualname": "TokenType.PRAGMA", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PRAGMA: 'PRAGMA'>"}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"fullname": "sqlglot.tokens.TokenType.PRIMARY_KEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.PRIMARY_KEY", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.PROCEDURE: 'PROCEDURE'>"}, "sqlglot.tokens.TokenType.PROPERTIES": {"fullname": "sqlglot.tokens.TokenType.PROPERTIES", "modulename": "sqlglot.tokens", "qualname": "TokenType.PROPERTIES", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.QUALIFY: 'QUALIFY'>"}, "sqlglot.tokens.TokenType.QUOTE": {"fullname": "sqlglot.tokens.TokenType.QUOTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.QUOTE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.QUOTE: 'QUOTE'>"}, "sqlglot.tokens.TokenType.RANGE": {"fullname": "sqlglot.tokens.TokenType.RANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RANGE: 'RANGE'>"}, "sqlglot.tokens.TokenType.RECURSIVE": {"fullname": "sqlglot.tokens.TokenType.RECURSIVE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RECURSIVE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RECURSIVE: 'RECURSIVE'>"}, "sqlglot.tokens.TokenType.REPLACE": {"fullname": "sqlglot.tokens.TokenType.REPLACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.REPLACE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.REPLACE: 'REPLACE'>"}, "sqlglot.tokens.TokenType.RETURNING": {"fullname": "sqlglot.tokens.TokenType.RETURNING", "modulename": "sqlglot.tokens", "qualname": "TokenType.RETURNING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RETURNING: 'RETURNING'>"}, "sqlglot.tokens.TokenType.REFERENCES": {"fullname": "sqlglot.tokens.TokenType.REFERENCES", "modulename": "sqlglot.tokens", "qualname": "TokenType.REFERENCES", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.REFERENCES: 'REFERENCES'>"}, "sqlglot.tokens.TokenType.RIGHT": {"fullname": "sqlglot.tokens.TokenType.RIGHT", "modulename": "sqlglot.tokens", "qualname": "TokenType.RIGHT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RIGHT: 'RIGHT'>"}, "sqlglot.tokens.TokenType.RLIKE": {"fullname": "sqlglot.tokens.TokenType.RLIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RLIKE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RLIKE: 'RLIKE'>"}, "sqlglot.tokens.TokenType.ROLLBACK": {"fullname": "sqlglot.tokens.TokenType.ROLLBACK", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROLLBACK", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROLLBACK: 'ROLLBACK'>"}, "sqlglot.tokens.TokenType.ROLLUP": {"fullname": "sqlglot.tokens.TokenType.ROLLUP", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROLLUP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROLLUP: 'ROLLUP'>"}, "sqlglot.tokens.TokenType.ROW": {"fullname": "sqlglot.tokens.TokenType.ROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROW: 'ROW'>"}, "sqlglot.tokens.TokenType.ROWS": {"fullname": "sqlglot.tokens.TokenType.ROWS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROWS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROWS: 'ROWS'>"}, "sqlglot.tokens.TokenType.SELECT": {"fullname": "sqlglot.tokens.TokenType.SELECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.SELECT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SELECT: 'SELECT'>"}, "sqlglot.tokens.TokenType.SEMI": {"fullname": "sqlglot.tokens.TokenType.SEMI", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEMI", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SEMI: 'SEMI'>"}, "sqlglot.tokens.TokenType.SEPARATOR": {"fullname": "sqlglot.tokens.TokenType.SEPARATOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEPARATOR", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.SET: 'SET'>"}, "sqlglot.tokens.TokenType.SETTINGS": {"fullname": "sqlglot.tokens.TokenType.SETTINGS", "modulename": "sqlglot.tokens", "qualname": "TokenType.SETTINGS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SETTINGS: 'SETTINGS'>"}, "sqlglot.tokens.TokenType.SHOW": {"fullname": "sqlglot.tokens.TokenType.SHOW", "modulename": "sqlglot.tokens", "qualname": "TokenType.SHOW", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.SOME: 'SOME'>"}, "sqlglot.tokens.TokenType.STRUCT": {"fullname": "sqlglot.tokens.TokenType.STRUCT", "modulename": "sqlglot.tokens", "qualname": "TokenType.STRUCT", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.TEMPORARY: 'TEMPORARY'>"}, "sqlglot.tokens.TokenType.TOP": {"fullname": "sqlglot.tokens.TokenType.TOP", "modulename": "sqlglot.tokens", "qualname": "TokenType.TOP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TOP: 'TOP'>"}, "sqlglot.tokens.TokenType.THEN": {"fullname": "sqlglot.tokens.TokenType.THEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.THEN", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.THEN: 'THEN'>"}, "sqlglot.tokens.TokenType.TRUE": {"fullname": "sqlglot.tokens.TokenType.TRUE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TRUE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TRUE: 'TRUE'>"}, "sqlglot.tokens.TokenType.UNCACHE": {"fullname": "sqlglot.tokens.TokenType.UNCACHE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNCACHE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNCACHE: 'UNCACHE'>"}, "sqlglot.tokens.TokenType.UNION": {"fullname": "sqlglot.tokens.TokenType.UNION", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNION", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNION: 'UNION'>"}, "sqlglot.tokens.TokenType.UNNEST": {"fullname": "sqlglot.tokens.TokenType.UNNEST", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNNEST", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNNEST: 'UNNEST'>"}, "sqlglot.tokens.TokenType.UNPIVOT": {"fullname": "sqlglot.tokens.TokenType.UNPIVOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNPIVOT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNPIVOT: 'UNPIVOT'>"}, "sqlglot.tokens.TokenType.UPDATE": {"fullname": "sqlglot.tokens.TokenType.UPDATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UPDATE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UPDATE: 'UPDATE'>"}, "sqlglot.tokens.TokenType.USE": {"fullname": "sqlglot.tokens.TokenType.USE", "modulename": "sqlglot.tokens", "qualname": "TokenType.USE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.USE: 'USE'>"}, "sqlglot.tokens.TokenType.USING": {"fullname": "sqlglot.tokens.TokenType.USING", "modulename": "sqlglot.tokens", "qualname": "TokenType.USING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.USING: 'USING'>"}, "sqlglot.tokens.TokenType.VALUES": {"fullname": "sqlglot.tokens.TokenType.VALUES", "modulename": "sqlglot.tokens", "qualname": "TokenType.VALUES", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VALUES: 'VALUES'>"}, "sqlglot.tokens.TokenType.VIEW": {"fullname": "sqlglot.tokens.TokenType.VIEW", "modulename": "sqlglot.tokens", "qualname": "TokenType.VIEW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VIEW: 'VIEW'>"}, "sqlglot.tokens.TokenType.VOLATILE": {"fullname": "sqlglot.tokens.TokenType.VOLATILE", "modulename": "sqlglot.tokens", "qualname": "TokenType.VOLATILE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VOLATILE: 'VOLATILE'>"}, "sqlglot.tokens.TokenType.WHEN": {"fullname": "sqlglot.tokens.TokenType.WHEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.WHEN", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.WHEN: 'WHEN'>"}, "sqlglot.tokens.TokenType.WHERE": {"fullname": "sqlglot.tokens.TokenType.WHERE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WHERE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.WHERE: 'WHERE'>"}, "sqlglot.tokens.TokenType.WINDOW": {"fullname": "sqlglot.tokens.TokenType.WINDOW", "modulename": "sqlglot.tokens", "qualname": "TokenType.WINDOW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.WINDOW: 'WINDOW'>"}, "sqlglot.tokens.TokenType.WITH": {"fullname": "sqlglot.tokens.TokenType.WITH", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.WITH: 'WITH'>"}, "sqlglot.tokens.TokenType.UNIQUE": {"fullname": "sqlglot.tokens.TokenType.UNIQUE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNIQUE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNIQUE: 'UNIQUE'>"}, "sqlglot.tokens.Token": {"fullname": "sqlglot.tokens.Token", "modulename": "sqlglot.tokens", "qualname": "Token", "kind": "class", "doc": "

\n"}, "sqlglot.tokens.Token.__init__": {"fullname": "sqlglot.tokens.Token.__init__", "modulename": "sqlglot.tokens", "qualname": "Token.__init__", "kind": "function", "doc": "

Token initializer.

\n\n
Arguments:
\n\n
    \n
  • token_type: The TokenType Enum.
  • \n
  • text: The text of the token.
  • \n
  • line: The line that the token ends on.
  • \n
  • col: The column that the token ends on.
  • \n
  • start: The start index of the token.
  • \n
  • end: The ending index of the token.
  • \n
\n", "signature": "(\ttoken_type: sqlglot.tokens.TokenType,\ttext: str,\tline: int = 1,\tcol: int = 1,\tstart: int = 0,\tend: int = 0,\tcomments: List[str] = [])"}, "sqlglot.tokens.Token.number": {"fullname": "sqlglot.tokens.Token.number", "modulename": "sqlglot.tokens", "qualname": "Token.number", "kind": "function", "doc": "

Returns a NUMBER token with number as its text.

\n", "signature": "(cls, number: int) -> sqlglot.tokens.Token:", "funcdef": "def"}, "sqlglot.tokens.Token.string": {"fullname": "sqlglot.tokens.Token.string", "modulename": "sqlglot.tokens", "qualname": "Token.string", "kind": "function", "doc": "

Returns a STRING token with string as its text.

\n", "signature": "(cls, string: str) -> sqlglot.tokens.Token:", "funcdef": "def"}, "sqlglot.tokens.Token.identifier": {"fullname": "sqlglot.tokens.Token.identifier", "modulename": "sqlglot.tokens", "qualname": "Token.identifier", "kind": "function", "doc": "

Returns an IDENTIFIER token with identifier as its text.

\n", "signature": "(cls, identifier: str) -> sqlglot.tokens.Token:", "funcdef": "def"}, "sqlglot.tokens.Token.var": {"fullname": "sqlglot.tokens.Token.var", "modulename": "sqlglot.tokens", "qualname": "Token.var", "kind": "function", "doc": "

Returns an VAR token with var as its text.

\n", "signature": "(cls, var: str) -> sqlglot.tokens.Token:", "funcdef": "def"}, "sqlglot.tokens.Tokenizer": {"fullname": "sqlglot.tokens.Tokenizer", "modulename": "sqlglot.tokens", "qualname": "Tokenizer", "kind": "class", "doc": "

\n"}, "sqlglot.tokens.Tokenizer.reset": {"fullname": "sqlglot.tokens.Tokenizer.reset", "modulename": "sqlglot.tokens", "qualname": "Tokenizer.reset", "kind": "function", "doc": "

\n", "signature": "(self) -> None:", "funcdef": "def"}, "sqlglot.tokens.Tokenizer.tokenize": {"fullname": "sqlglot.tokens.Tokenizer.tokenize", "modulename": "sqlglot.tokens", "qualname": "Tokenizer.tokenize", "kind": "function", "doc": "

Returns a list of tokens corresponding to the SQL string sql.

\n", "signature": "(self, sql: str) -> List[sqlglot.tokens.Token]:", "funcdef": "def"}, "sqlglot.transforms": {"fullname": "sqlglot.transforms", "modulename": "sqlglot.transforms", "kind": "module", "doc": "

\n"}, "sqlglot.transforms.unalias_group": {"fullname": "sqlglot.transforms.unalias_group", "modulename": "sqlglot.transforms", "qualname": "unalias_group", "kind": "function", "doc": "

Replace references to select aliases in GROUP BY clauses.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()\n'SELECT a AS b FROM x GROUP BY 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the expression that will be transformed.
  • \n
\n\n
Returns:
\n\n
\n

The transformed expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.eliminate_distinct_on": {"fullname": "sqlglot.transforms.eliminate_distinct_on", "modulename": "sqlglot.transforms", "qualname": "eliminate_distinct_on", "kind": "function", "doc": "

Convert SELECT DISTINCT ON statements to a subquery with a window function.

\n\n

This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.

\n\n
Arguments:
\n\n
    \n
  • expression: the expression that will be transformed.
  • \n
\n\n
Returns:
\n\n
\n

The transformed expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.eliminate_qualify": {"fullname": "sqlglot.transforms.eliminate_qualify", "modulename": "sqlglot.transforms", "qualname": "eliminate_qualify", "kind": "function", "doc": "

Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.

\n\n

The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY:\nhttps://docs.snowflake.com/en/sql-reference/constructs/qualify

\n\n

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.

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "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": "

Some dialects only allow the precision for parameterized types to be defined in the DDL and not in\nother expressions. This transforms removes the precision from parameterized types in expressions.

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.unnest_to_explode": {"fullname": "sqlglot.transforms.unnest_to_explode", "modulename": "sqlglot.transforms", "qualname": "unnest_to_explode", "kind": "function", "doc": "

Convert cross join unnest into lateral view explode (used in presto -> hive).

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.explode_to_unnest": {"fullname": "sqlglot.transforms.explode_to_unnest", "modulename": "sqlglot.transforms", "qualname": "explode_to_unnest", "kind": "function", "doc": "

Convert explode/posexplode into unnest (used in hive -> presto).

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.remove_target_from_merge": {"fullname": "sqlglot.transforms.remove_target_from_merge", "modulename": "sqlglot.transforms", "qualname": "remove_target_from_merge", "kind": "function", "doc": "

Remove table refs from columns in when statements.

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.remove_within_group_for_percentiles": {"fullname": "sqlglot.transforms.remove_within_group_for_percentiles", "modulename": "sqlglot.transforms", "qualname": "remove_within_group_for_percentiles", "kind": "function", "doc": "

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.add_recursive_cte_column_names": {"fullname": "sqlglot.transforms.add_recursive_cte_column_names", "modulename": "sqlglot.transforms", "qualname": "add_recursive_cte_column_names", "kind": "function", "doc": "

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.preprocess": {"fullname": "sqlglot.transforms.preprocess", "modulename": "sqlglot.transforms", "qualname": "preprocess", "kind": "function", "doc": "

Creates a new transform by chaining a sequence of transformations and converts the resulting\nexpression to SQL, using either the \"_sql\" method corresponding to the resulting expression,\nor the appropriate Generator.TRANSFORMS function (when applicable -- see below).

\n\n
Arguments:
\n\n
    \n
  • transforms: sequence of transform functions. These will be called in order.
  • \n
\n\n
Returns:
\n\n
\n

Function that can be used as a generator transform.

\n
\n", "signature": "(\ttransforms: List[Callable[[sqlglot.expressions.Expression], sqlglot.expressions.Expression]]) -> Callable[[sqlglot.generator.Generator, sqlglot.expressions.Expression], str]:", "funcdef": "def"}, "sqlglot.trie": {"fullname": "sqlglot.trie", "modulename": "sqlglot.trie", "kind": "module", "doc": "

\n"}, "sqlglot.trie.new_trie": {"fullname": "sqlglot.trie.new_trie", "modulename": "sqlglot.trie", "qualname": "new_trie", "kind": "function", "doc": "

Creates a new trie out of a collection of keywords.

\n\n

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.

\n\n
Example:
\n\n
\n
\n
>>> new_trie(["bla", "foo", "blab"])\n{'b': {'l': {'a': {0: True, 'b': {0: True}}}}, 'f': {'o': {'o': {0: True}}}}\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • keywords: the keywords to create the trie from.
  • \n
  • trie: a trie to mutate instead of creating a new one
  • \n
\n\n
Returns:
\n\n
\n

The trie corresponding to keywords.

\n
\n", "signature": "(\tkeywords: Iterable[Sequence[Hashable]],\ttrie: Optional[Dict] = None) -> Dict:", "funcdef": "def"}, "sqlglot.trie.in_trie": {"fullname": "sqlglot.trie.in_trie", "modulename": "sqlglot.trie", "qualname": "in_trie", "kind": "function", "doc": "

Checks whether a key is in a trie.

\n\n
Examples:
\n\n
\n
\n
>>> in_trie(new_trie(["cat"]), "bob")\n(0, {'c': {'a': {'t': {0: True}}}})\n
\n
\n \n
\n
>>> in_trie(new_trie(["cat"]), "ca")\n(1, {'t': {0: True}})\n
\n
\n \n
\n
>>> in_trie(new_trie(["cat"]), "cat")\n(2, {0: True})\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • trie: the trie to be searched.
  • \n
  • key: the target key.
  • \n
\n\n
Returns:
\n\n
\n

A pair (value, subtrie), where subtrie is the sub-trie we get at the point where the search stops, and value\n is either 0 (search was unsuccessful), 1 (value is a prefix of a keyword in trie) or 2 (key is intrie`).

\n
\n", "signature": "(trie: Dict, key: Sequence[Hashable]) -> Tuple[int, Dict]:", "funcdef": "def"}}, "docInfo": {"sqlglot": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 5861}, "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": 3}, "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": 671}, "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.bigquery.BigQuery.Generator.with_properties": {"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": 671}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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": 671}, "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.SPARK2": {"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.no_comment_column_constraint_sql": {"qualname": 5, "fullname": 8, "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.parse_date_delta_with_interval": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 46, "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.max_or_greatest": {"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": 51, "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.dialect.pivot_column_names": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 111, "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": 671}, "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": 671}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 81, "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": 671}, "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.hive.Hive.Generator.after_having_modifiers": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 40, "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": 671}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "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": 671}, "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": 671}, "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": 671}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "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": 671}, "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.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": 671}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "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.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": 671}, "sqlglot.dialects.spark.Spark.Generator.datediff_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.spark2": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.spark2.Spark2": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.spark2.Spark2.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 174}, "sqlglot.dialects.spark2.Spark2.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 671}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dialects.spark2.Spark2.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": 671}, "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.groupconcat_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "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": 671}, "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": 671}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "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": 671}, "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": 671}, "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": 67, "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": 671}, "sqlglot.dialects.tsql.TSQL.Generator.offset_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "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": 671}, "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": 2, "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.add_comments": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.expressions.Expression.append": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 54}, "sqlglot.expressions.Expression.set": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 45}, "sqlglot.expressions.Expression.depth": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.iter_expressions": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 14}, "sqlglot.expressions.Expression.find": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 83}, "sqlglot.expressions.Expression.find_all": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 81}, "sqlglot.expressions.Expression.find_ancestor": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 43}, "sqlglot.expressions.Expression.parent_select": {"qualname": 3, "fullname": 5, "annotation": 4, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "sqlglot.expressions.Expression.same_parent": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 13}, "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": 81}, "sqlglot.expressions.Expression.pop": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 22}, "sqlglot.expressions.Expression.assert_is": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "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": 168, "bases": 0, "doc": 183}, "sqlglot.expressions.Condition.or_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 168, "bases": 0, "doc": 183}, "sqlglot.expressions.Condition.not_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 108}, "sqlglot.expressions.Condition.as_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 178, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.isin": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 110, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.between": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.is_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.like": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.ilike": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.eq": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.neq": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.rlike": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "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": 160, "bases": 0, "doc": 201}, "sqlglot.expressions.Unionable.intersect": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 160, "bases": 0, "doc": 201}, "sqlglot.expressions.Unionable.except_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 160, "bases": 0, "doc": 202}, "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.Clone": {"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.Pragma": {"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.RawString": {"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.Column.parts": {"qualname": 2, "fullname": 4, "annotation": 4, "default_value": 0, "signature": 0, "bases": 0, "doc": 15}, "sqlglot.expressions.Column.to_dot": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 10}, "sqlglot.expressions.ColumnPosition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "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.MergeTreeTTLAction": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MergeTreeTTL": {"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.OnUpdateColumnConstraint": {"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": 186, "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": 2, "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.Insert.with_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 236, "bases": 0, "doc": 291}, "sqlglot.expressions.OnConflict": {"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": 2, "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": 186, "bases": 0, "doc": 239}, "sqlglot.expressions.Join.using": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 241}, "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.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.InputOutputFormat": {"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.RowFormatProperty": {"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.SettingsProperty": {"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.StabilityProperty": {"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.VolatileProperty": {"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": 35, "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.Tuple.isin": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 110, "bases": 0, "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": 89, "bases": 0, "doc": 213}, "sqlglot.expressions.Subqueryable.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 166, "bases": 0, "doc": 3}, "sqlglot.expressions.Subqueryable.with_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 236, "bases": 0, "doc": 301}, "sqlglot.expressions.Table": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Table.parts": {"qualname": 2, "fullname": 4, "annotation": 4, "default_value": 0, "signature": 0, "bases": 0, "doc": 14}, "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": 166, "bases": 0, "doc": 221}, "sqlglot.expressions.Union.select": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "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": 160, "bases": 0, "doc": 199}, "sqlglot.expressions.Select.group_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 275}, "sqlglot.expressions.Select.order_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 250}, "sqlglot.expressions.Select.sort_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 264}, "sqlglot.expressions.Select.cluster_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 264}, "sqlglot.expressions.Select.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 166, "bases": 0, "doc": 219}, "sqlglot.expressions.Select.offset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 166, "bases": 0, "doc": 219}, "sqlglot.expressions.Select.select": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 196}, "sqlglot.expressions.Select.lateral": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 235}, "sqlglot.expressions.Select.join": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 372, "bases": 0, "doc": 621}, "sqlglot.expressions.Select.where": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 253}, "sqlglot.expressions.Select.having": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 275}, "sqlglot.expressions.Select.window": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 3}, "sqlglot.expressions.Select.qualify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 3}, "sqlglot.expressions.Select.distinct": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 102, "bases": 0, "doc": 157}, "sqlglot.expressions.Select.ctas": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 184, "bases": 0, "doc": 223}, "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": 2, "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": 2, "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.DataTypeSize": {"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.ARRAY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"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.BIGSERIAL": {"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.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.CHAR": {"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.DATETIME64": {"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.DOUBLE": {"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.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.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.IMAGE": {"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.INT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT128": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT256": {"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.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.LONGBLOB": {"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.MAP": {"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.MEDIUMTEXT": {"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.NCHAR": {"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.NULLABLE": {"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.OBJECT": {"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.SERIAL": {"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.SMALLMONEY": {"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.STRUCT": {"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.TEXT": {"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.TINYINT": {"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.UINT": {"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.UTINYINT": {"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.Type.UINT128": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UINT256": {"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.UUID": {"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.VARCHAR": {"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.XML": {"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.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": 1, "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.Dot.build": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 12}, "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": 1, "doc": 3}, "sqlglot.expressions.Paren": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "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": 2, "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.ParameterizedAgg": {"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.Hll": {"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.Case.when": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 117, "bases": 0, "doc": 3}, "sqlglot.expressions.Case.else_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 84, "bases": 0, "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": 2, "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.CastToStrType": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "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.CurrentUser": {"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.FromBase64": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ToBase64": {"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.JSONKeyValue": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONObject": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.OpenJSONColumnDef": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.OpenJSON": {"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.JSONFormat": {"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.StarMap": {"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.MatchAgainst": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Max": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MD5": {"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.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.SHA": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SHA2": {"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.StandardHash": {"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.NextValueFor": {"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": 187, "bases": 0, "doc": 216}, "sqlglot.expressions.intersect": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 187, "bases": 0, "doc": 216}, "sqlglot.expressions.except_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 187, "bases": 0, "doc": 217}, "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": 136, "bases": 0, "doc": 205}, "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.insert": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 259, "bases": 0, "doc": 197}, "sqlglot.expressions.condition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 154, "bases": 0, "doc": 347}, "sqlglot.expressions.and_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 162, "bases": 0, "doc": 192}, "sqlglot.expressions.or_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 162, "bases": 0, "doc": 192}, "sqlglot.expressions.not_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 154, "bases": 0, "doc": 159}, "sqlglot.expressions.paren": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 122}, "sqlglot.expressions.to_identifier": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 69}, "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": 149, "bases": 0, "doc": 101}, "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": 242, "bases": 0, "doc": 305}, "sqlglot.expressions.subquery": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 182, "bases": 0, "doc": 188}, "sqlglot.expressions.column": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 208, "bases": 0, "doc": 74}, "sqlglot.expressions.cast": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 108, "bases": 0, "doc": 123}, "sqlglot.expressions.table_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 208, "bases": 0, "doc": 75}, "sqlglot.expressions.values": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 143}, "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": 46, "bases": 0, "doc": 74}, "sqlglot.expressions.replace_children": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 57, "bases": 0, "doc": 18}, "sqlglot.expressions.column_table_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 127}, "sqlglot.expressions.table_name": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 147}, "sqlglot.expressions.replace_tables": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 170}, "sqlglot.expressions.replace_placeholders": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 56, "bases": 0, "doc": 246}, "sqlglot.expressions.expand": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 91, "bases": 0, "doc": 338}, "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": 20, "bases": 0, "doc": 8}, "sqlglot.expressions.false": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 8}, "sqlglot.expressions.null": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 20, "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": 671}, "sqlglot.generator.Generator.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 396, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.generate": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 76, "bases": 0, "doc": 55}, "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": 88, "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.columnposition_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": 54, "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.clone_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.bytestring_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.rawstring_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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": 55, "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.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.onconflict_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": 74, "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.pragma_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.after_having_modifiers": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.after_limit_modifiers": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "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.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.windowspec_sql": {"qualname": 3, "fullname": 5, "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.nextvaluefor_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.matchagainst_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.jsonobject_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_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.likeany_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": 179, "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.generator.cached_generator": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 65, "bases": 0, "doc": 7}, "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": 41, "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": 76, "bases": 0, "doc": 98}, "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": 67, "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.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": 120, "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": 278}, "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": 276}, "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": 64, "bases": 0, "doc": 188}, "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": 27, "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": 642, "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": 112, "bases": 0, "doc": 232}, "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": 32, "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": 320}, "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": 51, "bases": 0, "doc": 330}, "sqlglot.optimizer.scope.build_scope": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "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": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.remove_compliments": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 19}, "sqlglot.optimizer.simplify.uniq_sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 23}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 58}, "sqlglot.optimizer.simplify.simplify_literals": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "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.is_false": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.is_null": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 29, "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": 29, "bases": 0, "doc": 3}, "sqlglot.parser.parse_like": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "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": 73, "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": 187, "bases": 0, "doc": 83}, "sqlglot.schema.Schema.column_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 143, "bases": 0, "doc": 79}, "sqlglot.schema.Schema.get_column_type": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 149, "bases": 0, "doc": 79}, "sqlglot.schema.Schema.supported_table_args": {"qualname": 4, "fullname": 6, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "sqlglot.schema.Schema.empty": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "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.AbstractMappingSchema.nested_get": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 75, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 137}, "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": 187, "bases": 0, "doc": 83}, "sqlglot.schema.MappingSchema.column_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 143, "bases": 0, "doc": 79}, "sqlglot.schema.MappingSchema.get_column_type": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 149, "bases": 0, "doc": 79}, "sqlglot.schema.ensure_schema": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 106, "bases": 0, "doc": 3}, "sqlglot.schema.ensure_column_mapping": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 3}, "sqlglot.schema.flatten_schema": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 69, "bases": 0, "doc": 3}, "sqlglot.schema.nested_get": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 71, "bases": 0, "doc": 86}, "sqlglot.schema.nested_set": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 276}, "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.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.NATIONAL_STRING": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UINT128": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INT256": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UINT256": {"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.BIGDECIMAL": {"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.DATETIME64": {"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.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.CACHE": {"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.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.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_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.CURRENT_USER": {"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.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.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.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.KEEP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "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.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": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LOCK": {"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.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.NEXT_VALUE_FOR": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 13, "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.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.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.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.PRAGMA": {"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.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.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.SETTINGS": {"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.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.TRUE": {"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.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.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": 133, "bases": 0, "doc": 83}, "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.unnest_to_explode": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 16}, "sqlglot.transforms.explode_to_unnest": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 12}, "sqlglot.transforms.remove_target_from_merge": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 11}, "sqlglot.transforms.remove_within_group_for_percentiles": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.transforms.add_recursive_cte_column_names": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.transforms.preprocess": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 94, "bases": 0, "doc": 84}, "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": 54, "bases": 0, "doc": 200}, "sqlglot.trie.in_trie": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 299}}, "length": 1804, "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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Case.else_": {"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": 52, "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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}}, "df": 8}}}, "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, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "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": 22}}}, "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}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.expressions.Pragma": {"tf": 1}, "sqlglot.generator.Generator.pragma_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PRAGMA": {"tf": 1}}, "df": 3}}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 11, "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.spark2.Spark2.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": 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.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}}, "df": 3}}, "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, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.expressions.ParameterizedAgg": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "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}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}}, "df": 2}, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_parens": {"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}}}}, "s": {"docs": {"sqlglot.transforms.remove_within_group_for_percentiles": {"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.dialects.dialect.pivot_column_names": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}}, "df": 6}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1}}, "df": 1}}}, "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.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}}, "df": 4, "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}}}, "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}}}}}}}}}}}}}, "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.Schema.empty": {"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": 14, "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": {"2": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Tokenizer": {"tf": 1}}, "df": 7}, "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.datediff_sql": {"tf": 1}}, "df": 5, "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}}}}, "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.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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": 275, "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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}}, "df": 10}}}, "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.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": 25, "s": {"docs": {"sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}}, "df": 2}, "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.schema.nested_set": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}}, "df": 12, "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, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.SETTINGS": {"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.SettingsProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "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}}}}}}}}, "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}}, "df": 8, "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.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}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StarMap": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.python.PythonExecutor.static": {"tf": 1}}, "df": 1}}}, "b": {"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.StabilityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.StandardHash": {"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, "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.TokenType.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_STRING": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 9}}}, "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, "e": {"docs": {"sqlglot.expressions.Expression.same_parent": {"tf": 1}}, "df": 1}, "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.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 10}}}}}}}, "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}}}}, "a": {"2": {"docs": {"sqlglot.expressions.SHA2": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.expressions.SHA": {"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}}}, "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}}}}}, "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}}}}}}}}}}, "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}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"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.OnUpdateColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.OnConflict": {"tf": 1}, "sqlglot.generator.Generator.onconflict_sql": {"tf": 1}}, "df": 2}}}}}}, "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}}}}}}}}}}}}}}}, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.max_or_greatest": {"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": 9, "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.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": 8}}}}}, "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}}}}}}}}}}}, "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, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.OpenJSON": {"tf": 1}, "sqlglot.generator.Generator.openjson_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, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "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": {}, "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.dialects.tsql.TSQL.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": 7}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "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, "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.Table.parts": {"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.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.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}}, "df": 7}, "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}}}}}}}, "g": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 1}}}}}, "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.Column.to_dot": {"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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 19, "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.spark2.Spark2.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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 275}}}}}}}, "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}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"6": {"4": {"docs": {"sqlglot.expressions.ToBase64": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}, "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.offset_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 8}}, "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.CURRENT_TIME": {"tf": 1}}, "df": 9, "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.expressions.Tuple.isin": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}}, "df": 5}}}}, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"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": 70, "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.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}}, "df": 3}}}}}}, "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.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1}, "sqlglot.expressions.Count": {"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.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.dialects.dialect.pivot_column_names": {"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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 53, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 3}}}, "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}, "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.expressions.ColumnPosition": {"tf": 1}, "sqlglot.generator.Generator.columnposition_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.dialects.dialect.no_comment_column_constraint_sql": {"tf": 1}, "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": 6, "s": {"docs": {"sqlglot.expressions.Expression.add_comments": {"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.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}}}}}}}}, "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.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}}, "df": 4}}}}}}}, "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.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 15}}}}}}, "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, "d": {"docs": {"sqlglot.generator.cached_generator": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CastToStrType": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}}, "df": 6, "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}}}}}}}}}}}}}}}}}}}}}}}}}}, "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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}}, "df": 9}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Clone": {"tf": 1}, "sqlglot.generator.Generator.clone_sql": {"tf": 1}}, "df": 2}}}, "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}}, "df": 3}}}}}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 8, "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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.CurrentUser": {"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": {}, "df": 0, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}}, "df": 71, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataTypeSize": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"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": 11, "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.spark.Spark.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}}, "df": 3}}}}, "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": {"6": {"4": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME64": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "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.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 7}}}}, "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}}, "df": 2}, "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.SPARK2": {"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": 22}}}}}}, "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.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 3}}, "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}}}}, "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.DEFAULT": {"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.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, "t": {"docs": {"sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}}, "df": 5}, "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}}}}, "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": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT128": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"tf": 1}, "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": 9}}}}}, "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.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}}, "df": 7, "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}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.InputOutputFormat": {"tf": 1}, "sqlglot.generator.Generator.inputoutputformat_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "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.Condition.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.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}}, "df": 25, "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}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}}, "df": 3}}, "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.Condition.ilike": {"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": 7, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.generator.Generator.ilikeany_sql": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.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": 7, "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}}, "df": 1, "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}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1}}, "df": 2, "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": {"sqlglot.expressions.Condition.as_": {"tf": 1}}, "df": 1, "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}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}}, "df": 4}}}}, "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.Expression.add_comments": {"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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 11, "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}}}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}}, "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.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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}}, "df": 5}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"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.Insert.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}}, "df": 13, "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.transforms.remove_within_group_for_percentiles": {"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}}}}}}}}}}}}}}}}}}}}}}, "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.tokens.TokenType.WINDOW": {"tf": 1}}, "df": 9, "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}, "sqlglot.generator.Generator.windowspec_sql": {"tf": 1}}, "df": 10}}}}}}}}, "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}}, "df": 4}}}, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}}, "df": 4, "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, "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.FROM": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 13, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"6": {"4": {"docs": {"sqlglot.expressions.FromBase64": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}, "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}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}}, "df": 3}}}}, "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.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}}, "df": 3}}}, "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.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"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.dialects.dialect.max_or_greatest": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}}, "df": 2}}}}}}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.hive.Hive.Generator.after_having_modifiers": {"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.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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.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.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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.offset_sql": {"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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.cached_generator": {"tf": 1}}, "df": 308}}, "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, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}}, "df": 2}}}}}}, "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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "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.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 8}, "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}}}}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.JSONKeyValue": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}}, "df": 2}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONObject": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_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.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}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONFormat": {"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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_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}}}}}}}}}, "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": {"sqlglot.tokens.TokenType.CURRENT_USER": {"tf": 1}}, "df": 1, "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}}}}}}}}, "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}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "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}}}}}}}, "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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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.same_parent": {"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": 46, "s": {"docs": {"sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 4}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.expand": {"tf": 1}}, "df": 1}}}}, "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.Condition.eq": {"tf": 1}, "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": 5}, "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, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}}, "df": 2}}, "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}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.schema.Schema.empty": {"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.datatype_sql": {"tf": 1}}, "df": 8}}}}}, "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.expressions.RenameTable": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 3}}}}}}, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}}, "df": 9}}}}, "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": {}, "df": 0, "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.expressions.Condition.rlike": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}}, "df": 2, "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, "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.RowFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}, "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}}}, "w": {"docs": {"sqlglot.tokens.TokenType.RAW_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.RawString": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}}, "df": 2}}}}}}}}, "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.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"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.generator.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}}, "df": 9}}}, "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.Condition.like": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 7, "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}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.generator.Generator.likeany_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}}, "df": 2, "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}}}}}, "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}}, "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}}}}}}}}}}}}}, "k": {"docs": {"sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}}, "df": 4, "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": {"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, "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}}}}, "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}}}}}}, "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}}}, "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}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}}, "df": 9}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}}, "df": 6}}}}, "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}}}, "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": {"sqlglot.expressions.Hll": {"tf": 1}}, "df": 1, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 8, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.MergeTreeTTL": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_sql": {"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.expressions.MergeTreeTTLAction": {"tf": 1}, "sqlglot.generator.Generator.mergetreettlaction_sql": {"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.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, "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}}}}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dialects.dialect.max_or_greatest": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}}, "df": 3}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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": {}, "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.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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}}, "df": 5}}}}}}}, "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}}, "d": {"5": {"docs": {"sqlglot.expressions.MD5": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}}, "df": 13}}}}}, "d": {"docs": {}, "df": 0, "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.BIGDECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"tf": 1}}, "df": 2}}}}}}}, "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.Condition.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": 6}}}}}, "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.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}}, "df": 8, "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}, "sqlglot.generator.Generator.bytestring_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 3}}}}, "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.dialects.dialect.pivot_column_names": {"tf": 1}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 7}}}, "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_STRING": {"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.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}}, "df": 7, "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}}, "df": 5, "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.dialects.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 4}}}}, "q": {"docs": {"sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}}, "df": 4}, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}}, "df": 2, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.NextValueFor": {"tf": 1}, "sqlglot.generator.Generator.nextvaluefor_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "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, "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}}}}}}, "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}}}}, "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": {"sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.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": 5}}}, "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, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"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.VolatileProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"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}, "sqlglot.tokens.TokenType.KEEP": {"tf": 1}}, "df": 3}}, "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}}}}}, "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.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}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.QUOTE": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Year": {"tf": 1}}, "df": 1}}}}}}, "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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Case.else_": {"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": 52, "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.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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": 380, "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.bigquery.BigQuery.Generator.with_properties": {"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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.SPARK2": {"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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.max_or_greatest": {"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.dialect.pivot_column_names": {"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.hive.Hive.Generator.after_having_modifiers": {"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.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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.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.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.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.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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.offset_sql": {"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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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.same_parent": {"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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.Clone": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Pragma": {"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.RawString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.ColumnPosition": {"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.MergeTreeTTLAction": {"tf": 1}, "sqlglot.expressions.MergeTreeTTL": {"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.OnUpdateColumnConstraint": {"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.Insert.with_": {"tf": 1}, "sqlglot.expressions.OnConflict": {"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.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.InputOutputFormat": {"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.RowFormatProperty": {"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.SettingsProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.StabilityProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatileProperty": {"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.Tuple.isin": {"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.Table.parts": {"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.DataTypeSize": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.PseudoType": {"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.Dot.build": {"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.ParameterizedAgg": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.Hll": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.CastToStrType": {"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.CurrentUser": {"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.FromBase64": {"tf": 1}, "sqlglot.expressions.ToBase64": {"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.JSONKeyValue": {"tf": 1}, "sqlglot.expressions.JSONObject": {"tf": 1}, "sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.expressions.OpenJSON": {"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.JSONFormat": {"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.StarMap": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.MD5": {"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.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.SHA": {"tf": 1}, "sqlglot.expressions.SHA2": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StandardHash": {"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.NextValueFor": {"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.insert": {"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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.cached_generator": {"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.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.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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"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.parse_like": {"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.Schema.empty": {"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.AbstractMappingSchema.nested_get": {"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.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.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.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 1804, "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.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": 11}}}, "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.Schema.empty": {"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.AbstractMappingSchema.nested_get": {"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.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}}, "df": 28, "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": {"2": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK2": {"tf": 1}, "sqlglot.dialects.spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Tokenizer": {"tf": 1.4142135623730951}}, "df": 8}, "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.datediff_sql": {"tf": 1.4142135623730951}}, "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, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.select": {"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": 25, "s": {"docs": {"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": 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.schema.nested_set": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}}, "df": 12, "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, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.SETTINGS": {"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.SettingsProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "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}}}}}}}}, "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}}, "df": 8, "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.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}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StarMap": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.python.PythonExecutor.static": {"tf": 1}}, "df": 1}}}, "b": {"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.StabilityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.StandardHash": {"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, "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.TokenType.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_STRING": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 9}}}, "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, "e": {"docs": {"sqlglot.expressions.Expression.same_parent": {"tf": 1}}, "df": 1}, "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.except_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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": 11}}}}}}}, "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}}}}, "a": {"2": {"docs": {"sqlglot.expressions.SHA2": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.expressions.SHA": {"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}}}, "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}}}}}, "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}}}}}}}}}}, "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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"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": 21}}}}}}}, "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.interval_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1.4142135623730951}}, "df": 9}}}, "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, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "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": 22}}}, "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}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.expressions.Pragma": {"tf": 1}, "sqlglot.generator.Generator.pragma_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PRAGMA": {"tf": 1}}, "df": 3}}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 11, "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.spark2.Spark2.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.parse_like": {"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": 34}, "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.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}}, "df": 3}}, "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, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.expressions.ParameterizedAgg": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "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}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}}, "df": 2}, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_parens": {"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}}}}, "s": {"docs": {"sqlglot.transforms.remove_within_group_for_percentiles": {"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.dialects.dialect.pivot_column_names": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}}, "df": 6}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1}}, "df": 1}}}, "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.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}}, "df": 4, "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}}}, "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}}}}}}}}}}}}}, "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}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"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.OnUpdateColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.OnConflict": {"tf": 1}, "sqlglot.generator.Generator.onconflict_sql": {"tf": 1}}, "df": 2}}}}}}, "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}}}}}}}}}}}}}}}, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.max_or_greatest": {"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": 9, "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.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": 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": {"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.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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"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": 128}}}}}}}, "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, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.OpenJSON": {"tf": 1}, "sqlglot.generator.Generator.openjson_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, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "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": {}, "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.dialects.tsql.TSQL.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": 7}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "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.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 11}}}}}, "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, "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.Table.parts": {"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.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": 40, "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.Generator.if_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}}, "df": 8}, "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}}}}}}}, "g": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 1}}}}}, "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.Column.to_dot": {"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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 19, "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.spark2.Spark2.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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.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": 285}, "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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 275}}}}}}}, "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}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"6": {"4": {"docs": {"sqlglot.expressions.ToBase64": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}, "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.offset_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1.4142135623730951}}, "df": 10}}, "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.CURRENT_TIME": {"tf": 1}}, "df": 10, "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.expressions.Tuple.isin": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}}, "df": 5}}}}, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"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": 70, "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": {}, "df": 0, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}}, "df": 71, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataTypeSize": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"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": 11, "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.spark.Spark.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}}, "df": 3}}}}, "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": {"6": {"4": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME64": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "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.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 7}}}}, "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}}, "df": 2}, "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.SPARK2": {"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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.max_or_greatest": {"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.dialect.pivot_column_names": {"tf": 1}}, "df": 68, "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.bigquery.BigQuery.Generator.with_properties": {"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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.SPARK2": {"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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.max_or_greatest": {"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.dialect.pivot_column_names": {"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.hive.Hive.Generator.after_having_modifiers": {"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.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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.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.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.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.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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.offset_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 218}}}}}}, "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.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 3}}, "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}}}}, "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.DEFAULT": {"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.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, "t": {"docs": {"sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}}, "df": 5}, "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}}}}, "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.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}}, "df": 3}}}}}}, "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.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1}, "sqlglot.expressions.Count": {"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.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.dialects.dialect.pivot_column_names": {"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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 53, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 3}}}, "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}, "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.expressions.ColumnPosition": {"tf": 1}, "sqlglot.generator.Generator.columnposition_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.dialects.dialect.no_comment_column_constraint_sql": {"tf": 1}, "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": 6, "s": {"docs": {"sqlglot.expressions.Expression.add_comments": {"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.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}}}}}}}}, "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.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}}, "df": 4}}}}}}}, "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.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 15}}}}}}, "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, "d": {"docs": {"sqlglot.generator.cached_generator": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CastToStrType": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}}, "df": 6, "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}}}}}}}}}}}}}}}}}}}}}}}}}}, "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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}}, "df": 10}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Clone": {"tf": 1}, "sqlglot.generator.Generator.clone_sql": {"tf": 1}}, "df": 2}}}, "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}}, "df": 3}}}}}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 8, "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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.CurrentUser": {"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": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT128": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"tf": 1}, "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": 9}}}}}, "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.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}}, "df": 7, "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}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.InputOutputFormat": {"tf": 1}, "sqlglot.generator.Generator.inputoutputformat_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "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.Condition.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.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}}, "df": 25, "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}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}}, "df": 3}}, "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.Condition.ilike": {"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": 7, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.generator.Generator.ilikeany_sql": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.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": 7, "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}}, "df": 1, "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}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1}}, "df": 2, "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": {"sqlglot.expressions.Condition.as_": {"tf": 1}}, "df": 1, "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}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}}, "df": 4}}}}, "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.Expression.add_comments": {"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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 11, "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}}}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}}, "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.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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}}, "df": 5}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"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.Insert.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}}, "df": 13, "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.transforms.remove_within_group_for_percentiles": {"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}}}}}}}}}}}}}}}}}}}}}}, "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.tokens.TokenType.WINDOW": {"tf": 1}}, "df": 9, "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}, "sqlglot.generator.Generator.windowspec_sql": {"tf": 1}}, "df": 10}}}}}}}}, "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}}, "df": 4}}}, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}}, "df": 4, "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, "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.FROM": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 13, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"6": {"4": {"docs": {"sqlglot.expressions.FromBase64": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}, "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}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}}, "df": 3}}}}, "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.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}}, "df": 3}}}, "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.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"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.dialects.dialect.max_or_greatest": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}}, "df": 2}}}}}}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.hive.Hive.Generator.after_having_modifiers": {"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.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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.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.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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.offset_sql": {"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.columnposition_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.clone_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.bytestring_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.is_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.like_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.likeany_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}, "sqlglot.generator.cached_generator": {"tf": 1.4142135623730951}}, "df": 309}}, "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, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}}, "df": 2}}}}}}, "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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "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.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 8}, "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}}}}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.JSONKeyValue": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}}, "df": 2}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONObject": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_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.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}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONFormat": {"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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 14}}}}, "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}}}}}}}}}, "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": {"sqlglot.tokens.TokenType.CURRENT_USER": {"tf": 1}}, "df": 1, "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}}}}}}}}, "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}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "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}}}}}}}, "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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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.same_parent": {"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": 46, "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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1.4142135623730951}, "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.same_parent": {"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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.Clone": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Pragma": {"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.RawString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.ColumnPosition": {"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.MergeTreeTTLAction": {"tf": 1}, "sqlglot.expressions.MergeTreeTTL": {"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.OnUpdateColumnConstraint": {"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.Insert.with_": {"tf": 1}, "sqlglot.expressions.OnConflict": {"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.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.InputOutputFormat": {"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.RowFormatProperty": {"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.SettingsProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.StabilityProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatileProperty": {"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.Tuple.isin": {"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.Table.parts": {"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.DataTypeSize": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.PseudoType": {"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.Dot.build": {"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.ParameterizedAgg": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.Hll": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.CastToStrType": {"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.CurrentUser": {"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.FromBase64": {"tf": 1}, "sqlglot.expressions.ToBase64": {"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.JSONKeyValue": {"tf": 1}, "sqlglot.expressions.JSONObject": {"tf": 1}, "sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.expressions.OpenJSON": {"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.JSONFormat": {"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.StarMap": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.MD5": {"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.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.SHA": {"tf": 1}, "sqlglot.expressions.SHA2": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StandardHash": {"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.NextValueFor": {"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.insert": {"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": 632}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.expand": {"tf": 1}}, "df": 1}}}}, "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.Condition.eq": {"tf": 1}, "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": 5}, "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, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}}, "df": 2}}, "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}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.schema.Schema.empty": {"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.datatype_sql": {"tf": 1.4142135623730951}}, "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.expressions.RenameTable": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 3}}}}}}, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}}, "df": 9}}}}, "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": {}, "df": 0, "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.expressions.Condition.rlike": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}}, "df": 2, "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, "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.RowFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}, "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}}}, "w": {"docs": {"sqlglot.tokens.TokenType.RAW_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.RawString": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}}, "df": 2}}}}}}}}, "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.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"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.generator.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}}, "df": 9}}}, "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.Condition.like": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 7, "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}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.generator.Generator.likeany_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}}, "df": 2, "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}}}}}, "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}}, "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}}}}}}}}}}}}}, "k": {"docs": {"sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}}, "df": 4, "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": {"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, "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}}}}, "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}}}}}}, "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}}}, "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}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1.4142135623730951}}, "df": 10}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}}, "df": 6}}}}, "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}}}, "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.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 21}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Hll": {"tf": 1}}, "df": 1, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 9, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.MergeTreeTTL": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_sql": {"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.expressions.MergeTreeTTLAction": {"tf": 1}, "sqlglot.generator.Generator.mergetreettlaction_sql": {"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.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, "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}}}}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dialects.dialect.max_or_greatest": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}}, "df": 3}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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": {}, "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.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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}}, "df": 5}}}}}}}, "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}}, "d": {"5": {"docs": {"sqlglot.expressions.MD5": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}}, "df": 14}}}}}, "d": {"docs": {}, "df": 0, "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.BIGDECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"tf": 1}}, "df": 2}}}}}}}, "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.Condition.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": 6}}}}}, "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.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}}, "df": 8, "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}, "sqlglot.generator.Generator.bytestring_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 3}}}}, "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.dialects.dialect.pivot_column_names": {"tf": 1}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 7}}}, "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_STRING": {"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.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}}, "df": 7, "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}}, "df": 5, "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.dialects.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 4}}}}, "q": {"docs": {"sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}}, "df": 4}, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}}, "df": 2, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.NextValueFor": {"tf": 1}, "sqlglot.generator.Generator.nextvaluefor_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "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, "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}}}}}}, "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}}}}, "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": {"sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.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": 5}}}, "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, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"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.VolatileProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"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}, "sqlglot.tokens.TokenType.KEEP": {"tf": 1}}, "df": 3}}, "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}}}}}, "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.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}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.QUOTE": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Year": {"tf": 1}}, "df": 1}}}}}}, "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.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Table.parts": {"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.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.schema.Schema.supported_table_args": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.empty": {"tf": 1}}, "df": 23, "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.Expression.same_parent": {"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.empty": {"tf": 1}}, "df": 9}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"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}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.parent_select": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.depth": {"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.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}}, "df": 2}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"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": {}, "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.expressions.Expression.parent_select": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "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": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}}, "df": 3}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"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.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"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.SPARK2": {"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.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.XML": {"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.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.NATIONAL_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT256": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT256": {"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.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"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.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.TRUE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1.4142135623730951}}, "df": 377, "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}}}}, "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}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}}, "df": 2, "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}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.tokens.TokenType.FROM": {"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.SPARK2": {"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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 377, "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}}}}}, "k": {"docs": {"sqlglot.tokens.TokenType.LOCK": {"tf": 1.4142135623730951}}, "df": 1}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "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}}}}, "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}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.LOAD": {"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}}}}}}, "e": {"docs": {}, "df": 0, "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": {"2": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK2": {"tf": 1.4142135623730951}}, "df": 1}, "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}, "sqlglot.tokens.TokenType.NATIONAL_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RAW_STRING": {"tf": 1.4142135623730951}}, "df": 6}}}}}, "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}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.SETTINGS": {"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}}}}}}}}, "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}}}, "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}}}}}, "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}}}}}}}}}}, "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}}}}}}}, "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}}}, "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}}}}, "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, "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}}}}, "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}}}}}}}}, "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": {}, "df": 0, "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}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "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.SPARK2": {"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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 377, "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}}, "df": 1, "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.SPARK2": {"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}}}}}}, "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}}, "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": {}, "df": 0, "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": {"6": {"4": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATETIME64": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "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}}}, "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.DEFAULT": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "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}}}}}}}, "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}}}}}, "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.SPARK2": {"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.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.XML": {"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.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.NATIONAL_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT256": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT256": {"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.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"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.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.TRUE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1.4142135623730951}}, "df": 370}, "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}}}}}, "d": {"docs": {}, "df": 0, "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.BIGDECIMAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "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}}}}}}, "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.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}}, "df": 3, "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}}}}}}}, "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}}}}}}}}}, "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}}}}, "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, "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_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.PRAGMA": {"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}}}}}, "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}}}, "w": {"docs": {"sqlglot.tokens.TokenType.RAW_STRING": {"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.ROW": {"tf": 1.4142135623730951}}, "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.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}}}, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}}, "df": 64}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}}, "df": 3, "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}}}}}}}}}}, "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}}}}}, "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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 274}}}}}}}, "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}}, "df": 1}}}}}, "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}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INET": {"tf": 1.4142135623730951}}, "df": 2}}, "t": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.INT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT128": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.INT256": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT256": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "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}}}}}}}}, "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}}, "df": 2}}, "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_STRING": {"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}}}}, "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": {}, "df": 0, "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}}}}}, "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}}}}}}}, "o": {"docs": {}, "df": 0, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}}, "df": 2}}}}, "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}}, "df": 2}, "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}}}}, "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}}}}}}}}}, "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}}}}}, "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}}}, "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}}}}}, "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}}}}}}, "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}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.UINT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.UINT256": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT": {"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, "r": {"docs": {"sqlglot.tokens.TokenType.CURRENT_USER": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.USING": {"tf": 1.4142135623730951}}, "df": 1}}}}, "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}}}}}}}, "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}}}}}}, "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}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.VAR": {"tf": 1.4142135623730951}}, "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.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "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}}}}, "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": {"sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}}, "df": 1, "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}}}}}}}}, "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}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.KEEP": {"tf": 1.4142135623730951}}, "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, "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}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 6, "x": {"7": {"docs": {}, "df": 0, "f": {"0": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"2": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "c": {"4": {"docs": {}, "df": 0, "d": {"3": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "5": {"2": {"docs": {}, "df": 0, "d": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "3": {"docs": {}, "df": 0, "f": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "6": {"3": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"docs": {}, "df": 0, "e": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "7": {"2": {"docs": {}, "df": 0, "e": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "3": {"7": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"docs": {}, "df": 0, "d": {"0": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}}, "9": {"docs": {}, "df": 0, "a": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "a": {"0": {"3": {"docs": {}, "df": 0, "a": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "7": {"0": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "c": {"1": {"0": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "a": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}, "1": {"7": {"5": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "d": {"8": {"0": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "e": {"1": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "f": {"9": {"docs": {}, "df": 0, "a": {"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}, "3": {"9": {"6": {"8": {"4": {"9": {"7": {"3": {"5": {"8": {"0": {"9": {"6": {"0": {"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}, "7": {"3": {"3": {"5": {"0": {"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}, "8": {"7": {"8": {"9": {"4": {"4": {"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}, "9": {"2": {"9": {"0": {"5": {"6": {"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}, "5": {"6": {"8": {"0": {"9": {"9": {"2": {"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}, "8": {"9": {"1": {"4": {"8": {"8": {"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}, "9": {"4": {"7": {"7": {"9": {"2": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"4": {"3": {"6": {"8": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"0": {"5": {"4": {"8": {"9": {"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}, "docs": {}, "df": 0}, "1": {"0": {"4": {"0": {"4": {"8": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"4": {"2": {"7": {"2": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"5": {"0": {"4": {"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": {"0": {"5": {"2": {"8": {"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": {"5": {"9": {"3": {"6": {"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}, "5": {"4": {"1": {"1": {"6": {"8": {"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}, "6": {"1": {"2": {"0": {"9": {"6": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"3": {"3": {"1": {"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}, "7": {"7": {"7": {"0": {"4": {"0": {"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}, "9": {"8": {"7": {"6": {"3": {"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}, "7": {"2": {"6": {"6": {"1": {"6": {"0": {"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}, "7": {"2": {"8": {"2": {"2": {"4": {"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}, "docs": {}, "df": 0}, "9": {"7": {"7": {"5": {"3": {"1": {"2": {"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}, "docs": {}, "df": 0}, "8": {"1": {"5": {"4": {"9": {"6": {"8": {"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}, "9": {"2": {"0": {"5": {"6": {"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}, "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": 2}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.columndef_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.national_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties": {"tf": 2.449489742783178}, "sqlglot.generator.Generator.table_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 2}, "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.lineage.Node.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 43}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 5.291502622129181}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 5.744562646538029}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"tf": 6.164414002968976}, "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.max_or_greatest": {"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": 6.48074069840786}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 4}, "sqlglot.dialects.dialect.pivot_column_names": {"tf": 9.539392014169456}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 4.47213595499958}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 8}, "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.hive.Hive.Generator.after_having_modifiers": {"tf": 5.744562646538029}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 5.291502622129181}, "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.interval_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 5.291502622129181}, "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.datatype_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 6.6332495807108}, "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.groupconcat_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tableau.Tableau.Generator.count_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": 7.416198487095663}, "sqlglot.dialects.tsql.TSQL.Generator.offset_sql": {"tf": 5.291502622129181}, "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.add_comments": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.append": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.set": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 5.744562646538029}, "sqlglot.expressions.Expression.find": {"tf": 7.0710678118654755}, "sqlglot.expressions.Expression.find_all": {"tf": 7.0710678118654755}, "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": 4.47213595499958}, "sqlglot.expressions.Expression.assert_is": {"tf": 5.477225575051661}, "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": 11.789826122551595}, "sqlglot.expressions.Condition.or_": {"tf": 11.789826122551595}, "sqlglot.expressions.Condition.not_": {"tf": 4.898979485566356}, "sqlglot.expressions.Condition.as_": {"tf": 12.12435565298214}, "sqlglot.expressions.Condition.isin": {"tf": 9.591663046625438}, "sqlglot.expressions.Condition.between": {"tf": 7.810249675906654}, "sqlglot.expressions.Condition.is_": {"tf": 6.928203230275509}, "sqlglot.expressions.Condition.like": {"tf": 6.928203230275509}, "sqlglot.expressions.Condition.ilike": {"tf": 6.928203230275509}, "sqlglot.expressions.Condition.eq": {"tf": 5.291502622129181}, "sqlglot.expressions.Condition.neq": {"tf": 5.291502622129181}, "sqlglot.expressions.Condition.rlike": {"tf": 6.928203230275509}, "sqlglot.expressions.Unionable.union": {"tf": 11.489125293076057}, "sqlglot.expressions.Unionable.intersect": {"tf": 11.489125293076057}, "sqlglot.expressions.Unionable.except_": {"tf": 11.489125293076057}, "sqlglot.expressions.Column.to_dot": {"tf": 4.47213595499958}, "sqlglot.expressions.Delete.delete": {"tf": 11.489125293076057}, "sqlglot.expressions.Delete.where": {"tf": 12.409673645990857}, "sqlglot.expressions.Delete.returning": {"tf": 11.489125293076057}, "sqlglot.expressions.Insert.with_": {"tf": 13.96424004376894}, "sqlglot.expressions.Literal.number": {"tf": 4.898979485566356}, "sqlglot.expressions.Literal.string": {"tf": 4.898979485566356}, "sqlglot.expressions.Join.on": {"tf": 12.409673645990857}, "sqlglot.expressions.Join.using": {"tf": 12.409673645990857}, "sqlglot.expressions.Properties.from_dict": {"tf": 5.291502622129181}, "sqlglot.expressions.Tuple.isin": {"tf": 9.591663046625438}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 8.602325267042627}, "sqlglot.expressions.Subqueryable.limit": {"tf": 11.704699910719626}, "sqlglot.expressions.Subqueryable.with_": {"tf": 13.96424004376894}, "sqlglot.expressions.Union.limit": {"tf": 11.704699910719626}, "sqlglot.expressions.Union.select": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.from_": {"tf": 11.489125293076057}, "sqlglot.expressions.Select.group_by": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.order_by": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.sort_by": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.cluster_by": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.limit": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.offset": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.select": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.lateral": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.join": {"tf": 17.46424919657298}, "sqlglot.expressions.Select.where": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.having": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.window": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.qualify": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.distinct": {"tf": 9.219544457292887}, "sqlglot.expressions.Select.ctas": {"tf": 12.328828005937952}, "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.Dot.build": {"tf": 6.557438524302}, "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.Case.when": {"tf": 9.848857801796104}, "sqlglot.expressions.Case.else_": {"tf": 8.366600265340756}, "sqlglot.expressions.Cast.is_type": {"tf": 5.656854249492381}, "sqlglot.expressions.maybe_parse": {"tf": 14.866068747318506}, "sqlglot.expressions.union": {"tf": 12.409673645990857}, "sqlglot.expressions.intersect": {"tf": 12.409673645990857}, "sqlglot.expressions.except_": {"tf": 12.409673645990857}, "sqlglot.expressions.select": {"tf": 10.677078252031311}, "sqlglot.expressions.from_": {"tf": 10.583005244258363}, "sqlglot.expressions.update": {"tf": 13.892443989449804}, "sqlglot.expressions.delete": {"tf": 13.711309200802088}, "sqlglot.expressions.insert": {"tf": 14.594519519326424}, "sqlglot.expressions.condition": {"tf": 11.269427669584644}, "sqlglot.expressions.and_": {"tf": 11.575836902790225}, "sqlglot.expressions.or_": {"tf": 11.575836902790225}, "sqlglot.expressions.not_": {"tf": 11.269427669584644}, "sqlglot.expressions.paren": {"tf": 7.615773105863909}, "sqlglot.expressions.to_identifier": {"tf": 5.0990195135927845}, "sqlglot.expressions.to_interval": {"tf": 6.164414002968976}, "sqlglot.expressions.to_table": {"tf": 11.045361017187261}, "sqlglot.expressions.to_column": {"tf": 6.708203932499369}, "sqlglot.expressions.alias_": {"tf": 14.142135623730951}, "sqlglot.expressions.subquery": {"tf": 12.24744871391589}, "sqlglot.expressions.column": {"tf": 13.114877048604}, "sqlglot.expressions.cast": {"tf": 9.433981132056603}, "sqlglot.expressions.table_": {"tf": 13.114877048604}, "sqlglot.expressions.values": {"tf": 10.44030650891055}, "sqlglot.expressions.var": {"tf": 6.928203230275509}, "sqlglot.expressions.rename_table": {"tf": 7.745966692414834}, "sqlglot.expressions.convert": {"tf": 6.164414002968976}, "sqlglot.expressions.replace_children": {"tf": 6.928203230275509}, "sqlglot.expressions.column_table_names": {"tf": 5.385164807134504}, "sqlglot.expressions.table_name": {"tf": 5.385164807134504}, "sqlglot.expressions.replace_tables": {"tf": 6.164414002968976}, "sqlglot.expressions.replace_placeholders": {"tf": 6.855654600401044}, "sqlglot.expressions.expand": {"tf": 8.660254037844387}, "sqlglot.expressions.func": {"tf": 10.04987562112089}, "sqlglot.expressions.true": {"tf": 4.123105625617661}, "sqlglot.expressions.false": {"tf": 4.123105625617661}, "sqlglot.expressions.null": {"tf": 4.123105625617661}, "sqlglot.generator.Generator.__init__": {"tf": 17.26267650163207}, "sqlglot.generator.Generator.generate": {"tf": 7.937253933193772}, "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": 8.54400374531753}, "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.columnposition_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.columndef_sql": {"tf": 6.6332495807108}, "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.clone_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.bytestring_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.national_sql": {"tf": 6.6332495807108}, "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.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.onconflict_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": 7.615773105863909}, "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.pragma_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.after_having_modifiers": {"tf": 5.744562646538029}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 5.744562646538029}, "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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.is_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.like_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.likeany_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": 12.165525060596439}, "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.generator.cached_generator": {"tf": 7.3484692283495345}, "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.830951894845301}, "sqlglot.helper.subclasses": {"tf": 9.38083151964686}, "sqlglot.helper.apply_index_offset": {"tf": 7.937253933193772}, "sqlglot.helper.camel_to_snake_case": {"tf": 4}, "sqlglot.helper.while_changing": {"tf": 7.483314773547883}, "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.dict_depth": {"tf": 4}, "sqlglot.helper.first": {"tf": 5}, "sqlglot.helper.should_identify": {"tf": 5.385164807134504}, "sqlglot.lineage.Node.__init__": {"tf": 9.899494936611665}, "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.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": 7.280109889280518}, "sqlglot.optimizer.normalize.normalized": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 4.69041575982343}, "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.02271554554524}, "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": 9.486832980505138}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 3.1622776601683795}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 5.0990195135927845}, "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": 6.48074069840786}, "sqlglot.optimizer.scope.build_scope": {"tf": 6.48074069840786}, "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": 4.242640687119285}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 4.242640687119285}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 4.69041575982343}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 4.242640687119285}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 4.242640687119285}, "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.is_false": {"tf": 4.898979485566356}, "sqlglot.optimizer.simplify.is_null": {"tf": 4.898979485566356}, "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": 4.898979485566356}, "sqlglot.parser.parse_like": {"tf": 4.898979485566356}, "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": 7.810249675906654}, "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": 12.36931687685298}, "sqlglot.schema.Schema.column_names": {"tf": 10.816653826391969}, "sqlglot.schema.Schema.get_column_type": {"tf": 11.045361017187261}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 4.795831523312719}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 5.744562646538029}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 8.48528137423857}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 7.810249675906654}, "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": 12.36931687685298}, "sqlglot.schema.MappingSchema.column_names": {"tf": 10.816653826391969}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 11.045361017187261}, "sqlglot.schema.ensure_schema": {"tf": 9.327379053088816}, "sqlglot.schema.ensure_column_mapping": {"tf": 7.615773105863909}, "sqlglot.schema.flatten_schema": {"tf": 7.54983443527075}, "sqlglot.schema.nested_get": {"tf": 7.615773105863909}, "sqlglot.schema.nested_set": {"tf": 6.082762530298219}, "sqlglot.serde.dump": {"tf": 11.045361017187261}, "sqlglot.serde.load": {"tf": 11.045361017187261}, "sqlglot.time.format_time": {"tf": 7.810249675906654}, "sqlglot.tokens.Token.__init__": {"tf": 10.535653752852738}, "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.unnest_to_explode": {"tf": 5.744562646538029}, "sqlglot.transforms.explode_to_unnest": {"tf": 5.744562646538029}, "sqlglot.transforms.remove_target_from_merge": {"tf": 5.744562646538029}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 5.744562646538029}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 5.744562646538029}, "sqlglot.transforms.preprocess": {"tf": 8.774964387392123}, "sqlglot.trie.new_trie": {"tf": 6.708203932499369}, "sqlglot.trie.in_trie": {"tf": 6.244997998398398}}, "df": 773, "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}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.max_or_greatest": {"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.4142135623730951}, "sqlglot.dialects.dialect.pivot_column_names": {"tf": 1.7320508075688772}, "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.hive.Hive.Generator.after_having_modifiers": {"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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator.offset_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.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Condition.or_": {"tf": 2}, "sqlglot.expressions.Condition.as_": {"tf": 2}, "sqlglot.expressions.Condition.isin": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.like": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.ilike": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2}, "sqlglot.expressions.Unionable.intersect": {"tf": 2}, "sqlglot.expressions.Unionable.except_": {"tf": 2}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 2}, "sqlglot.expressions.Delete.where": {"tf": 2}, "sqlglot.expressions.Delete.returning": {"tf": 2}, "sqlglot.expressions.Insert.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 2}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.limit": {"tf": 2}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.23606797749979}, "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}, "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}, "sqlglot.expressions.Select.lateral": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.where": {"tf": 2}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.expressions.Select.window": {"tf": 2}, "sqlglot.expressions.Select.qualify": {"tf": 2}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 2}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 2.23606797749979}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.Case.when": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case.else_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.449489742783178}, "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.449489742783178}, "sqlglot.expressions.delete": {"tf": 2.449489742783178}, "sqlglot.expressions.insert": {"tf": 2.449489742783178}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 2}, "sqlglot.expressions.or_": {"tf": 2}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.paren": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 2}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "sqlglot.expressions.column": {"tf": 2.23606797749979}, "sqlglot.expressions.cast": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 2.23606797749979}, "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.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.cached_generator": {"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.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.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "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.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": 2}, "sqlglot.schema.Schema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.get_column_type": {"tf": 2.23606797749979}, "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": 2}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2.23606797749979}, "sqlglot.schema.ensure_schema": {"tf": 1.7320508075688772}, "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.unnest_to_explode": {"tf": 1.4142135623730951}, "sqlglot.transforms.explode_to_unnest": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1.4142135623730951}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 573}}}}, "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.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.max_or_greatest": {"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.dialect.pivot_column_names": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.7320508075688772}, "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.hive.Hive.Generator.after_having_modifiers": {"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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_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.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.4142135623730951}, "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.6457513110645907}, "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.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.Case.when": {"tf": 1.4142135623730951}, "sqlglot.expressions.Case.else_": {"tf": 1}, "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": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.insert": {"tf": 2}, "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.paren": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"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.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "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.7320508075688772}, "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.columnposition_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1.4142135623730951}, "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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1.4142135623730951}, "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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.23606797749979}, "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.generator.cached_generator": {"tf": 1.4142135623730951}, "sqlglot.helper.csv": {"tf": 1.7320508075688772}, "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.4142135623730951}, "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.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_set": {"tf": 1}, "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}}, "df": 505, "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}}}}}}}, "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": 2.449489742783178}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 10, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.max_or_greatest": {"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.hive.Hive.Generator.after_having_modifiers": {"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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"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.Dot.build": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.AbstractMappingSchema.nested_get": {"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": 543}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"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.expressions.subquery": {"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}}, "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.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.expressions.insert": {"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.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"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}}, "p": {"docs": {"sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_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": 13}, "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}}}}}}, "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.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": 2}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1.4142135623730951}, "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": 17}}}}, "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}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}}, "df": 9, "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.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 3}}}}}, "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}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"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}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"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, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Condition.rlike": {"tf": 1}}, "df": 1}}}}}}}}, "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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}}, "df": 2}}}}}}}, "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": {"sqlglot.optimizer.qualify_columns.qualify_columns": {"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.generator.Generator.renametable_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.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"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.generator.Generator.rawstring_sql": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 3}}}}, "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}, "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}}, "df": 6}}}, "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.dialects.dialect.pivot_column_names": {"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.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "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.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.window": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.qualify": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1.4142135623730951}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "sqlglot.expressions.union": {"tf": 2}, "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.7320508075688772}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.insert": {"tf": 2}, "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.paren": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "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.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"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}, "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}}, "df": 127, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}}, "df": 3}}}}}}, "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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 5, "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.dialects.dialect.pivot_column_names": {"tf": 2.23606797749979}, "sqlglot.executor.execute": {"tf": 2}, "sqlglot.expressions.Expression.sql": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.as_": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.union": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.where": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.returning": {"tf": 2.23606797749979}, "sqlglot.expressions.Insert.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.on": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.using": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.limit": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.limit": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.group_by": {"tf": 2.23606797749979}, "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.23606797749979}, "sqlglot.expressions.Select.offset": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lateral": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.having": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.window": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.qualify": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.ctas": {"tf": 2.23606797749979}, "sqlglot.expressions.DataType.build": {"tf": 2.23606797749979}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "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.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.insert": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 2.23606797749979}, "sqlglot.expressions.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.not_": {"tf": 2.23606797749979}, "sqlglot.expressions.to_table": {"tf": 2.23606797749979}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "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.Schema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.column_names": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.get_column_type": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.__init__": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.column_names": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2.23606797749979}, "sqlglot.schema.ensure_schema": {"tf": 2.23606797749979}}, "df": 70, "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.dialects.dialect.pivot_column_names": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.as_": {"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.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.limit": {"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.window": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.qualify": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"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.insert": {"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.to_table": {"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.lineage.LineageHTML.__init__": {"tf": 1.4142135623730951}, "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.MappingSchema.__init__": {"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}, "sqlglot.schema.ensure_schema": {"tf": 1.4142135623730951}}, "df": 67}}}}}}, "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.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.cached_generator": {"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.optimizer.qualify_columns.qualify_columns": {"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.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1.4142135623730951}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}, "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.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 45}}, "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, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.datatypesize_sql": {"tf": 1}}, "df": 1}}}}}}}}, "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.spark.Spark.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.tsql.generate_date_delta_with_unit_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}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}}, "df": 3}, "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}}}}}}}}}, "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.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 4}, "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}}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.dialect.pivot_column_names": {"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.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"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.Insert.with_": {"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.4142135623730951}, "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": 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.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.insert": {"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.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"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.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"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.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 89, "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.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"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.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"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.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1}, "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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.insert": {"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.alias_": {"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.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"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.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.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 81}}, "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.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 5}}, "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.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}}, "df": 3}}}}}}, "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.4142135623730951}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"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.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.Expression.iter_expressions": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 15}}}}, "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}, "sqlglot.helper.apply_index_offset": {"tf": 1}}, "df": 6}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Case.when": {"tf": 1}}, "df": 1}}}, "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}}, "df": 6, "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": {"sqlglot.generator.Generator.national_sql": {"tf": 1}}, "df": 1, "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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"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.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.isin": {"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.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"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.insert": {"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.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 4.242640687119285}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1.7320508075688772}, "sqlglot.generator.cached_generator": {"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_columns.qualify_columns": {"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.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 149, "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.dialects.dialect.pivot_column_names": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"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.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1}, "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": 2}, "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.DataType.build": {"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.update": {"tf": 1.7320508075688772}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.insert": {"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_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "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.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"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}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 92}}}}}}, "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}, "q": {"docs": {"sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}}, "df": 2}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.nextvaluefor_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {"sqlglot.generator.Generator.neg_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.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 4, "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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"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.insert": {"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": 64}, "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.dialects.dialect.parse_date_delta_with_interval": {"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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "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.7320508075688772}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"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.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"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.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 76}}}}, "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, "r": {"docs": {"sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"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}}}}}}}, "n": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.openjson_sql": {"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, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "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}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1}}, "df": 17}}}}, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.expressions.Select.distinct": {"tf": 1}}, "df": 1}, "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}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.onconflict_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "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}, "sqlglot.expressions.insert": {"tf": 1}}, "df": 2}}}}}, "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.dialects.tsql.TSQL.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": 6}}}}}, "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.generator.Generator.or_sql": {"tf": 1}}, "df": 2, "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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"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.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.pivot_column_names": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"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.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.parse_like": {"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": 72}}, "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}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.generator.Generator.like_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.generator.Generator.likeproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.likeany_sql": {"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.123105625617661}, "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}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.expressions.Condition.between": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2, "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.dialect.parse_date_delta_with_interval": {"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.Expression.pop": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}}, "df": 12, "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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.max_or_greatest": {"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.dialect.pivot_column_names": {"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.hive.Hive.Generator.after_having_modifiers": {"tf": 1.4142135623730951}, "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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.iter_expressions": {"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.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.4142135623730951}, "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}, "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": 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.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1.4142135623730951}, "sqlglot.expressions.Case.else_": {"tf": 1}, "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}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.insert": {"tf": 2}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.paren": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.7320508075688772}, "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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.cached_generator": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"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.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.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.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.7320508075688772}, "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.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.parse_like": {"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.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.unnest_to_explode": {"tf": 1.7320508075688772}, "sqlglot.transforms.explode_to_unnest": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1.7320508075688772}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}}, "df": 463, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.max_or_greatest": {"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.pivot_column_names": {"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.hive.Hive.Generator.after_having_modifiers": {"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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.offset_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.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.isin": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.like": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.ilike": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.to_dot": {"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.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.using": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "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.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "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.window": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.qualify": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case.when": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case.else_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "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.4142135623730951}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.insert": {"tf": 2}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.paren": {"tf": 1.4142135623730951}, "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.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 2.23606797749979}, "sqlglot.expressions.cast": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 2.23606797749979}, "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.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "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.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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.cached_generator": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "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.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "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.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.unnest_to_explode": {"tf": 1.4142135623730951}, "sqlglot.transforms.explode_to_unnest": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1.4142135623730951}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}}, "df": 462}}}}}}}, "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.optimizer.qualify_columns.qualify_columns": {"tf": 1}}, "df": 1}}}}, "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.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}}, "df": 5}}}, "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": 2.449489742783178}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 8}, "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}}}}, "q": {"docs": {"sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}}, "df": 2}, "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}}}}}, "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.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}}, "df": 3, "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.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"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": 2}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 39, "o": {"docs": {"sqlglot.parse_one": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}}, "df": 5}, "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.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}}, "df": 5}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.presto.Presto.Generator.interval_sql": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}}, "df": 4}}}}}, "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.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}}, "df": 5}}}}, "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}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.inputoutputformat_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"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.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 2}, "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": 10}}}, "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.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}}, "df": 5}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}}, "df": 3}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.ilikeany_sql": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}}, "df": 2, "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, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 2}}}, "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.insert": {"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": 9}, "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.generator.Generator.columnposition_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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 9}}}}}}, "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.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.insert": {"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.alias_": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}}, "df": 50}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "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, "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.dialect.no_comment_column_constraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.expressions.Expression.add_comments": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 5}}}}, "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}}}, "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}}}}}}}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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}}, "df": 5, "i": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"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}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 5, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.clone_sql": {"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.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.while_changing": {"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.4142135623730951}}, "df": 17}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.spark2.Spark2.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.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 4}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}}, "df": 3}}}, "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.windowspec_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.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"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.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1}, "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.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"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.insert": {"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.paren": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"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.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"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.schema.nested_get": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 93, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}}, "df": 3}}}}}}, "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, "t": {"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, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.bytestring_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "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}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "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.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}}}}}}}}}}}}}}}}}}}}}}}, "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}}}}}}}}}}}, "x": {"docs": {"sqlglot.dialects.dialect.max_or_greatest": {"tf": 1}, "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": 5, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}}, "df": 1}}}}}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.matchagainst_sql": {"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}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.mergetreettl_sql": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.mergetreettlaction_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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 3}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.mul_sql": {"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.123105625617661}, "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}}}}}}, "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}}, "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.no_comment_column_constraint_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.max_or_greatest": {"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.4142135623730951}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 31}}, "e": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}}, "df": 1}}}}}}, "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.expressions.convert": {"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": 23}}, "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.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.123105625617661}}, "df": 2, "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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 18, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 4}}}, "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}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.schema.AbstractMappingSchema.nested_get": {"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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 3}}, "d": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"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.bigquery.BigQuery.Generator.with_properties": {"tf": 1.4142135623730951}, "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": 12}}}, "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.national_sql": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}}, "df": 6}}}, "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}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.generator.Generator.pragma_sql": {"tf": 1}}, "df": 1}}}}}, "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.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}}, "df": 2}}}}}}}}, "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}}}}}}, "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}}}}, "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}}}, "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": {"sqlglot.expressions.Condition.between": {"tf": 1}}, "df": 1, "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": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "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.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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 2}, "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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}}, "df": 6, "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.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.convert": {"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.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 31}, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}}, "df": 2}, "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.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}}, "df": 2}}}}}}}, "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.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "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.lineage.Node.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 14, "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.parse_like": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 20}}, "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.Insert.with_": {"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.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}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "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": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.pivot_column_names": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {"sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.123105625617661}}, "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}}}}}}}}}, "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}}}}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}}, "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.generator.Generator.jsonobject_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.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "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": 9, "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.Condition.as_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}}, "df": 5}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}}, "df": 2}}}, "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.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 85, "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": {"2": {"docs": {"sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}}, "df": 4}, "docs": {"sqlglot.dialects.databricks.Databricks": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}}, "df": 3}}}}, "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.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 36}}}}}}, "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.spark2.Spark2.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.spark2.Spark2.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": 19}}}}}, "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.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.RowFormatProperty": {"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.SettingsProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.StabilityProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatileProperty": {"tf": 1}, "sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1}}, "df": 44}}}}}}}}, "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.spark2.Spark2.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": 21}}}}, "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.Clone": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Pragma": {"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.ColumnPosition": {"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.MergeTreeTTLAction": {"tf": 1}, "sqlglot.expressions.MergeTreeTTL": {"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.OnConflict": {"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.InputOutputFormat": {"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.DataTypeSize": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.PseudoType": {"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.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.JSONKeyValue": {"tf": 1}, "sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.expressions.Use": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}}, "df": 104}}}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.spark2.Spark2": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.ParameterizedAgg": {"tf": 1}, "sqlglot.expressions.Hll": {"tf": 1}, "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.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.RawString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.expressions.Unary": {"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.OnUpdateColumnConstraint": {"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": 19}}}}}}}}}}}}}}}}}}}, "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.CastToStrType": {"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.CurrentUser": {"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.FromBase64": {"tf": 1}, "sqlglot.expressions.ToBase64": {"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.JSONObject": {"tf": 1}, "sqlglot.expressions.OpenJSON": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.JSONFormat": {"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.StarMap": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.expressions.MD5": {"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.SHA": {"tf": 1}, "sqlglot.expressions.SHA2": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StandardHash": {"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}, "sqlglot.expressions.NextValueFor": {"tf": 1}}, "df": 134}}}}, "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}, "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.928203230275509}, "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.spark2.Spark2.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.qualify_tables.qualify_tables": {"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": 41, "/": {"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}, "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.insert": {"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.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "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.spark2.Spark2.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.insert": {"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.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 46}, "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.Insert.with_": {"tf": 1.4142135623730951}, "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.insert": {"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.paren": {"tf": 1.4142135623730951}, "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": 2}, "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.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": 2}, "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.schema.nested_set": {"tf": 4}, "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": 89}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.paren": {"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": 53}, "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.spark2.Spark2.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": 27}, "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.spark2.Spark2.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}, "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.paren": {"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": 8}, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 2}, "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.spark2.Spark2.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}, "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": 62.12889826803627}, "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": 13.45362404707371}, "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.bigquery.BigQuery.Generator.with_properties": {"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": 13.45362404707371}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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": 13.45362404707371}, "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.SPARK2": {"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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.max_or_greatest": {"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.dialect.pivot_column_names": {"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": 13.45362404707371}, "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": 13.45362404707371}, "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": 13.45362404707371}, "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.hive.Hive.Generator.after_having_modifiers": {"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": 13.45362404707371}, "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": 13.45362404707371}, "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": 13.45362404707371}, "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": 13.45362404707371}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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": 13.45362404707371}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 3.3166247903554}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 2}, "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": 13.45362404707371}, "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.settag_sql": {"tf": 1.7320508075688772}, "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": 13.45362404707371}, "sqlglot.dialects.spark.Spark.Generator.datediff_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 13.45362404707371}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.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": 13.45362404707371}, "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.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": 13.45362404707371}, "sqlglot.dialects.tableau": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 13.45362404707371}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1.7320508075688772}, "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": 13.45362404707371}, "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": 13.45362404707371}, "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": 13.45362404707371}, "sqlglot.dialects.tsql.TSQL.Generator.offset_sql": {"tf": 1.7320508075688772}, "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": 13.45362404707371}, "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.add_comments": {"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.iter_expressions": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.find_all": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 4.795831523312719}, "sqlglot.expressions.Expression.parent_select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.same_parent": {"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.477225575051661}, "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.797958971132712}, "sqlglot.expressions.Condition.or_": {"tf": 9.797958971132712}, "sqlglot.expressions.Condition.not_": {"tf": 8.54400374531753}, "sqlglot.expressions.Condition.as_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.isin": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.between": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.is_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.like": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.ilike": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.eq": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.neq": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.rlike": {"tf": 1.7320508075688772}, "sqlglot.expressions.Predicate": {"tf": 1.7320508075688772}, "sqlglot.expressions.DerivedTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 10.488088481701515}, "sqlglot.expressions.Unionable.intersect": {"tf": 10.488088481701515}, "sqlglot.expressions.Unionable.except_": {"tf": 10.535653752852738}, "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.Clone": {"tf": 1.7320508075688772}, "sqlglot.expressions.Describe": {"tf": 1.7320508075688772}, "sqlglot.expressions.Pragma": {"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.RawString": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Column.parts": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.to_dot": {"tf": 1.7320508075688772}, "sqlglot.expressions.ColumnPosition": {"tf": 1.7320508075688772}, "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.MergeTreeTTLAction": {"tf": 1.7320508075688772}, "sqlglot.expressions.MergeTreeTTL": {"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.OnUpdateColumnConstraint": {"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.Insert.with_": {"tf": 11.874342087037917}, "sqlglot.expressions.OnConflict": {"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.135528725660043}, "sqlglot.expressions.Join.using": {"tf": 11.445523142259598}, "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.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.InputOutputFormat": {"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.RowFormatProperty": {"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.SettingsProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SortKeyProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.StabilityProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TemporaryProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TransientProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.VolatileProperty": {"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.Tuple.isin": {"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.449899597988733}, "sqlglot.expressions.Table": {"tf": 1.7320508075688772}, "sqlglot.expressions.Table.parts": {"tf": 1.7320508075688772}, "sqlglot.expressions.SystemTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 10.816653826391969}, "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": 10.488088481701515}, "sqlglot.expressions.Select.group_by": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.order_by": {"tf": 11.445523142259598}, "sqlglot.expressions.Select.sort_by": {"tf": 11.874342087037917}, "sqlglot.expressions.Select.cluster_by": {"tf": 11.874342087037917}, "sqlglot.expressions.Select.limit": {"tf": 10.954451150103322}, "sqlglot.expressions.Select.offset": {"tf": 10.954451150103322}, "sqlglot.expressions.Select.select": {"tf": 10.246950765959598}, "sqlglot.expressions.Select.lateral": {"tf": 11.180339887498949}, "sqlglot.expressions.Select.join": {"tf": 18.894443627691185}, "sqlglot.expressions.Select.where": {"tf": 11.180339887498949}, "sqlglot.expressions.Select.having": {"tf": 12.041594578792296}, "sqlglot.expressions.Select.window": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.qualify": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.distinct": {"tf": 10.14889156509222}, "sqlglot.expressions.Select.ctas": {"tf": 11.135528725660043}, "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.DataTypeSize": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.XML": {"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.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.Dot.build": {"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.ParameterizedAgg": {"tf": 1.7320508075688772}, "sqlglot.expressions.Abs": {"tf": 1.7320508075688772}, "sqlglot.expressions.Anonymous": {"tf": 1.7320508075688772}, "sqlglot.expressions.Hll": {"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.Case.when": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case.else_": {"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.CastToStrType": {"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.CurrentUser": {"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.FromBase64": {"tf": 1.7320508075688772}, "sqlglot.expressions.ToBase64": {"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.JSONKeyValue": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONObject": {"tf": 1.7320508075688772}, "sqlglot.expressions.OpenJSONColumnDef": {"tf": 1.7320508075688772}, "sqlglot.expressions.OpenJSON": {"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.JSONFormat": {"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.StarMap": {"tf": 1.7320508075688772}, "sqlglot.expressions.VarMap": {"tf": 1.7320508075688772}, "sqlglot.expressions.MatchAgainst": {"tf": 1.7320508075688772}, "sqlglot.expressions.Max": {"tf": 1.7320508075688772}, "sqlglot.expressions.MD5": {"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.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.SHA": {"tf": 1.7320508075688772}, "sqlglot.expressions.SHA2": {"tf": 1.7320508075688772}, "sqlglot.expressions.SortArray": {"tf": 1.7320508075688772}, "sqlglot.expressions.Split": {"tf": 1.7320508075688772}, "sqlglot.expressions.Substring": {"tf": 1.7320508075688772}, "sqlglot.expressions.StandardHash": {"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.NextValueFor": {"tf": 1.7320508075688772}, "sqlglot.expressions.maybe_parse": {"tf": 10.14889156509222}, "sqlglot.expressions.union": {"tf": 10}, "sqlglot.expressions.intersect": {"tf": 10}, "sqlglot.expressions.except_": {"tf": 10.04987562112089}, "sqlglot.expressions.select": {"tf": 9.797958971132712}, "sqlglot.expressions.from_": {"tf": 9.797958971132712}, "sqlglot.expressions.update": {"tf": 12}, "sqlglot.expressions.delete": {"tf": 9.433981132056603}, "sqlglot.expressions.insert": {"tf": 10.04987562112089}, "sqlglot.expressions.condition": {"tf": 14.071247279470288}, "sqlglot.expressions.and_": {"tf": 10.04987562112089}, "sqlglot.expressions.or_": {"tf": 10.04987562112089}, "sqlglot.expressions.not_": {"tf": 9}, "sqlglot.expressions.paren": {"tf": 8.48528137423857}, "sqlglot.expressions.to_identifier": {"tf": 5.744562646538029}, "sqlglot.expressions.to_interval": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 6.244997998398398}, "sqlglot.expressions.to_column": {"tf": 5.291502622129181}, "sqlglot.expressions.alias_": {"tf": 12.84523257866513}, "sqlglot.expressions.subquery": {"tf": 10}, "sqlglot.expressions.column": {"tf": 6.557438524302}, "sqlglot.expressions.cast": {"tf": 8.888194417315589}, "sqlglot.expressions.table_": {"tf": 6.557438524302}, "sqlglot.expressions.values": {"tf": 8.888194417315589}, "sqlglot.expressions.var": {"tf": 10.488088481701515}, "sqlglot.expressions.rename_table": {"tf": 4.898979485566356}, "sqlglot.expressions.convert": {"tf": 5.744562646538029}, "sqlglot.expressions.replace_children": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 8.54400374531753}, "sqlglot.expressions.table_name": {"tf": 9.695359714832659}, "sqlglot.expressions.replace_tables": {"tf": 10.344080432788601}, "sqlglot.expressions.replace_placeholders": {"tf": 12.489995996796797}, "sqlglot.expressions.expand": {"tf": 14.247806848775006}, "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": 13.45362404707371}, "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.columnposition_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.clone_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.bytestring_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.matchagainst_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.is_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.like_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.likeany_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.generator.cached_generator": {"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.830951894845301}, "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.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.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.535653752852738}, "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.832159566199232}, "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": 13.416407864998739}, "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.is_false": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.is_null": {"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.parse_like": {"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": 5.291502622129181}, "sqlglot.schema.Schema.column_names": {"tf": 6.082762530298219}, "sqlglot.schema.Schema.get_column_type": {"tf": 6.082762530298219}, "sqlglot.schema.Schema.supported_table_args": {"tf": 2.449489742783178}, "sqlglot.schema.Schema.empty": {"tf": 1.7320508075688772}, "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.AbstractMappingSchema.nested_get": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema": {"tf": 7}, "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": 5.291502622129181}, "sqlglot.schema.MappingSchema.column_names": {"tf": 6.082762530298219}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 6.082762530298219}, "sqlglot.schema.ensure_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.ensure_column_mapping": {"tf": 1.7320508075688772}, "sqlglot.schema.flatten_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.nested_get": {"tf": 5.830951894845301}, "sqlglot.schema.nested_set": {"tf": 12.649110640673518}, "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.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.NATIONAL_STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INT256": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UINT256": {"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.BIGDECIMAL": {"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.DATETIME64": {"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.AUTO_INCREMENT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.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.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.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.KEEP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"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.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.TRUE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.__init__": {"tf": 6.244997998398398}, "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.unnest_to_explode": {"tf": 2}, "sqlglot.transforms.explode_to_unnest": {"tf": 2}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1.7320508075688772}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 5}, "sqlglot.trie": {"tf": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 9.539392014169456}, "sqlglot.trie.in_trie": {"tf": 13.228756555322953}}, "df": 1804, "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.spark2.Spark2.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.insert": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "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.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"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.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 67, "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.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.spark2.Spark2.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.Insert.with_": {"tf": 1.7320508075688772}, "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.insert": {"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.paren": {"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.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1.7320508075688772}, "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.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.4142135623730951}, "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.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"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.tokenize": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 132, "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.spark2.Spark2.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.4142135623730951}, "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.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.lower_identities.lower_identities": {"tf": 2}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.449489742783178}, "sqlglot.optimizer.normalize.normalize": {"tf": 2}, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2.449489742783178}, "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}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"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": 3.7416573867739413}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.7416573867739413}, "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.teradata.Teradata.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.executor.python.Python.Generator": {"tf": 3.7416573867739413}, "sqlglot.generator.Generator": {"tf": 3.7416573867739413}}, "df": 22}}, "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.executor": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.insert": {"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": 61}, "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.executor.env.null_if_any": {"tf": 1}}, "df": 2}, "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.qualify_tables.qualify_tables": {"tf": 1}, "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": 13}}}, "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.diff": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 4}, "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.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": 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.generator.Generator.generate": {"tf": 1}, "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": 15, "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.Select.join": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "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": 24, "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": 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.spark2.Spark2.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}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 27, "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": 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.spark2.Spark2.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": 22}}}}, "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.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.insert": {"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.spark2.Spark2.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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 30}}}}}}, "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.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 2, "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": 4.123105625617661}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 4.123105625617661}, "sqlglot.executor.python.Python.Generator": {"tf": 4.123105625617661}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 4.123105625617661}, "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}}, "df": 32, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "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}}}}}}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 1.4142135623730951}, "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.insert": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "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.7320508075688772}, "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.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"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}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.string": {"tf": 1.4142135623730951}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 106, "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.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 25}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.6457513110645907}}, "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}}}}}}}, "i": {"docs": {}, "df": 0, "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": {"sqlglot": {"tf": 1}}, "df": 1, "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}}}}, "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.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": 10}}}, "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.spark2.Spark2.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}}, "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}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"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}, "sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 3}}, "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.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 2}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.limit": {"tf": 2.23606797749979}, "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.23606797749979}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 3.1622776601683795}, "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.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": 2.449489742783178}, "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": 98, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 3}, "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.schema.AbstractMappingSchema": {"tf": 1}}, "df": 6}}, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 5, "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.expressions.Dot.build": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 8, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 1.4142135623730951}, "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.generator.Generator.generate": {"tf": 1}, "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}, "sqlglot.schema.nested_set": {"tf": 2}}, "df": 89, "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}, "sqlglot.schema.nested_set": {"tf": 2}}, "df": 2, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 2, "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.spark2.Spark2.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": 22}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "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.schema.nested_get": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 9, "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.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.449489742783178}, "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.Schema.empty": {"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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 44, "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.spark2.Spark2.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}}}}}}, "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}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"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.spark2.Spark2.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": 23}}, "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.605551275463989}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}, "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.Insert.with_": {"tf": 2.23606797749979}, "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.paren": {"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}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.generator.Generator.generate": {"tf": 1}, "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.Schema.empty": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 163, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 3}, "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.spark2.Spark2.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.Insert.with_": {"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.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"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.nested_get": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 96, "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.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}, "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.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"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.Table.parts": {"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.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"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.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.qualify_tables.qualify_tables": {"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.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}, "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.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 2.449489742783178}}, "df": 165, "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.Insert.with_": {"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.insert": {"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": 45, "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": {"sqlglot": {"tf": 1.4142135623730951}}, "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, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45, "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.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.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1.7320508075688772}, "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.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "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}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.func": {"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": 59, "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.to_table": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 6, "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}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 11}}}, "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}, "sqlglot.expressions.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.insert": {"tf": 2.8284271247461903}}, "df": 5, "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.spark2.Spark2.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.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": 32, "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.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"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.insert": {"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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 44}, "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.spark2.Spark2.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, "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}, "sqlglot.expressions.intersect": {"tf": 2}}, "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}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}}, "df": 3}}}}}, "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}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}}, "df": 3, "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.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}}}}}}, "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.spark2.Spark2.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.helper.apply_index_offset": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 23}, "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.spark2.Spark2.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, "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.spark2.Spark2.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}}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 48}}, "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}, "r": {"docs": {"sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "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.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": 41, "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": {"1": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}}, "df": 1}, "2": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}}, "df": 1}, "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.spark2.Spark2.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.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1.4142135623730951}}, "df": 32, "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.spark2.Spark2.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.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}}, "df": 29}}, "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.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 25, "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}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.to_identifier": {"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.spark2.Spark2.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.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.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"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.Insert.with_": {"tf": 2}, "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": 1.7320508075688772}, "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.paren": {"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}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.8284271247461903}, "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.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.qualify_columns": {"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.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}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 156}, "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.681145747868608}, "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.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "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.Table.parts": {"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.4142135623730951}, "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.Dot.build": {"tf": 1.4142135623730951}, "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_identifier": {"tf": 1}, "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}, "sqlglot.expressions.table_": {"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.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.generator.cached_generator": {"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.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.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.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1.7320508075688772}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}, "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": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 2.6457513110645907}, "sqlglot.trie.in_trie": {"tf": 2.449489742783178}}, "df": 237, "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.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 1.4142135623730951}, "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": 2}, "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.insert": {"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.4142135623730951}, "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.generator.Generator.generate": {"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.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}}, "df": 133, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.iter_expressions": {"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.convert": {"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.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": 120}, "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.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": 13}}}}, "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.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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"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.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": 27, "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.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": 16}}, "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.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.iter_expressions": {"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.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": 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.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 2.8284271247461903}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 58, "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.spark2.Spark2.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.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 26}, "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.spark2.Spark2.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": 25}}}}, "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}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}}, "df": 6, "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.parser.Parser.validate_expression": {"tf": 1}}, "df": 4}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "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.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark2.Spark2.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.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": 12, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.iter_expressions": {"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.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.Insert.with_": {"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.insert": {"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_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.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.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"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": 188}}}}}}, "s": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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": 12}}, "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.spark2.Spark2.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}, "[": {"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.spark2.Spark2.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}, "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.spark2.Spark2.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}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.same_parent": {"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.Insert.with_": {"tf": 2.6457513110645907}, "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}, "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.paren": {"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": 2.23606797749979}, "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.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": 2}, "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": 146, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"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": 19, "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, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}, "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}}}}, "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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"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, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 5}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3}}, "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}}}}}}}, "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.to_table": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}}, "df": 2, "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.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}}, "df": 10}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}}, "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.Insert.with_": {"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.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}}}}}, "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.spark2.Spark2.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, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3}}, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": {}, "df": 0, "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.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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "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.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "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.Schema.empty": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 83, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_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": 7, "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.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.generator.Generator.generate": {"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": 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.spark2.Spark2.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.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 3}, "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": 3}, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 34}}, "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.7320508075688772}}, "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.spark2.Spark2.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": 24, "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}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe": {"tf": 3}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.helper.split_num_words": {"tf": 2}}, "df": 3, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.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": 52}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}}}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 47, "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.spark2.Spark2.Parser": {"tf": 2}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "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.Column.parts": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "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.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 2}, "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}, "sqlglot.schema.nested_get": {"tf": 1.4142135623730951}}, "df": 47, "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.spark2.Spark2.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.insert": {"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": 35}, "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.spark2.Spark2.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.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.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.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"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.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 63, "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.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 6, "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.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 5}}, "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}}}}}}, "^": {"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}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 8, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 44}}}}}}}, "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.spark2.Spark2.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": 22}}, "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": 5.196152422706632}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 5.196152422706632}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 5.196152422706632}, "sqlglot.executor.python.Python.Generator": {"tf": 5.196152422706632}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 5.196152422706632}, "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": 52, "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.spark2.Spark2.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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 25}, "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, "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}}}}}}}, "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": 3.4641016151377544}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.4641016151377544}, "sqlglot.executor.python.Python.Generator": {"tf": 3.4641016151377544}, "sqlglot.generator.Generator": {"tf": 3.4641016151377544}}, "df": 22, "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}}}}, "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.Insert.with_": {"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.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.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.insert": {"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.to_table": {"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.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.MappingSchema": {"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": 63, "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.23606797749979}, "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.spark2.Spark2.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}}}}}}, "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.4142135623730951}}, "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.spark2.Spark2.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.generator.Generator": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 2.449489742783178}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 28, "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.spark2.Spark2.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}, "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.schema.nested_get": {"tf": 1.7320508075688772}, "sqlglot.schema.nested_set": {"tf": 2}, "sqlglot.time.format_time": {"tf": 1}}, "df": 35}}}}}}, "|": {"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}}, "df": 1}}}}}}}}, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1}}}}}, "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.diff": {"tf": 1}}, "df": 1}, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 6, "\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.spark2.Spark2.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": 28, "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}}, "t": {"docs": {"sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Dot.build": {"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.insert": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}}, "df": 8, "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.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"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": 8}}}}}}, "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.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 5}}, "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}}}}}}, "b": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "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": 11, "/": {"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}}}}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "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.Insert.with_": {"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.insert": {"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.paren": {"tf": 1}, "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": 2.449489742783178}, "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.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.4142135623730951}, "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.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"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}}, "df": 89, "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.spark2.Spark2.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": 26, "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.spark2.Spark2.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": 21}}}}}, "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.spark2.Spark2.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.expressions.to_table": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}}, "df": 29}, "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}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 8, "/": {"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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"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}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}}, "df": 4}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.paren": {"tf": 1}}, "df": 1, "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.same_parent": {"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": 9, "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}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.paren": {"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}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}}, "df": 5, "s": {"docs": {"sqlglot.diff": {"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.Insert.with_": {"tf": 1.4142135623730951}, "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.paren": {"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.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 43}}, "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.spark2.Spark2.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, "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.spark2.Spark2.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}}}}}, "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}}}, "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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 10}}, "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.spark2.Spark2.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": 23, "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.spark2.Spark2.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": 25}}}, "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": {}, "df": 0, "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}, "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}}, "df": 1}}, "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.spark2.Spark2.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": 24}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 44}}, "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.spark2.Spark2.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": 29, "\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.Insert.with_": {"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.schema.nested_set": {"tf": 1}}, "df": 29, "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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 3}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45, "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, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"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.spark2.Spark2.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.Insert.with_": {"tf": 1.4142135623730951}, "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.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 43, "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": 1.7320508075688772}}, "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}}, "df": 6}, "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.spark2.Spark2.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, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.insert": {"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": 75, "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.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"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.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.spark2.Spark2.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.8284271247461903}, "sqlglot.trie.in_trie": {"tf": 3.4641016151377544}}, "df": 25, "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": 5.477225575051661}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 5.477225575051661}, "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": 5.477225575051661}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 5.477225575051661}, "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": 5.477225575051661}, "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.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "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.449489742783178}, "sqlglot.expressions.Condition.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.Condition.not_": {"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.Delete.delete": {"tf": 2}, "sqlglot.expressions.Delete.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Delete.returning": {"tf": 2}, "sqlglot.expressions.Insert.with_": {"tf": 2.8284271247461903}, "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}, "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.distinct": {"tf": 1}, "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.insert": {"tf": 2.6457513110645907}, "sqlglot.expressions.condition": {"tf": 2.449489742783178}, "sqlglot.expressions.and_": {"tf": 2.449489742783178}, "sqlglot.expressions.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.not_": {"tf": 2.23606797749979}, "sqlglot.expressions.paren": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 2.8284271247461903}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 2.23606797749979}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.7320508075688772}, "sqlglot.expressions.expand": {"tf": 2}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 5.477225575051661}, "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.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": 2.23606797749979}, "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.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1.7320508075688772}, "sqlglot.schema.nested_set": {"tf": 1.7320508075688772}, "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.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 198, "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.__init__": {"tf": 2.6457513110645907}, "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, "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.spark2.Spark2.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": 26}, "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.spark2.Spark2.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": 23}, "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}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 3}}}}}}}, "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}, "sqlglot.schema.nested_set": {"tf": 2.23606797749979}}, "df": 2, "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.69041575982343}, "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.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.spark2.Spark2.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark2.Spark2.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.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.find_all": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"tf": 1.4142135623730951}, "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.449489742783178}, "sqlglot.expressions.Condition.or_": {"tf": 2.449489742783178}, "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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "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.Insert.with_": {"tf": 3.4641016151377544}, "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.Table.parts": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.select": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.from_": {"tf": 2.449489742783178}, "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.4641016151377544}, "sqlglot.expressions.Select.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.having": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.distinct": {"tf": 2}, "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}, "sqlglot.expressions.intersect": {"tf": 3}, "sqlglot.expressions.except_": {"tf": 3}, "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.insert": {"tf": 3.1622776601683795}, "sqlglot.expressions.condition": {"tf": 3}, "sqlglot.expressions.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.not_": {"tf": 2.449489742783178}, "sqlglot.expressions.paren": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_identifier": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 2}, "sqlglot.expressions.alias_": {"tf": 3}, "sqlglot.expressions.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}, "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": 2}, "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.8284271247461903}, "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.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.qualify_columns": {"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": 2.23606797749979}, "sqlglot.schema.Schema.column_names": {"tf": 2}, "sqlglot.schema.Schema.get_column_type": {"tf": 2.449489742783178}, "sqlglot.schema.Schema.empty": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.column_names": {"tf": 2}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2.449489742783178}, "sqlglot.schema.nested_get": {"tf": 2.23606797749979}, "sqlglot.schema.nested_set": {"tf": 2.449489742783178}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 3.3166247903554}, "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": 2}, "sqlglot.trie.new_trie": {"tf": 2.23606797749979}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 249, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "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}}}}, "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}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 16}, "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.spark2.Spark2.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": 30}, "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.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.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"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}, "sqlglot.schema.nested_set": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}, "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}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 69}, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.4142135623730951}, "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.Insert.with_": {"tf": 1.7320508075688772}, "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.4142135623730951}, "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.paren": {"tf": 1}, "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.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"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.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.qualify_tables.qualify_tables": {"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}}, "df": 179}, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 2}}, "df": 2}}}, "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, "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}}}}}}, "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.executor": {"tf": 1}}, "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.spark2.Spark2.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.helper.apply_index_offset": {"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": 35, "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.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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Table.parts": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 2.6457513110645907}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 2.8284271247461903}, "sqlglot.expressions.to_column": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 2.449489742783178}, "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.449489742783178}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 2.449489742783178}, "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.qualify_tables.qualify_tables": {"tf": 1}, "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.449489742783178}, "sqlglot.schema.Schema.column_names": {"tf": 2}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2.449489742783178}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2.449489742783178}, "sqlglot.schema.MappingSchema.column_names": {"tf": 2}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 89, "s": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "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.7320508075688772}, "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": 21, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}}}, "|": {"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.spark2.Spark2.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.__init__": {"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": 32, "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.spark2.Spark2.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": 28, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}}, "df": 2}, "2": {"docs": {"sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}}, "df": 4}, "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.Insert.with_": {"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.insert": {"tf": 1.7320508075688772}, "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": 30}}, "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}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "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.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}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "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}}}}, "s": {"docs": {"sqlglot.schema.nested_get": {"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.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": 10, "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}}, "df": 8, "/": {"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.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": 9}, "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.join": {"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.generator.Generator.generate": {"tf": 1}, "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": 14, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.insert": {"tf": 1}}, "df": 3}}, "[": {"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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"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.insert": {"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": 90}}}}, "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.Insert.with_": {"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.insert": {"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": 46}}, "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": 4}, "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.spark2.Spark2.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.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Insert.with_": {"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.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 2.6457513110645907}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"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": 2}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.8284271247461903}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"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.Schema.empty": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 99, "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.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"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.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": 20, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}}}, "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, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "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.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "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}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Table.parts": {"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.Dot.build": {"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.insert": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "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.generator.Generator.generate": {"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": 2}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "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.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.schema.nested_get": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1.7320508075688772}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 165, "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.spark2.Spark2.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": 23}}}}, "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.spark2.Spark2.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": 35, "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.spark2.Spark2.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.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.generate": {"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.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "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.tokens.Token.__init__": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 52, "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": 2.449489742783178}, "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.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.4142135623730951}, "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}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 63, "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.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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.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.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.generator.Generator.generate": {"tf": 1}, "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": 72}}, "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}}, "s": {"docs": {"sqlglot.expressions.Select.distinct": {"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.Condition.not_": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "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": 13, "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.Insert.with_": {"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.insert": {"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": 50, "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.Insert.with_": {"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.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}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.insert": {"tf": 1.4142135623730951}}, "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": 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.spark2.Spark2.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.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2.6457513110645907}, "sqlglot.generator.Generator": {"tf": 2.6457513110645907}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 26, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"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.spark2.Spark2.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}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 23}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}, "s": {"docs": {"sqlglot.tokens.Token.__init__": {"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.spark2.Spark2.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}}}}}}}, "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}, "sqlglot.tokens.Token.__init__": {"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.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.generator.Generator.generate": {"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.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.7320508075688772}, "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.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.iter_expressions": {"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.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.to_dot": {"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.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 2.6457513110645907}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.6457513110645907}, "sqlglot.expressions.Union.limit": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 2.449489742783178}, "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": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.having": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 2}, "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}, "sqlglot.expressions.intersect": {"tf": 2}, "sqlglot.expressions.except_": {"tf": 2}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 2.449489742783178}, "sqlglot.expressions.insert": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 2.6457513110645907}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.paren": {"tf": 2.23606797749979}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.449489742783178}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "sqlglot.expressions.cast": {"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": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 2}, "sqlglot.expressions.replace_placeholders": {"tf": 2}, "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.4142135623730951}, "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.lower_identities.lower_identities": {"tf": 2.6457513110645907}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 3}, "sqlglot.optimizer.normalize.normalize": {"tf": 2.449489742783178}, "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.449489742783178}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 3}, "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": 152, "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.spark2.Spark2.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": 2.23606797749979}, "sqlglot.expressions.Condition.or_": {"tf": 2.23606797749979}, "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.Insert.with_": {"tf": 2}, "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}, "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.Select.distinct": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Dot.build": {"tf": 1}, "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.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 2}, "sqlglot.expressions.or_": {"tf": 2}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.convert": {"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.qualify_tables.qualify_tables": {"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": 95}}}}}}}}, "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, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.iter_expressions": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 3, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "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.transforms.explode_to_unnest": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}}}}, "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}}}}}, "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.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}}, "df": 3, "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.Insert.with_": {"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.insert": {"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.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.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.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.schema.nested_set": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 93, "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.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 17}}}}}, "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}, "sqlglot.expressions.except_": {"tf": 2}, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 4, "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.Insert.with_": {"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.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}}, "df": 21}}}}}, "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.spark2.Spark2.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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 30, "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.spark2.Spark2.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": 29}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}}}}}}, "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.spark2.Spark2.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": 26}, "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}, "sqlglot.schema.Schema.empty": {"tf": 1}}, "df": 10}}}, "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.spark2.Spark2.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": 23}}}}, "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.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 4}}, "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.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 10}}}}}, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 3, "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.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": 22, "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.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": 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, "s": {"docs": {"sqlglot.helper.ensure_list": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.dataframe": {"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.should_identify": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.7320508075688772}}, "df": 12, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 4}, "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.spark2.Spark2.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}}}, "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}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}}, "df": 3, "d": {"docs": {"sqlglot.generator.cached_generator": {"tf": 1}}, "df": 1}}}}, "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.spark2.Spark2.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.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "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": 10}}}}}, "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.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 16}}}}}}}}, "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}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "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}}}}}}, "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}}}}}}}, "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.spark2.Spark2.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": 26}}}}, "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.Insert.with_": {"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": 14, "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.spark2.Spark2.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": 22, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 43}}, "/": {"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.spark2.Spark2.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": 29}}}, "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.spark2.Spark2.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": 24, "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.4142135623730951}, "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.spark2.Spark2.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": 23}}, "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.spark2.Spark2.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": 21}}}}, "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}}, "s": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 13, "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.Column.to_dot": {"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}}, "df": 9}, "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.spark2.Spark2.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.Insert.with_": {"tf": 1.4142135623730951}, "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.paren": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 72}}, "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.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 9, "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.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"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.insert": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 2.449489742783178}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "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.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.tokens.Token.__init__": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 62, "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.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.expressions.insert": {"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.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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 28}, "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}, "sqlglot.expressions.convert": {"tf": 1}}, "df": 2}}}}}}}}, "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}}, "df": 1}}}}}, "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.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"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.insert": {"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.paren": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}}, "df": 42}}}, "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.spark2.Spark2.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": 27, "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": 3.7416573867739413}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.7416573867739413}, "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.teradata.Teradata.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 3.7416573867739413}, "sqlglot.generator.Generator": {"tf": 3.7416573867739413}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 24, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 43}}}}}}}, "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.expressions.Insert.with_": {"tf": 2}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}}, "df": 5, "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": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "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.spark2.Spark2.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.trie.new_trie": {"tf": 1}}, "df": 25}}, "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.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 5}}}}, "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.same_parent": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "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.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.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 2, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}}}}}}}, "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.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}, "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.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"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.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "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.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.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.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": 110, "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}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 2}}}, "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.spark2.Spark2.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, "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.spark2.Spark2.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": 24}}}}, "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.spark2.Spark2.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": 27}}}, "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}}, "df": 2}}}}}, "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}}}}, "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.spark2.Spark2.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": 22}}, "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.Dot.build": {"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": 16, "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.insert": {"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": 10}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "t": {"docs": {"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": 5}}, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.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.qualify_tables.qualify_tables": {"tf": 1}, "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": 60, "t": {"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.spark2.Spark2.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.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}}, "df": 23, "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, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "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.spark2.Spark2.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.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Func": {"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.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": 35, "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.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "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": 7}}}, "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": 3.605551275463989}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.605551275463989}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 3.605551275463989}, "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.Insert.with_": {"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.insert": {"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": 3.605551275463989}, "sqlglot.generator.Generator.generate": {"tf": 1}, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 95, "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.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"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.Insert.with_": {"tf": 1.7320508075688772}, "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.insert": {"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.paren": {"tf": 1}, "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.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"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.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 86}, "s": {"docs": {"sqlglot": {"tf": 2}, "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}}, "df": 6}}}, "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.executor": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "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.spark2.Spark2.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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 26, "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.spark2.Spark2.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": 23, "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.spark2.Spark2.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}}}}}}}, "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}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 2}, "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}}}}, "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}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 1}}}}, "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}}}}}}}}}}, "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.spark2.Spark2.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}}}}, "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.spark2.Spark2.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": 23}}}, "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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 7, "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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 3}}}}}}, "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.spark2.Spark2.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.iter_expressions": {"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.join": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 2.23606797749979}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.insert": {"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.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}, "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}}, "df": 88, "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.7320508075688772}, "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.spark2.Spark2.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": 27, "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.spark2.Spark2.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": 24}}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "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.expressions.table_": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.executor": {"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.4142135623730951}, "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}}}, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 9, "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}}}}}}}}}}}}, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 2}, "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.23606797749979}, "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": 3.3166247903554}, "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.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": 2.23606797749979}, "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.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 120, "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}}}}}}}, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "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": 8, "/": {"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}}, "df": 1, "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.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": 14}}}, "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}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "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}}}, "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.spark2.Spark2.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.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.spark2.Spark2.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}}, "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.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": 5}, "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}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1.4142135623730951}, "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.normalize.normalize": {"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": 83}}, "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}}}}}}}, "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.spark2.Spark2.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.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 24, "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.spark2.Spark2.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": 23}, "/": {"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.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.spark2.Spark2.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.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2.8284271247461903}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.8284271247461903}}, "df": 24}}}}}, "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.spark2.Spark2.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.iter_expressions": {"tf": 1}, "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}, "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": 57, "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.spark2.Spark2.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": 23}}}, "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.spark2.Spark2.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.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": 47}, "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}, "sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 2}}}}}}}, "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.spark2.Spark2.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": 22}}}}, "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.spark2.Spark2.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": 25}}}}, "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}}}}}, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "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}}}}}}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 44}}, "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.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1}}}}}}, "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}}, "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.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 7}, "d": {"docs": {"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": 6}, "/": {"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}}}}}}}, "s": {"docs": {"sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 2}}, "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.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}}, "df": 5, "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.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "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": 12, "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.same_parent": {"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.Insert.with_": {"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.insert": {"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_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.generator.cached_generator": {"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.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.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.Schema.empty": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"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": 176}, "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.spark2.Spark2.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": 39}}, "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.spark2.Spark2.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": 26}, "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.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}, "s": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 1}}}}, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 13, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45}}}}}, "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": {"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.expressions.to_table": {"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": 6}}}, "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}}}}}, "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}}}, "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.Insert.with_": {"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": 11}}}, "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.datatype_sql": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "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}}}}}}}, "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}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 2}}}}}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 46, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}, "w": {"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.spark2.Spark2.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": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 25}, "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}}}}}}}}, "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}}, "df": 5, "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.spark2.Spark2.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}}, "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.Insert.with_": {"tf": 1.4142135623730951}, "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.Dot.build": {"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.to_table": {"tf": 1}, "sqlglot.expressions.subquery": {"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.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": 48, "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}}, "df": 5}}}, "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.spark2.Spark2.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.Insert.with_": {"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.to_table": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "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.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}, "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}}, "df": 83}}, "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": 3.605551275463989}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.605551275463989}, "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": 3.605551275463989}, "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.expressions.to_table": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 3.605551275463989}, "sqlglot.generator.Generator.generate": {"tf": 1}, "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": 53}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "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.datatype_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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 53}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dataframe": {"tf": 1}, "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.schema.nested_get": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 19}}, "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.spark2.Spark2.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.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"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.insert": {"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.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.convert": {"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.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.empty": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 58}}}}}, "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}, "sqlglot.expressions.paren": {"tf": 1}}, "df": 3, "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.expressions.paren": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}}, "df": 12}}}, "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.spark2.Spark2.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}, "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.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 2, "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.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": 15, "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.convert": {"tf": 1.7320508075688772}, "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.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_set": {"tf": 3.1622776601683795}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 17, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 2.6457513110645907}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 10}}}}}, "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": 2.23606797749979}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "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.spark2.Spark2.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}, "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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 3}}}, "\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.spark2.Spark2.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.generator.cached_generator": {"tf": 1}, "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}}, "df": 39}}, "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.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tag": {"tf": 1}}, "df": 3}}, "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.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 16, "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}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "n": {"docs": {"sqlglot": {"tf": 1}, "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.spark2.Spark2.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.schema.nested_set": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 45}}}, "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}}}}}, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "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.Insert.with_": {"tf": 1.7320508075688772}, "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.insert": {"tf": 1.7320508075688772}, "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.paren": {"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": 3}, "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.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": 4.242640687119285}, "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.schema.nested_set": {"tf": 2.449489742783178}, "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": 100}, "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}}}}}}, "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": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 1, "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.spark2.Spark2.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": 29, "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.Insert.with_": {"tf": 2.8284271247461903}, "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.8284271247461903}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.8284271247461903}, "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.insert": {"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.paren": {"tf": 1.4142135623730951}, "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": 3.1622776601683795}, "sqlglot.expressions.expand": {"tf": 4}, "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.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.449489742783178}, "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.schema.nested_set": {"tf": 4.242640687119285}, "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": 93, "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.spark2.Spark2.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.table_": {"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.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 26}}}, "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.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.7320508075688772}}, "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": 2.449489742783178}, "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.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": 40, "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.generator.Generator.generate": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 8, "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.iter_expressions": {"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": 9}, "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}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 11}}, "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.spark2.Spark2.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}, "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}}, "df": 3, "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}}}}}, "x": {"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.spark2.Spark2.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": 22}, "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}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}}, "df": 2, "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}}}}}}}}}}, "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}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"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": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 4}}}}, "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.diff": {"tf": 1}}, "df": 4, "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}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.schema.nested_set": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}, "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.spark2.Spark2.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": 40, "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.spark2.Spark2.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": 23}, "[": {"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.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}}, "df": 3}, "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.optimizer.scope.Scope.find": {"tf": 1}}, "df": 4, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 42}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.preprocess": {"tf": 1}}, "df": 48}}}, "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.spark2.Spark2.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": 20, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 46}}}}}}, "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.Insert.with_": {"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": 26}, "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.Insert.with_": {"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": 23}}}}}, "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.spark2.Spark2.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": 24, "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.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 4, "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}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}, "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}}}}}, "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}}}}, "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}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.qualify_columns.qualify_columns": {"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}}}}}}}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"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": 7}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "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}}, "df": 1, "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.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}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}}}, "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}}}}}, "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}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 3.872983346207417}, "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.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 18, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "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": 8}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Select.join": {"tf": 1}}, "df": 1}}, "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.Insert.with_": {"tf": 1.4142135623730951}, "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": 2.449489742783178}, "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.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": 2.449489742783178}, "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.spark2.Spark2.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.iter_expressions": {"tf": 1}, "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.schema.nested_get": {"tf": 2}, "sqlglot.schema.nested_set": {"tf": 3.4641016151377544}, "sqlglot.trie.in_trie": {"tf": 2}}, "df": 38, "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.spark2.Spark2.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}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}}, "df": 26}, "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.to_table": {"tf": 1.4142135623730951}, "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": 5}}}}}}}}}, "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": "

\"SQLGlot

\n\n

SQLGlot is a no-dependency SQL parser, transpiler, optimizer, and engine. It can be used to format SQL or translate between 19 different dialects like DuckDB, Presto, Spark, Snowflake, and BigQuery. It aims to read a wide variety of SQL inputs and output syntactically correct SQL in the targeted dialects.

\n\n

It is a very comprehensive generic SQL parser with a robust test suite. It is also quite performant, while being written purely in Python.

\n\n

You can easily customize the parser, analyze queries, traverse expression trees, and programmatically build SQL.

\n\n

Syntax errors 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.

\n\n

Contributions are very welcome in SQLGlot; read the contribution guide to get started!

\n\n

Table of Contents

\n\n\n\n

Install

\n\n

From PyPI:

\n\n
pip3 install sqlglot\n
\n\n

Or with a local checkout:

\n\n
make install\n
\n\n

Requirements for development (optional):

\n\n
make install-dev\n
\n\n

Versioning

\n\n

Given a version number MAJOR.MINOR.PATCH, SQLGlot uses the following versioning strategy:

\n\n
    \n
  • The PATCH version is incremented when there are backwards-compatible fixes or feature additions.
  • \n
  • The MINOR version is incremented when there are backwards-incompatible fixes or feature additions.
  • \n
  • The MAJOR version is incremented when there are significant backwards-incompatible fixes or feature additions.
  • \n
\n\n

Get in Touch

\n\n

We'd love to hear from you. Join our community Slack channel!

\n\n

Examples

\n\n

Formatting and Transpiling

\n\n

Easily translate from one dialect to another. For example, date/time functions vary from dialects and can be hard to deal with:

\n\n
\n
import sqlglot\nsqlglot.transpile("SELECT EPOCH_MS(1618088028295)", read="duckdb", write="hive")[0]\n
\n
\n\n
\n
'SELECT FROM_UNIXTIME(1618088028295 / 1000)'\n
\n
\n\n

SQLGlot can even translate custom time formats:

\n\n
\n
import sqlglot\nsqlglot.transpile("SELECT STRFTIME(x, '%y-%-m-%S')", read="duckdb", write="hive")[0]\n
\n
\n\n
\n
"SELECT DATE_FORMAT(x, 'yy-M-ss')"\n
\n
\n\n

As another example, let's suppose that we want to read in a SQL query that contains a CTE and a cast to REAL, and then transpile it to Spark, which uses backticks for identifiers and FLOAT instead of REAL:

\n\n
\n
import sqlglot\n\nsql = """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"""\nprint(sqlglot.transpile(sql, write="spark", identify=True, pretty=True)[0])\n
\n
\n\n
\n
WITH `baz` AS (\n  SELECT\n    `a`,\n    `c`\n  FROM `foo`\n  WHERE\n    `a` = 1\n)\nSELECT\n  `f`.`a`,\n  `b`.`b`,\n  `baz`.`c`,\n  CAST(`b`.`a` AS FLOAT) AS `d`\nFROM `foo` AS `f`\nJOIN `bar` AS `b`\n  ON `f`.`a` = `b`.`a`\nLEFT JOIN `baz`\n  ON `f`.`a` = `baz`.`a`\n
\n
\n\n

Comments are also preserved in a best-effort basis when transpiling SQL code:

\n\n
\n
sql = """\n/* multi\n   line\n   comment\n*/\nSELECT\n  tbl.cola /* comment 1 */ + tbl.colb /* comment 2 */,\n  CAST(x AS INT), # comment 3\n  y               -- comment 4\nFROM\n  bar /* comment 5 */,\n  tbl #          comment 6\n"""\n\nprint(sqlglot.transpile(sql, read='mysql', pretty=True)[0])\n
\n
\n\n
\n
/* multi\n   line\n   comment\n*/\nSELECT\n  tbl.cola /* comment 1 */ + tbl.colb /* comment 2 */,\n  CAST(x AS INT), /* comment 3 */\n  y /* comment 4 */\nFROM bar /* comment 5 */, tbl /*          comment 6 */\n
\n
\n\n

Metadata

\n\n

You can explore SQL with expression helpers to do things like find columns and tables:

\n\n
\n
from sqlglot import parse_one, exp\n\n# print all column references (a and b)\nfor column in parse_one("SELECT a, b + 1 AS c FROM d").find_all(exp.Column):\n    print(column.alias_or_name)\n\n# find all projections in select statements (a and c)\nfor select in parse_one("SELECT a, b + 1 AS c FROM d").find_all(exp.Select):\n    for projection in select.expressions:\n        print(projection.alias_or_name)\n\n# find all tables (x, y, z)\nfor table in parse_one("SELECT * FROM x JOIN y JOIN z").find_all(exp.Table):\n    print(table.name)\n
\n
\n\n

Parser Errors

\n\n

When the parser detects an error in the syntax, it raises a ParserError:

\n\n
\n
import sqlglot\nsqlglot.transpile("SELECT foo( FROM bar")\n
\n
\n\n
sqlglot.errors.ParseError: Expecting ). Line 1, Col: 13.\n  select foo( FROM bar\n              ~~~~\n
\n\n

Structured syntax errors are accessible for programmatic use:

\n\n
\n
import sqlglot\ntry:\n    sqlglot.transpile("SELECT foo( FROM bar")\nexcept sqlglot.errors.ParseError as e:\n    print(e.errors)\n
\n
\n\n
\n
[{\n  'description': 'Expecting )',\n  'line': 1,\n  'col': 13,\n  'start_context': 'SELECT foo( ',\n  'highlight': 'FROM',\n  'end_context': ' bar'\n}]\n
\n
\n\n

Unsupported Errors

\n\n

Presto APPROX_DISTINCT supports the accuracy argument which is not supported in Hive:

\n\n
\n
import sqlglot\nsqlglot.transpile("SELECT APPROX_DISTINCT(a, 0.1) FROM foo", read="presto", write="hive")\n
\n
\n\n
\n
APPROX_COUNT_DISTINCT does not support accuracy\n'SELECT APPROX_COUNT_DISTINCT(a) FROM foo'\n
\n
\n\n

Build and Modify SQL

\n\n

SQLGlot supports incrementally building sql expressions:

\n\n
\n
from sqlglot import select, condition\n\nwhere = condition("x=1").and_("y=1")\nselect("*").from_("y").where(where).sql()\n
\n
\n\n
\n
'SELECT * FROM y WHERE x = 1 AND y = 1'\n
\n
\n\n

You can also modify a parsed tree:

\n\n
\n
from sqlglot import parse_one\nparse_one("SELECT x FROM y").from_("z").sql()\n
\n
\n\n
\n
'SELECT x FROM y, z'\n
\n
\n\n

There is also a way to recursively transform the parsed tree by applying a mapping function to each tree node:

\n\n
\n
from sqlglot import exp, parse_one\n\nexpression_tree = parse_one("SELECT a FROM x")\n\ndef transformer(node):\n    if isinstance(node, exp.Column) and node.name == "a":\n        return parse_one("FUN(a)")\n    return node\n\ntransformed_tree = expression_tree.transform(transformer)\ntransformed_tree.sql()\n
\n
\n\n
\n
'SELECT FUN(a) FROM x'\n
\n
\n\n

SQL Optimizer

\n\n

SQLGlot can rewrite queries into an \"optimized\" form. It performs a variety of techniques 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:

\n\n
\n
import sqlglot\nfrom sqlglot.optimizer import optimize\n\nprint(\n    optimize(\n        sqlglot.parse_one("""\n            SELECT A OR (B OR (C AND D))\n            FROM x\n            WHERE Z = date '2021-01-01' + INTERVAL '1' month OR 1 = 0\n        """),\n        schema={"x": {"A": "INT", "B": "INT", "C": "INT", "D": "INT", "Z": "STRING"}}\n    ).sql(pretty=True)\n)\n
\n
\n\n
\n
SELECT\n  (\n    "x"."a" <> 0 OR "x"."b" <> 0 OR "x"."c" <> 0\n  )\n  AND (\n    "x"."a" <> 0 OR "x"."b" <> 0 OR "x"."d" <> 0\n  ) AS "_col_0"\nFROM "x" AS "x"\nWHERE\n  CAST("x"."z" AS DATE) = CAST('2021-02-01' AS DATE)\n
\n
\n\n

AST Introspection

\n\n

You can see the AST version of the sql by calling repr:

\n\n
\n
from sqlglot import parse_one\nprint(repr(parse_one("SELECT a + 1 AS z")))\n
\n
\n\n
\n
(SELECT expressions:\n  (ALIAS this:\n    (ADD this:\n      (COLUMN this:\n        (IDENTIFIER this: a, quoted: False)), expression:\n      (LITERAL this: 1, is_string: False)), alias:\n    (IDENTIFIER this: z, quoted: False)))\n
\n
\n\n

AST Diff

\n\n

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:

\n\n
\n
from sqlglot import diff, parse_one\ndiff(parse_one("SELECT a + b, c, d"), parse_one("SELECT c, a - b, d"))\n
\n
\n\n
\n
[\n  Remove(expression=(ADD this:\n    (COLUMN this:\n      (IDENTIFIER this: a, quoted: False)), expression:\n    (COLUMN this:\n      (IDENTIFIER this: b, quoted: False)))),\n  Insert(expression=(SUB this:\n    (COLUMN this:\n      (IDENTIFIER this: a, quoted: False)), expression:\n    (COLUMN this:\n      (IDENTIFIER this: b, quoted: False)))),\n  Move(expression=(COLUMN this:\n    (IDENTIFIER this: c, quoted: False))),\n  Keep(source=(IDENTIFIER this: b, quoted: False), target=(IDENTIFIER this: b, quoted: False)),\n  ...\n]\n
\n
\n\n

See also: Semantic Diff for SQL.

\n\n

Custom Dialects

\n\n

Dialects can be added by subclassing Dialect:

\n\n
\n
from sqlglot import exp\nfrom sqlglot.dialects.dialect import Dialect\nfrom sqlglot.generator import Generator\nfrom sqlglot.tokens import Tokenizer, TokenType\n\n\nclass Custom(Dialect):\n    class Tokenizer(Tokenizer):\n        QUOTES = ["'", '"']\n        IDENTIFIERS = ["`"]\n\n        KEYWORDS = {\n            **Tokenizer.KEYWORDS,\n            "INT64": TokenType.BIGINT,\n            "FLOAT64": TokenType.DOUBLE,\n        }\n\n    class Generator(Generator):\n        TRANSFORMS = {exp.Array: lambda self, e: f"[{self.expressions(e)}]"}\n\n        TYPE_MAPPING = {\n            exp.DataType.Type.TINYINT: "INT64",\n            exp.DataType.Type.SMALLINT: "INT64",\n            exp.DataType.Type.INT: "INT64",\n            exp.DataType.Type.BIGINT: "INT64",\n            exp.DataType.Type.DECIMAL: "NUMERIC",\n            exp.DataType.Type.FLOAT: "FLOAT64",\n            exp.DataType.Type.DOUBLE: "FLOAT64",\n            exp.DataType.Type.BOOLEAN: "BOOL",\n            exp.DataType.Type.TEXT: "STRING",\n        }\n\nprint(Dialect["custom"])\n
\n
\n\n
<class '__main__.Custom'>\n
\n\n

SQL Execution

\n\n

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:

\n\n
\n
from sqlglot.executor import execute\n\ntables = {\n    "sushi": [\n        {"id": 1, "price": 1.0},\n        {"id": 2, "price": 2.0},\n        {"id": 3, "price": 3.0},\n    ],\n    "order_items": [\n        {"sushi_id": 1, "order_id": 1},\n        {"sushi_id": 1, "order_id": 1},\n        {"sushi_id": 2, "order_id": 1},\n        {"sushi_id": 3, "order_id": 2},\n    ],\n    "orders": [\n        {"id": 1, "user_id": 1},\n        {"id": 2, "user_id": 2},\n    ],\n}\n\nexecute(\n    """\n    SELECT\n      o.user_id,\n      SUM(s.price) AS price\n    FROM orders o\n    JOIN order_items i\n      ON o.id = i.order_id\n    JOIN sushi s\n      ON i.sushi_id = s.id\n    GROUP BY o.user_id\n    """,\n    tables=tables\n)\n
\n
\n\n
\n
user_id price\n      1   4.0\n      2   3.0\n
\n
\n\n

See also: Writing a Python SQL engine from scratch.

\n\n

Used By

\n\n\n\n

Documentation

\n\n

SQLGlot uses pdoc to serve its API documentation:

\n\n
make docs-serve\n
\n\n

Run Tests and Lint

\n\n
make check  # Set SKIP_INTEGRATION=1 to skip integration tests\n
\n\n

Benchmarks

\n\n

Benchmarks run on Python 3.10.5 in seconds.

\n\n\n\n\n \n \n \n \n \n \n \n\n\n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n\n\n \n \n \n \n \n \n \n\n\n
Querysqlglotsqlfluffsqltreesqlparsemoz_sql_parsersqloxide
tpch0.01308 (1.0)1.60626 (122.7)0.01168 (0.893)0.04958 (3.791)0.08543 (6.531)0.00136 (0.104)
short0.00109 (1.0)0.14134 (129.2)0.00099 (0.906)0.00342 (3.131)0.00652 (5.970)8.76E-5 (0.080)
long0.01399 (1.0)2.12632 (151.9)0.01126 (0.805)0.04410 (3.151)0.06671 (4.767)0.00107 (0.076)
crazy0.03969 (1.0)24.3777 (614.1)0.03917 (0.987)11.7043 (294.8)1.03280 (26.02)0.00625 (0.157)
\n\n

Optional Dependencies

\n\n

SQLGlot uses dateutil to simplify literal timedelta expressions. The optimizer will not simplify expressions like the following if the module cannot be found:

\n\n
\n
x + interval '1' month\n
\n
\n\n
\n"}, "sqlglot.pretty": {"fullname": "sqlglot.pretty", "modulename": "sqlglot", "qualname": "pretty", "kind": "variable", "doc": "

Whether to format generated SQL by default.

\n", "default_value": "False"}, "sqlglot.schema": {"fullname": "sqlglot.schema", "modulename": "sqlglot.schema", "kind": "module", "doc": "

\n"}, "sqlglot.parse": {"fullname": "sqlglot.parse", "modulename": "sqlglot", "qualname": "parse", "kind": "function", "doc": "

Parses the given SQL string into a collection of syntax trees, one per parsed SQL statement.

\n\n
Arguments:
\n\n
    \n
  • sql: the SQL code string to parse.
  • \n
  • read: the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • **opts: other sqlglot.parser.Parser options.
  • \n
\n\n
Returns:
\n\n
\n

The resulting syntax tree collection.

\n
\n", "signature": "(\tsql: str,\tread: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> List[Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.parse_one": {"fullname": "sqlglot.parse_one", "modulename": "sqlglot", "qualname": "parse_one", "kind": "function", "doc": "

Parses the given SQL string and returns a syntax tree for the first parsed SQL statement.

\n\n
Arguments:
\n\n
    \n
  • sql: the SQL code string to parse.
  • \n
  • read: the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • into: the SQLGlot Expression to parse into.
  • \n
  • **opts: other sqlglot.parser.Parser options.
  • \n
\n\n
Returns:
\n\n
\n

The syntax tree for the first parsed statement.

\n
\n", "signature": "(\tsql: str,\tread: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tinto: Union[str, Type[sqlglot.expressions.Expression], Collection[Union[str, Type[sqlglot.expressions.Expression]]], NoneType] = None,\t**opts) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transpile": {"fullname": "sqlglot.transpile", "modulename": "sqlglot", "qualname": "transpile", "kind": "function", "doc": "

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.

\n\n
Arguments:
\n\n
    \n
  • sql: the SQL code string to transpile.
  • \n
  • read: the source dialect used to parse the input string (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • write: the target dialect into which the input should be transformed (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • identity: if set to True and if the target dialect is not specified the source dialect will be used as both:\nthe source and the target dialect.
  • \n
  • error_level: the desired error level of the parser.
  • \n
  • **opts: other sqlglot.generator.Generator options.
  • \n
\n\n
Returns:
\n\n
\n

The list of transpiled SQL statements.

\n
\n", "signature": "(\tsql: str,\tread: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\twrite: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tidentity: bool = True,\terror_level: Optional[sqlglot.errors.ErrorLevel] = None,\t**opts) -> List[str]:", "funcdef": "def"}, "sqlglot.dataframe": {"fullname": "sqlglot.dataframe", "modulename": "sqlglot.dataframe", "kind": "module", "doc": "

PySpark DataFrame SQL Generator

\n\n

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 DuckDB, Presto, Spark, Snowflake, and BigQuery.

\n\n

Currently many of the common operations are covered and more functionality will be added over time. Please open an issue or PR with your feedback or contribution to help influence what should be prioritized next and make sure your use case is properly supported.

\n\n

How to use

\n\n

Instructions

\n\n
    \n
  • Install SQLGlot and that is all that is required to just generate SQL. The examples show generating SQL and then executing that SQL on a specific engine and that will require that engine's client library.
  • \n
  • Find/replace all from pyspark.sql with from sqlglot.dataframe.
  • \n
  • Prior to any spark.read.table or spark.table run sqlglot.schema.add_table('<table_name>', <column_structure>).\n
      \n
    • The column structure can be defined the following ways:\n
        \n
      • Dictionary where the keys are column names and values are string of the Spark SQL type name.\n
          \n
        • Ex: {'cola': 'string', 'colb': 'int'}
        • \n
      • \n
      • PySpark DataFrame StructType similar to when using createDataFrame.\n
          \n
        • Ex: StructType([StructField('cola', StringType()), StructField('colb', IntegerType())])
        • \n
      • \n
      • A string of names and types similar to what is supported in createDataFrame.\n
          \n
        • Ex: cola: STRING, colb: INT
        • \n
      • \n
      • [Not Recommended] A list of string column names without type.\n
          \n
        • Ex: ['cola', 'colb']
        • \n
        • The lack of types may limit functionality in future releases.
        • \n
      • \n
    • \n
    • See Registering Custom Schema for information on how to skip this step if the information is stored externally.
    • \n
  • \n
  • Add .sql(pretty=True) to your final DataFrame command to return a list of sql statements to run that command.\n
      \n
    • In most cases a single SQL statement is returned. Currently the only exception is when caching DataFrames which isn't supported in other dialects.
    • \n
    • Spark is the default output dialect. See dialects for a full list of dialects.
    • \n
    • Ex: .sql(pretty=True, dialect='bigquery')
    • \n
  • \n
\n\n

Examples

\n\n
\n
import sqlglot\nfrom sqlglot.dataframe.sql.session import SparkSession\nfrom sqlglot.dataframe.sql import functions as F\n\nsqlglot.schema.add_table('employee', {\n  'employee_id': 'INT',\n  'fname': 'STRING',\n  'lname': 'STRING',\n  'age': 'INT',\n})  # Register the table structure prior to reading from the table\n\nspark = SparkSession()\n\ndf = (\n    spark\n    .table('employee')\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("employee_id")).alias("num_employees")) \n)\n\nprint(df.sql(pretty=True))  # Spark will be the dialect used by default\n
\n
\n\n
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
\n\n

Registering Custom Schema Class

\n\n

The step of adding sqlglot.schema.add_table 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 sqlglot.schema.Schema abstract class and then assigning that class to sqlglot.schema.

\n\n
\n
import sqlglot\nfrom sqlglot.dataframe.sql.session import SparkSession\nfrom sqlglot.dataframe.sql import functions as F\nfrom sqlglot.schema import Schema\n\n\nclass ExternalSchema(Schema):\n  ...\n\nsqlglot.schema = ExternalSchema()\n\nspark = SparkSession()\n\ndf = (\n    spark\n    .table('employee')\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("employee_id")).alias("num_employees")) \n)\n\nprint(df.sql(pretty=True))\n
\n
\n\n

Example Implementations

\n\n

Bigquery

\n\n
\n
from google.cloud import bigquery\nfrom sqlglot.dataframe.sql.session import SparkSession\nfrom sqlglot.dataframe.sql import types\nfrom sqlglot.dataframe.sql import functions as F\n\nclient = bigquery.Client()\n\ndata = [\n    (1, "Jack", "Shephard", 34),\n    (2, "John", "Locke", 48),\n    (3, "Kate", "Austen", 34),\n    (4, "Claire", "Littleton", 22),\n    (5, "Hugo", "Reyes", 26),\n]\nschema = types.StructType([\n    types.StructField('employee_id', types.IntegerType(), False),\n    types.StructField('fname', types.StringType(), False),\n    types.StructField('lname', types.StringType(), False),\n    types.StructField('age', types.IntegerType(), False),\n])\n\nsql_statements = (\n    SparkSession()\n    .createDataFrame(data, schema)\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("employee_id")).alias("num_employees"))\n    .sql(dialect="bigquery")\n)\n\nresult = None\nfor sql in sql_statements:\n  result = client.query(sql)\n\nassert result is not None\nfor row in client.query(result):\n    print(f"Age: {row['age']}, Num Employees: {row['num_employees']}")\n
\n
\n\n

Snowflake

\n\n
\n
import os\n\nimport snowflake.connector\nfrom sqlglot.dataframe.session import SparkSession\nfrom sqlglot.dataframe import types\nfrom sqlglot.dataframe import functions as F\n\nctx = snowflake.connector.connect(\n    user=os.environ["SNOWFLAKE_USER"],\n    password=os.environ["SNOWFLAKE_PASS"],\n    account=os.environ["SNOWFLAKE_ACCOUNT"]\n)\ncs = ctx.cursor()\n\ndata = [\n    (1, "Jack", "Shephard", 34),\n    (2, "John", "Locke", 48),\n    (3, "Kate", "Austen", 34),\n    (4, "Claire", "Littleton", 22),\n    (5, "Hugo", "Reyes", 26),\n]\nschema = types.StructType([\n    types.StructField('employee_id', types.IntegerType(), False),\n    types.StructField('fname', types.StringType(), False),\n    types.StructField('lname', types.StringType(), False),\n    types.StructField('age', types.IntegerType(), False),\n])\n\nsql_statements = (\n    SparkSession()\n    .createDataFrame(data, schema)\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("lname")).alias("num_employees"))\n    .sql(dialect="snowflake")\n)\n\ntry:\n    for sql in sql_statements:\n        cs.execute(sql)\n    results = cs.fetchall()\n    for row in results:\n        print(f"Age: {row[0]}, Num Employees: {row[1]}")\nfinally:\n    cs.close()\nctx.close()\n
\n
\n\n

Spark

\n\n
\n
from pyspark.sql.session import SparkSession as PySparkSession\nfrom sqlglot.dataframe.sql.session import SparkSession\nfrom sqlglot.dataframe.sql import types\nfrom sqlglot.dataframe.sql import functions as F\n\ndata = [\n    (1, "Jack", "Shephard", 34),\n    (2, "John", "Locke", 48),\n    (3, "Kate", "Austen", 34),\n    (4, "Claire", "Littleton", 22),\n    (5, "Hugo", "Reyes", 26),\n]\nschema = types.StructType([\n    types.StructField('employee_id', types.IntegerType(), False),\n    types.StructField('fname', types.StringType(), False),\n    types.StructField('lname', types.StringType(), False),\n    types.StructField('age', types.IntegerType(), False),\n])\n\nsql_statements = (\n    SparkSession()\n    .createDataFrame(data, schema)\n    .groupBy(F.col("age"))\n    .agg(F.countDistinct(F.col("employee_id")).alias("num_employees"))\n    .sql(dialect="spark")\n)\n\npyspark = PySparkSession.builder.master("local[*]").getOrCreate()\n\ndf = None\nfor sql in sql_statements:\n    df = pyspark.sql(sql)\n\nassert df is not None\ndf.show()\n
\n
\n\n

Unsupportable Operations

\n\n

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.

\n"}, "sqlglot.dataframe.sql": {"fullname": "sqlglot.dataframe.sql", "modulename": "sqlglot.dataframe.sql", "kind": "module", "doc": "

\n"}, "sqlglot.dataframe.sql.SparkSession": {"fullname": "sqlglot.dataframe.sql.SparkSession", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.SparkSession.table": {"fullname": "sqlglot.dataframe.sql.SparkSession.table", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.table", "kind": "function", "doc": "

\n", "signature": "(self, tableName: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"fullname": "sqlglot.dataframe.sql.SparkSession.createDataFrame", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.createDataFrame", "kind": "function", "doc": "

\n", "signature": "(\tself,\tdata: Sequence[Union[Dict[str, <MagicMock id='140604724939168'>], List[<MagicMock id='140604724939168'>], Tuple]],\tschema: Optional[<MagicMock id='140604726296240'>] = None,\tsamplingRatio: Optional[float] = None,\tverifySchema: bool = False) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.SparkSession.sql": {"fullname": "sqlglot.dataframe.sql.SparkSession.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.sql", "kind": "function", "doc": "

\n", "signature": "(self, sqlQuery: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame": {"fullname": "sqlglot.dataframe.sql.DataFrame", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.DataFrame.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrame.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.__init__", "kind": "function", "doc": "

\n", "signature": "(\tspark: <MagicMock id='140604728440864'>,\texpression: sqlglot.expressions.Select,\tbranch_id: Optional[str] = None,\tsequence_id: Optional[str] = None,\tlast_op: sqlglot.dataframe.sql.operations.Operation = <Operation.INIT: -1>,\tpending_hints: Optional[List[sqlglot.expressions.Expression]] = None,\toutput_expression_container: Optional[<MagicMock id='140604729565168'>] = None,\t**kwargs)"}, "sqlglot.dataframe.sql.DataFrame.sql": {"fullname": "sqlglot.dataframe.sql.DataFrame.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.sql", "kind": "function", "doc": "

\n", "signature": "(self, dialect='spark', optimize=True, **kwargs) -> List[str]:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.copy": {"fullname": "sqlglot.dataframe.sql.DataFrame.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.copy", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.select": {"fullname": "sqlglot.dataframe.sql.DataFrame.select", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.select", "kind": "function", "doc": "

\n", "signature": "(self, *cols, **kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.alias": {"fullname": "sqlglot.dataframe.sql.DataFrame.alias", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.alias", "kind": "function", "doc": "

\n", "signature": "(self, name: str, **kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.where": {"fullname": "sqlglot.dataframe.sql.DataFrame.where", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.where", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcolumn: Union[sqlglot.dataframe.sql.column.Column, bool],\t**kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.filter": {"fullname": "sqlglot.dataframe.sql.DataFrame.filter", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.filter", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcolumn: Union[sqlglot.dataframe.sql.column.Column, bool],\t**kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"fullname": "sqlglot.dataframe.sql.DataFrame.groupBy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.groupBy", "kind": "function", "doc": "

\n", "signature": "(self, *cols, **kwargs) -> sqlglot.dataframe.sql.group.GroupedData:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.agg": {"fullname": "sqlglot.dataframe.sql.DataFrame.agg", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.agg", "kind": "function", "doc": "

\n", "signature": "(self, *exprs, **kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.join": {"fullname": "sqlglot.dataframe.sql.DataFrame.join", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.join", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother_df: sqlglot.dataframe.sql.dataframe.DataFrame,\ton: Union[str, List[str], sqlglot.dataframe.sql.column.Column, List[sqlglot.dataframe.sql.column.Column]],\thow: str = 'inner',\t**kwargs) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"fullname": "sqlglot.dataframe.sql.DataFrame.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.orderBy", "kind": "function", "doc": "

This implementation lets any ordered columns take priority over whatever is provided in ascending. 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.

\n", "signature": "(\tself,\t*cols: Union[str, sqlglot.dataframe.sql.column.Column],\tascending: Union[Any, List[Any], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.sort": {"fullname": "sqlglot.dataframe.sql.DataFrame.sort", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.sort", "kind": "function", "doc": "

This implementation lets any ordered columns take priority over whatever is provided in ascending. 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.

\n", "signature": "(\tself,\t*cols: Union[str, sqlglot.dataframe.sql.column.Column],\tascending: Union[Any, List[Any], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.union": {"fullname": "sqlglot.dataframe.sql.DataFrame.union", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.union", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.unionAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.unionAll", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"fullname": "sqlglot.dataframe.sql.DataFrame.unionByName", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.unionByName", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame,\tallowMissingColumns: bool = False):", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.intersect": {"fullname": "sqlglot.dataframe.sql.DataFrame.intersect", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.intersect", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.intersectAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.intersectAll", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.exceptAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.exceptAll", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: sqlglot.dataframe.sql.dataframe.DataFrame) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.distinct": {"fullname": "sqlglot.dataframe.sql.DataFrame.distinct", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.distinct", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"fullname": "sqlglot.dataframe.sql.DataFrame.dropDuplicates", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.dropDuplicates", "kind": "function", "doc": "

\n", "signature": "(self, subset: Optional[List[str]] = None):", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.dropna": {"fullname": "sqlglot.dataframe.sql.DataFrame.dropna", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.dropna", "kind": "function", "doc": "

\n", "signature": "(\tself,\thow: str = 'any',\tthresh: Optional[int] = None,\tsubset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.fillna": {"fullname": "sqlglot.dataframe.sql.DataFrame.fillna", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.fillna", "kind": "function", "doc": "

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

\n\n

Possibility for improvement: Use typeof 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.

\n", "signature": "(\tself,\tvalue: <MagicMock id='140604723599328'>,\tsubset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.replace": {"fullname": "sqlglot.dataframe.sql.DataFrame.replace", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.replace", "kind": "function", "doc": "

\n", "signature": "(\tself,\tto_replace: Union[bool, int, float, str, List, Dict],\tvalue: Union[bool, int, float, str, List, NoneType] = None,\tsubset: Union[Collection[<MagicMock id='140604723535904'>], <MagicMock id='140604723535904'>, NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"fullname": "sqlglot.dataframe.sql.DataFrame.withColumn", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.withColumn", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcolName: str,\tcol: sqlglot.dataframe.sql.column.Column) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"fullname": "sqlglot.dataframe.sql.DataFrame.withColumnRenamed", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.withColumnRenamed", "kind": "function", "doc": "

\n", "signature": "(self, existing: str, new: str):", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.drop": {"fullname": "sqlglot.dataframe.sql.DataFrame.drop", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.drop", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*cols: Union[str, sqlglot.dataframe.sql.column.Column]) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.limit": {"fullname": "sqlglot.dataframe.sql.DataFrame.limit", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.limit", "kind": "function", "doc": "

\n", "signature": "(self, num: int) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.hint": {"fullname": "sqlglot.dataframe.sql.DataFrame.hint", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.hint", "kind": "function", "doc": "

\n", "signature": "(\tself,\tname: str,\t*parameters: Union[str, int, NoneType]) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.repartition": {"fullname": "sqlglot.dataframe.sql.DataFrame.repartition", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.repartition", "kind": "function", "doc": "

\n", "signature": "(\tself,\tnumPartitions: Union[int, <MagicMock id='140604723822992'>],\t*cols: <MagicMock id='140604723880880'>) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"fullname": "sqlglot.dataframe.sql.DataFrame.coalesce", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.coalesce", "kind": "function", "doc": "

\n", "signature": "(self, numPartitions: int) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.cache": {"fullname": "sqlglot.dataframe.sql.DataFrame.cache", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.cache", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.persist": {"fullname": "sqlglot.dataframe.sql.DataFrame.persist", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.persist", "kind": "function", "doc": "

Storage Level Options: https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-aux-cache-cache-table.html

\n", "signature": "(\tself,\tstorageLevel: str = 'MEMORY_AND_DISK_SER') -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData": {"fullname": "sqlglot.dataframe.sql.GroupedData", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.GroupedData.__init__": {"fullname": "sqlglot.dataframe.sql.GroupedData.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.__init__", "kind": "function", "doc": "

\n", "signature": "(\tdf: sqlglot.dataframe.sql.dataframe.DataFrame,\tgroup_by_cols: List[sqlglot.dataframe.sql.column.Column],\tlast_op: sqlglot.dataframe.sql.operations.Operation)"}, "sqlglot.dataframe.sql.GroupedData.agg": {"fullname": "sqlglot.dataframe.sql.GroupedData.agg", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.agg", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*exprs: Union[sqlglot.dataframe.sql.column.Column, Dict[str, str]]) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.count": {"fullname": "sqlglot.dataframe.sql.GroupedData.count", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.count", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.mean": {"fullname": "sqlglot.dataframe.sql.GroupedData.mean", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.mean", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.avg": {"fullname": "sqlglot.dataframe.sql.GroupedData.avg", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.avg", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.max": {"fullname": "sqlglot.dataframe.sql.GroupedData.max", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.max", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.min": {"fullname": "sqlglot.dataframe.sql.GroupedData.min", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.min", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.sum": {"fullname": "sqlglot.dataframe.sql.GroupedData.sum", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.sum", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.pivot": {"fullname": "sqlglot.dataframe.sql.GroupedData.pivot", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.pivot", "kind": "function", "doc": "

\n", "signature": "(self, *cols: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column": {"fullname": "sqlglot.dataframe.sql.Column", "modulename": "sqlglot.dataframe.sql", "qualname": "Column", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.Column.__init__": {"fullname": "sqlglot.dataframe.sql.Column.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.__init__", "kind": "function", "doc": "

\n", "signature": "(\texpression: Union[<MagicMock id='140604725847056'>, sqlglot.expressions.Expression, NoneType])"}, "sqlglot.dataframe.sql.Column.ensure_col": {"fullname": "sqlglot.dataframe.sql.Column.ensure_col", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ensure_col", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tvalue: Union[<MagicMock id='140604723943728'>, sqlglot.expressions.Expression, NoneType]):", "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": "

\n", "signature": "(\tcls,\targs: List[Union[<MagicMock id='140604723933680'>, sqlglot.expressions.Expression]]) -> List[sqlglot.dataframe.sql.column.Column]:", "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": "

\n", "signature": "(\tcls,\tcolumn: Optional[<MagicMock id='140604724460464'>],\tfunc_name: str,\t*args: Optional[<MagicMock id='140604724156480'>]) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(\tcls,\tcolumn: Optional[<MagicMock id='140604724090944'>],\tcallable_expression: Callable,\t**kwargs) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(\tself,\tklass: Callable,\tother: <MagicMock id='140604724048944'>,\t**kwargs) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(\tself,\tklass: Callable,\tother: <MagicMock id='140604724339344'>,\t**kwargs) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self, klass: Callable, **kwargs) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(cls, value) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.copy": {"fullname": "sqlglot.dataframe.sql.Column.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.copy", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self, table_name: str, copy=False) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.sql": {"fullname": "sqlglot.dataframe.sql.Column.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.sql", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> str:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.alias": {"fullname": "sqlglot.dataframe.sql.Column.alias", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.alias", "kind": "function", "doc": "

\n", "signature": "(self, name: str) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.asc": {"fullname": "sqlglot.dataframe.sql.Column.asc", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.asc", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.desc": {"fullname": "sqlglot.dataframe.sql.Column.desc", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.desc", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "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": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.when": {"fullname": "sqlglot.dataframe.sql.Column.when", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.when", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcondition: sqlglot.dataframe.sql.column.Column,\tvalue: Any) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.otherwise": {"fullname": "sqlglot.dataframe.sql.Column.otherwise", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.otherwise", "kind": "function", "doc": "

\n", "signature": "(self, value: Any) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isNull": {"fullname": "sqlglot.dataframe.sql.Column.isNull", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isNull", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isNotNull": {"fullname": "sqlglot.dataframe.sql.Column.isNotNull", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isNotNull", "kind": "function", "doc": "

\n", "signature": "(self) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.cast": {"fullname": "sqlglot.dataframe.sql.Column.cast", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.cast", "kind": "function", "doc": "

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

\n", "signature": "(self, dataType: Union[str, sqlglot.dataframe.sql.types.DataType]):", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.startswith": {"fullname": "sqlglot.dataframe.sql.Column.startswith", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.startswith", "kind": "function", "doc": "

\n", "signature": "(\tself,\tvalue: Union[str, sqlglot.dataframe.sql.column.Column]) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.endswith": {"fullname": "sqlglot.dataframe.sql.Column.endswith", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.endswith", "kind": "function", "doc": "

\n", "signature": "(\tself,\tvalue: Union[str, sqlglot.dataframe.sql.column.Column]) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.rlike": {"fullname": "sqlglot.dataframe.sql.Column.rlike", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.rlike", "kind": "function", "doc": "

\n", "signature": "(self, regexp: str) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.like": {"fullname": "sqlglot.dataframe.sql.Column.like", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.like", "kind": "function", "doc": "

\n", "signature": "(self, other: str):", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.ilike": {"fullname": "sqlglot.dataframe.sql.Column.ilike", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ilike", "kind": "function", "doc": "

\n", "signature": "(self, other: str):", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.substr": {"fullname": "sqlglot.dataframe.sql.Column.substr", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.substr", "kind": "function", "doc": "

\n", "signature": "(\tself,\tstartPos: Union[int, sqlglot.dataframe.sql.column.Column],\tlength: Union[int, sqlglot.dataframe.sql.column.Column]) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isin": {"fullname": "sqlglot.dataframe.sql.Column.isin", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isin", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*cols: Union[<MagicMock id='140604722499344'>, Iterable[<MagicMock id='140604722499344'>]]):", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.between": {"fullname": "sqlglot.dataframe.sql.Column.between", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.between", "kind": "function", "doc": "

\n", "signature": "(\tself,\tlowerBound: <MagicMock id='140604722556992'>,\tupperBound: <MagicMock id='140604722616528'>) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.over": {"fullname": "sqlglot.dataframe.sql.Column.over", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.over", "kind": "function", "doc": "

\n", "signature": "(\tself,\twindow: <MagicMock id='140604722692160'>) -> sqlglot.dataframe.sql.column.Column:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.__init__", "kind": "function", "doc": "

\n", "signature": "(df: sqlglot.dataframe.sql.dataframe.DataFrame)"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.drop", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.drop", "kind": "function", "doc": "

\n", "signature": "(\tself,\thow: str = 'any',\tthresh: Optional[int] = None,\tsubset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.fill", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.fill", "kind": "function", "doc": "

\n", "signature": "(\tself,\tvalue: Union[int, bool, float, str, Dict[str, Any]],\tsubset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.replace", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.replace", "kind": "function", "doc": "

\n", "signature": "(\tself,\tto_replace: Union[bool, int, float, str, List, Dict],\tvalue: Union[bool, int, float, str, List, NoneType] = None,\tsubset: Union[str, List[str], NoneType] = None) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.Window": {"fullname": "sqlglot.dataframe.sql.Window", "modulename": "sqlglot.dataframe.sql", "qualname": "Window", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.Window.partitionBy": {"fullname": "sqlglot.dataframe.sql.Window.partitionBy", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.partitionBy", "kind": "function", "doc": "

\n", "signature": "(\tcls,\t*cols: Union[<MagicMock id='140604722964432'>, List[<MagicMock id='140604722964432'>]]) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.orderBy": {"fullname": "sqlglot.dataframe.sql.Window.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.orderBy", "kind": "function", "doc": "

\n", "signature": "(\tcls,\t*cols: Union[<MagicMock id='140604723170512'>, List[<MagicMock id='140604723170512'>]]) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.rowsBetween": {"fullname": "sqlglot.dataframe.sql.Window.rowsBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.rowsBetween", "kind": "function", "doc": "

\n", "signature": "(cls, start: int, end: int) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.rangeBetween": {"fullname": "sqlglot.dataframe.sql.Window.rangeBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.rangeBetween", "kind": "function", "doc": "

\n", "signature": "(cls, start: int, end: int) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec": {"fullname": "sqlglot.dataframe.sql.WindowSpec", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"fullname": "sqlglot.dataframe.sql.WindowSpec.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression = (WINDOW ))"}, "sqlglot.dataframe.sql.WindowSpec.copy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.copy", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.sql": {"fullname": "sqlglot.dataframe.sql.WindowSpec.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.sql", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> str:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.partitionBy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.partitionBy", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*cols: Union[<MagicMock id='140604723060480'>, List[<MagicMock id='140604723060480'>]]) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.orderBy", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*cols: Union[<MagicMock id='140604722718768'>, List[<MagicMock id='140604722718768'>]]) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"fullname": "sqlglot.dataframe.sql.WindowSpec.rowsBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.rowsBetween", "kind": "function", "doc": "

\n", "signature": "(self, start: int, end: int) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"fullname": "sqlglot.dataframe.sql.WindowSpec.rangeBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.rangeBetween", "kind": "function", "doc": "

\n", "signature": "(self, start: int, end: int) -> sqlglot.dataframe.sql.window.WindowSpec:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameReader": {"fullname": "sqlglot.dataframe.sql.DataFrameReader", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameReader.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader.__init__", "kind": "function", "doc": "

\n", "signature": "(spark: sqlglot.dataframe.sql.session.SparkSession)"}, "sqlglot.dataframe.sql.DataFrameReader.table": {"fullname": "sqlglot.dataframe.sql.DataFrameReader.table", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader.table", "kind": "function", "doc": "

\n", "signature": "(self, tableName: str) -> sqlglot.dataframe.sql.dataframe.DataFrame:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter", "kind": "class", "doc": "

\n"}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.__init__", "kind": "function", "doc": "

\n", "signature": "(\tdf: sqlglot.dataframe.sql.dataframe.DataFrame,\tspark: Optional[sqlglot.dataframe.sql.session.SparkSession] = None,\tmode: Optional[str] = None,\tby_name: bool = False)"}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.copy", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> sqlglot.dataframe.sql.readwriter.DataFrameWriter:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.sql", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> List[str]:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.mode", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.mode", "kind": "function", "doc": "

\n", "signature": "(\tself,\tsaveMode: Optional[str]) -> sqlglot.dataframe.sql.readwriter.DataFrameWriter:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.insertInto", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.insertInto", "kind": "function", "doc": "

\n", "signature": "(\tself,\ttableName: str,\toverwrite: Optional[bool] = None) -> sqlglot.dataframe.sql.readwriter.DataFrameWriter:", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.saveAsTable", "kind": "function", "doc": "

\n", "signature": "(\tself,\tname: str,\tformat: Optional[str] = None,\tmode: Optional[str] = None):", "funcdef": "def"}, "sqlglot.dialects": {"fullname": "sqlglot.dialects", "modulename": "sqlglot.dialects", "kind": "module", "doc": "

Dialects

\n\n

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.

\n\n

The base sqlglot.dialects.dialect.Dialect class implements a generic dialect that aims to be as universal as possible.

\n\n

Each SQL variation has its own Dialect subclass, extending the corresponding Tokenizer, Parser and Generator\nclasses as needed.

\n\n

Implementing a custom Dialect

\n\n

Consider the following example:

\n\n
\n
from sqlglot import exp\nfrom sqlglot.dialects.dialect import Dialect\nfrom sqlglot.generator import Generator\nfrom sqlglot.tokens import Tokenizer, TokenType\n\n\nclass Custom(Dialect):\n    class Tokenizer(Tokenizer):\n        QUOTES = ["'", '"']\n        IDENTIFIERS = ["`"]\n\n        KEYWORDS = {\n            **Tokenizer.KEYWORDS,\n            "INT64": TokenType.BIGINT,\n            "FLOAT64": TokenType.DOUBLE,\n        }\n\n    class Generator(Generator):\n        TRANSFORMS = {exp.Array: lambda self, e: f"[{self.expressions(e)}]"}\n\n        TYPE_MAPPING = {\n            exp.DataType.Type.TINYINT: "INT64",\n            exp.DataType.Type.SMALLINT: "INT64",\n            exp.DataType.Type.INT: "INT64",\n            exp.DataType.Type.BIGINT: "INT64",\n            exp.DataType.Type.DECIMAL: "NUMERIC",\n            exp.DataType.Type.FLOAT: "FLOAT64",\n            exp.DataType.Type.DOUBLE: "FLOAT64",\n            exp.DataType.Type.BOOLEAN: "BOOL",\n            exp.DataType.Type.TEXT: "STRING",\n        }\n
\n
\n\n

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 Expression 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 TRANSFORMS mapping.

\n\n
\n"}, "sqlglot.dialects.bigquery": {"fullname": "sqlglot.dialects.bigquery", "modulename": "sqlglot.dialects.bigquery", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.bigquery.BigQuery": {"fullname": "sqlglot.dialects.bigquery.BigQuery", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.Array) -> str:", "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": "

\n", "signature": "(self, *_) -> str:", "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": "

\n", "signature": "(self, *_) -> str:", "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": "

\n", "signature": "(self, *_) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Unnest) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Except) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Intersect) -> str:", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.with_properties": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.with_properties", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.with_properties", "kind": "function", "doc": "

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.dialects.clickhouse": {"fullname": "sqlglot.dialects.clickhouse", "modulename": "sqlglot.dialects.clickhouse", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.clickhouse.ClickHouse": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.CTE) -> str:", "funcdef": "def"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator.after_limit_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator.parameterizedagg_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Anonymous) -> str:", "funcdef": "def"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_sql", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator.placeholder_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Placeholder) -> str:", "funcdef": "def"}, "sqlglot.dialects.databricks": {"fullname": "sqlglot.dialects.databricks", "modulename": "sqlglot.dialects.databricks", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.databricks.Databricks": {"fullname": "sqlglot.dialects.databricks.Databricks", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "bases": "sqlglot.dialects.spark2.Spark2.Tokenizer"}, "sqlglot.dialects.dialect": {"fullname": "sqlglot.dialects.dialect", "modulename": "sqlglot.dialects.dialect", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.dialect.Dialects": {"fullname": "sqlglot.dialects.dialect.Dialects", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects", "kind": "class", "doc": "

An enumeration.

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<Dialects.SPARK: 'spark'>"}, "sqlglot.dialects.dialect.Dialects.SPARK2": {"fullname": "sqlglot.dialects.dialect.Dialects.SPARK2", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SPARK2", "kind": "variable", "doc": "

\n", "default_value": "<Dialects.SPARK2: 'spark2'>"}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"fullname": "sqlglot.dialects.dialect.Dialects.SQLITE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SQLITE", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<Dialects.TERADATA: 'teradata'>"}, "sqlglot.dialects.dialect.Dialect": {"fullname": "sqlglot.dialects.dialect.Dialect", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect", "kind": "class", "doc": "

\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": "

\n", "signature": "(\tcls,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType]) -> Type[sqlglot.dialects.dialect.Dialect]:", "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": "

\n", "signature": "(\tcls,\texpression: Union[str, sqlglot.expressions.Expression, NoneType]) -> Optional[sqlglot.expressions.Expression]:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parse": {"fullname": "sqlglot.dialects.dialect.Dialect.parse", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parse", "kind": "function", "doc": "

\n", "signature": "(self, sql: str, **opts) -> List[Optional[sqlglot.expressions.Expression]]:", "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": "

\n", "signature": "(\tself,\texpression_type: Union[str, Type[sqlglot.expressions.Expression], Collection[Union[str, Type[sqlglot.expressions.Expression]]]],\tsql: str,\t**opts) -> List[Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.generate": {"fullname": "sqlglot.dialects.dialect.Dialect.generate", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.generate", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: Optional[sqlglot.expressions.Expression],\t**opts) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.transpile": {"fullname": "sqlglot.dialects.dialect.Dialect.transpile", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.transpile", "kind": "function", "doc": "

\n", "signature": "(self, sql: str, **opts) -> List[str]:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.tokenize": {"fullname": "sqlglot.dialects.dialect.Dialect.tokenize", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.tokenize", "kind": "function", "doc": "

\n", "signature": "(self, sql: str) -> List[sqlglot.tokens.Token]:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parser": {"fullname": "sqlglot.dialects.dialect.Dialect.parser", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parser", "kind": "function", "doc": "

\n", "signature": "(self, **opts) -> sqlglot.parser.Parser:", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.generator": {"fullname": "sqlglot.dialects.dialect.Dialect.generator", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.generator", "kind": "function", "doc": "

\n", "signature": "(self, **opts) -> sqlglot.generator.Generator:", "funcdef": "def"}, "sqlglot.dialects.dialect.rename_func": {"fullname": "sqlglot.dialects.dialect.rename_func", "modulename": "sqlglot.dialects.dialect", "qualname": "rename_func", "kind": "function", "doc": "

\n", "signature": "(\tname: str) -> Callable[[sqlglot.generator.Generator, sqlglot.expressions.Expression], str]:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.ApproxDistinct) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.if_sql": {"fullname": "sqlglot.dialects.dialect.if_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "if_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.If) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.JSONExtract | sqlglot.expressions.JSONBExtract) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.JSONExtractScalar | sqlglot.expressions.JSONBExtractScalar) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Array) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.ILike) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.CurrentDate) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.With) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.SafeDivide) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.TableSample) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Pivot) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.TryCast) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.no_comment_column_constraint_sql": {"fullname": "sqlglot.dialects.dialect.no_comment_column_constraint_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_comment_column_constraint_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.CommentColumnConstraint) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.StrPosition) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.StructExtract) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Map | sqlglot.expressions.VarMap,\tmap_func_name: str = 'MAP') -> str:", "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": "

Helper used for time expressions.

\n\n
Arguments:
\n\n
    \n
  • exp_class: the expression class to instantiate.
  • \n
  • dialect: target sql dialect.
  • \n
  • default: the default format, True being time.
  • \n
\n\n
Returns:
\n\n
\n

A callable that can be used to return the appropriately formatted time expression.

\n
\n", "signature": "(\texp_class: Type[~E],\tdialect: str,\tdefault: Union[bool, str, NoneType] = None) -> Callable[[List], ~E]:", "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": "

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.

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Create) -> str:", "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": "

\n", "signature": "(\texp_class: Type[~E],\tunit_mapping: Optional[Dict[str, str]] = None) -> Callable[[List], ~E]:", "funcdef": "def"}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"fullname": "sqlglot.dialects.dialect.parse_date_delta_with_interval", "modulename": "sqlglot.dialects.dialect", "qualname": "parse_date_delta_with_interval", "kind": "function", "doc": "

\n", "signature": "(expression_class: Type[~E]) -> Callable[[List], Optional[~E]]:", "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": "

\n", "signature": "(\targs: List) -> sqlglot.expressions.DateTrunc | sqlglot.expressions.TimestampTrunc:", "funcdef": "def"}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"fullname": "sqlglot.dialects.dialect.timestamptrunc_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "timestamptrunc_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.TimestampTrunc) -> str:", "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": "

\n", "signature": "(args: List) -> sqlglot.expressions.Expression:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.StrPosition) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.left_to_substring_sql": {"fullname": "sqlglot.dialects.dialect.left_to_substring_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "left_to_substring_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Left) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.right_to_substring_sql": {"fullname": "sqlglot.dialects.dialect.right_to_substring_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "right_to_substring_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Left) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.timestrtotime_sql": {"fullname": "sqlglot.dialects.dialect.timestrtotime_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "timestrtotime_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.TimeStrToTime) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.datestrtodate_sql": {"fullname": "sqlglot.dialects.dialect.datestrtodate_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "datestrtodate_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.DateStrToDate) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Min) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.max_or_greatest": {"fullname": "sqlglot.dialects.dialect.max_or_greatest", "modulename": "sqlglot.dialects.dialect", "qualname": "max_or_greatest", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Max) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.CountIf) -> str:", "funcdef": "def"}, "sqlglot.dialects.dialect.trim_sql": {"fullname": "sqlglot.dialects.dialect.trim_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "trim_sql", "kind": "function", "doc": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Trim) -> str:", "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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.Expression) -> str:", "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": "

\n", "signature": "(dialect: str) -> Callable:", "funcdef": "def"}, "sqlglot.dialects.dialect.pivot_column_names": {"fullname": "sqlglot.dialects.dialect.pivot_column_names", "modulename": "sqlglot.dialects.dialect", "qualname": "pivot_column_names", "kind": "function", "doc": "

\n", "signature": "(\taggregations: List[sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType]) -> List[str]:", "funcdef": "def"}, "sqlglot.dialects.drill": {"fullname": "sqlglot.dialects.drill", "modulename": "sqlglot.dialects.drill", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.drill.Drill": {"fullname": "sqlglot.dialects.drill.Drill", "modulename": "sqlglot.dialects.drill", "qualname": "Drill", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, name: str) -> str:", "funcdef": "def"}, "sqlglot.dialects.duckdb": {"fullname": "sqlglot.dialects.duckdb", "modulename": "sqlglot.dialects.duckdb", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.duckdb.DuckDB": {"fullname": "sqlglot.dialects.duckdb.DuckDB", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.TableSample,\tseed_prefix: str = 'SEED',\tsep: str = ' AS ') -> str:", "funcdef": "def"}, "sqlglot.dialects.hive": {"fullname": "sqlglot.dialects.hive", "modulename": "sqlglot.dialects.hive", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.hive.Hive": {"fullname": "sqlglot.dialects.hive.Hive", "modulename": "sqlglot.dialects.hive", "qualname": "Hive", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.ArrayAgg) -> str:", "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": "

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.DataType) -> str:", "funcdef": "def"}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"fullname": "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Generator.after_having_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.dialects.mysql": {"fullname": "sqlglot.dialects.mysql", "modulename": "sqlglot.dialects.mysql", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.mysql.MySQL": {"fullname": "sqlglot.dialects.mysql.MySQL", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.Show) -> str:", "funcdef": "def"}, "sqlglot.dialects.oracle": {"fullname": "sqlglot.dialects.oracle", "modulename": "sqlglot.dialects.oracle", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.oracle.Oracle": {"fullname": "sqlglot.dialects.oracle.Oracle", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Offset) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Column) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.XMLTable) -> str:", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"fullname": "sqlglot.dialects.oracle.Oracle.Tokenizer", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Tokenizer", "kind": "class", "doc": "

\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.postgres": {"fullname": "sqlglot.dialects.postgres", "modulename": "sqlglot.dialects.postgres", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.postgres.Postgres": {"fullname": "sqlglot.dialects.postgres.Postgres", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.presto": {"fullname": "sqlglot.dialects.presto", "modulename": "sqlglot.dialects.presto", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.presto.Presto": {"fullname": "sqlglot.dialects.presto.Presto", "modulename": "sqlglot.dialects.presto", "qualname": "Presto", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"fullname": "sqlglot.dialects.presto.Presto.Generator.interval_sql", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Generator.interval_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Interval) -> str:", "funcdef": "def"}, "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Transaction) -> str:", "funcdef": "def"}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"fullname": "sqlglot.dialects.presto.Presto.Generator.generateseries_sql", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Generator.generateseries_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.GenerateSeries) -> str:", "funcdef": "def"}, "sqlglot.dialects.redshift": {"fullname": "sqlglot.dialects.redshift", "modulename": "sqlglot.dialects.redshift", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.redshift.Redshift": {"fullname": "sqlglot.dialects.redshift.Redshift", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

Converts VALUES... expression into a series of unions.

\n\n

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 sys.setrecursionlimit to run and it can also be\nvery slow.

\n", "signature": "(self, expression: sqlglot.expressions.Values) -> str:", "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": "

Redshift doesn't have WITH as part of their with_properties so we remove it

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "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": "

Redshift converts the TEXT data type to VARCHAR(255) by default when people more generally mean\nVARCHAR of max length which is VARCHAR(max) in Redshift. Therefore if we get a TEXT data type\nwithout precision we convert it to VARCHAR(max) and if it does have precision then we just convert\nTEXT to VARCHAR.

\n", "signature": "(self, expression: sqlglot.expressions.DataType) -> str:", "funcdef": "def"}, "sqlglot.dialects.snowflake": {"fullname": "sqlglot.dialects.snowflake", "modulename": "sqlglot.dialects.snowflake", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.snowflake.Snowflake": {"fullname": "sqlglot.dialects.snowflake.Snowflake", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Except) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Intersect) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.SetTag) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Describe) -> str:", "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": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.GeneratedAsIdentityColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.dialects.spark": {"fullname": "sqlglot.dialects.spark", "modulename": "sqlglot.dialects.spark", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.spark.Spark": {"fullname": "sqlglot.dialects.spark.Spark", "modulename": "sqlglot.dialects.spark", "qualname": "Spark", "kind": "class", "doc": "

\n", "bases": "sqlglot.dialects.spark2.Spark2"}, "sqlglot.dialects.spark.Spark.Parser": {"fullname": "sqlglot.dialects.spark.Spark.Parser", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Parser", "kind": "class", "doc": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\n", "bases": "sqlglot.dialects.spark2.Spark2.Parser"}, "sqlglot.dialects.spark.Spark.Generator": {"fullname": "sqlglot.dialects.spark.Spark.Generator", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Generator", "kind": "class", "doc": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.dialects.spark2.Spark2.Generator"}, "sqlglot.dialects.spark.Spark.Generator.datediff_sql": {"fullname": "sqlglot.dialects.spark.Spark.Generator.datediff_sql", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Generator.datediff_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DateDiff) -> str:", "funcdef": "def"}, "sqlglot.dialects.spark2": {"fullname": "sqlglot.dialects.spark2", "modulename": "sqlglot.dialects.spark2", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.spark2.Spark2": {"fullname": "sqlglot.dialects.spark2.Spark2", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2", "kind": "class", "doc": "

\n", "bases": "sqlglot.dialects.hive.Hive"}, "sqlglot.dialects.spark2.Spark2.Parser": {"fullname": "sqlglot.dialects.spark2.Spark2.Parser", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Parser", "kind": "class", "doc": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\n", "bases": "sqlglot.dialects.hive.Hive.Parser"}, "sqlglot.dialects.spark2.Spark2.Generator": {"fullname": "sqlglot.dialects.spark2.Spark2.Generator", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Generator", "kind": "class", "doc": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.dialects.hive.Hive.Generator"}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"fullname": "sqlglot.dialects.spark2.Spark2.Generator.cast_sql", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Generator.cast_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Cast) -> str:", "funcdef": "def"}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"fullname": "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Generator.columndef_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ColumnDef, sep: str = ' ') -> str:", "funcdef": "def"}, "sqlglot.dialects.spark2.Spark2.Tokenizer": {"fullname": "sqlglot.dialects.spark2.Spark2.Tokenizer", "modulename": "sqlglot.dialects.spark2", "qualname": "Spark2.Tokenizer", "kind": "class", "doc": "

\n", "bases": "sqlglot.dialects.hive.Hive.Tokenizer"}, "sqlglot.dialects.sqlite": {"fullname": "sqlglot.dialects.sqlite", "modulename": "sqlglot.dialects.sqlite", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.sqlite.SQLite": {"fullname": "sqlglot.dialects.sqlite.SQLite", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.Cast) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.DateDiff) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.GroupConcat) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Least) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Transaction) -> str:", "funcdef": "def"}, "sqlglot.dialects.starrocks": {"fullname": "sqlglot.dialects.starrocks", "modulename": "sqlglot.dialects.starrocks", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.starrocks.StarRocks": {"fullname": "sqlglot.dialects.starrocks.StarRocks", "modulename": "sqlglot.dialects.starrocks", "qualname": "StarRocks", "kind": "class", "doc": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.dialects.mysql.MySQL.Generator"}, "sqlglot.dialects.tableau": {"fullname": "sqlglot.dialects.tableau", "modulename": "sqlglot.dialects.tableau", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.tableau.Tableau": {"fullname": "sqlglot.dialects.tableau.Tableau", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau", "kind": "class", "doc": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"fullname": "sqlglot.dialects.tableau.Tableau.Generator.if_sql", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Generator.if_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.If) -> str:", "funcdef": "def"}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"fullname": "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Generator.coalesce_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Coalesce) -> str:", "funcdef": "def"}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"fullname": "sqlglot.dialects.tableau.Tableau.Generator.count_sql", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Generator.count_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Count) -> str:", "funcdef": "def"}, "sqlglot.dialects.tableau.Tableau.Parser": {"fullname": "sqlglot.dialects.tableau.Tableau.Parser", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Parser", "kind": "class", "doc": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.teradata": {"fullname": "sqlglot.dialects.teradata", "modulename": "sqlglot.dialects.teradata", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.teradata.Teradata": {"fullname": "sqlglot.dialects.teradata.Teradata", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "signature": "(self, expression: sqlglot.expressions.PartitionedByProperty) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Update) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Mod) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.DataType) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.RangeN) -> str:", "funcdef": "def"}, "sqlglot.dialects.trino": {"fullname": "sqlglot.dialects.trino", "modulename": "sqlglot.dialects.trino", "kind": "module", "doc": "

\n"}, "sqlglot.dialects.trino.Trino": {"fullname": "sqlglot.dialects.trino.Trino", "modulename": "sqlglot.dialects.trino", "qualname": "Trino", "kind": "class", "doc": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\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": "

\n", "bases": "sqlglot.dialects.presto.Presto.Tokenizer"}, "sqlglot.dialects.tsql": {"fullname": "sqlglot.dialects.tsql", "modulename": "sqlglot.dialects.tsql", "kind": "module", "doc": "

\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": "

\n", "signature": "(\tself: sqlglot.generator.Generator,\texpression: sqlglot.expressions.DateAdd | sqlglot.expressions.DateDiff) -> str:", "funcdef": "def"}, "sqlglot.dialects.tsql.TSQL": {"fullname": "sqlglot.dialects.tsql.TSQL", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL", "kind": "class", "doc": "

\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": "

\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": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.tsql.TSQL.Generator.offset_sql": {"fullname": "sqlglot.dialects.tsql.TSQL.Generator.offset_sql", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Generator.offset_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Offset) -> str:", "funcdef": "def"}, "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": "

\n", "signature": "(self, expression: sqlglot.expressions.SystemTime) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.ReturnsProperty) -> str:", "funcdef": "def"}, "sqlglot.diff": {"fullname": "sqlglot.diff", "modulename": "sqlglot.diff", "kind": "module", "doc": "

Semantic Diff for SQL

\n\n

by Iaroslav Zeigerman

\n\n

Motivation

\n\n

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.

\n\n

Text-based diff tools such as git diff, 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.

\n\n

Consider the following diff generated by Git:

\n\n

\"Git

\n\n

Semantically the query hasn\u2019t changed. The two arguments b and c 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.

\n\n

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.

\n\n

The use cases I had in mind for SQL when I decided to embark on this journey of semantic diffing were the following:

\n\n
    \n
  • Query similarity score. Identifying which parts the two queries have in common to automatically suggest opportunities for consolidation, creation of intermediate/staging tables, and so on.
  • \n
  • Differentiating between cosmetic / structural changes and functional ones. 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.
  • \n
  • Automatic suggestions about the need to retroactively backfill data. 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.
  • \n
\n\n

The implementation discussed in this post is now a part of the SQLGlot library. You can find a complete source code in the diff.py 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.

\n\n

The Search for a Solution

\n\n

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.

\n\n

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?

\n\n

To better illustrate the problem, consider comparing the following SQL expressions: SELECT a + b + c, d, e and SELECT a - b + c, e, f. Matching individual nodes from respective syntax trees can be visualized as follows:

\n\n

\"Figure\nFigure 1: Example of node matching for two SQL expression trees.

\n\n

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:

\n\n
    \n
  • Inserted nodes: Sub and f. These are the nodes from the target AST which do not have a matching node in the source AST.
  • \n
  • Removed nodes: Add and d. These are the nodes from the source AST which do not have a counterpart in the target AST.
  • \n
  • Remaining nodes must be identified as unchanged.
  • \n
\n\n

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.

\n\n

Na\u00efve Brute-Force

\n\n

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.

\n\n

Myers Algorithm

\n\n

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 blog posts to be the most comprehensive.

\n\n

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.

\n\n

Change Distiller

\n\n

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].

\n\n

The algorithm consists of two high-level steps:

\n\n
    \n
  1. Finding appropriate matchings between pairs of nodes that are part of compared ASTs. Identifying what is meant by \u201cappropriate\u201d matching is also a part of this step.
  2. \n
  3. Generating the so-called \u201cedit script\u201d from the matching set built in the 1st step. 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.
  4. \n
\n\n

The rest of this section is dedicated to the Python implementation of the steps above using the AST implementation provided by the SQLGlot library.

\n\n

Building the Matching Set

\n\n

Matching Leaves

\n\n

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.

\n\n

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.

\n\n

\"Figure\nFigure 2: Building a set of candidate matchings between leaf nodes. The third item in each triplet represents a similarity score between two nodes.

\n\n

First, let\u2019s analyze the similarity score. Then, we\u2019ll discuss matching criteria.

\n\n

The similarity score proposed by Fluri et al. [2] is a dice coefficient applied to bigrams of respective node values. A bigram is a sequence of two adjacent elements from a string computed in a sliding window fashion:

\n\n
\n
def bigram(string):\n    count = max(0, len(string) - 1)\n    return [string[i : i + 2] for i in range(count)]\n
\n
\n\n

For reasons that will become clear shortly, we actually need to compute bigram histograms rather than just sequences:

\n\n
\n
from collections import defaultdict\n\ndef bigram_histo(string):\n    count = max(0, len(string) - 1)\n    bigram_histo = defaultdict(int)\n    for i in range(count):\n        bigram_histo[string[i : i + 2]] += 1\n    return bigram_histo\n
\n
\n\n

The dice coefficient formula looks like following:

\n\n

\"Dice

\n\n

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:

\n\n
\n
def dice_coefficient(source, target):\n    source_histo = bigram_histo(source.sql())\n    target_histo = bigram_histo(target.sql())\n\n    total_grams = (\n        sum(source_histo.values()) + sum(target_histo.values())\n    )\n    if not total_grams:\n        return 1.0 if source == target else 0.0\n\n    overlap_len = 0\n    overlapping_grams = set(source_histo) & set(target_histo)\n    for g in overlapping_grams:\n        overlap_len += min(source_histo[g], target_histo[g])\n\n    return 2 * overlap_len / total_grams\n
\n
\n\n

To compute a bigram given a tree node, we first transform the node into its canonical SQL representation,so that the Literal(123) node becomes just \u201c123\u201d and the Identifier(\u201ca\u201d) 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.

\n\n

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:

\n\n

\"Matching

\n\n

The two nodes are matched if two conditions are met:

\n\n
    \n
  1. The node labels match (in our case labels are just node types).
  2. \n
  3. 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.
  4. \n
\n\n

With building blocks in place, we can now build a matching set for leaf nodes. First, we generate a list of candidates for matching:

\n\n
\n
from heapq import heappush, heappop\n\ncandidate_matchings = []\nsource_leaves = _get_leaves(self._source)\ntarget_leaves = _get_leaves(self._target)\nfor source_leaf in source_leaves:\n    for target_leaf in target_leaves:\n        if _is_same_type(source_leaf, target_leaf):\n            similarity_score = dice_coefficient(\n                source_leaf, target_leaf\n            )\n            if similarity_score >= 0.6:\n                heappush(\n                    candidate_matchings,\n                    (\n                        -similarity_score,\n                        len(candidate_matchings),\n                        source_leaf,\n                        target_leaf,\n                    ),\n                )\n
\n
\n\n

In the implementation above, we push each matching pair onto the heap to automatically maintain the correct order based on the assigned similarity score.

\n\n

Finally, we build the initial matching set by picking leaf pairs with the highest score:

\n\n
\n
matching_set = set()\nwhile candidate_matchings:\n    _, _, source_leaf, target_leaf = heappop(candidate_matchings)\n    if (\n        source_leaf in unmatched_source_nodes\n        and target_leaf in unmatched_target_nodes\n    ):\n        matching_set.add((source_leaf, target_leaf))\n        unmatched_source_nodes.remove(source_leaf)\n        unmatched_target_nodes.remove(target_leaf)\n
\n
\n\n

To finalize the matching set, we should now proceed with matching inner nodes.

\n\n

Matching Inner Nodes

\n\n

Matching inner nodes is quite similar to matching leaf nodes, with the following two distinctions:

\n\n
    \n
  • Rather than ranking a set of possible candidates, we pick the first node pair that passes the matching criteria.
  • \n
  • The matching criteria itself has been extended to account for the number of leaf nodes the pair of inner nodes have in common.
  • \n
\n\n

\"Figure\nFigure 3: Matching inner nodes based on their type as well as how many of their leaf nodes have been previously matched.

\n\n

Let\u2019s start with the matching criteria. The criteria is formalized as follows:

\n\n

\"Matching

\n\n

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.

\n\n

There are two additional heuristics associated with this matching criteria:

\n\n
    \n
  • 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.
  • \n
  • 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.
  • \n
\n\n

We now only have to iterate through the remaining unmatched nodes and form matching pairs based on the outlined criteria:

\n\n
\n
leaves_matching_set = matching_set.copy()\n\nfor source_node in unmatched_source_nodes.copy():\n    for target_node in unmatched_target_nodes:\n        if _is_same_type(source_node, target_node):\n            source_leaves = set(_get_leaves(source_node))\n            target_leaves = set(_get_leaves(target_node))\n\n            max_leaves_num = max(len(source_leaves), len(target_leaves))\n            if max_leaves_num:\n                common_leaves_num = sum(\n                    1 if s in source_leaves and t in target_leaves else 0\n                    for s, t in leaves_matching_set\n                )\n                leaf_similarity_score = common_leaves_num / max_leaves_num\n            else:\n                leaf_similarity_score = 0.0\n\n            adjusted_t = (\n                0.6\n                if min(len(source_leaves), len(target_leaves)) > 4\n                else 0.4\n            )\n\n            if leaf_similarity_score >= 0.8 or (\n                leaf_similarity_score >= adjusted_t\n                and dice_coefficient(source_node, target_node) >= 0.6\n            ):\n                matching_set.add((source_node, target_node))\n                unmatched_source_nodes.remove(source_node)\n                unmatched_target_nodes.remove(target_node)\n                break\n
\n
\n\n

After the matching set is formed, we can proceed with generation of the edit script, which will be the algorithm\u2019s output.

\n\n

Generating the Edit Script

\n\n

At this point, we should have the following 3 sets at our disposal:

\n\n
    \n
  • The set of matched node pairs.
  • \n
  • The set of remaining unmatched nodes from the source tree.
  • \n
  • The set of remaining unmatched nodes from the target tree.
  • \n
\n\n

We can derive 3 kinds of edits from the matching set: either the node\u2019s value was updated (Update), the node was moved to a different position within the tree (Move), or the node remained unchanged (Keep). Note that the Move 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 (Remove), while unmatched nodes from the target tree are the ones that were inserted (Insert).

\n\n

The latter two cases are pretty straightforward to implement:

\n\n
\n
edit_script = []\n\nfor removed_node in unmatched_source_nodes:\n    edit_script.append(Remove(removed_node))\nfor inserted_node in unmatched_target_nodes:\n    edit_script.append(Insert(inserted_node))\n
\n
\n\n

Traversing the matching set requires a little more thought:

\n\n
\n
for source_node, target_node in matching_set:\n    if (\n        not isinstance(source_node, LEAF_EXPRESSION_TYPES)\n        or source_node == target_node\n    ):\n        move_edits = generate_move_edits(\n            source_node, target_node, matching_set\n        )\n        edit_script.extend(move_edits)\n        edit_script.append(Keep(source_node, target_node))\n    else:\n        edit_script.append(Update(source_node, target_node))\n
\n
\n\n

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 longest common subsequence (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.

\n\n

Now with this knowledge, the implementation becomes straightforward:

\n\n
\n
def generate_move_edits(source, target, matching_set):\n    source_children = _get_child_nodes(source)\n    target_children = _get_child_nodes(target)\n\n    lcs = set(\n        _longest_common_subsequence(\n            source_children,\n            target_children,\n            lambda l, r: (l, r) in matching_set\n        )\n    )\n\n    move_edits = []\n    for node in source_children:\n        if node not in lcs and node not in unmatched_source_nodes:\n            move_edits.append(Move(node))\n\n    return move_edits\n
\n
\n\n

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.

\n\n

Output

\n\n

The implemented algorithm produces the output that resembles the following:

\n\n
\n
>>> from sqlglot import parse_one, diff\n>>> diff(parse_one("SELECT a + b + c, d, e"), parse_one("SELECT a - b + c, e, f"))\n\nRemove(Add)\nRemove(Column(d))\nRemove(Identifier(d))\nInsert(Sub)\nInsert(Column(f))\nInsert(Identifier(f))\nKeep(Select, Select)\nKeep(Add, Add)\nKeep(Column(a), Column(a))\nKeep(Identifier(a), Identifier(a))\nKeep(Column(b), Column(b))\nKeep(Identifier(b), Identifier(b))\nKeep(Column(c), Column(c))\nKeep(Identifier(c), Identifier(c))\nKeep(Column(e), Column(e))\nKeep(Identifier(e), Identifier(e))\n
\n
\n\n

Note that the output above is abbreviated. The string representation of actual AST nodes is significantly more verbose.

\n\n

The implementation works especially well when coupled with the SQLGlot\u2019s query optimizer which can be used to produce canonical representations of compared queries:

\n\n
\n
>>> schema={"t": {"a": "INT", "b": "INT", "c": "INT", "d": "INT"}}\n>>> source = """\n... SELECT 1 + 1 + a\n... FROM t\n... WHERE b = 1 OR (c = 2 AND d = 3)\n... """\n>>> target = """\n... SELECT 2 + a\n... FROM t\n... WHERE (b = 1 OR c = 2) AND (b = 1 OR d = 3)\n... """\n>>> optimized_source = optimize(parse_one(source), schema=schema)\n>>> optimized_target = optimize(parse_one(target), schema=schema)\n>>> edit_script = diff(optimized_source, optimized_target)\n>>> sum(0 if isinstance(e, Keep) else 1 for e in edit_script)\n0\n
\n
\n\n

Optimizations

\n\n

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.

\n\n

There are still a few basic things we can do in our implementation to help improve performance:

\n\n
    \n
  • Refer to individual node objects using their identifiers (Python\u2019s id()) instead of direct references in sets. This helps avoid costly recursive hash calculations and equality checks.
  • \n
  • Cache bigram histograms to avoid computing them more than once for the same node.
  • \n
  • 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.
  • \n
\n\n

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.

\n\n

Alternative Solutions

\n\n

This section is dedicated to solutions that I\u2019ve investigated, but haven\u2019t tried.

\n\n

First, this section wouldn\u2019t be complete without Tristan Hume\u2019s blog post. 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 dynamic programming and A* search algorithm 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.

\n\n

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.

\n\n

Conclusion

\n\n

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.

\n\n

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.

\n\n

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.

\n\n

References

\n\n

[1] Eugene W. Myers. An O(ND) Difference Algorithm and Its Variations. Algorithmica 1(2): 251-266 (1986)

\n\n

[2] B. Fluri, M. Wursch, M. Pinzger, and H. Gall. Change Distilling: Tree differencing for fine-grained source code change extraction. IEEE Trans. Software Eng., 33(11):725\u2013743, 2007.

\n\n

[3] S.S. Chawathe, A. Rajaraman, H. Garcia-Molina, and J. Widom. Change Detection in Hierarchically Structured Information. Proc. ACM Sigmod Int\u2019l Conf. Management of Data, pp. 493-504, June 1996

\n\n

[4] Jean-R\u00e9my Falleri, Flor\u00e9al Morandat, Xavier Blanc, Matias Martinez, Martin Monperrus. Fine-grained and Accurate Source Code Differencing. Proceedings of the International Conference on Automated Software Engineering, 2014, V\u00e4steras, Sweden. pp.313-324, 10.1145/2642937.2642982. hal-01054552

\n\n
\n"}, "sqlglot.diff.Insert": {"fullname": "sqlglot.diff.Insert", "modulename": "sqlglot.diff", "qualname": "Insert", "kind": "class", "doc": "

Indicates that a new node has been inserted

\n"}, "sqlglot.diff.Insert.__init__": {"fullname": "sqlglot.diff.Insert.__init__", "modulename": "sqlglot.diff", "qualname": "Insert.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression)"}, "sqlglot.diff.Remove": {"fullname": "sqlglot.diff.Remove", "modulename": "sqlglot.diff", "qualname": "Remove", "kind": "class", "doc": "

Indicates that an existing node has been removed

\n"}, "sqlglot.diff.Remove.__init__": {"fullname": "sqlglot.diff.Remove.__init__", "modulename": "sqlglot.diff", "qualname": "Remove.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression)"}, "sqlglot.diff.Move": {"fullname": "sqlglot.diff.Move", "modulename": "sqlglot.diff", "qualname": "Move", "kind": "class", "doc": "

Indicates that an existing node's position within the tree has changed

\n"}, "sqlglot.diff.Move.__init__": {"fullname": "sqlglot.diff.Move.__init__", "modulename": "sqlglot.diff", "qualname": "Move.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression)"}, "sqlglot.diff.Update": {"fullname": "sqlglot.diff.Update", "modulename": "sqlglot.diff", "qualname": "Update", "kind": "class", "doc": "

Indicates that an existing node has been updated

\n"}, "sqlglot.diff.Update.__init__": {"fullname": "sqlglot.diff.Update.__init__", "modulename": "sqlglot.diff", "qualname": "Update.__init__", "kind": "function", "doc": "

\n", "signature": "(\tsource: sqlglot.expressions.Expression,\ttarget: sqlglot.expressions.Expression)"}, "sqlglot.diff.Keep": {"fullname": "sqlglot.diff.Keep", "modulename": "sqlglot.diff", "qualname": "Keep", "kind": "class", "doc": "

Indicates that an existing node hasn't been changed

\n"}, "sqlglot.diff.Keep.__init__": {"fullname": "sqlglot.diff.Keep.__init__", "modulename": "sqlglot.diff", "qualname": "Keep.__init__", "kind": "function", "doc": "

\n", "signature": "(\tsource: sqlglot.expressions.Expression,\ttarget: sqlglot.expressions.Expression)"}, "sqlglot.diff.diff": {"fullname": "sqlglot.diff.diff", "modulename": "sqlglot.diff", "qualname": "diff", "kind": "function", "doc": "

Returns the list of changes between the source and the target expressions.

\n\n
Examples:
\n\n
\n
\n
>>> diff(parse_one("a + b"), parse_one("a + c"))\n[\n    Remove(expression=(COLUMN this: (IDENTIFIER this: b, quoted: False))),\n    Insert(expression=(COLUMN this: (IDENTIFIER this: c, quoted: False))),\n    Keep(\n        source=(ADD this: ...),\n        target=(ADD this: ...)\n    ),\n    Keep(\n        source=(COLUMN this: (IDENTIFIER this: a, quoted: False)),\n        target=(COLUMN this: (IDENTIFIER this: a, quoted: False))\n    ),\n]\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • source: the source expression.
  • \n
  • target: the target expression against which the diff should be calculated.
  • \n
  • matchings: 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.
  • \n
\n\n
Returns:
\n\n
\n

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.

\n
\n", "signature": "(\tsource: sqlglot.expressions.Expression,\ttarget: sqlglot.expressions.Expression,\tmatchings: Optional[List[Tuple[sqlglot.expressions.Expression, sqlglot.expressions.Expression]]] = None,\t**kwargs: Any) -> List[Union[sqlglot.diff.Insert, sqlglot.diff.Remove, sqlglot.diff.Move, sqlglot.diff.Update, sqlglot.diff.Keep]]:", "funcdef": "def"}, "sqlglot.diff.ChangeDistiller": {"fullname": "sqlglot.diff.ChangeDistiller", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller", "kind": "class", "doc": "

The implementation of the Change Distiller algorithm described by Beat Fluri and Martin Pinzger in\ntheir paper https://ieeexplore.ieee.org/document/4339230, which in turn is based on the algorithm by\nChawathe et al. described in http://ilpubs.stanford.edu:8090/115/1/1995-46.pdf.

\n"}, "sqlglot.diff.ChangeDistiller.__init__": {"fullname": "sqlglot.diff.ChangeDistiller.__init__", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller.__init__", "kind": "function", "doc": "

\n", "signature": "(f: float = 0.6, t: float = 0.6)"}, "sqlglot.diff.ChangeDistiller.diff": {"fullname": "sqlglot.diff.ChangeDistiller.diff", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller.diff", "kind": "function", "doc": "

\n", "signature": "(\tself,\tsource: sqlglot.expressions.Expression,\ttarget: sqlglot.expressions.Expression,\tmatchings: Optional[List[Tuple[sqlglot.expressions.Expression, sqlglot.expressions.Expression]]] = None) -> List[Union[sqlglot.diff.Insert, sqlglot.diff.Remove, sqlglot.diff.Move, sqlglot.diff.Update, sqlglot.diff.Keep]]:", "funcdef": "def"}, "sqlglot.errors": {"fullname": "sqlglot.errors", "modulename": "sqlglot.errors", "kind": "module", "doc": "

\n"}, "sqlglot.errors.ErrorLevel": {"fullname": "sqlglot.errors.ErrorLevel", "modulename": "sqlglot.errors", "qualname": "ErrorLevel", "kind": "class", "doc": "

An enumeration.

\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.errors.ErrorLevel.IGNORE": {"fullname": "sqlglot.errors.ErrorLevel.IGNORE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.IGNORE", "kind": "variable", "doc": "

Ignore all errors.

\n", "default_value": "<ErrorLevel.IGNORE: 'IGNORE'>"}, "sqlglot.errors.ErrorLevel.WARN": {"fullname": "sqlglot.errors.ErrorLevel.WARN", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.WARN", "kind": "variable", "doc": "

Log all errors.

\n", "default_value": "<ErrorLevel.WARN: 'WARN'>"}, "sqlglot.errors.ErrorLevel.RAISE": {"fullname": "sqlglot.errors.ErrorLevel.RAISE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.RAISE", "kind": "variable", "doc": "

Collect all errors and raise a single exception.

\n", "default_value": "<ErrorLevel.RAISE: 'RAISE'>"}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"fullname": "sqlglot.errors.ErrorLevel.IMMEDIATE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.IMMEDIATE", "kind": "variable", "doc": "

Immediately raise an exception on the first error found.

\n", "default_value": "<ErrorLevel.IMMEDIATE: 'IMMEDIATE'>"}, "sqlglot.errors.SqlglotError": {"fullname": "sqlglot.errors.SqlglotError", "modulename": "sqlglot.errors", "qualname": "SqlglotError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "builtins.Exception"}, "sqlglot.errors.UnsupportedError": {"fullname": "sqlglot.errors.UnsupportedError", "modulename": "sqlglot.errors", "qualname": "UnsupportedError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.ParseError": {"fullname": "sqlglot.errors.ParseError", "modulename": "sqlglot.errors", "qualname": "ParseError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.ParseError.__init__": {"fullname": "sqlglot.errors.ParseError.__init__", "modulename": "sqlglot.errors", "qualname": "ParseError.__init__", "kind": "function", "doc": "

\n", "signature": "(message: str, errors: Optional[List[Dict[str, Any]]] = None)"}, "sqlglot.errors.ParseError.new": {"fullname": "sqlglot.errors.ParseError.new", "modulename": "sqlglot.errors", "qualname": "ParseError.new", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tmessage: str,\tdescription: Optional[str] = None,\tline: Optional[int] = None,\tcol: Optional[int] = None,\tstart_context: Optional[str] = None,\thighlight: Optional[str] = None,\tend_context: Optional[str] = None,\tinto_expression: Optional[str] = None) -> sqlglot.errors.ParseError:", "funcdef": "def"}, "sqlglot.errors.TokenError": {"fullname": "sqlglot.errors.TokenError", "modulename": "sqlglot.errors", "qualname": "TokenError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.OptimizeError": {"fullname": "sqlglot.errors.OptimizeError", "modulename": "sqlglot.errors", "qualname": "OptimizeError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.SchemaError": {"fullname": "sqlglot.errors.SchemaError", "modulename": "sqlglot.errors", "qualname": "SchemaError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.ExecuteError": {"fullname": "sqlglot.errors.ExecuteError", "modulename": "sqlglot.errors", "qualname": "ExecuteError", "kind": "class", "doc": "

Common base class for all non-exit exceptions.

\n", "bases": "SqlglotError"}, "sqlglot.errors.concat_messages": {"fullname": "sqlglot.errors.concat_messages", "modulename": "sqlglot.errors", "qualname": "concat_messages", "kind": "function", "doc": "

\n", "signature": "(errors: Sequence[Any], maximum: int) -> str:", "funcdef": "def"}, "sqlglot.errors.merge_errors": {"fullname": "sqlglot.errors.merge_errors", "modulename": "sqlglot.errors", "qualname": "merge_errors", "kind": "function", "doc": "

\n", "signature": "(errors: Sequence[sqlglot.errors.ParseError]) -> List[Dict[str, Any]]:", "funcdef": "def"}, "sqlglot.executor": {"fullname": "sqlglot.executor", "modulename": "sqlglot.executor", "kind": "module", "doc": "

Writing a Python SQL engine from scratch

\n\n

Toby Mao

\n\n

Introduction

\n\n

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 18 SQL dialects and can execute all 24 TPC-H SQL queries. The parser and engine are all written from scratch using Python.

\n\n

This post will cover why I went through the effort of creating a Python SQL engine and how a simple query goes from a string to actually transforming data. The following steps are briefly summarized:

\n\n\n\n

Why?

\n\n

I started working on SQLGlot because of my work on the experimentation and metrics platform 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 PyPika, 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 sqlparse, 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 Crafting Interpreters and realized that I could use it as a guide towards creating my own SQL parser/transpiler.

\n\n

Why did I do this? Isn't a Python SQL engine going to be extremely slow?

\n\n

The main reason why I ended up building a SQL engine was...just for entertainment. 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.

\n\n

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 Snowflake and seamlessly run it in CI on mock Python data. It's easy to mock data and create arbitrary UDFs 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.

\n\n

Finally, the components that have been built to support execution can be used as a foundation for a faster engine. I'm inspired by what Apache Calcite 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 AST/plan. 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.

\n\n

Parts of SQLGlot's toolkit are being used today by the following:

\n\n
    \n
  • Ibis: A Python library that provides a lightweight, universal interface for data wrangling.\n
      \n
    • Uses the Python SQL expression builder and leverages the optimizer/planner to convert SQL into dataframe operations.
    • \n
  • \n
  • mysql-mimic: Pure-Python implementation of the MySQL server wire protocol\n
      \n
    • Parses / transforms SQL and executes INFORMATION_SCHEMA queries.
    • \n
  • \n
  • Quokka: Push-based vectorized query engine\n
      \n
    • Parse and optimizes SQL.
    • \n
  • \n
  • Splink: Fast, accurate and scalable probabilistic data linkage using your choice of SQL backend.\n
      \n
    • Transpiles queries.
    • \n
  • \n
\n\n

How?

\n\n

There are many steps involved with actually running a simple query like:

\n\n
\n
SELECT\n  bar.a,\n  b + 1 AS b\nFROM bar\nJOIN baz\n  ON bar.a = baz.a\nWHERE bar.a > 1\n
\n
\n\n

In this post, I'll walk through all the steps SQLGlot takes to run this query over Python objects.

\n\n

Tokenizing

\n\n

The first step is to convert the sql string into a list of tokens. SQLGlot's tokenizer is quite simple and can be found here. In a while loop, it checks each character and either appends the character to the current token, or makes a new token.

\n\n

Running the SQLGlot tokenizer shows the output.

\n\n

\"Tokenizer

\n\n

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.

\n\n

Parsing

\n\n

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 parser is a handwritten recursive descent parser.

\n\n

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.

\n\n

\"Parser

\n\n

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.

\n\n

Optimizing

\n\n

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 optimize the AST directly for the following reasons:

\n\n
    \n
  1. It's easier to debug and validate the optimizations when the input and output are both SQL.

  2. \n
  3. Rules can be applied a la carte to transform SQL into a more desirable form.

  4. \n
  5. 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. SELECT 1 + 1 and SELECT 2).

  6. \n
\n\n

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.

\n\n

\"Optimizer

\n\n

The optimizer currently has 17 rules. 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.

\n\n

Some example rules are:

\n\n

qualify_tables and qualify_columns

\n\n
    \n
  • Adds all db/catalog qualifiers to tables and forces an alias.
  • \n
  • Ensure each column is unambiguous and expand stars.
  • \n
\n\n
\n
SELECT * FROM x;\n\nSELECT "db"."x" AS "x";\n
\n
\n\n

simplify

\n\n

Boolean and math simplification. Check out all the test cases.

\n\n
\n
((NOT FALSE) AND (x = x)) AND (TRUE OR 1 <> 3);\nx = x;\n\n1 + 1;\n2;\n
\n
\n\n

normalize

\n\n

Attempts to convert all predicates into conjunctive normal form.

\n\n
\n
-- DNF\n(A AND B) OR (B AND C AND D);\n\n-- CNF\n(A OR C) AND (A OR D) AND B;\n
\n
\n\n

unnest_subqueries

\n\n

Converts subqueries in predicates into joins.

\n\n
\n
-- The subquery can be converted into a left join\nSELECT *\nFROM x AS x\nWHERE (\n  SELECT y.a AS a\n  FROM y AS y\n  WHERE x.a = y.a\n) = 1;\n\nSELECT *\nFROM x AS x\nLEFT JOIN (\n  SELECT y.a AS a\n  FROM y AS y\n  WHERE TRUE\n  GROUP BY y.a\n) AS "_u_0"\n  ON x.a = "_u_0".a\nWHERE ("_u_0".a = 1 AND NOT "_u_0".a IS NULL)\n
\n
\n\n

pushdown_predicates

\n\n

Push down filters into the innermost query.

\n\n
\n
SELECT *\nFROM (\n  SELECT *\n  FROM x AS x\n) AS y\nWHERE y.a = 1;\n\nSELECT *\nFROM (\n  SELECT *\n  FROM x AS x\n  WHERE y.a = 1\n) AS y WHERE TRUE\n
\n
\n\n

annotate_types

\n\n

Infer all types throughout the AST given schema information and function type definitions.

\n\n

Planning

\n\n

After the SQL AST has been \"optimized\", it's much easier to convert into a logical plan. The AST is traversed and converted into a DAG consisting of one of five steps. The different steps are:

\n\n

Scan

\n\n

Selects columns from a table, applies projections, and finally filters the table.

\n\n

Sort

\n\n

Sorts a table for order by expressions.

\n\n

Set

\n\n

Applies the operators union/union all/except/intersect.

\n\n

Aggregate

\n\n

Applies an aggregation/group by.

\n\n

Join

\n\n

Joins multiple tables together.

\n\n

\"Planner

\n\n

The logical plan is quite simple and contains the information required to convert it into a physical plan (execution).

\n\n

Executing

\n\n

Finally, we can actually execute the SQL query. The Python engine 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.

\n\n

In order to keep things simple, it evaluates expressions with eval. Because SQLGlot was built primarily to be a transpiler, it was simple to create a \"Python SQL\" dialect. So a SQL expression x + 1 can just be converted into scope['x'] + 1.

\n\n

\"Executor

\n\n

What's next

\n\n

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 TPC-DS. If someone doesn't beat me to it, I may even take a stab at writing a Pandas/Arrow execution engine.

\n\n

I'm hoping that over time, SQLGlot will spark the Python SQL ecosystem just like Calcite has for Java.

\n\n

Special thanks

\n\n

SQLGlot would not be what it is without it's core contributors. In particular, the execution engine would not exist without Barak Alon and George Sittas.

\n\n

Get in touch

\n\n

If you'd like to chat more about SQLGlot, please join my Slack Channel!

\n\n
\n"}, "sqlglot.executor.execute": {"fullname": "sqlglot.executor.execute", "modulename": "sqlglot.executor", "qualname": "execute", "kind": "function", "doc": "

Run a sql query against data.

\n\n
Arguments:
\n\n
    \n
  • sql: a sql statement.
  • \n
  • schema: database schema.\nThis can either be an instance of Schema or a mapping in one of the following forms:\n
      \n
    1. {table: {col: type}}
    2. \n
    3. {db: {table: {col: type}}}
    4. \n
    5. {catalog: {db: {table: {col: type}}}}
    6. \n
  • \n
  • read: the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • tables: additional tables to register.
  • \n
\n\n
Returns:
\n\n
\n

Simple columnar data structure.

\n
\n", "signature": "(\tsql: str | sqlglot.expressions.Expression,\tschema: Union[Dict, sqlglot.schema.Schema, NoneType] = None,\tread: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\ttables: Optional[Dict] = None) -> sqlglot.executor.table.Table:", "funcdef": "def"}, "sqlglot.executor.context": {"fullname": "sqlglot.executor.context", "modulename": "sqlglot.executor.context", "kind": "module", "doc": "

\n"}, "sqlglot.executor.context.Context": {"fullname": "sqlglot.executor.context.Context", "modulename": "sqlglot.executor.context", "qualname": "Context", "kind": "class", "doc": "

Execution context for sql expressions.

\n\n

Context is used to hold relevant data tables which can then be queried on with eval.

\n\n

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.

\n"}, "sqlglot.executor.context.Context.__init__": {"fullname": "sqlglot.executor.context.Context.__init__", "modulename": "sqlglot.executor.context", "qualname": "Context.__init__", "kind": "function", "doc": "

Args\n tables: representing the scope of the current execution context.\n env: dictionary of functions within the execution context.

\n", "signature": "(\ttables: Dict[str, sqlglot.executor.table.Table],\tenv: Optional[Dict] = None)"}, "sqlglot.executor.context.Context.eval": {"fullname": "sqlglot.executor.context.Context.eval", "modulename": "sqlglot.executor.context", "qualname": "Context.eval", "kind": "function", "doc": "

\n", "signature": "(self, code):", "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": "

\n", "signature": "(self, codes):", "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": "

\n", "signature": "(self, *columns: str) -> None:", "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": "

\n", "signature": "(\tself,\ttable: str) -> Iterator[Tuple[sqlglot.executor.table.TableIter, sqlglot.executor.context.Context]]:", "funcdef": "def"}, "sqlglot.executor.context.Context.filter": {"fullname": "sqlglot.executor.context.Context.filter", "modulename": "sqlglot.executor.context", "qualname": "Context.filter", "kind": "function", "doc": "

\n", "signature": "(self, condition) -> None:", "funcdef": "def"}, "sqlglot.executor.context.Context.sort": {"fullname": "sqlglot.executor.context.Context.sort", "modulename": "sqlglot.executor.context", "qualname": "Context.sort", "kind": "function", "doc": "

\n", "signature": "(self, key) -> None:", "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": "

\n", "signature": "(self, row: Tuple) -> None:", "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": "

\n", "signature": "(self, index: int) -> None:", "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": "

\n", "signature": "(self, start: int, end: int) -> None:", "funcdef": "def"}, "sqlglot.executor.env": {"fullname": "sqlglot.executor.env", "modulename": "sqlglot.executor.env", "kind": "module", "doc": "

\n"}, "sqlglot.executor.env.reverse_key": {"fullname": "sqlglot.executor.env.reverse_key", "modulename": "sqlglot.executor.env", "qualname": "reverse_key", "kind": "class", "doc": "

\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": "

\n", "signature": "(obj)"}, "sqlglot.executor.env.filter_nulls": {"fullname": "sqlglot.executor.env.filter_nulls", "modulename": "sqlglot.executor.env", "qualname": "filter_nulls", "kind": "function", "doc": "

\n", "signature": "(func, empty_null=True):", "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": "

Decorator that makes a function return None if any of the required arguments are None.

\n\n

This also supports decoration with no arguments, e.g.:

\n\n
@null_if_any\ndef foo(a, b): ...\n
\n\n

In which case all arguments are required.

\n", "signature": "(*required):", "funcdef": "def"}, "sqlglot.executor.env.str_position": {"fullname": "sqlglot.executor.env.str_position", "modulename": "sqlglot.executor.env", "qualname": "str_position", "kind": "function", "doc": "

\n", "signature": "(substr, this, position=None):", "funcdef": "def"}, "sqlglot.executor.env.substring": {"fullname": "sqlglot.executor.env.substring", "modulename": "sqlglot.executor.env", "qualname": "substring", "kind": "function", "doc": "

\n", "signature": "(this, start=None, length=None):", "funcdef": "def"}, "sqlglot.executor.env.cast": {"fullname": "sqlglot.executor.env.cast", "modulename": "sqlglot.executor.env", "qualname": "cast", "kind": "function", "doc": "

\n", "signature": "(this, to):", "funcdef": "def"}, "sqlglot.executor.env.ordered": {"fullname": "sqlglot.executor.env.ordered", "modulename": "sqlglot.executor.env", "qualname": "ordered", "kind": "function", "doc": "

\n", "signature": "(this, desc, nulls_first):", "funcdef": "def"}, "sqlglot.executor.env.interval": {"fullname": "sqlglot.executor.env.interval", "modulename": "sqlglot.executor.env", "qualname": "interval", "kind": "function", "doc": "

\n", "signature": "(this, unit):", "funcdef": "def"}, "sqlglot.executor.python": {"fullname": "sqlglot.executor.python", "modulename": "sqlglot.executor.python", "kind": "module", "doc": "

\n"}, "sqlglot.executor.python.PythonExecutor": {"fullname": "sqlglot.executor.python.PythonExecutor", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor", "kind": "class", "doc": "

\n"}, "sqlglot.executor.python.PythonExecutor.__init__": {"fullname": "sqlglot.executor.python.PythonExecutor.__init__", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.__init__", "kind": "function", "doc": "

\n", "signature": "(env=None, tables=None)"}, "sqlglot.executor.python.PythonExecutor.execute": {"fullname": "sqlglot.executor.python.PythonExecutor.execute", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.execute", "kind": "function", "doc": "

\n", "signature": "(self, plan):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.generate": {"fullname": "sqlglot.executor.python.PythonExecutor.generate", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.generate", "kind": "function", "doc": "

Convert a SQL expression into literal Python code and compile it into bytecode.

\n", "signature": "(self, expression):", "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": "

Convert an array of SQL expressions into tuple of Python byte code.

\n", "signature": "(self, expressions):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.context": {"fullname": "sqlglot.executor.python.PythonExecutor.context", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.context", "kind": "function", "doc": "

\n", "signature": "(self, tables):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.table": {"fullname": "sqlglot.executor.python.PythonExecutor.table", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.table", "kind": "function", "doc": "

\n", "signature": "(self, expressions):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.scan": {"fullname": "sqlglot.executor.python.PythonExecutor.scan", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.scan", "kind": "function", "doc": "

\n", "signature": "(self, step, context):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.static": {"fullname": "sqlglot.executor.python.PythonExecutor.static", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.static", "kind": "function", "doc": "

\n", "signature": "(self):", "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": "

\n", "signature": "(self, step):", "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": "

\n", "signature": "(self, step):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.join": {"fullname": "sqlglot.executor.python.PythonExecutor.join", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.join", "kind": "function", "doc": "

\n", "signature": "(self, step, context):", "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": "

\n", "signature": "(self, _join, source_context, join_context):", "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": "

\n", "signature": "(self, join, source_context, join_context):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.aggregate": {"fullname": "sqlglot.executor.python.PythonExecutor.aggregate", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.aggregate", "kind": "function", "doc": "

\n", "signature": "(self, step, context):", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.sort": {"fullname": "sqlglot.executor.python.PythonExecutor.sort", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.sort", "kind": "function", "doc": "

\n", "signature": "(self, step, context):", "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": "

\n", "signature": "(self, step, context):", "funcdef": "def"}, "sqlglot.executor.python.Python": {"fullname": "sqlglot.executor.python.Python", "modulename": "sqlglot.executor.python", "qualname": "Python", "kind": "class", "doc": "

\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": "

\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": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.executor.table": {"fullname": "sqlglot.executor.table", "modulename": "sqlglot.executor.table", "kind": "module", "doc": "

\n"}, "sqlglot.executor.table.Table": {"fullname": "sqlglot.executor.table.Table", "modulename": "sqlglot.executor.table", "qualname": "Table", "kind": "class", "doc": "

\n"}, "sqlglot.executor.table.Table.__init__": {"fullname": "sqlglot.executor.table.Table.__init__", "modulename": "sqlglot.executor.table", "qualname": "Table.__init__", "kind": "function", "doc": "

\n", "signature": "(columns, rows=None, column_range=None)"}, "sqlglot.executor.table.Table.add_columns": {"fullname": "sqlglot.executor.table.Table.add_columns", "modulename": "sqlglot.executor.table", "qualname": "Table.add_columns", "kind": "function", "doc": "

\n", "signature": "(self, *columns: str) -> None:", "funcdef": "def"}, "sqlglot.executor.table.Table.append": {"fullname": "sqlglot.executor.table.Table.append", "modulename": "sqlglot.executor.table", "qualname": "Table.append", "kind": "function", "doc": "

\n", "signature": "(self, row):", "funcdef": "def"}, "sqlglot.executor.table.Table.pop": {"fullname": "sqlglot.executor.table.Table.pop", "modulename": "sqlglot.executor.table", "qualname": "Table.pop", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.executor.table.TableIter": {"fullname": "sqlglot.executor.table.TableIter", "modulename": "sqlglot.executor.table", "qualname": "TableIter", "kind": "class", "doc": "

\n"}, "sqlglot.executor.table.TableIter.__init__": {"fullname": "sqlglot.executor.table.TableIter.__init__", "modulename": "sqlglot.executor.table", "qualname": "TableIter.__init__", "kind": "function", "doc": "

\n", "signature": "(table)"}, "sqlglot.executor.table.RangeReader": {"fullname": "sqlglot.executor.table.RangeReader", "modulename": "sqlglot.executor.table", "qualname": "RangeReader", "kind": "class", "doc": "

\n"}, "sqlglot.executor.table.RangeReader.__init__": {"fullname": "sqlglot.executor.table.RangeReader.__init__", "modulename": "sqlglot.executor.table", "qualname": "RangeReader.__init__", "kind": "function", "doc": "

\n", "signature": "(table)"}, "sqlglot.executor.table.RowReader": {"fullname": "sqlglot.executor.table.RowReader", "modulename": "sqlglot.executor.table", "qualname": "RowReader", "kind": "class", "doc": "

\n"}, "sqlglot.executor.table.RowReader.__init__": {"fullname": "sqlglot.executor.table.RowReader.__init__", "modulename": "sqlglot.executor.table", "qualname": "RowReader.__init__", "kind": "function", "doc": "

\n", "signature": "(columns, column_range=None)"}, "sqlglot.executor.table.Tables": {"fullname": "sqlglot.executor.table.Tables", "modulename": "sqlglot.executor.table", "qualname": "Tables", "kind": "class", "doc": "

Abstract base class for generic types.

\n\n

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::

\n\n

class Mapping(Generic[KT, VT]):\n def __getitem__(self, key: KT) -> VT:\n ...\n # Etc.

\n\n

This class can then be used as follows::

\n\n

def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:\n try:\n return mapping[key]\n except KeyError:\n return default

\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": "

\n", "signature": "(d: Optional[Dict]) -> sqlglot.executor.table.Tables:", "funcdef": "def"}, "sqlglot.expressions": {"fullname": "sqlglot.expressions", "modulename": "sqlglot.expressions", "kind": "module", "doc": "

Expressions

\n\n

Every AST node in SQLGlot is represented by a subclass of Expression.

\n\n

This module contains the implementation of all supported Expression types. Additionally,\nit exposes a number of helper functions, which are mainly used to programmatically build\nSQL expressions, such as sqlglot.expressions.select.

\n\n
\n"}, "sqlglot.expressions.Expression": {"fullname": "sqlglot.expressions.Expression", "modulename": "sqlglot.expressions", "qualname": "Expression", "kind": "class", "doc": "

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.

\n\n
Attributes:
\n\n
    \n
  • key: a unique key for each class in the Expression hierarchy. This is useful for hashing\nand representing expressions as strings.
  • \n
  • arg_types: determines what arguments (child nodes) are supported by an expression. It\nmaps arg keys to booleans that indicate whether the corresponding args are optional.
  • \n
  • parent: a reference to the parent expression (or None, in case of root expressions).
  • \n
  • arg_key: the arg key an expression is associated with, i.e. the name its parent expression\nuses to refer to it.
  • \n
  • comments: a list of comments that are associated with a given expression. This is used in\norder to preserve comments when transpiling SQL code.
  • \n
  • _type: the sqlglot.expressions.DataType type of an expression. This is inferred by the\noptimizer, in order to enable some transformations that require type information.
  • \n
\n\n
Example:
\n\n
\n
\n
>>> class Foo(Expression):\n...     arg_types = {"this": True, "expression": False}\n
\n
\n \n

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\".

\n
\n\n
Arguments:
\n\n
    \n
  • args: a mapping used for retrieving the arguments of an expression, given their arg keys.
  • \n
\n"}, "sqlglot.expressions.Expression.__init__": {"fullname": "sqlglot.expressions.Expression.__init__", "modulename": "sqlglot.expressions", "qualname": "Expression.__init__", "kind": "function", "doc": "

\n", "signature": "(**args: Any)"}, "sqlglot.expressions.Expression.this": {"fullname": "sqlglot.expressions.Expression.this", "modulename": "sqlglot.expressions", "qualname": "Expression.this", "kind": "variable", "doc": "

Retrieves the argument with key \"this\".

\n"}, "sqlglot.expressions.Expression.expression": {"fullname": "sqlglot.expressions.Expression.expression", "modulename": "sqlglot.expressions", "qualname": "Expression.expression", "kind": "variable", "doc": "

Retrieves the argument with key \"expression\".

\n"}, "sqlglot.expressions.Expression.expressions": {"fullname": "sqlglot.expressions.Expression.expressions", "modulename": "sqlglot.expressions", "qualname": "Expression.expressions", "kind": "variable", "doc": "

Retrieves the argument with key \"expressions\".

\n"}, "sqlglot.expressions.Expression.text": {"fullname": "sqlglot.expressions.Expression.text", "modulename": "sqlglot.expressions", "qualname": "Expression.text", "kind": "function", "doc": "

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.

\n", "signature": "(self, key) -> str:", "funcdef": "def"}, "sqlglot.expressions.Expression.is_string": {"fullname": "sqlglot.expressions.Expression.is_string", "modulename": "sqlglot.expressions", "qualname": "Expression.is_string", "kind": "variable", "doc": "

Checks whether a Literal expression is a string.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_number": {"fullname": "sqlglot.expressions.Expression.is_number", "modulename": "sqlglot.expressions", "qualname": "Expression.is_number", "kind": "variable", "doc": "

Checks whether a Literal expression is a number.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_int": {"fullname": "sqlglot.expressions.Expression.is_int", "modulename": "sqlglot.expressions", "qualname": "Expression.is_int", "kind": "variable", "doc": "

Checks whether a Literal expression is an integer.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_star": {"fullname": "sqlglot.expressions.Expression.is_star", "modulename": "sqlglot.expressions", "qualname": "Expression.is_star", "kind": "variable", "doc": "

Checks whether an expression is a star.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.alias": {"fullname": "sqlglot.expressions.Expression.alias", "modulename": "sqlglot.expressions", "qualname": "Expression.alias", "kind": "variable", "doc": "

Returns the alias of the expression, or an empty string if it's not aliased.

\n", "annotation": ": str"}, "sqlglot.expressions.Expression.output_name": {"fullname": "sqlglot.expressions.Expression.output_name", "modulename": "sqlglot.expressions", "qualname": "Expression.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Expression.copy": {"fullname": "sqlglot.expressions.Expression.copy", "modulename": "sqlglot.expressions", "qualname": "Expression.copy", "kind": "function", "doc": "

Returns a deep copy of the expression.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.add_comments": {"fullname": "sqlglot.expressions.Expression.add_comments", "modulename": "sqlglot.expressions", "qualname": "Expression.add_comments", "kind": "function", "doc": "

\n", "signature": "(self, comments: Optional[List[str]]) -> None:", "funcdef": "def"}, "sqlglot.expressions.Expression.append": {"fullname": "sqlglot.expressions.Expression.append", "modulename": "sqlglot.expressions", "qualname": "Expression.append", "kind": "function", "doc": "

Appends value to arg_key if it's a list or sets it as a new list.

\n\n
Arguments:
\n\n
    \n
  • arg_key (str): name of the list expression arg
  • \n
  • value (Any): value to append to the list
  • \n
\n", "signature": "(self, arg_key: str, value: Any) -> None:", "funcdef": "def"}, "sqlglot.expressions.Expression.set": {"fullname": "sqlglot.expressions.Expression.set", "modulename": "sqlglot.expressions", "qualname": "Expression.set", "kind": "function", "doc": "

Sets arg_key to value.

\n\n
Arguments:
\n\n
    \n
  • arg_key (str): name of the expression arg.
  • \n
  • value: value to set the arg to.
  • \n
\n", "signature": "(self, arg_key: str, value: Any) -> None:", "funcdef": "def"}, "sqlglot.expressions.Expression.depth": {"fullname": "sqlglot.expressions.Expression.depth", "modulename": "sqlglot.expressions", "qualname": "Expression.depth", "kind": "variable", "doc": "

Returns the depth of this tree.

\n", "annotation": ": int"}, "sqlglot.expressions.Expression.iter_expressions": {"fullname": "sqlglot.expressions.Expression.iter_expressions", "modulename": "sqlglot.expressions", "qualname": "Expression.iter_expressions", "kind": "function", "doc": "

Yields the key and expression for all arguments, exploding list args.

\n", "signature": "(self) -> Iterator[Tuple[str, sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.expressions.Expression.find": {"fullname": "sqlglot.expressions.Expression.find", "modulename": "sqlglot.expressions", "qualname": "Expression.find", "kind": "function", "doc": "

Returns the first node in this tree which matches at least one of\nthe specified types.

\n\n
Arguments:
\n\n
    \n
  • expression_types: the expression type(s) to match.
  • \n
  • bfs: whether to search the AST using the BFS algorithm (DFS is used if false).
  • \n
\n\n
Returns:
\n\n
\n

The node which matches the criteria or None if no such node was found.

\n
\n", "signature": "(self, *expression_types: Type[~E], bfs: bool = True) -> Optional[~E]:", "funcdef": "def"}, "sqlglot.expressions.Expression.find_all": {"fullname": "sqlglot.expressions.Expression.find_all", "modulename": "sqlglot.expressions", "qualname": "Expression.find_all", "kind": "function", "doc": "

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.

\n\n
Arguments:
\n\n
    \n
  • expression_types: the expression type(s) to match.
  • \n
  • bfs: whether to search the AST using the BFS algorithm (DFS is used if false).
  • \n
\n\n
Returns:
\n\n
\n

The generator object.

\n
\n", "signature": "(self, *expression_types: Type[~E], bfs: bool = True) -> Iterator[~E]:", "funcdef": "def"}, "sqlglot.expressions.Expression.find_ancestor": {"fullname": "sqlglot.expressions.Expression.find_ancestor", "modulename": "sqlglot.expressions", "qualname": "Expression.find_ancestor", "kind": "function", "doc": "

Returns a nearest parent matching expression_types.

\n\n
Arguments:
\n\n
    \n
  • expression_types: the expression type(s) to match.
  • \n
\n\n
Returns:
\n\n
\n

The parent node.

\n
\n", "signature": "(self, *expression_types: Type[~E]) -> Optional[~E]:", "funcdef": "def"}, "sqlglot.expressions.Expression.parent_select": {"fullname": "sqlglot.expressions.Expression.parent_select", "modulename": "sqlglot.expressions", "qualname": "Expression.parent_select", "kind": "variable", "doc": "

Returns the parent select statement.

\n", "annotation": ": Optional[sqlglot.expressions.Select]"}, "sqlglot.expressions.Expression.same_parent": {"fullname": "sqlglot.expressions.Expression.same_parent", "modulename": "sqlglot.expressions", "qualname": "Expression.same_parent", "kind": "variable", "doc": "

Returns if the parent is the same class as itself.

\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.root": {"fullname": "sqlglot.expressions.Expression.root", "modulename": "sqlglot.expressions", "qualname": "Expression.root", "kind": "function", "doc": "

Returns the root expression of this tree.

\n", "signature": "(self) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.Expression.walk": {"fullname": "sqlglot.expressions.Expression.walk", "modulename": "sqlglot.expressions", "qualname": "Expression.walk", "kind": "function", "doc": "

Returns a generator object which visits all nodes in this tree.

\n\n
Arguments:
\n\n
    \n
  • bfs (bool): if set to True the BFS traversal order will be applied,\notherwise the DFS traversal will be used instead.
  • \n
  • prune ((node, parent, arg_key) -> bool): callable that returns True if\nthe generator should stop traversing this branch of the tree.
  • \n
\n\n
Returns:
\n\n
\n

the generator object.

\n
\n", "signature": "(self, bfs=True, prune=None):", "funcdef": "def"}, "sqlglot.expressions.Expression.dfs": {"fullname": "sqlglot.expressions.Expression.dfs", "modulename": "sqlglot.expressions", "qualname": "Expression.dfs", "kind": "function", "doc": "

Returns a generator object which visits all nodes in this tree in\nthe DFS (Depth-first) order.

\n\n
Returns:
\n\n
\n

The generator object.

\n
\n", "signature": "(self, parent=None, key=None, prune=None):", "funcdef": "def"}, "sqlglot.expressions.Expression.bfs": {"fullname": "sqlglot.expressions.Expression.bfs", "modulename": "sqlglot.expressions", "qualname": "Expression.bfs", "kind": "function", "doc": "

Returns a generator object which visits all nodes in this tree in\nthe BFS (Breadth-first) order.

\n\n
Returns:
\n\n
\n

The generator object.

\n
\n", "signature": "(self, prune=None):", "funcdef": "def"}, "sqlglot.expressions.Expression.unnest": {"fullname": "sqlglot.expressions.Expression.unnest", "modulename": "sqlglot.expressions", "qualname": "Expression.unnest", "kind": "function", "doc": "

Returns the first non parenthesis child or self.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.unalias": {"fullname": "sqlglot.expressions.Expression.unalias", "modulename": "sqlglot.expressions", "qualname": "Expression.unalias", "kind": "function", "doc": "

Returns the inner expression if this is an Alias.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.unnest_operands": {"fullname": "sqlglot.expressions.Expression.unnest_operands", "modulename": "sqlglot.expressions", "qualname": "Expression.unnest_operands", "kind": "function", "doc": "

Returns unnested operands as a tuple.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.flatten": {"fullname": "sqlglot.expressions.Expression.flatten", "modulename": "sqlglot.expressions", "qualname": "Expression.flatten", "kind": "function", "doc": "

Returns a generator which yields child nodes who's parents are the same class.

\n\n

A AND B AND C -> [A, B, C]

\n", "signature": "(self, unnest=True):", "funcdef": "def"}, "sqlglot.expressions.Expression.sql": {"fullname": "sqlglot.expressions.Expression.sql", "modulename": "sqlglot.expressions", "qualname": "Expression.sql", "kind": "function", "doc": "

Returns SQL string representation of this tree.

\n\n
Arguments:
\n\n
    \n
  • dialect: the dialect of the output SQL string (eg. \"spark\", \"hive\", \"presto\", \"mysql\").
  • \n
  • opts: other sqlglot.generator.Generator options.
  • \n
\n\n
Returns:
\n\n
\n

The SQL string.

\n
\n", "signature": "(\tself,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> str:", "funcdef": "def"}, "sqlglot.expressions.Expression.transform": {"fullname": "sqlglot.expressions.Expression.transform", "modulename": "sqlglot.expressions", "qualname": "Expression.transform", "kind": "function", "doc": "

Recursively visits all tree nodes (excluding already transformed ones)\nand applies the given transformation function to each node.

\n\n
Arguments:
\n\n
    \n
  • fun (function): 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.
  • \n
  • copy (bool): if set to True a new tree instance is constructed, otherwise the tree is\nmodified in place.
  • \n
\n\n
Returns:
\n\n
\n

The transformed tree.

\n
\n", "signature": "(self, fun, *args, copy=True, **kwargs):", "funcdef": "def"}, "sqlglot.expressions.Expression.replace": {"fullname": "sqlglot.expressions.Expression.replace", "modulename": "sqlglot.expressions", "qualname": "Expression.replace", "kind": "function", "doc": "

Swap out this expression with a new expression.

\n\n

For example::

\n\n
>>> 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
\n\n
Arguments:
\n\n
    \n
  • expression: new node
  • \n
\n\n
Returns:
\n\n
\n

The new expression or expressions.

\n
\n", "signature": "(self, expression):", "funcdef": "def"}, "sqlglot.expressions.Expression.pop": {"fullname": "sqlglot.expressions.Expression.pop", "modulename": "sqlglot.expressions", "qualname": "Expression.pop", "kind": "function", "doc": "

Remove this expression from its AST.

\n\n
Returns:
\n\n
\n

The popped expression.

\n
\n", "signature": "(self: ~E) -> ~E:", "funcdef": "def"}, "sqlglot.expressions.Expression.assert_is": {"fullname": "sqlglot.expressions.Expression.assert_is", "modulename": "sqlglot.expressions", "qualname": "Expression.assert_is", "kind": "function", "doc": "

Assert that this Expression is an instance of type_.

\n\n

If it is NOT an instance of type_, this raises an assertion error.\nOtherwise, this returns this expression.

\n\n
Examples:
\n\n
\n

This is useful for type security in chained expressions:

\n \n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT x from y").assert_is(Select).select("z").sql()\n'SELECT x, z FROM y'\n
\n
\n
\n", "signature": "(self, type_: Type[~E]) -> ~E:", "funcdef": "def"}, "sqlglot.expressions.Expression.error_messages": {"fullname": "sqlglot.expressions.Expression.error_messages", "modulename": "sqlglot.expressions", "qualname": "Expression.error_messages", "kind": "function", "doc": "

Checks if this expression is valid (e.g. all mandatory args are set).

\n\n
Arguments:
\n\n
    \n
  • args: 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.
  • \n
\n\n
Returns:
\n\n
\n

A list of error messages for all possible errors that were found.

\n
\n", "signature": "(self, args: Optional[Sequence] = None) -> List[str]:", "funcdef": "def"}, "sqlglot.expressions.Expression.dump": {"fullname": "sqlglot.expressions.Expression.dump", "modulename": "sqlglot.expressions", "qualname": "Expression.dump", "kind": "function", "doc": "

Dump this Expression to a JSON-serializable dict.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Expression.load": {"fullname": "sqlglot.expressions.Expression.load", "modulename": "sqlglot.expressions", "qualname": "Expression.load", "kind": "function", "doc": "

Load a dict (as returned by Expression.dump) into an Expression instance.

\n", "signature": "(cls, obj):", "funcdef": "def"}, "sqlglot.expressions.Condition": {"fullname": "sqlglot.expressions.Condition", "modulename": "sqlglot.expressions", "qualname": "Condition", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Condition.and_": {"fullname": "sqlglot.expressions.Condition.and_", "modulename": "sqlglot.expressions", "qualname": "Condition.and_", "kind": "function", "doc": "

AND this condition with one or multiple expressions.

\n\n
Example:
\n\n
\n
\n
>>> condition("x=1").and_("y=1").sql()\n'x = 1 AND y = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether or not to copy the involved expressions (only applies to Expressions).
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new And condition.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Condition:", "funcdef": "def"}, "sqlglot.expressions.Condition.or_": {"fullname": "sqlglot.expressions.Condition.or_", "modulename": "sqlglot.expressions", "qualname": "Condition.or_", "kind": "function", "doc": "

OR this condition with one or multiple expressions.

\n\n
Example:
\n\n
\n
\n
>>> condition("x=1").or_("y=1").sql()\n'x = 1 OR y = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether or not to copy the involved expressions (only applies to Expressions).
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Or condition.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Condition:", "funcdef": "def"}, "sqlglot.expressions.Condition.not_": {"fullname": "sqlglot.expressions.Condition.not_", "modulename": "sqlglot.expressions", "qualname": "Condition.not_", "kind": "function", "doc": "

Wrap this condition with NOT.

\n\n
Example:
\n\n
\n
\n
>>> condition("x=1").not_().sql()\n'NOT x = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • copy: whether or not to copy this object.
  • \n
\n\n
Returns:
\n\n
\n

The new Not instance.

\n
\n", "signature": "(self, copy: bool = True):", "funcdef": "def"}, "sqlglot.expressions.Condition.as_": {"fullname": "sqlglot.expressions.Condition.as_", "modulename": "sqlglot.expressions", "qualname": "Condition.as_", "kind": "function", "doc": "

\n", "signature": "(\tself,\talias: str | sqlglot.expressions.Identifier,\tquoted: Optional[bool] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Alias:", "funcdef": "def"}, "sqlglot.expressions.Condition.isin": {"fullname": "sqlglot.expressions.Condition.isin", "modulename": "sqlglot.expressions", "qualname": "Condition.isin", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*expressions: Any,\tquery: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.In:", "funcdef": "def"}, "sqlglot.expressions.Condition.between": {"fullname": "sqlglot.expressions.Condition.between", "modulename": "sqlglot.expressions", "qualname": "Condition.between", "kind": "function", "doc": "

\n", "signature": "(\tself,\tlow: Any,\thigh: Any,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Between:", "funcdef": "def"}, "sqlglot.expressions.Condition.is_": {"fullname": "sqlglot.expressions.Condition.is_", "modulename": "sqlglot.expressions", "qualname": "Condition.is_", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: Union[str, sqlglot.expressions.Expression]) -> sqlglot.expressions.Is:", "funcdef": "def"}, "sqlglot.expressions.Condition.like": {"fullname": "sqlglot.expressions.Condition.like", "modulename": "sqlglot.expressions", "qualname": "Condition.like", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: Union[str, sqlglot.expressions.Expression]) -> sqlglot.expressions.Like:", "funcdef": "def"}, "sqlglot.expressions.Condition.ilike": {"fullname": "sqlglot.expressions.Condition.ilike", "modulename": "sqlglot.expressions", "qualname": "Condition.ilike", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: Union[str, sqlglot.expressions.Expression]) -> sqlglot.expressions.ILike:", "funcdef": "def"}, "sqlglot.expressions.Condition.eq": {"fullname": "sqlglot.expressions.Condition.eq", "modulename": "sqlglot.expressions", "qualname": "Condition.eq", "kind": "function", "doc": "

\n", "signature": "(self, other: Any) -> sqlglot.expressions.EQ:", "funcdef": "def"}, "sqlglot.expressions.Condition.neq": {"fullname": "sqlglot.expressions.Condition.neq", "modulename": "sqlglot.expressions", "qualname": "Condition.neq", "kind": "function", "doc": "

\n", "signature": "(self, other: Any) -> sqlglot.expressions.NEQ:", "funcdef": "def"}, "sqlglot.expressions.Condition.rlike": {"fullname": "sqlglot.expressions.Condition.rlike", "modulename": "sqlglot.expressions", "qualname": "Condition.rlike", "kind": "function", "doc": "

\n", "signature": "(\tself,\tother: Union[str, sqlglot.expressions.Expression]) -> sqlglot.expressions.RegexpLike:", "funcdef": "def"}, "sqlglot.expressions.Predicate": {"fullname": "sqlglot.expressions.Predicate", "modulename": "sqlglot.expressions", "qualname": "Predicate", "kind": "class", "doc": "

Relationships like x = y, x > 1, x >= y.

\n", "bases": "Condition"}, "sqlglot.expressions.DerivedTable": {"fullname": "sqlglot.expressions.DerivedTable", "modulename": "sqlglot.expressions", "qualname": "DerivedTable", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Unionable": {"fullname": "sqlglot.expressions.Unionable", "modulename": "sqlglot.expressions", "qualname": "Unionable", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Unionable.union": {"fullname": "sqlglot.expressions.Unionable.union", "modulename": "sqlglot.expressions", "qualname": "Unionable.union", "kind": "function", "doc": "

Builds a UNION expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()\n'SELECT * FROM foo UNION SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Union expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Unionable:", "funcdef": "def"}, "sqlglot.expressions.Unionable.intersect": {"fullname": "sqlglot.expressions.Unionable.intersect", "modulename": "sqlglot.expressions", "qualname": "Unionable.intersect", "kind": "function", "doc": "

Builds an INTERSECT expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()\n'SELECT * FROM foo INTERSECT SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Intersect expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Unionable:", "funcdef": "def"}, "sqlglot.expressions.Unionable.except_": {"fullname": "sqlglot.expressions.Unionable.except_", "modulename": "sqlglot.expressions", "qualname": "Unionable.except_", "kind": "function", "doc": "

Builds an EXCEPT expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()\n'SELECT * FROM foo EXCEPT SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Except expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Unionable:", "funcdef": "def"}, "sqlglot.expressions.UDTF": {"fullname": "sqlglot.expressions.UDTF", "modulename": "sqlglot.expressions", "qualname": "UDTF", "kind": "class", "doc": "

\n", "bases": "DerivedTable, Unionable"}, "sqlglot.expressions.Cache": {"fullname": "sqlglot.expressions.Cache", "modulename": "sqlglot.expressions", "qualname": "Cache", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Uncache": {"fullname": "sqlglot.expressions.Uncache", "modulename": "sqlglot.expressions", "qualname": "Uncache", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Create": {"fullname": "sqlglot.expressions.Create", "modulename": "sqlglot.expressions", "qualname": "Create", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Clone": {"fullname": "sqlglot.expressions.Clone", "modulename": "sqlglot.expressions", "qualname": "Clone", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Describe": {"fullname": "sqlglot.expressions.Describe", "modulename": "sqlglot.expressions", "qualname": "Describe", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Pragma": {"fullname": "sqlglot.expressions.Pragma", "modulename": "sqlglot.expressions", "qualname": "Pragma", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Set": {"fullname": "sqlglot.expressions.Set", "modulename": "sqlglot.expressions", "qualname": "Set", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.SetItem": {"fullname": "sqlglot.expressions.SetItem", "modulename": "sqlglot.expressions", "qualname": "SetItem", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Show": {"fullname": "sqlglot.expressions.Show", "modulename": "sqlglot.expressions", "qualname": "Show", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.UserDefinedFunction": {"fullname": "sqlglot.expressions.UserDefinedFunction", "modulename": "sqlglot.expressions", "qualname": "UserDefinedFunction", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.CharacterSet": {"fullname": "sqlglot.expressions.CharacterSet", "modulename": "sqlglot.expressions", "qualname": "CharacterSet", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.With": {"fullname": "sqlglot.expressions.With", "modulename": "sqlglot.expressions", "qualname": "With", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.WithinGroup": {"fullname": "sqlglot.expressions.WithinGroup", "modulename": "sqlglot.expressions", "qualname": "WithinGroup", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.CTE": {"fullname": "sqlglot.expressions.CTE", "modulename": "sqlglot.expressions", "qualname": "CTE", "kind": "class", "doc": "

\n", "bases": "DerivedTable"}, "sqlglot.expressions.TableAlias": {"fullname": "sqlglot.expressions.TableAlias", "modulename": "sqlglot.expressions", "qualname": "TableAlias", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.BitString": {"fullname": "sqlglot.expressions.BitString", "modulename": "sqlglot.expressions", "qualname": "BitString", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.HexString": {"fullname": "sqlglot.expressions.HexString", "modulename": "sqlglot.expressions", "qualname": "HexString", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.ByteString": {"fullname": "sqlglot.expressions.ByteString", "modulename": "sqlglot.expressions", "qualname": "ByteString", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.RawString": {"fullname": "sqlglot.expressions.RawString", "modulename": "sqlglot.expressions", "qualname": "RawString", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Column": {"fullname": "sqlglot.expressions.Column", "modulename": "sqlglot.expressions", "qualname": "Column", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Column.output_name": {"fullname": "sqlglot.expressions.Column.output_name", "modulename": "sqlglot.expressions", "qualname": "Column.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Column.parts": {"fullname": "sqlglot.expressions.Column.parts", "modulename": "sqlglot.expressions", "qualname": "Column.parts", "kind": "variable", "doc": "

Return the parts of a column in order catalog, db, table, name.

\n", "annotation": ": List[sqlglot.expressions.Identifier]"}, "sqlglot.expressions.Column.to_dot": {"fullname": "sqlglot.expressions.Column.to_dot", "modulename": "sqlglot.expressions", "qualname": "Column.to_dot", "kind": "function", "doc": "

Converts the column into a dot expression.

\n", "signature": "(self) -> sqlglot.expressions.Dot:", "funcdef": "def"}, "sqlglot.expressions.ColumnPosition": {"fullname": "sqlglot.expressions.ColumnPosition", "modulename": "sqlglot.expressions", "qualname": "ColumnPosition", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.ColumnDef": {"fullname": "sqlglot.expressions.ColumnDef", "modulename": "sqlglot.expressions", "qualname": "ColumnDef", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AlterColumn": {"fullname": "sqlglot.expressions.AlterColumn", "modulename": "sqlglot.expressions", "qualname": "AlterColumn", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.RenameTable": {"fullname": "sqlglot.expressions.RenameTable", "modulename": "sqlglot.expressions", "qualname": "RenameTable", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.SetTag": {"fullname": "sqlglot.expressions.SetTag", "modulename": "sqlglot.expressions", "qualname": "SetTag", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Comment": {"fullname": "sqlglot.expressions.Comment", "modulename": "sqlglot.expressions", "qualname": "Comment", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.MergeTreeTTLAction": {"fullname": "sqlglot.expressions.MergeTreeTTLAction", "modulename": "sqlglot.expressions", "qualname": "MergeTreeTTLAction", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.MergeTreeTTL": {"fullname": "sqlglot.expressions.MergeTreeTTL", "modulename": "sqlglot.expressions", "qualname": "MergeTreeTTL", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.ColumnConstraint": {"fullname": "sqlglot.expressions.ColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "ColumnConstraint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.ColumnConstraintKind": {"fullname": "sqlglot.expressions.ColumnConstraintKind", "modulename": "sqlglot.expressions", "qualname": "ColumnConstraintKind", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"fullname": "sqlglot.expressions.AutoIncrementColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "AutoIncrementColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"fullname": "sqlglot.expressions.CaseSpecificColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CaseSpecificColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CharacterSetColumnConstraint": {"fullname": "sqlglot.expressions.CharacterSetColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CharacterSetColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CheckColumnConstraint": {"fullname": "sqlglot.expressions.CheckColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CheckColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CollateColumnConstraint": {"fullname": "sqlglot.expressions.CollateColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CollateColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CommentColumnConstraint": {"fullname": "sqlglot.expressions.CommentColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CommentColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CompressColumnConstraint": {"fullname": "sqlglot.expressions.CompressColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CompressColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.DateFormatColumnConstraint": {"fullname": "sqlglot.expressions.DateFormatColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "DateFormatColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.DefaultColumnConstraint": {"fullname": "sqlglot.expressions.DefaultColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "DefaultColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.EncodeColumnConstraint": {"fullname": "sqlglot.expressions.EncodeColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "EncodeColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"fullname": "sqlglot.expressions.GeneratedAsIdentityColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "GeneratedAsIdentityColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.InlineLengthColumnConstraint": {"fullname": "sqlglot.expressions.InlineLengthColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "InlineLengthColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.NotNullColumnConstraint": {"fullname": "sqlglot.expressions.NotNullColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "NotNullColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.OnUpdateColumnConstraint": {"fullname": "sqlglot.expressions.OnUpdateColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "OnUpdateColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"fullname": "sqlglot.expressions.PrimaryKeyColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "PrimaryKeyColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.TitleColumnConstraint": {"fullname": "sqlglot.expressions.TitleColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "TitleColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.UniqueColumnConstraint": {"fullname": "sqlglot.expressions.UniqueColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "UniqueColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.UppercaseColumnConstraint": {"fullname": "sqlglot.expressions.UppercaseColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "UppercaseColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.PathColumnConstraint": {"fullname": "sqlglot.expressions.PathColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "PathColumnConstraint", "kind": "class", "doc": "

\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.Constraint": {"fullname": "sqlglot.expressions.Constraint", "modulename": "sqlglot.expressions", "qualname": "Constraint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Delete": {"fullname": "sqlglot.expressions.Delete", "modulename": "sqlglot.expressions", "qualname": "Delete", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Delete.delete": {"fullname": "sqlglot.expressions.Delete.delete", "modulename": "sqlglot.expressions", "qualname": "Delete.delete", "kind": "function", "doc": "

Create a DELETE expression or replace the table on an existing DELETE expression.

\n\n
Example:
\n\n
\n
\n
>>> delete("tbl").sql()\n'DELETE FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • table: the table from which to delete.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Delete: the modified expression.

\n
\n", "signature": "(\tself,\ttable: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Delete:", "funcdef": "def"}, "sqlglot.expressions.Delete.where": {"fullname": "sqlglot.expressions.Delete.where", "modulename": "sqlglot.expressions", "qualname": "Delete.where", "kind": "function", "doc": "

Append to or set the WHERE expressions.

\n\n
Example:
\n\n
\n
\n
>>> delete("tbl").where("x = 'a' OR x < 'b'").sql()\n"DELETE FROM tbl WHERE x = 'a' OR x < 'b'"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.
  • \n
  • append: if True, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Delete: the modified expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Delete:", "funcdef": "def"}, "sqlglot.expressions.Delete.returning": {"fullname": "sqlglot.expressions.Delete.returning", "modulename": "sqlglot.expressions", "qualname": "Delete.returning", "kind": "function", "doc": "

Set the RETURNING expression. Not supported by all dialects.

\n\n
Example:
\n\n
\n
\n
>>> delete("tbl").returning("*", dialect="postgres").sql()\n'DELETE FROM tbl RETURNING *'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Delete: the modified expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Delete:", "funcdef": "def"}, "sqlglot.expressions.Drop": {"fullname": "sqlglot.expressions.Drop", "modulename": "sqlglot.expressions", "qualname": "Drop", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Filter": {"fullname": "sqlglot.expressions.Filter", "modulename": "sqlglot.expressions", "qualname": "Filter", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Check": {"fullname": "sqlglot.expressions.Check", "modulename": "sqlglot.expressions", "qualname": "Check", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Directory": {"fullname": "sqlglot.expressions.Directory", "modulename": "sqlglot.expressions", "qualname": "Directory", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.ForeignKey": {"fullname": "sqlglot.expressions.ForeignKey", "modulename": "sqlglot.expressions", "qualname": "ForeignKey", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.PrimaryKey": {"fullname": "sqlglot.expressions.PrimaryKey", "modulename": "sqlglot.expressions", "qualname": "PrimaryKey", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Into": {"fullname": "sqlglot.expressions.Into", "modulename": "sqlglot.expressions", "qualname": "Into", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.From": {"fullname": "sqlglot.expressions.From", "modulename": "sqlglot.expressions", "qualname": "From", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Having": {"fullname": "sqlglot.expressions.Having", "modulename": "sqlglot.expressions", "qualname": "Having", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Hint": {"fullname": "sqlglot.expressions.Hint", "modulename": "sqlglot.expressions", "qualname": "Hint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.JoinHint": {"fullname": "sqlglot.expressions.JoinHint", "modulename": "sqlglot.expressions", "qualname": "JoinHint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Identifier": {"fullname": "sqlglot.expressions.Identifier", "modulename": "sqlglot.expressions", "qualname": "Identifier", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Identifier.output_name": {"fullname": "sqlglot.expressions.Identifier.output_name", "modulename": "sqlglot.expressions", "qualname": "Identifier.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Index": {"fullname": "sqlglot.expressions.Index", "modulename": "sqlglot.expressions", "qualname": "Index", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Insert": {"fullname": "sqlglot.expressions.Insert", "modulename": "sqlglot.expressions", "qualname": "Insert", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Insert.with_": {"fullname": "sqlglot.expressions.Insert.with_", "modulename": "sqlglot.expressions", "qualname": "Insert.with_", "kind": "function", "doc": "

Append to or set the common table expressions.

\n\n
Example:
\n\n
\n
\n
>>> insert("SELECT x FROM cte", "t").with_("cte", as_="SELECT * FROM tbl").sql()\n'WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • alias: the SQL code string to parse as the table name.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • as_: the SQL code string to parse as the table expression.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • recursive: set the RECURSIVE part of the expression. Defaults to False.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified expression.

\n
\n", "signature": "(\tself,\talias: Union[str, sqlglot.expressions.Expression],\tas_: Union[str, sqlglot.expressions.Expression],\trecursive: Optional[bool] = None,\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Insert:", "funcdef": "def"}, "sqlglot.expressions.OnConflict": {"fullname": "sqlglot.expressions.OnConflict", "modulename": "sqlglot.expressions", "qualname": "OnConflict", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Returning": {"fullname": "sqlglot.expressions.Returning", "modulename": "sqlglot.expressions", "qualname": "Returning", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Introducer": {"fullname": "sqlglot.expressions.Introducer", "modulename": "sqlglot.expressions", "qualname": "Introducer", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.National": {"fullname": "sqlglot.expressions.National", "modulename": "sqlglot.expressions", "qualname": "National", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.LoadData": {"fullname": "sqlglot.expressions.LoadData", "modulename": "sqlglot.expressions", "qualname": "LoadData", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Partition": {"fullname": "sqlglot.expressions.Partition", "modulename": "sqlglot.expressions", "qualname": "Partition", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Fetch": {"fullname": "sqlglot.expressions.Fetch", "modulename": "sqlglot.expressions", "qualname": "Fetch", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Group": {"fullname": "sqlglot.expressions.Group", "modulename": "sqlglot.expressions", "qualname": "Group", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Lambda": {"fullname": "sqlglot.expressions.Lambda", "modulename": "sqlglot.expressions", "qualname": "Lambda", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Limit": {"fullname": "sqlglot.expressions.Limit", "modulename": "sqlglot.expressions", "qualname": "Limit", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Literal": {"fullname": "sqlglot.expressions.Literal", "modulename": "sqlglot.expressions", "qualname": "Literal", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Literal.number": {"fullname": "sqlglot.expressions.Literal.number", "modulename": "sqlglot.expressions", "qualname": "Literal.number", "kind": "function", "doc": "

\n", "signature": "(cls, number) -> sqlglot.expressions.Literal:", "funcdef": "def"}, "sqlglot.expressions.Literal.string": {"fullname": "sqlglot.expressions.Literal.string", "modulename": "sqlglot.expressions", "qualname": "Literal.string", "kind": "function", "doc": "

\n", "signature": "(cls, string) -> sqlglot.expressions.Literal:", "funcdef": "def"}, "sqlglot.expressions.Literal.output_name": {"fullname": "sqlglot.expressions.Literal.output_name", "modulename": "sqlglot.expressions", "qualname": "Literal.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Join": {"fullname": "sqlglot.expressions.Join", "modulename": "sqlglot.expressions", "qualname": "Join", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Join.on": {"fullname": "sqlglot.expressions.Join.on", "modulename": "sqlglot.expressions", "qualname": "Join.on", "kind": "function", "doc": "

Append to or set the ON expressions.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("JOIN x", into=Join).on("y = 1").sql()\n'JOIN x ON y = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.
  • \n
  • append: if True, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Join expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Join:", "funcdef": "def"}, "sqlglot.expressions.Join.using": {"fullname": "sqlglot.expressions.Join.using", "modulename": "sqlglot.expressions", "qualname": "Join.using", "kind": "function", "doc": "

Append to or set the USING expressions.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("JOIN x", into=Join).using("foo", "bla").sql()\n'JOIN x USING (foo, bla)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, concatenate the new expressions to the existing \"using\" list.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Join expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Join:", "funcdef": "def"}, "sqlglot.expressions.Lateral": {"fullname": "sqlglot.expressions.Lateral", "modulename": "sqlglot.expressions", "qualname": "Lateral", "kind": "class", "doc": "

\n", "bases": "UDTF"}, "sqlglot.expressions.MatchRecognize": {"fullname": "sqlglot.expressions.MatchRecognize", "modulename": "sqlglot.expressions", "qualname": "MatchRecognize", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Final": {"fullname": "sqlglot.expressions.Final", "modulename": "sqlglot.expressions", "qualname": "Final", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Offset": {"fullname": "sqlglot.expressions.Offset", "modulename": "sqlglot.expressions", "qualname": "Offset", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Order": {"fullname": "sqlglot.expressions.Order", "modulename": "sqlglot.expressions", "qualname": "Order", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Cluster": {"fullname": "sqlglot.expressions.Cluster", "modulename": "sqlglot.expressions", "qualname": "Cluster", "kind": "class", "doc": "

\n", "bases": "Order"}, "sqlglot.expressions.Distribute": {"fullname": "sqlglot.expressions.Distribute", "modulename": "sqlglot.expressions", "qualname": "Distribute", "kind": "class", "doc": "

\n", "bases": "Order"}, "sqlglot.expressions.Sort": {"fullname": "sqlglot.expressions.Sort", "modulename": "sqlglot.expressions", "qualname": "Sort", "kind": "class", "doc": "

\n", "bases": "Order"}, "sqlglot.expressions.Ordered": {"fullname": "sqlglot.expressions.Ordered", "modulename": "sqlglot.expressions", "qualname": "Ordered", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Property": {"fullname": "sqlglot.expressions.Property", "modulename": "sqlglot.expressions", "qualname": "Property", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AlgorithmProperty": {"fullname": "sqlglot.expressions.AlgorithmProperty", "modulename": "sqlglot.expressions", "qualname": "AlgorithmProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.AutoIncrementProperty": {"fullname": "sqlglot.expressions.AutoIncrementProperty", "modulename": "sqlglot.expressions", "qualname": "AutoIncrementProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.BlockCompressionProperty": {"fullname": "sqlglot.expressions.BlockCompressionProperty", "modulename": "sqlglot.expressions", "qualname": "BlockCompressionProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.CharacterSetProperty": {"fullname": "sqlglot.expressions.CharacterSetProperty", "modulename": "sqlglot.expressions", "qualname": "CharacterSetProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.ChecksumProperty": {"fullname": "sqlglot.expressions.ChecksumProperty", "modulename": "sqlglot.expressions", "qualname": "ChecksumProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.CollateProperty": {"fullname": "sqlglot.expressions.CollateProperty", "modulename": "sqlglot.expressions", "qualname": "CollateProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DataBlocksizeProperty": {"fullname": "sqlglot.expressions.DataBlocksizeProperty", "modulename": "sqlglot.expressions", "qualname": "DataBlocksizeProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DefinerProperty": {"fullname": "sqlglot.expressions.DefinerProperty", "modulename": "sqlglot.expressions", "qualname": "DefinerProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DistKeyProperty": {"fullname": "sqlglot.expressions.DistKeyProperty", "modulename": "sqlglot.expressions", "qualname": "DistKeyProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DistStyleProperty": {"fullname": "sqlglot.expressions.DistStyleProperty", "modulename": "sqlglot.expressions", "qualname": "DistStyleProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.EngineProperty": {"fullname": "sqlglot.expressions.EngineProperty", "modulename": "sqlglot.expressions", "qualname": "EngineProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.ExecuteAsProperty": {"fullname": "sqlglot.expressions.ExecuteAsProperty", "modulename": "sqlglot.expressions", "qualname": "ExecuteAsProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.ExternalProperty": {"fullname": "sqlglot.expressions.ExternalProperty", "modulename": "sqlglot.expressions", "qualname": "ExternalProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.FallbackProperty": {"fullname": "sqlglot.expressions.FallbackProperty", "modulename": "sqlglot.expressions", "qualname": "FallbackProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.FileFormatProperty": {"fullname": "sqlglot.expressions.FileFormatProperty", "modulename": "sqlglot.expressions", "qualname": "FileFormatProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.FreespaceProperty": {"fullname": "sqlglot.expressions.FreespaceProperty", "modulename": "sqlglot.expressions", "qualname": "FreespaceProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.InputOutputFormat": {"fullname": "sqlglot.expressions.InputOutputFormat", "modulename": "sqlglot.expressions", "qualname": "InputOutputFormat", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.IsolatedLoadingProperty": {"fullname": "sqlglot.expressions.IsolatedLoadingProperty", "modulename": "sqlglot.expressions", "qualname": "IsolatedLoadingProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.JournalProperty": {"fullname": "sqlglot.expressions.JournalProperty", "modulename": "sqlglot.expressions", "qualname": "JournalProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LanguageProperty": {"fullname": "sqlglot.expressions.LanguageProperty", "modulename": "sqlglot.expressions", "qualname": "LanguageProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DictProperty": {"fullname": "sqlglot.expressions.DictProperty", "modulename": "sqlglot.expressions", "qualname": "DictProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DictSubProperty": {"fullname": "sqlglot.expressions.DictSubProperty", "modulename": "sqlglot.expressions", "qualname": "DictSubProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.DictRange": {"fullname": "sqlglot.expressions.DictRange", "modulename": "sqlglot.expressions", "qualname": "DictRange", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LikeProperty": {"fullname": "sqlglot.expressions.LikeProperty", "modulename": "sqlglot.expressions", "qualname": "LikeProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LocationProperty": {"fullname": "sqlglot.expressions.LocationProperty", "modulename": "sqlglot.expressions", "qualname": "LocationProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LockingProperty": {"fullname": "sqlglot.expressions.LockingProperty", "modulename": "sqlglot.expressions", "qualname": "LockingProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.LogProperty": {"fullname": "sqlglot.expressions.LogProperty", "modulename": "sqlglot.expressions", "qualname": "LogProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.MaterializedProperty": {"fullname": "sqlglot.expressions.MaterializedProperty", "modulename": "sqlglot.expressions", "qualname": "MaterializedProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.MergeBlockRatioProperty": {"fullname": "sqlglot.expressions.MergeBlockRatioProperty", "modulename": "sqlglot.expressions", "qualname": "MergeBlockRatioProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.NoPrimaryIndexProperty": {"fullname": "sqlglot.expressions.NoPrimaryIndexProperty", "modulename": "sqlglot.expressions", "qualname": "NoPrimaryIndexProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.OnCommitProperty": {"fullname": "sqlglot.expressions.OnCommitProperty", "modulename": "sqlglot.expressions", "qualname": "OnCommitProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.PartitionedByProperty": {"fullname": "sqlglot.expressions.PartitionedByProperty", "modulename": "sqlglot.expressions", "qualname": "PartitionedByProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.ReturnsProperty": {"fullname": "sqlglot.expressions.ReturnsProperty", "modulename": "sqlglot.expressions", "qualname": "ReturnsProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.RowFormatProperty": {"fullname": "sqlglot.expressions.RowFormatProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.RowFormatDelimitedProperty": {"fullname": "sqlglot.expressions.RowFormatDelimitedProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatDelimitedProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.RowFormatSerdeProperty": {"fullname": "sqlglot.expressions.RowFormatSerdeProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatSerdeProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SchemaCommentProperty": {"fullname": "sqlglot.expressions.SchemaCommentProperty", "modulename": "sqlglot.expressions", "qualname": "SchemaCommentProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SerdeProperties": {"fullname": "sqlglot.expressions.SerdeProperties", "modulename": "sqlglot.expressions", "qualname": "SerdeProperties", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SetProperty": {"fullname": "sqlglot.expressions.SetProperty", "modulename": "sqlglot.expressions", "qualname": "SetProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SettingsProperty": {"fullname": "sqlglot.expressions.SettingsProperty", "modulename": "sqlglot.expressions", "qualname": "SettingsProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SortKeyProperty": {"fullname": "sqlglot.expressions.SortKeyProperty", "modulename": "sqlglot.expressions", "qualname": "SortKeyProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.SqlSecurityProperty": {"fullname": "sqlglot.expressions.SqlSecurityProperty", "modulename": "sqlglot.expressions", "qualname": "SqlSecurityProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.StabilityProperty": {"fullname": "sqlglot.expressions.StabilityProperty", "modulename": "sqlglot.expressions", "qualname": "StabilityProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.TemporaryProperty": {"fullname": "sqlglot.expressions.TemporaryProperty", "modulename": "sqlglot.expressions", "qualname": "TemporaryProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.TransientProperty": {"fullname": "sqlglot.expressions.TransientProperty", "modulename": "sqlglot.expressions", "qualname": "TransientProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.VolatileProperty": {"fullname": "sqlglot.expressions.VolatileProperty", "modulename": "sqlglot.expressions", "qualname": "VolatileProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.WithDataProperty": {"fullname": "sqlglot.expressions.WithDataProperty", "modulename": "sqlglot.expressions", "qualname": "WithDataProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.WithJournalTableProperty": {"fullname": "sqlglot.expressions.WithJournalTableProperty", "modulename": "sqlglot.expressions", "qualname": "WithJournalTableProperty", "kind": "class", "doc": "

\n", "bases": "Property"}, "sqlglot.expressions.Properties": {"fullname": "sqlglot.expressions.Properties", "modulename": "sqlglot.expressions", "qualname": "Properties", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Properties.Location": {"fullname": "sqlglot.expressions.Properties.Location", "modulename": "sqlglot.expressions", "qualname": "Properties.Location", "kind": "class", "doc": "

An enumeration.

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "signature": "(cls, properties_dict: Dict) -> sqlglot.expressions.Properties:", "funcdef": "def"}, "sqlglot.expressions.Qualify": {"fullname": "sqlglot.expressions.Qualify", "modulename": "sqlglot.expressions", "qualname": "Qualify", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Return": {"fullname": "sqlglot.expressions.Return", "modulename": "sqlglot.expressions", "qualname": "Return", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Reference": {"fullname": "sqlglot.expressions.Reference", "modulename": "sqlglot.expressions", "qualname": "Reference", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Tuple": {"fullname": "sqlglot.expressions.Tuple", "modulename": "sqlglot.expressions", "qualname": "Tuple", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Tuple.isin": {"fullname": "sqlglot.expressions.Tuple.isin", "modulename": "sqlglot.expressions", "qualname": "Tuple.isin", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*expressions: Any,\tquery: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.In:", "funcdef": "def"}, "sqlglot.expressions.Subqueryable": {"fullname": "sqlglot.expressions.Subqueryable", "modulename": "sqlglot.expressions", "qualname": "Subqueryable", "kind": "class", "doc": "

\n", "bases": "Unionable"}, "sqlglot.expressions.Subqueryable.subquery": {"fullname": "sqlglot.expressions.Subqueryable.subquery", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.subquery", "kind": "function", "doc": "

Convert this expression to an aliased expression that can be used as a Subquery.

\n\n
Example:
\n\n
\n
\n
>>> subquery = Select().select("x").from_("tbl").subquery()\n>>> Select().select("x").from_(subquery).sql()\n'SELECT x FROM (SELECT x FROM tbl)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • alias (str | Identifier): an optional alias for the subquery
  • \n
  • copy (bool): if False, modify this expression instance in-place.
  • \n
\n\n
Returns:
\n\n
\n

Alias: the subquery

\n
\n", "signature": "(\tself,\talias: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tcopy: bool = True) -> sqlglot.expressions.Subquery:", "funcdef": "def"}, "sqlglot.expressions.Subqueryable.limit": {"fullname": "sqlglot.expressions.Subqueryable.limit", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.limit", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, int],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Subqueryable.with_": {"fullname": "sqlglot.expressions.Subqueryable.with_", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.with_", "kind": "function", "doc": "

Append to or set the common table expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()\n'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • alias: the SQL code string to parse as the table name.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • as_: the SQL code string to parse as the table expression.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • recursive: set the RECURSIVE part of the expression. Defaults to False.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified expression.

\n
\n", "signature": "(\tself,\talias: Union[str, sqlglot.expressions.Expression],\tas_: Union[str, sqlglot.expressions.Expression],\trecursive: Optional[bool] = None,\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Subqueryable:", "funcdef": "def"}, "sqlglot.expressions.Table": {"fullname": "sqlglot.expressions.Table", "modulename": "sqlglot.expressions", "qualname": "Table", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Table.parts": {"fullname": "sqlglot.expressions.Table.parts", "modulename": "sqlglot.expressions", "qualname": "Table.parts", "kind": "variable", "doc": "

Return the parts of a table in order catalog, db, table.

\n", "annotation": ": List[sqlglot.expressions.Identifier]"}, "sqlglot.expressions.SystemTime": {"fullname": "sqlglot.expressions.SystemTime", "modulename": "sqlglot.expressions", "qualname": "SystemTime", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Union": {"fullname": "sqlglot.expressions.Union", "modulename": "sqlglot.expressions", "qualname": "Union", "kind": "class", "doc": "

\n", "bases": "Subqueryable"}, "sqlglot.expressions.Union.limit": {"fullname": "sqlglot.expressions.Union.limit", "modulename": "sqlglot.expressions", "qualname": "Union.limit", "kind": "function", "doc": "

Set the LIMIT expression.

\n\n
Example:
\n\n
\n
\n
>>> select("1").union(select("1")).limit(1).sql()\n'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nThis can also be an integer.\nIf a Limit instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Limit.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The limited subqueryable.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, int],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Union.select": {"fullname": "sqlglot.expressions.Union.select", "modulename": "sqlglot.expressions", "qualname": "Union.select", "kind": "function", "doc": "

Append to or set the SELECT of the union recursively.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("select a from x union select a from y union select a from z").select("b").sql()\n'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Union: the modified expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Union:", "funcdef": "def"}, "sqlglot.expressions.Union.is_star": {"fullname": "sqlglot.expressions.Union.is_star", "modulename": "sqlglot.expressions", "qualname": "Union.is_star", "kind": "variable", "doc": "

Checks whether an expression is a star.

\n", "annotation": ": bool"}, "sqlglot.expressions.Except": {"fullname": "sqlglot.expressions.Except", "modulename": "sqlglot.expressions", "qualname": "Except", "kind": "class", "doc": "

\n", "bases": "Union"}, "sqlglot.expressions.Intersect": {"fullname": "sqlglot.expressions.Intersect", "modulename": "sqlglot.expressions", "qualname": "Intersect", "kind": "class", "doc": "

\n", "bases": "Union"}, "sqlglot.expressions.Unnest": {"fullname": "sqlglot.expressions.Unnest", "modulename": "sqlglot.expressions", "qualname": "Unnest", "kind": "class", "doc": "

\n", "bases": "UDTF"}, "sqlglot.expressions.Update": {"fullname": "sqlglot.expressions.Update", "modulename": "sqlglot.expressions", "qualname": "Update", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Values": {"fullname": "sqlglot.expressions.Values", "modulename": "sqlglot.expressions", "qualname": "Values", "kind": "class", "doc": "

\n", "bases": "UDTF"}, "sqlglot.expressions.Var": {"fullname": "sqlglot.expressions.Var", "modulename": "sqlglot.expressions", "qualname": "Var", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Schema": {"fullname": "sqlglot.expressions.Schema", "modulename": "sqlglot.expressions", "qualname": "Schema", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Lock": {"fullname": "sqlglot.expressions.Lock", "modulename": "sqlglot.expressions", "qualname": "Lock", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Select": {"fullname": "sqlglot.expressions.Select", "modulename": "sqlglot.expressions", "qualname": "Select", "kind": "class", "doc": "

\n", "bases": "Subqueryable"}, "sqlglot.expressions.Select.from_": {"fullname": "sqlglot.expressions.Select.from_", "modulename": "sqlglot.expressions", "qualname": "Select.from_", "kind": "function", "doc": "

Set the FROM expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").sql()\n'SELECT x FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression : the SQL code strings to parse.\nIf a From instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a From.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.group_by": {"fullname": "sqlglot.expressions.Select.group_by", "modulename": "sqlglot.expressions", "qualname": "Select.group_by", "kind": "function", "doc": "

Set the GROUP BY expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()\n'SELECT x, COUNT(1) FROM tbl GROUP BY x'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf a Group instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Group.\nIf nothing is passed in then a group by is not applied to the expression
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this flattens all the Group expression into a single expression.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.order_by": {"fullname": "sqlglot.expressions.Select.order_by", "modulename": "sqlglot.expressions", "qualname": "Select.order_by", "kind": "function", "doc": "

Set the ORDER BY expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").order_by("x DESC").sql()\n'SELECT x FROM tbl ORDER BY x DESC'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf a Group instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Order.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this flattens all the Order expression into a single expression.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.sort_by": {"fullname": "sqlglot.expressions.Select.sort_by", "modulename": "sqlglot.expressions", "qualname": "Select.sort_by", "kind": "function", "doc": "

Set the SORT BY expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").sort_by("x DESC").sql(dialect="hive")\n'SELECT x FROM tbl SORT BY x DESC'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf a Group instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a SORT.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this flattens all the Order expression into a single expression.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.cluster_by": {"fullname": "sqlglot.expressions.Select.cluster_by", "modulename": "sqlglot.expressions", "qualname": "Select.cluster_by", "kind": "function", "doc": "

Set the CLUSTER BY expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").cluster_by("x DESC").sql(dialect="hive")\n'SELECT x FROM tbl CLUSTER BY x DESC'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf a Group instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Cluster.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this flattens all the Order expression into a single expression.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.limit": {"fullname": "sqlglot.expressions.Select.limit", "modulename": "sqlglot.expressions", "qualname": "Select.limit", "kind": "function", "doc": "

Set the LIMIT expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").limit(10).sql()\n'SELECT x FROM tbl LIMIT 10'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nThis can also be an integer.\nIf a Limit instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Limit.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Select: the modified expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, int],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.offset": {"fullname": "sqlglot.expressions.Select.offset", "modulename": "sqlglot.expressions", "qualname": "Select.offset", "kind": "function", "doc": "

Set the OFFSET expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").offset(10).sql()\n'SELECT x FROM tbl OFFSET 10'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nThis can also be an integer.\nIf a Offset instance is passed, this is used as-is.\nIf another Expression instance is passed, it will be wrapped in a Offset.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, int],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.select": {"fullname": "sqlglot.expressions.Select.select", "modulename": "sqlglot.expressions", "qualname": "Select.select", "kind": "function", "doc": "

Append to or set the SELECT expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("x", "y").sql()\n'SELECT x, y'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.lateral": {"fullname": "sqlglot.expressions.Select.lateral", "modulename": "sqlglot.expressions", "qualname": "Select.lateral", "kind": "function", "doc": "

Append to or set the LATERAL expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()\n'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.join": {"fullname": "sqlglot.expressions.Select.join", "modulename": "sqlglot.expressions", "qualname": "Select.join", "kind": "function", "doc": "

Append to or set the JOIN expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()\n'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'\n
\n
\n \n
\n
>>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()\n'SELECT 1 FROM a JOIN b USING (x, y, z)'\n
\n
\n \n

Use join_type to change the type of join:

\n \n
\n
>>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()\n'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • on: optionally specify the join \"on\" criteria as a SQL string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • using: optionally specify the join \"using\" criteria as a SQL string.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • append: if True, add to any existing expressions.\nOtherwise, this resets the expressions.
  • \n
  • join_type: if set, alter the parsed join type.
  • \n
  • join_alias: an optional alias for the joined source.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Select: the modified expression.

\n
\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression],\ton: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tusing: Union[str, sqlglot.expressions.Expression, List[Union[str, sqlglot.expressions.Expression]], NoneType] = None,\tappend: bool = True,\tjoin_type: Optional[str] = None,\tjoin_alias: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.where": {"fullname": "sqlglot.expressions.Select.where", "modulename": "sqlglot.expressions", "qualname": "Select.where", "kind": "function", "doc": "

Append to or set the WHERE expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()\n"SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.
  • \n
  • append: if True, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Select: the modified expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.having": {"fullname": "sqlglot.expressions.Select.having", "modulename": "sqlglot.expressions", "qualname": "Select.having", "kind": "function", "doc": "

Append to or set the HAVING expressions.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()\n'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.
  • \n
  • append: if True, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The modified Select expression.

\n
\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.window": {"fullname": "sqlglot.expressions.Select.window", "modulename": "sqlglot.expressions", "qualname": "Select.window", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.qualify": {"fullname": "sqlglot.expressions.Select.qualify", "modulename": "sqlglot.expressions", "qualname": "Select.qualify", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tappend: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.distinct": {"fullname": "sqlglot.expressions.Select.distinct", "modulename": "sqlglot.expressions", "qualname": "Select.distinct", "kind": "function", "doc": "

Set the OFFSET expression.

\n\n
Example:
\n\n
\n
\n
>>> Select().from_("tbl").select("x").distinct().sql()\n'SELECT DISTINCT x FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • ons: the expressions to distinct on
  • \n
  • distinct: whether the Select should be distinct
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
\n\n
Returns:
\n\n
\n

Select: the modified expression.

\n
\n", "signature": "(\tself,\t*ons: Union[str, sqlglot.expressions.Expression, NoneType],\tdistinct: bool = True,\tcopy: bool = True) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.ctas": {"fullname": "sqlglot.expressions.Select.ctas", "modulename": "sqlglot.expressions", "qualname": "Select.ctas", "kind": "function", "doc": "

Convert this expression to a CREATE TABLE AS statement.

\n\n
Example:
\n\n
\n
\n
>>> Select().select("*").from_("tbl").ctas("x").sql()\n'CREATE TABLE x AS SELECT * FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • table: the SQL code string to parse as the table name.\nIf another Expression instance is passed, it will be used as-is.
  • \n
  • properties: an optional mapping of table properties
  • \n
  • dialect: the dialect used to parse the input table.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
  • opts: other options to use to parse the input table.
  • \n
\n\n
Returns:
\n\n
\n

The new Create expression.

\n
\n", "signature": "(\tself,\ttable: Union[str, sqlglot.expressions.Expression],\tproperties: Optional[Dict] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Create:", "funcdef": "def"}, "sqlglot.expressions.Select.lock": {"fullname": "sqlglot.expressions.Select.lock", "modulename": "sqlglot.expressions", "qualname": "Select.lock", "kind": "function", "doc": "

Set the locking read mode for this expression.

\n\n
Examples:
\n\n
\n
\n
>>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")\n"SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"\n
\n
\n \n
\n
>>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")\n"SELECT x FROM tbl WHERE x = 'a' FOR SHARE"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • update: if True, the locking type will be FOR UPDATE, else it will be FOR SHARE.
  • \n
  • copy: if False, modify this expression instance in-place.
  • \n
\n\n
Returns:
\n\n
\n

The modified expression.

\n
\n", "signature": "(\tself,\tupdate: bool = True,\tcopy: bool = True) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.Select.is_star": {"fullname": "sqlglot.expressions.Select.is_star", "modulename": "sqlglot.expressions", "qualname": "Select.is_star", "kind": "variable", "doc": "

Checks whether an expression is a star.

\n", "annotation": ": bool"}, "sqlglot.expressions.Subquery": {"fullname": "sqlglot.expressions.Subquery", "modulename": "sqlglot.expressions", "qualname": "Subquery", "kind": "class", "doc": "

\n", "bases": "DerivedTable, Unionable"}, "sqlglot.expressions.Subquery.unnest": {"fullname": "sqlglot.expressions.Subquery.unnest", "modulename": "sqlglot.expressions", "qualname": "Subquery.unnest", "kind": "function", "doc": "

Returns the first non subquery.

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.expressions.Subquery.is_star": {"fullname": "sqlglot.expressions.Subquery.is_star", "modulename": "sqlglot.expressions", "qualname": "Subquery.is_star", "kind": "variable", "doc": "

Checks whether an expression is a star.

\n", "annotation": ": bool"}, "sqlglot.expressions.Subquery.output_name": {"fullname": "sqlglot.expressions.Subquery.output_name", "modulename": "sqlglot.expressions", "qualname": "Subquery.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.TableSample": {"fullname": "sqlglot.expressions.TableSample", "modulename": "sqlglot.expressions", "qualname": "TableSample", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Tag": {"fullname": "sqlglot.expressions.Tag", "modulename": "sqlglot.expressions", "qualname": "Tag", "kind": "class", "doc": "

Tags are used for generating arbitrary sql like SELECT x.

\n", "bases": "Expression"}, "sqlglot.expressions.Pivot": {"fullname": "sqlglot.expressions.Pivot", "modulename": "sqlglot.expressions", "qualname": "Pivot", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Window": {"fullname": "sqlglot.expressions.Window", "modulename": "sqlglot.expressions", "qualname": "Window", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.WindowSpec": {"fullname": "sqlglot.expressions.WindowSpec", "modulename": "sqlglot.expressions", "qualname": "WindowSpec", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Where": {"fullname": "sqlglot.expressions.Where", "modulename": "sqlglot.expressions", "qualname": "Where", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Star": {"fullname": "sqlglot.expressions.Star", "modulename": "sqlglot.expressions", "qualname": "Star", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Star.output_name": {"fullname": "sqlglot.expressions.Star.output_name", "modulename": "sqlglot.expressions", "qualname": "Star.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Parameter": {"fullname": "sqlglot.expressions.Parameter", "modulename": "sqlglot.expressions", "qualname": "Parameter", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.SessionParameter": {"fullname": "sqlglot.expressions.SessionParameter", "modulename": "sqlglot.expressions", "qualname": "SessionParameter", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Placeholder": {"fullname": "sqlglot.expressions.Placeholder", "modulename": "sqlglot.expressions", "qualname": "Placeholder", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Null": {"fullname": "sqlglot.expressions.Null", "modulename": "sqlglot.expressions", "qualname": "Null", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Boolean": {"fullname": "sqlglot.expressions.Boolean", "modulename": "sqlglot.expressions", "qualname": "Boolean", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.DataTypeSize": {"fullname": "sqlglot.expressions.DataTypeSize", "modulename": "sqlglot.expressions", "qualname": "DataTypeSize", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.DataType": {"fullname": "sqlglot.expressions.DataType", "modulename": "sqlglot.expressions", "qualname": "DataType", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.DataType.Type": {"fullname": "sqlglot.expressions.DataType.Type", "modulename": "sqlglot.expressions", "qualname": "DataType.Type", "kind": "class", "doc": "

An enumeration.

\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.expressions.DataType.Type.ARRAY": {"fullname": "sqlglot.expressions.DataType.Type.ARRAY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.ARRAY", "kind": "variable", "doc": "

\n", "default_value": "<Type.ARRAY: 'ARRAY'>"}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"fullname": "sqlglot.expressions.DataType.Type.BIGDECIMAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGDECIMAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.BIGDECIMAL: 'BIGDECIMAL'>"}, "sqlglot.expressions.DataType.Type.BIGINT": {"fullname": "sqlglot.expressions.DataType.Type.BIGINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.BIGINT: 'BIGINT'>"}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"fullname": "sqlglot.expressions.DataType.Type.BIGSERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGSERIAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.BIGSERIAL: 'BIGSERIAL'>"}, "sqlglot.expressions.DataType.Type.BINARY": {"fullname": "sqlglot.expressions.DataType.Type.BINARY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BINARY", "kind": "variable", "doc": "

\n", "default_value": "<Type.BINARY: 'BINARY'>"}, "sqlglot.expressions.DataType.Type.BIT": {"fullname": "sqlglot.expressions.DataType.Type.BIT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIT", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.BOOLEAN: 'BOOLEAN'>"}, "sqlglot.expressions.DataType.Type.CHAR": {"fullname": "sqlglot.expressions.DataType.Type.CHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.CHAR", "kind": "variable", "doc": "

\n", "default_value": "<Type.CHAR: 'CHAR'>"}, "sqlglot.expressions.DataType.Type.DATE": {"fullname": "sqlglot.expressions.DataType.Type.DATE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATE", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.DATETIME: 'DATETIME'>"}, "sqlglot.expressions.DataType.Type.DATETIME64": {"fullname": "sqlglot.expressions.DataType.Type.DATETIME64", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATETIME64", "kind": "variable", "doc": "

\n", "default_value": "<Type.DATETIME64: 'DATETIME64'>"}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"fullname": "sqlglot.expressions.DataType.Type.INT4RANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT4RANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT4RANGE: 'INT4RANGE'>"}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"fullname": "sqlglot.expressions.DataType.Type.INT4MULTIRANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT4MULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT4MULTIRANGE: 'INT4MULTIRANGE'>"}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"fullname": "sqlglot.expressions.DataType.Type.INT8RANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT8RANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT8RANGE: 'INT8RANGE'>"}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"fullname": "sqlglot.expressions.DataType.Type.INT8MULTIRANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT8MULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT8MULTIRANGE: 'INT8MULTIRANGE'>"}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"fullname": "sqlglot.expressions.DataType.Type.NUMRANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NUMRANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.NUMRANGE: 'NUMRANGE'>"}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"fullname": "sqlglot.expressions.DataType.Type.NUMMULTIRANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NUMMULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.NUMMULTIRANGE: 'NUMMULTIRANGE'>"}, "sqlglot.expressions.DataType.Type.TSRANGE": {"fullname": "sqlglot.expressions.DataType.Type.TSRANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TSRANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.TSRANGE: 'TSRANGE'>"}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"fullname": "sqlglot.expressions.DataType.Type.TSMULTIRANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TSMULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.TSMULTIRANGE: 'TSMULTIRANGE'>"}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"fullname": "sqlglot.expressions.DataType.Type.TSTZRANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TSTZRANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.TSTZRANGE: 'TSTZRANGE'>"}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"fullname": "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TSTZMULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.TSTZMULTIRANGE: 'TSTZMULTIRANGE'>"}, "sqlglot.expressions.DataType.Type.DATERANGE": {"fullname": "sqlglot.expressions.DataType.Type.DATERANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATERANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.DATERANGE: 'DATERANGE'>"}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"fullname": "sqlglot.expressions.DataType.Type.DATEMULTIRANGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATEMULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.DATEMULTIRANGE: 'DATEMULTIRANGE'>"}, "sqlglot.expressions.DataType.Type.DECIMAL": {"fullname": "sqlglot.expressions.DataType.Type.DECIMAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DECIMAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.DECIMAL: 'DECIMAL'>"}, "sqlglot.expressions.DataType.Type.DOUBLE": {"fullname": "sqlglot.expressions.DataType.Type.DOUBLE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DOUBLE", "kind": "variable", "doc": "

\n", "default_value": "<Type.DOUBLE: 'DOUBLE'>"}, "sqlglot.expressions.DataType.Type.FLOAT": {"fullname": "sqlglot.expressions.DataType.Type.FLOAT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.FLOAT", "kind": "variable", "doc": "

\n", "default_value": "<Type.FLOAT: 'FLOAT'>"}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"fullname": "sqlglot.expressions.DataType.Type.GEOGRAPHY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.GEOGRAPHY", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.GEOMETRY: 'GEOMETRY'>"}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"fullname": "sqlglot.expressions.DataType.Type.HLLSKETCH", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.HLLSKETCH", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.HSTORE: 'HSTORE'>"}, "sqlglot.expressions.DataType.Type.IMAGE": {"fullname": "sqlglot.expressions.DataType.Type.IMAGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.IMAGE", "kind": "variable", "doc": "

\n", "default_value": "<Type.IMAGE: 'IMAGE'>"}, "sqlglot.expressions.DataType.Type.INET": {"fullname": "sqlglot.expressions.DataType.Type.INET", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INET", "kind": "variable", "doc": "

\n", "default_value": "<Type.INET: 'INET'>"}, "sqlglot.expressions.DataType.Type.INT": {"fullname": "sqlglot.expressions.DataType.Type.INT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT: 'INT'>"}, "sqlglot.expressions.DataType.Type.INT128": {"fullname": "sqlglot.expressions.DataType.Type.INT128", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT128", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT128: 'INT128'>"}, "sqlglot.expressions.DataType.Type.INT256": {"fullname": "sqlglot.expressions.DataType.Type.INT256", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT256", "kind": "variable", "doc": "

\n", "default_value": "<Type.INT256: 'INT256'>"}, "sqlglot.expressions.DataType.Type.INTERVAL": {"fullname": "sqlglot.expressions.DataType.Type.INTERVAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INTERVAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.INTERVAL: 'INTERVAL'>"}, "sqlglot.expressions.DataType.Type.JSON": {"fullname": "sqlglot.expressions.DataType.Type.JSON", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.JSON", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<Type.JSONB: 'JSONB'>"}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"fullname": "sqlglot.expressions.DataType.Type.LONGBLOB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.LONGBLOB", "kind": "variable", "doc": "

\n", "default_value": "<Type.LONGBLOB: 'LONGBLOB'>"}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"fullname": "sqlglot.expressions.DataType.Type.LONGTEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.LONGTEXT", "kind": "variable", "doc": "

\n", "default_value": "<Type.LONGTEXT: 'LONGTEXT'>"}, "sqlglot.expressions.DataType.Type.MAP": {"fullname": "sqlglot.expressions.DataType.Type.MAP", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MAP", "kind": "variable", "doc": "

\n", "default_value": "<Type.MAP: 'MAP'>"}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"fullname": "sqlglot.expressions.DataType.Type.MEDIUMBLOB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MEDIUMBLOB", "kind": "variable", "doc": "

\n", "default_value": "<Type.MEDIUMBLOB: 'MEDIUMBLOB'>"}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"fullname": "sqlglot.expressions.DataType.Type.MEDIUMTEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MEDIUMTEXT", "kind": "variable", "doc": "

\n", "default_value": "<Type.MEDIUMTEXT: 'MEDIUMTEXT'>"}, "sqlglot.expressions.DataType.Type.MONEY": {"fullname": "sqlglot.expressions.DataType.Type.MONEY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MONEY", "kind": "variable", "doc": "

\n", "default_value": "<Type.MONEY: 'MONEY'>"}, "sqlglot.expressions.DataType.Type.NCHAR": {"fullname": "sqlglot.expressions.DataType.Type.NCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NCHAR", "kind": "variable", "doc": "

\n", "default_value": "<Type.NCHAR: 'NCHAR'>"}, "sqlglot.expressions.DataType.Type.NULL": {"fullname": "sqlglot.expressions.DataType.Type.NULL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NULL", "kind": "variable", "doc": "

\n", "default_value": "<Type.NULL: 'NULL'>"}, "sqlglot.expressions.DataType.Type.NULLABLE": {"fullname": "sqlglot.expressions.DataType.Type.NULLABLE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NULLABLE", "kind": "variable", "doc": "

\n", "default_value": "<Type.NULLABLE: 'NULLABLE'>"}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"fullname": "sqlglot.expressions.DataType.Type.NVARCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NVARCHAR", "kind": "variable", "doc": "

\n", "default_value": "<Type.NVARCHAR: 'NVARCHAR'>"}, "sqlglot.expressions.DataType.Type.OBJECT": {"fullname": "sqlglot.expressions.DataType.Type.OBJECT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.OBJECT", "kind": "variable", "doc": "

\n", "default_value": "<Type.OBJECT: 'OBJECT'>"}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"fullname": "sqlglot.expressions.DataType.Type.ROWVERSION", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.ROWVERSION", "kind": "variable", "doc": "

\n", "default_value": "<Type.ROWVERSION: 'ROWVERSION'>"}, "sqlglot.expressions.DataType.Type.SERIAL": {"fullname": "sqlglot.expressions.DataType.Type.SERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SERIAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.SERIAL: 'SERIAL'>"}, "sqlglot.expressions.DataType.Type.SMALLINT": {"fullname": "sqlglot.expressions.DataType.Type.SMALLINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.SMALLINT: 'SMALLINT'>"}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"fullname": "sqlglot.expressions.DataType.Type.SMALLMONEY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLMONEY", "kind": "variable", "doc": "

\n", "default_value": "<Type.SMALLMONEY: 'SMALLMONEY'>"}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"fullname": "sqlglot.expressions.DataType.Type.SMALLSERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLSERIAL", "kind": "variable", "doc": "

\n", "default_value": "<Type.SMALLSERIAL: 'SMALLSERIAL'>"}, "sqlglot.expressions.DataType.Type.STRUCT": {"fullname": "sqlglot.expressions.DataType.Type.STRUCT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.STRUCT", "kind": "variable", "doc": "

\n", "default_value": "<Type.STRUCT: 'STRUCT'>"}, "sqlglot.expressions.DataType.Type.SUPER": {"fullname": "sqlglot.expressions.DataType.Type.SUPER", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SUPER", "kind": "variable", "doc": "

\n", "default_value": "<Type.SUPER: 'SUPER'>"}, "sqlglot.expressions.DataType.Type.TEXT": {"fullname": "sqlglot.expressions.DataType.Type.TEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TEXT", "kind": "variable", "doc": "

\n", "default_value": "<Type.TEXT: 'TEXT'>"}, "sqlglot.expressions.DataType.Type.TIME": {"fullname": "sqlglot.expressions.DataType.Type.TIME", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIME", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\n", "default_value": "<Type.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>"}, "sqlglot.expressions.DataType.Type.TINYINT": {"fullname": "sqlglot.expressions.DataType.Type.TINYINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TINYINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.TINYINT: 'TINYINT'>"}, "sqlglot.expressions.DataType.Type.UBIGINT": {"fullname": "sqlglot.expressions.DataType.Type.UBIGINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UBIGINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.UBIGINT: 'UBIGINT'>"}, "sqlglot.expressions.DataType.Type.UINT": {"fullname": "sqlglot.expressions.DataType.Type.UINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.UINT: 'UINT'>"}, "sqlglot.expressions.DataType.Type.USMALLINT": {"fullname": "sqlglot.expressions.DataType.Type.USMALLINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.USMALLINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.USMALLINT: 'USMALLINT'>"}, "sqlglot.expressions.DataType.Type.UTINYINT": {"fullname": "sqlglot.expressions.DataType.Type.UTINYINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UTINYINT", "kind": "variable", "doc": "

\n", "default_value": "<Type.UTINYINT: 'UTINYINT'>"}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"fullname": "sqlglot.expressions.DataType.Type.UNKNOWN", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UNKNOWN", "kind": "variable", "doc": "

\n", "default_value": "<Type.UNKNOWN: 'UNKNOWN'>"}, "sqlglot.expressions.DataType.Type.UINT128": {"fullname": "sqlglot.expressions.DataType.Type.UINT128", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UINT128", "kind": "variable", "doc": "

\n", "default_value": "<Type.UINT128: 'UINT128'>"}, "sqlglot.expressions.DataType.Type.UINT256": {"fullname": "sqlglot.expressions.DataType.Type.UINT256", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UINT256", "kind": "variable", "doc": "

\n", "default_value": "<Type.UINT256: 'UINT256'>"}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"fullname": "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UNIQUEIDENTIFIER", "kind": "variable", "doc": "

\n", "default_value": "<Type.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>"}, "sqlglot.expressions.DataType.Type.UUID": {"fullname": "sqlglot.expressions.DataType.Type.UUID", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UUID", "kind": "variable", "doc": "

\n", "default_value": "<Type.UUID: 'UUID'>"}, "sqlglot.expressions.DataType.Type.VARBINARY": {"fullname": "sqlglot.expressions.DataType.Type.VARBINARY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARBINARY", "kind": "variable", "doc": "

\n", "default_value": "<Type.VARBINARY: 'VARBINARY'>"}, "sqlglot.expressions.DataType.Type.VARCHAR": {"fullname": "sqlglot.expressions.DataType.Type.VARCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARCHAR", "kind": "variable", "doc": "

\n", "default_value": "<Type.VARCHAR: 'VARCHAR'>"}, "sqlglot.expressions.DataType.Type.VARIANT": {"fullname": "sqlglot.expressions.DataType.Type.VARIANT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARIANT", "kind": "variable", "doc": "

\n", "default_value": "<Type.VARIANT: 'VARIANT'>"}, "sqlglot.expressions.DataType.Type.XML": {"fullname": "sqlglot.expressions.DataType.Type.XML", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.XML", "kind": "variable", "doc": "

\n", "default_value": "<Type.XML: 'XML'>"}, "sqlglot.expressions.DataType.build": {"fullname": "sqlglot.expressions.DataType.build", "modulename": "sqlglot.expressions", "qualname": "DataType.build", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tdtype: str | sqlglot.expressions.DataType | sqlglot.expressions.DataType.Type,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**kwargs) -> sqlglot.expressions.DataType:", "funcdef": "def"}, "sqlglot.expressions.DataType.is_type": {"fullname": "sqlglot.expressions.DataType.is_type", "modulename": "sqlglot.expressions", "qualname": "DataType.is_type", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*dtypes: str | sqlglot.expressions.DataType | sqlglot.expressions.DataType.Type) -> bool:", "funcdef": "def"}, "sqlglot.expressions.PseudoType": {"fullname": "sqlglot.expressions.PseudoType", "modulename": "sqlglot.expressions", "qualname": "PseudoType", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.SubqueryPredicate": {"fullname": "sqlglot.expressions.SubqueryPredicate", "modulename": "sqlglot.expressions", "qualname": "SubqueryPredicate", "kind": "class", "doc": "

\n", "bases": "Predicate"}, "sqlglot.expressions.All": {"fullname": "sqlglot.expressions.All", "modulename": "sqlglot.expressions", "qualname": "All", "kind": "class", "doc": "

\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Any": {"fullname": "sqlglot.expressions.Any", "modulename": "sqlglot.expressions", "qualname": "Any", "kind": "class", "doc": "

\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Exists": {"fullname": "sqlglot.expressions.Exists", "modulename": "sqlglot.expressions", "qualname": "Exists", "kind": "class", "doc": "

\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Command": {"fullname": "sqlglot.expressions.Command", "modulename": "sqlglot.expressions", "qualname": "Command", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Transaction": {"fullname": "sqlglot.expressions.Transaction", "modulename": "sqlglot.expressions", "qualname": "Transaction", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Commit": {"fullname": "sqlglot.expressions.Commit", "modulename": "sqlglot.expressions", "qualname": "Commit", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Rollback": {"fullname": "sqlglot.expressions.Rollback", "modulename": "sqlglot.expressions", "qualname": "Rollback", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AlterTable": {"fullname": "sqlglot.expressions.AlterTable", "modulename": "sqlglot.expressions", "qualname": "AlterTable", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AddConstraint": {"fullname": "sqlglot.expressions.AddConstraint", "modulename": "sqlglot.expressions", "qualname": "AddConstraint", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.DropPartition": {"fullname": "sqlglot.expressions.DropPartition", "modulename": "sqlglot.expressions", "qualname": "DropPartition", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Binary": {"fullname": "sqlglot.expressions.Binary", "modulename": "sqlglot.expressions", "qualname": "Binary", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Add": {"fullname": "sqlglot.expressions.Add", "modulename": "sqlglot.expressions", "qualname": "Add", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Connector": {"fullname": "sqlglot.expressions.Connector", "modulename": "sqlglot.expressions", "qualname": "Connector", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.And": {"fullname": "sqlglot.expressions.And", "modulename": "sqlglot.expressions", "qualname": "And", "kind": "class", "doc": "

\n", "bases": "Connector"}, "sqlglot.expressions.Or": {"fullname": "sqlglot.expressions.Or", "modulename": "sqlglot.expressions", "qualname": "Or", "kind": "class", "doc": "

\n", "bases": "Connector"}, "sqlglot.expressions.BitwiseAnd": {"fullname": "sqlglot.expressions.BitwiseAnd", "modulename": "sqlglot.expressions", "qualname": "BitwiseAnd", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseLeftShift": {"fullname": "sqlglot.expressions.BitwiseLeftShift", "modulename": "sqlglot.expressions", "qualname": "BitwiseLeftShift", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseOr": {"fullname": "sqlglot.expressions.BitwiseOr", "modulename": "sqlglot.expressions", "qualname": "BitwiseOr", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseRightShift": {"fullname": "sqlglot.expressions.BitwiseRightShift", "modulename": "sqlglot.expressions", "qualname": "BitwiseRightShift", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseXor": {"fullname": "sqlglot.expressions.BitwiseXor", "modulename": "sqlglot.expressions", "qualname": "BitwiseXor", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Div": {"fullname": "sqlglot.expressions.Div", "modulename": "sqlglot.expressions", "qualname": "Div", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Overlaps": {"fullname": "sqlglot.expressions.Overlaps", "modulename": "sqlglot.expressions", "qualname": "Overlaps", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Dot": {"fullname": "sqlglot.expressions.Dot", "modulename": "sqlglot.expressions", "qualname": "Dot", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Dot.build": {"fullname": "sqlglot.expressions.Dot.build", "modulename": "sqlglot.expressions", "qualname": "Dot.build", "kind": "function", "doc": "

Build a Dot object with a sequence of expressions.

\n", "signature": "(\tself,\texpressions: Sequence[sqlglot.expressions.Expression]) -> sqlglot.expressions.Dot:", "funcdef": "def"}, "sqlglot.expressions.DPipe": {"fullname": "sqlglot.expressions.DPipe", "modulename": "sqlglot.expressions", "qualname": "DPipe", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.EQ": {"fullname": "sqlglot.expressions.EQ", "modulename": "sqlglot.expressions", "qualname": "EQ", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.NullSafeEQ": {"fullname": "sqlglot.expressions.NullSafeEQ", "modulename": "sqlglot.expressions", "qualname": "NullSafeEQ", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.NullSafeNEQ": {"fullname": "sqlglot.expressions.NullSafeNEQ", "modulename": "sqlglot.expressions", "qualname": "NullSafeNEQ", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Distance": {"fullname": "sqlglot.expressions.Distance", "modulename": "sqlglot.expressions", "qualname": "Distance", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Escape": {"fullname": "sqlglot.expressions.Escape", "modulename": "sqlglot.expressions", "qualname": "Escape", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Glob": {"fullname": "sqlglot.expressions.Glob", "modulename": "sqlglot.expressions", "qualname": "Glob", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.GT": {"fullname": "sqlglot.expressions.GT", "modulename": "sqlglot.expressions", "qualname": "GT", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.GTE": {"fullname": "sqlglot.expressions.GTE", "modulename": "sqlglot.expressions", "qualname": "GTE", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.ILike": {"fullname": "sqlglot.expressions.ILike", "modulename": "sqlglot.expressions", "qualname": "ILike", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.ILikeAny": {"fullname": "sqlglot.expressions.ILikeAny", "modulename": "sqlglot.expressions", "qualname": "ILikeAny", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.IntDiv": {"fullname": "sqlglot.expressions.IntDiv", "modulename": "sqlglot.expressions", "qualname": "IntDiv", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Is": {"fullname": "sqlglot.expressions.Is", "modulename": "sqlglot.expressions", "qualname": "Is", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Kwarg": {"fullname": "sqlglot.expressions.Kwarg", "modulename": "sqlglot.expressions", "qualname": "Kwarg", "kind": "class", "doc": "

Kwarg in special functions like func(kwarg => y).

\n", "bases": "Binary"}, "sqlglot.expressions.Like": {"fullname": "sqlglot.expressions.Like", "modulename": "sqlglot.expressions", "qualname": "Like", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LikeAny": {"fullname": "sqlglot.expressions.LikeAny", "modulename": "sqlglot.expressions", "qualname": "LikeAny", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LT": {"fullname": "sqlglot.expressions.LT", "modulename": "sqlglot.expressions", "qualname": "LT", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LTE": {"fullname": "sqlglot.expressions.LTE", "modulename": "sqlglot.expressions", "qualname": "LTE", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Mod": {"fullname": "sqlglot.expressions.Mod", "modulename": "sqlglot.expressions", "qualname": "Mod", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Mul": {"fullname": "sqlglot.expressions.Mul", "modulename": "sqlglot.expressions", "qualname": "Mul", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.NEQ": {"fullname": "sqlglot.expressions.NEQ", "modulename": "sqlglot.expressions", "qualname": "NEQ", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.SimilarTo": {"fullname": "sqlglot.expressions.SimilarTo", "modulename": "sqlglot.expressions", "qualname": "SimilarTo", "kind": "class", "doc": "

\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Slice": {"fullname": "sqlglot.expressions.Slice", "modulename": "sqlglot.expressions", "qualname": "Slice", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Sub": {"fullname": "sqlglot.expressions.Sub", "modulename": "sqlglot.expressions", "qualname": "Sub", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.ArrayOverlaps": {"fullname": "sqlglot.expressions.ArrayOverlaps", "modulename": "sqlglot.expressions", "qualname": "ArrayOverlaps", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.Unary": {"fullname": "sqlglot.expressions.Unary", "modulename": "sqlglot.expressions", "qualname": "Unary", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.BitwiseNot": {"fullname": "sqlglot.expressions.BitwiseNot", "modulename": "sqlglot.expressions", "qualname": "BitwiseNot", "kind": "class", "doc": "

\n", "bases": "Unary"}, "sqlglot.expressions.Not": {"fullname": "sqlglot.expressions.Not", "modulename": "sqlglot.expressions", "qualname": "Not", "kind": "class", "doc": "

\n", "bases": "Unary"}, "sqlglot.expressions.Paren": {"fullname": "sqlglot.expressions.Paren", "modulename": "sqlglot.expressions", "qualname": "Paren", "kind": "class", "doc": "

\n", "bases": "Unary"}, "sqlglot.expressions.Neg": {"fullname": "sqlglot.expressions.Neg", "modulename": "sqlglot.expressions", "qualname": "Neg", "kind": "class", "doc": "

\n", "bases": "Unary"}, "sqlglot.expressions.Alias": {"fullname": "sqlglot.expressions.Alias", "modulename": "sqlglot.expressions", "qualname": "Alias", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Alias.output_name": {"fullname": "sqlglot.expressions.Alias.output_name", "modulename": "sqlglot.expressions", "qualname": "Alias.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Aliases": {"fullname": "sqlglot.expressions.Aliases", "modulename": "sqlglot.expressions", "qualname": "Aliases", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.AtTimeZone": {"fullname": "sqlglot.expressions.AtTimeZone", "modulename": "sqlglot.expressions", "qualname": "AtTimeZone", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Between": {"fullname": "sqlglot.expressions.Between", "modulename": "sqlglot.expressions", "qualname": "Between", "kind": "class", "doc": "

\n", "bases": "Predicate"}, "sqlglot.expressions.Bracket": {"fullname": "sqlglot.expressions.Bracket", "modulename": "sqlglot.expressions", "qualname": "Bracket", "kind": "class", "doc": "

\n", "bases": "Condition"}, "sqlglot.expressions.Distinct": {"fullname": "sqlglot.expressions.Distinct", "modulename": "sqlglot.expressions", "qualname": "Distinct", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.In": {"fullname": "sqlglot.expressions.In", "modulename": "sqlglot.expressions", "qualname": "In", "kind": "class", "doc": "

\n", "bases": "Predicate"}, "sqlglot.expressions.TimeUnit": {"fullname": "sqlglot.expressions.TimeUnit", "modulename": "sqlglot.expressions", "qualname": "TimeUnit", "kind": "class", "doc": "

Automatically converts unit arg into a var.

\n", "bases": "Expression"}, "sqlglot.expressions.TimeUnit.__init__": {"fullname": "sqlglot.expressions.TimeUnit.__init__", "modulename": "sqlglot.expressions", "qualname": "TimeUnit.__init__", "kind": "function", "doc": "

\n", "signature": "(**args)"}, "sqlglot.expressions.Interval": {"fullname": "sqlglot.expressions.Interval", "modulename": "sqlglot.expressions", "qualname": "Interval", "kind": "class", "doc": "

\n", "bases": "TimeUnit"}, "sqlglot.expressions.IgnoreNulls": {"fullname": "sqlglot.expressions.IgnoreNulls", "modulename": "sqlglot.expressions", "qualname": "IgnoreNulls", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.RespectNulls": {"fullname": "sqlglot.expressions.RespectNulls", "modulename": "sqlglot.expressions", "qualname": "RespectNulls", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Func": {"fullname": "sqlglot.expressions.Func", "modulename": "sqlglot.expressions", "qualname": "Func", "kind": "class", "doc": "

The base class for all function expressions.

\n\n
Attributes:
\n\n
    \n
  • is_var_len_args (bool): 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.
  • \n
  • _sql_names (list): 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.
  • \n
\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": "

\n", "signature": "(cls, args):", "funcdef": "def"}, "sqlglot.expressions.Func.sql_names": {"fullname": "sqlglot.expressions.Func.sql_names", "modulename": "sqlglot.expressions", "qualname": "Func.sql_names", "kind": "function", "doc": "

\n", "signature": "(cls):", "funcdef": "def"}, "sqlglot.expressions.Func.sql_name": {"fullname": "sqlglot.expressions.Func.sql_name", "modulename": "sqlglot.expressions", "qualname": "Func.sql_name", "kind": "function", "doc": "

\n", "signature": "(cls):", "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": "

\n", "signature": "(cls):", "funcdef": "def"}, "sqlglot.expressions.AggFunc": {"fullname": "sqlglot.expressions.AggFunc", "modulename": "sqlglot.expressions", "qualname": "AggFunc", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ParameterizedAgg": {"fullname": "sqlglot.expressions.ParameterizedAgg", "modulename": "sqlglot.expressions", "qualname": "ParameterizedAgg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Abs": {"fullname": "sqlglot.expressions.Abs", "modulename": "sqlglot.expressions", "qualname": "Abs", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Anonymous": {"fullname": "sqlglot.expressions.Anonymous", "modulename": "sqlglot.expressions", "qualname": "Anonymous", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Hll": {"fullname": "sqlglot.expressions.Hll", "modulename": "sqlglot.expressions", "qualname": "Hll", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.ApproxDistinct": {"fullname": "sqlglot.expressions.ApproxDistinct", "modulename": "sqlglot.expressions", "qualname": "ApproxDistinct", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Array": {"fullname": "sqlglot.expressions.Array", "modulename": "sqlglot.expressions", "qualname": "Array", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ToChar": {"fullname": "sqlglot.expressions.ToChar", "modulename": "sqlglot.expressions", "qualname": "ToChar", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.GenerateSeries": {"fullname": "sqlglot.expressions.GenerateSeries", "modulename": "sqlglot.expressions", "qualname": "GenerateSeries", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayAgg": {"fullname": "sqlglot.expressions.ArrayAgg", "modulename": "sqlglot.expressions", "qualname": "ArrayAgg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.ArrayAll": {"fullname": "sqlglot.expressions.ArrayAll", "modulename": "sqlglot.expressions", "qualname": "ArrayAll", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayAny": {"fullname": "sqlglot.expressions.ArrayAny", "modulename": "sqlglot.expressions", "qualname": "ArrayAny", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayConcat": {"fullname": "sqlglot.expressions.ArrayConcat", "modulename": "sqlglot.expressions", "qualname": "ArrayConcat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayContains": {"fullname": "sqlglot.expressions.ArrayContains", "modulename": "sqlglot.expressions", "qualname": "ArrayContains", "kind": "class", "doc": "

\n", "bases": "Binary, Func"}, "sqlglot.expressions.ArrayContained": {"fullname": "sqlglot.expressions.ArrayContained", "modulename": "sqlglot.expressions", "qualname": "ArrayContained", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.ArrayFilter": {"fullname": "sqlglot.expressions.ArrayFilter", "modulename": "sqlglot.expressions", "qualname": "ArrayFilter", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayJoin": {"fullname": "sqlglot.expressions.ArrayJoin", "modulename": "sqlglot.expressions", "qualname": "ArrayJoin", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArraySize": {"fullname": "sqlglot.expressions.ArraySize", "modulename": "sqlglot.expressions", "qualname": "ArraySize", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArraySort": {"fullname": "sqlglot.expressions.ArraySort", "modulename": "sqlglot.expressions", "qualname": "ArraySort", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArraySum": {"fullname": "sqlglot.expressions.ArraySum", "modulename": "sqlglot.expressions", "qualname": "ArraySum", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ArrayUnionAgg": {"fullname": "sqlglot.expressions.ArrayUnionAgg", "modulename": "sqlglot.expressions", "qualname": "ArrayUnionAgg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Avg": {"fullname": "sqlglot.expressions.Avg", "modulename": "sqlglot.expressions", "qualname": "Avg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.AnyValue": {"fullname": "sqlglot.expressions.AnyValue", "modulename": "sqlglot.expressions", "qualname": "AnyValue", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Case": {"fullname": "sqlglot.expressions.Case", "modulename": "sqlglot.expressions", "qualname": "Case", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Case.when": {"fullname": "sqlglot.expressions.Case.when", "modulename": "sqlglot.expressions", "qualname": "Case.when", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcondition: Union[str, sqlglot.expressions.Expression],\tthen: Union[str, sqlglot.expressions.Expression],\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Case:", "funcdef": "def"}, "sqlglot.expressions.Case.else_": {"fullname": "sqlglot.expressions.Case.else_", "modulename": "sqlglot.expressions", "qualname": "Case.else_", "kind": "function", "doc": "

\n", "signature": "(\tself,\tcondition: Union[str, sqlglot.expressions.Expression],\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Case:", "funcdef": "def"}, "sqlglot.expressions.Cast": {"fullname": "sqlglot.expressions.Cast", "modulename": "sqlglot.expressions", "qualname": "Cast", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Cast.output_name": {"fullname": "sqlglot.expressions.Cast.output_name", "modulename": "sqlglot.expressions", "qualname": "Cast.output_name", "kind": "variable", "doc": "

Name of the output column if this expression is a selection.

\n\n

If the Expression has no output name, an empty string is returned.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> parse_one("SELECT a").expressions[0].output_name\n'a'\n>>> parse_one("SELECT b AS c").expressions[0].output_name\n'c'\n>>> parse_one("SELECT 1 + 2").expressions[0].output_name\n''\n
\n
\n
\n", "annotation": ": str"}, "sqlglot.expressions.Cast.is_type": {"fullname": "sqlglot.expressions.Cast.is_type", "modulename": "sqlglot.expressions", "qualname": "Cast.is_type", "kind": "function", "doc": "

\n", "signature": "(\tself,\t*dtypes: str | sqlglot.expressions.DataType | sqlglot.expressions.DataType.Type) -> bool:", "funcdef": "def"}, "sqlglot.expressions.CastToStrType": {"fullname": "sqlglot.expressions.CastToStrType", "modulename": "sqlglot.expressions", "qualname": "CastToStrType", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Collate": {"fullname": "sqlglot.expressions.Collate", "modulename": "sqlglot.expressions", "qualname": "Collate", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.TryCast": {"fullname": "sqlglot.expressions.TryCast", "modulename": "sqlglot.expressions", "qualname": "TryCast", "kind": "class", "doc": "

\n", "bases": "Cast"}, "sqlglot.expressions.Ceil": {"fullname": "sqlglot.expressions.Ceil", "modulename": "sqlglot.expressions", "qualname": "Ceil", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Coalesce": {"fullname": "sqlglot.expressions.Coalesce", "modulename": "sqlglot.expressions", "qualname": "Coalesce", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Concat": {"fullname": "sqlglot.expressions.Concat", "modulename": "sqlglot.expressions", "qualname": "Concat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ConcatWs": {"fullname": "sqlglot.expressions.ConcatWs", "modulename": "sqlglot.expressions", "qualname": "ConcatWs", "kind": "class", "doc": "

\n", "bases": "Concat"}, "sqlglot.expressions.Count": {"fullname": "sqlglot.expressions.Count", "modulename": "sqlglot.expressions", "qualname": "Count", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.CountIf": {"fullname": "sqlglot.expressions.CountIf", "modulename": "sqlglot.expressions", "qualname": "CountIf", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.CurrentDate": {"fullname": "sqlglot.expressions.CurrentDate", "modulename": "sqlglot.expressions", "qualname": "CurrentDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.CurrentDatetime": {"fullname": "sqlglot.expressions.CurrentDatetime", "modulename": "sqlglot.expressions", "qualname": "CurrentDatetime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.CurrentTime": {"fullname": "sqlglot.expressions.CurrentTime", "modulename": "sqlglot.expressions", "qualname": "CurrentTime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.CurrentTimestamp": {"fullname": "sqlglot.expressions.CurrentTimestamp", "modulename": "sqlglot.expressions", "qualname": "CurrentTimestamp", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.CurrentUser": {"fullname": "sqlglot.expressions.CurrentUser", "modulename": "sqlglot.expressions", "qualname": "CurrentUser", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DateAdd": {"fullname": "sqlglot.expressions.DateAdd", "modulename": "sqlglot.expressions", "qualname": "DateAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateSub": {"fullname": "sqlglot.expressions.DateSub", "modulename": "sqlglot.expressions", "qualname": "DateSub", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateDiff": {"fullname": "sqlglot.expressions.DateDiff", "modulename": "sqlglot.expressions", "qualname": "DateDiff", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateTrunc": {"fullname": "sqlglot.expressions.DateTrunc", "modulename": "sqlglot.expressions", "qualname": "DateTrunc", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DatetimeAdd": {"fullname": "sqlglot.expressions.DatetimeAdd", "modulename": "sqlglot.expressions", "qualname": "DatetimeAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeSub": {"fullname": "sqlglot.expressions.DatetimeSub", "modulename": "sqlglot.expressions", "qualname": "DatetimeSub", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeDiff": {"fullname": "sqlglot.expressions.DatetimeDiff", "modulename": "sqlglot.expressions", "qualname": "DatetimeDiff", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeTrunc": {"fullname": "sqlglot.expressions.DatetimeTrunc", "modulename": "sqlglot.expressions", "qualname": "DatetimeTrunc", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DayOfWeek": {"fullname": "sqlglot.expressions.DayOfWeek", "modulename": "sqlglot.expressions", "qualname": "DayOfWeek", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DayOfMonth": {"fullname": "sqlglot.expressions.DayOfMonth", "modulename": "sqlglot.expressions", "qualname": "DayOfMonth", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DayOfYear": {"fullname": "sqlglot.expressions.DayOfYear", "modulename": "sqlglot.expressions", "qualname": "DayOfYear", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.WeekOfYear": {"fullname": "sqlglot.expressions.WeekOfYear", "modulename": "sqlglot.expressions", "qualname": "WeekOfYear", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.LastDateOfMonth": {"fullname": "sqlglot.expressions.LastDateOfMonth", "modulename": "sqlglot.expressions", "qualname": "LastDateOfMonth", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Extract": {"fullname": "sqlglot.expressions.Extract", "modulename": "sqlglot.expressions", "qualname": "Extract", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimestampAdd": {"fullname": "sqlglot.expressions.TimestampAdd", "modulename": "sqlglot.expressions", "qualname": "TimestampAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampSub": {"fullname": "sqlglot.expressions.TimestampSub", "modulename": "sqlglot.expressions", "qualname": "TimestampSub", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampDiff": {"fullname": "sqlglot.expressions.TimestampDiff", "modulename": "sqlglot.expressions", "qualname": "TimestampDiff", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampTrunc": {"fullname": "sqlglot.expressions.TimestampTrunc", "modulename": "sqlglot.expressions", "qualname": "TimestampTrunc", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeAdd": {"fullname": "sqlglot.expressions.TimeAdd", "modulename": "sqlglot.expressions", "qualname": "TimeAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeSub": {"fullname": "sqlglot.expressions.TimeSub", "modulename": "sqlglot.expressions", "qualname": "TimeSub", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeDiff": {"fullname": "sqlglot.expressions.TimeDiff", "modulename": "sqlglot.expressions", "qualname": "TimeDiff", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeTrunc": {"fullname": "sqlglot.expressions.TimeTrunc", "modulename": "sqlglot.expressions", "qualname": "TimeTrunc", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateFromParts": {"fullname": "sqlglot.expressions.DateFromParts", "modulename": "sqlglot.expressions", "qualname": "DateFromParts", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DateStrToDate": {"fullname": "sqlglot.expressions.DateStrToDate", "modulename": "sqlglot.expressions", "qualname": "DateStrToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DateToDateStr": {"fullname": "sqlglot.expressions.DateToDateStr", "modulename": "sqlglot.expressions", "qualname": "DateToDateStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DateToDi": {"fullname": "sqlglot.expressions.DateToDi", "modulename": "sqlglot.expressions", "qualname": "DateToDi", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Day": {"fullname": "sqlglot.expressions.Day", "modulename": "sqlglot.expressions", "qualname": "Day", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Decode": {"fullname": "sqlglot.expressions.Decode", "modulename": "sqlglot.expressions", "qualname": "Decode", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.DiToDate": {"fullname": "sqlglot.expressions.DiToDate", "modulename": "sqlglot.expressions", "qualname": "DiToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Encode": {"fullname": "sqlglot.expressions.Encode", "modulename": "sqlglot.expressions", "qualname": "Encode", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Exp": {"fullname": "sqlglot.expressions.Exp", "modulename": "sqlglot.expressions", "qualname": "Exp", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Explode": {"fullname": "sqlglot.expressions.Explode", "modulename": "sqlglot.expressions", "qualname": "Explode", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Floor": {"fullname": "sqlglot.expressions.Floor", "modulename": "sqlglot.expressions", "qualname": "Floor", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.FromBase64": {"fullname": "sqlglot.expressions.FromBase64", "modulename": "sqlglot.expressions", "qualname": "FromBase64", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ToBase64": {"fullname": "sqlglot.expressions.ToBase64", "modulename": "sqlglot.expressions", "qualname": "ToBase64", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Greatest": {"fullname": "sqlglot.expressions.Greatest", "modulename": "sqlglot.expressions", "qualname": "Greatest", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.GroupConcat": {"fullname": "sqlglot.expressions.GroupConcat", "modulename": "sqlglot.expressions", "qualname": "GroupConcat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Hex": {"fullname": "sqlglot.expressions.Hex", "modulename": "sqlglot.expressions", "qualname": "Hex", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.If": {"fullname": "sqlglot.expressions.If", "modulename": "sqlglot.expressions", "qualname": "If", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.IfNull": {"fullname": "sqlglot.expressions.IfNull", "modulename": "sqlglot.expressions", "qualname": "IfNull", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Initcap": {"fullname": "sqlglot.expressions.Initcap", "modulename": "sqlglot.expressions", "qualname": "Initcap", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.JSONKeyValue": {"fullname": "sqlglot.expressions.JSONKeyValue", "modulename": "sqlglot.expressions", "qualname": "JSONKeyValue", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.JSONObject": {"fullname": "sqlglot.expressions.JSONObject", "modulename": "sqlglot.expressions", "qualname": "JSONObject", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.OpenJSONColumnDef": {"fullname": "sqlglot.expressions.OpenJSONColumnDef", "modulename": "sqlglot.expressions", "qualname": "OpenJSONColumnDef", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.OpenJSON": {"fullname": "sqlglot.expressions.OpenJSON", "modulename": "sqlglot.expressions", "qualname": "OpenJSON", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.JSONBContains": {"fullname": "sqlglot.expressions.JSONBContains", "modulename": "sqlglot.expressions", "qualname": "JSONBContains", "kind": "class", "doc": "

\n", "bases": "Binary"}, "sqlglot.expressions.JSONExtract": {"fullname": "sqlglot.expressions.JSONExtract", "modulename": "sqlglot.expressions", "qualname": "JSONExtract", "kind": "class", "doc": "

\n", "bases": "Binary, Func"}, "sqlglot.expressions.JSONExtractScalar": {"fullname": "sqlglot.expressions.JSONExtractScalar", "modulename": "sqlglot.expressions", "qualname": "JSONExtractScalar", "kind": "class", "doc": "

\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONBExtract": {"fullname": "sqlglot.expressions.JSONBExtract", "modulename": "sqlglot.expressions", "qualname": "JSONBExtract", "kind": "class", "doc": "

\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONBExtractScalar": {"fullname": "sqlglot.expressions.JSONBExtractScalar", "modulename": "sqlglot.expressions", "qualname": "JSONBExtractScalar", "kind": "class", "doc": "

\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONFormat": {"fullname": "sqlglot.expressions.JSONFormat", "modulename": "sqlglot.expressions", "qualname": "JSONFormat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Least": {"fullname": "sqlglot.expressions.Least", "modulename": "sqlglot.expressions", "qualname": "Least", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Left": {"fullname": "sqlglot.expressions.Left", "modulename": "sqlglot.expressions", "qualname": "Left", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Right": {"fullname": "sqlglot.expressions.Right", "modulename": "sqlglot.expressions", "qualname": "Right", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Length": {"fullname": "sqlglot.expressions.Length", "modulename": "sqlglot.expressions", "qualname": "Length", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Levenshtein": {"fullname": "sqlglot.expressions.Levenshtein", "modulename": "sqlglot.expressions", "qualname": "Levenshtein", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Ln": {"fullname": "sqlglot.expressions.Ln", "modulename": "sqlglot.expressions", "qualname": "Ln", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Log": {"fullname": "sqlglot.expressions.Log", "modulename": "sqlglot.expressions", "qualname": "Log", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Log2": {"fullname": "sqlglot.expressions.Log2", "modulename": "sqlglot.expressions", "qualname": "Log2", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Log10": {"fullname": "sqlglot.expressions.Log10", "modulename": "sqlglot.expressions", "qualname": "Log10", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.LogicalOr": {"fullname": "sqlglot.expressions.LogicalOr", "modulename": "sqlglot.expressions", "qualname": "LogicalOr", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.LogicalAnd": {"fullname": "sqlglot.expressions.LogicalAnd", "modulename": "sqlglot.expressions", "qualname": "LogicalAnd", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Lower": {"fullname": "sqlglot.expressions.Lower", "modulename": "sqlglot.expressions", "qualname": "Lower", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Map": {"fullname": "sqlglot.expressions.Map", "modulename": "sqlglot.expressions", "qualname": "Map", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StarMap": {"fullname": "sqlglot.expressions.StarMap", "modulename": "sqlglot.expressions", "qualname": "StarMap", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.VarMap": {"fullname": "sqlglot.expressions.VarMap", "modulename": "sqlglot.expressions", "qualname": "VarMap", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.MatchAgainst": {"fullname": "sqlglot.expressions.MatchAgainst", "modulename": "sqlglot.expressions", "qualname": "MatchAgainst", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Max": {"fullname": "sqlglot.expressions.Max", "modulename": "sqlglot.expressions", "qualname": "Max", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.MD5": {"fullname": "sqlglot.expressions.MD5", "modulename": "sqlglot.expressions", "qualname": "MD5", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Min": {"fullname": "sqlglot.expressions.Min", "modulename": "sqlglot.expressions", "qualname": "Min", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Month": {"fullname": "sqlglot.expressions.Month", "modulename": "sqlglot.expressions", "qualname": "Month", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Nvl2": {"fullname": "sqlglot.expressions.Nvl2", "modulename": "sqlglot.expressions", "qualname": "Nvl2", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Posexplode": {"fullname": "sqlglot.expressions.Posexplode", "modulename": "sqlglot.expressions", "qualname": "Posexplode", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Pow": {"fullname": "sqlglot.expressions.Pow", "modulename": "sqlglot.expressions", "qualname": "Pow", "kind": "class", "doc": "

\n", "bases": "Binary, Func"}, "sqlglot.expressions.PercentileCont": {"fullname": "sqlglot.expressions.PercentileCont", "modulename": "sqlglot.expressions", "qualname": "PercentileCont", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.PercentileDisc": {"fullname": "sqlglot.expressions.PercentileDisc", "modulename": "sqlglot.expressions", "qualname": "PercentileDisc", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Quantile": {"fullname": "sqlglot.expressions.Quantile", "modulename": "sqlglot.expressions", "qualname": "Quantile", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.ApproxQuantile": {"fullname": "sqlglot.expressions.ApproxQuantile", "modulename": "sqlglot.expressions", "qualname": "ApproxQuantile", "kind": "class", "doc": "

\n", "bases": "Quantile"}, "sqlglot.expressions.RangeN": {"fullname": "sqlglot.expressions.RangeN", "modulename": "sqlglot.expressions", "qualname": "RangeN", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.ReadCSV": {"fullname": "sqlglot.expressions.ReadCSV", "modulename": "sqlglot.expressions", "qualname": "ReadCSV", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Reduce": {"fullname": "sqlglot.expressions.Reduce", "modulename": "sqlglot.expressions", "qualname": "Reduce", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RegexpExtract": {"fullname": "sqlglot.expressions.RegexpExtract", "modulename": "sqlglot.expressions", "qualname": "RegexpExtract", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RegexpLike": {"fullname": "sqlglot.expressions.RegexpLike", "modulename": "sqlglot.expressions", "qualname": "RegexpLike", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RegexpILike": {"fullname": "sqlglot.expressions.RegexpILike", "modulename": "sqlglot.expressions", "qualname": "RegexpILike", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RegexpSplit": {"fullname": "sqlglot.expressions.RegexpSplit", "modulename": "sqlglot.expressions", "qualname": "RegexpSplit", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Repeat": {"fullname": "sqlglot.expressions.Repeat", "modulename": "sqlglot.expressions", "qualname": "Repeat", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Round": {"fullname": "sqlglot.expressions.Round", "modulename": "sqlglot.expressions", "qualname": "Round", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.RowNumber": {"fullname": "sqlglot.expressions.RowNumber", "modulename": "sqlglot.expressions", "qualname": "RowNumber", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.SafeDivide": {"fullname": "sqlglot.expressions.SafeDivide", "modulename": "sqlglot.expressions", "qualname": "SafeDivide", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.SetAgg": {"fullname": "sqlglot.expressions.SetAgg", "modulename": "sqlglot.expressions", "qualname": "SetAgg", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.SHA": {"fullname": "sqlglot.expressions.SHA", "modulename": "sqlglot.expressions", "qualname": "SHA", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.SHA2": {"fullname": "sqlglot.expressions.SHA2", "modulename": "sqlglot.expressions", "qualname": "SHA2", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.SortArray": {"fullname": "sqlglot.expressions.SortArray", "modulename": "sqlglot.expressions", "qualname": "SortArray", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Split": {"fullname": "sqlglot.expressions.Split", "modulename": "sqlglot.expressions", "qualname": "Split", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Substring": {"fullname": "sqlglot.expressions.Substring", "modulename": "sqlglot.expressions", "qualname": "Substring", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StandardHash": {"fullname": "sqlglot.expressions.StandardHash", "modulename": "sqlglot.expressions", "qualname": "StandardHash", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StrPosition": {"fullname": "sqlglot.expressions.StrPosition", "modulename": "sqlglot.expressions", "qualname": "StrPosition", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StrToDate": {"fullname": "sqlglot.expressions.StrToDate", "modulename": "sqlglot.expressions", "qualname": "StrToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StrToTime": {"fullname": "sqlglot.expressions.StrToTime", "modulename": "sqlglot.expressions", "qualname": "StrToTime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StrToUnix": {"fullname": "sqlglot.expressions.StrToUnix", "modulename": "sqlglot.expressions", "qualname": "StrToUnix", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.NumberToStr": {"fullname": "sqlglot.expressions.NumberToStr", "modulename": "sqlglot.expressions", "qualname": "NumberToStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Struct": {"fullname": "sqlglot.expressions.Struct", "modulename": "sqlglot.expressions", "qualname": "Struct", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.StructExtract": {"fullname": "sqlglot.expressions.StructExtract", "modulename": "sqlglot.expressions", "qualname": "StructExtract", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Sum": {"fullname": "sqlglot.expressions.Sum", "modulename": "sqlglot.expressions", "qualname": "Sum", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Sqrt": {"fullname": "sqlglot.expressions.Sqrt", "modulename": "sqlglot.expressions", "qualname": "Sqrt", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Stddev": {"fullname": "sqlglot.expressions.Stddev", "modulename": "sqlglot.expressions", "qualname": "Stddev", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.StddevPop": {"fullname": "sqlglot.expressions.StddevPop", "modulename": "sqlglot.expressions", "qualname": "StddevPop", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.StddevSamp": {"fullname": "sqlglot.expressions.StddevSamp", "modulename": "sqlglot.expressions", "qualname": "StddevSamp", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.TimeToStr": {"fullname": "sqlglot.expressions.TimeToStr", "modulename": "sqlglot.expressions", "qualname": "TimeToStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeToTimeStr": {"fullname": "sqlglot.expressions.TimeToTimeStr", "modulename": "sqlglot.expressions", "qualname": "TimeToTimeStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeToUnix": {"fullname": "sqlglot.expressions.TimeToUnix", "modulename": "sqlglot.expressions", "qualname": "TimeToUnix", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToDate": {"fullname": "sqlglot.expressions.TimeStrToDate", "modulename": "sqlglot.expressions", "qualname": "TimeStrToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToTime": {"fullname": "sqlglot.expressions.TimeStrToTime", "modulename": "sqlglot.expressions", "qualname": "TimeStrToTime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToUnix": {"fullname": "sqlglot.expressions.TimeStrToUnix", "modulename": "sqlglot.expressions", "qualname": "TimeStrToUnix", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Trim": {"fullname": "sqlglot.expressions.Trim", "modulename": "sqlglot.expressions", "qualname": "Trim", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TsOrDsAdd": {"fullname": "sqlglot.expressions.TsOrDsAdd", "modulename": "sqlglot.expressions", "qualname": "TsOrDsAdd", "kind": "class", "doc": "

\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TsOrDsToDateStr": {"fullname": "sqlglot.expressions.TsOrDsToDateStr", "modulename": "sqlglot.expressions", "qualname": "TsOrDsToDateStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TsOrDsToDate": {"fullname": "sqlglot.expressions.TsOrDsToDate", "modulename": "sqlglot.expressions", "qualname": "TsOrDsToDate", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.TsOrDiToDi": {"fullname": "sqlglot.expressions.TsOrDiToDi", "modulename": "sqlglot.expressions", "qualname": "TsOrDiToDi", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Unhex": {"fullname": "sqlglot.expressions.Unhex", "modulename": "sqlglot.expressions", "qualname": "Unhex", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.UnixToStr": {"fullname": "sqlglot.expressions.UnixToStr", "modulename": "sqlglot.expressions", "qualname": "UnixToStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.UnixToTime": {"fullname": "sqlglot.expressions.UnixToTime", "modulename": "sqlglot.expressions", "qualname": "UnixToTime", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.UnixToTimeStr": {"fullname": "sqlglot.expressions.UnixToTimeStr", "modulename": "sqlglot.expressions", "qualname": "UnixToTimeStr", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Upper": {"fullname": "sqlglot.expressions.Upper", "modulename": "sqlglot.expressions", "qualname": "Upper", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Variance": {"fullname": "sqlglot.expressions.Variance", "modulename": "sqlglot.expressions", "qualname": "Variance", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.VariancePop": {"fullname": "sqlglot.expressions.VariancePop", "modulename": "sqlglot.expressions", "qualname": "VariancePop", "kind": "class", "doc": "

\n", "bases": "AggFunc"}, "sqlglot.expressions.Week": {"fullname": "sqlglot.expressions.Week", "modulename": "sqlglot.expressions", "qualname": "Week", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.XMLTable": {"fullname": "sqlglot.expressions.XMLTable", "modulename": "sqlglot.expressions", "qualname": "XMLTable", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Year": {"fullname": "sqlglot.expressions.Year", "modulename": "sqlglot.expressions", "qualname": "Year", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.Use": {"fullname": "sqlglot.expressions.Use", "modulename": "sqlglot.expressions", "qualname": "Use", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.Merge": {"fullname": "sqlglot.expressions.Merge", "modulename": "sqlglot.expressions", "qualname": "Merge", "kind": "class", "doc": "

\n", "bases": "Expression"}, "sqlglot.expressions.When": {"fullname": "sqlglot.expressions.When", "modulename": "sqlglot.expressions", "qualname": "When", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.NextValueFor": {"fullname": "sqlglot.expressions.NextValueFor", "modulename": "sqlglot.expressions", "qualname": "NextValueFor", "kind": "class", "doc": "

\n", "bases": "Func"}, "sqlglot.expressions.maybe_parse": {"fullname": "sqlglot.expressions.maybe_parse", "modulename": "sqlglot.expressions", "qualname": "maybe_parse", "kind": "function", "doc": "

Gracefully handle a possible string or expression.

\n\n
Example:
\n\n
\n
\n
>>> maybe_parse("1")\n(LITERAL this: 1, is_string: False)\n>>> maybe_parse(to_identifier("x"))\n(IDENTIFIER this: x, quoted: False)\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • sql_or_expression: the SQL code string or an expression
  • \n
  • into: the SQLGlot Expression to parse into
  • \n
  • dialect: the dialect used to parse the input expressions (in the case that an\ninput expression is a SQL string).
  • \n
  • prefix: a string to prefix the sql with before it gets parsed\n(automatically includes a space)
  • \n
  • copy: whether or not to copy the expression.
  • \n
  • **opts: other options to use to parse the input expressions (again, in the case\nthat an input expression is a SQL string).
  • \n
\n\n
Returns:
\n\n
\n

Expression: the parsed or given expression.

\n
\n", "signature": "(\tsql_or_expression: Union[str, sqlglot.expressions.Expression],\t*,\tinto: Union[str, Type[sqlglot.expressions.Expression], Collection[Union[str, Type[sqlglot.expressions.Expression]]], NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tprefix: Optional[str] = None,\tcopy: bool = False,\t**opts) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.union": {"fullname": "sqlglot.expressions.union", "modulename": "sqlglot.expressions", "qualname": "union", "kind": "function", "doc": "

Initializes a syntax tree from one UNION expression.

\n\n
Example:
\n\n
\n
\n
>>> union("SELECT * FROM foo", "SELECT * FROM bla").sql()\n'SELECT * FROM foo UNION SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • left: the SQL code string corresponding to the left-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • right: the SQL code string corresponding to the right-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Union instance.

\n
\n", "signature": "(\tleft: Union[str, sqlglot.expressions.Expression],\tright: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Union:", "funcdef": "def"}, "sqlglot.expressions.intersect": {"fullname": "sqlglot.expressions.intersect", "modulename": "sqlglot.expressions", "qualname": "intersect", "kind": "function", "doc": "

Initializes a syntax tree from one INTERSECT expression.

\n\n
Example:
\n\n
\n
\n
>>> intersect("SELECT * FROM foo", "SELECT * FROM bla").sql()\n'SELECT * FROM foo INTERSECT SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • left: the SQL code string corresponding to the left-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • right: the SQL code string corresponding to the right-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Intersect instance.

\n
\n", "signature": "(\tleft: Union[str, sqlglot.expressions.Expression],\tright: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Intersect:", "funcdef": "def"}, "sqlglot.expressions.except_": {"fullname": "sqlglot.expressions.except_", "modulename": "sqlglot.expressions", "qualname": "except_", "kind": "function", "doc": "

Initializes a syntax tree from one EXCEPT expression.

\n\n
Example:
\n\n
\n
\n
>>> except_("SELECT * FROM foo", "SELECT * FROM bla").sql()\n'SELECT * FROM foo EXCEPT SELECT * FROM bla'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • left: the SQL code string corresponding to the left-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • right: the SQL code string corresponding to the right-hand side.\nIf an Expression instance is passed, it will be used as-is.
  • \n
  • distinct: set the DISTINCT flag if and only if this is true.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new Except instance.

\n
\n", "signature": "(\tleft: Union[str, sqlglot.expressions.Expression],\tright: Union[str, sqlglot.expressions.Expression],\tdistinct: bool = True,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Except:", "funcdef": "def"}, "sqlglot.expressions.select": {"fullname": "sqlglot.expressions.select", "modulename": "sqlglot.expressions", "qualname": "select", "kind": "function", "doc": "

Initializes a syntax tree from one or multiple SELECT expressions.

\n\n
Example:
\n\n
\n
\n
>>> select("col1", "col2").from_("tbl").sql()\n'SELECT col1, col2 FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code string to parse as the expressions of a\nSELECT statement. If an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expressions (in the case that an\ninput expression is a SQL string).
  • \n
  • **opts: other options to use to parse the input expressions (again, in the case\nthat an input expression is a SQL string).
  • \n
\n\n
Returns:
\n\n
\n

Select: the syntax tree for the SELECT statement.

\n
\n", "signature": "(\t*expressions: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.from_": {"fullname": "sqlglot.expressions.from_", "modulename": "sqlglot.expressions", "qualname": "from_", "kind": "function", "doc": "

Initializes a syntax tree from a FROM expression.

\n\n
Example:
\n\n
\n
\n
>>> from_("tbl").select("col1", "col2").sql()\n'SELECT col1, col2 FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expression: 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.
  • \n
  • dialect: the dialect used to parse the input expression (in the case that the\ninput expression is a SQL string).
  • \n
  • **opts: other options to use to parse the input expressions (again, in the case\nthat the input expression is a SQL string).
  • \n
\n\n
Returns:
\n\n
\n

Select: the syntax tree for the SELECT statement.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.update": {"fullname": "sqlglot.expressions.update", "modulename": "sqlglot.expressions", "qualname": "update", "kind": "function", "doc": "

Creates an update statement.

\n\n
Example:
\n\n
\n
\n
>>> update("my_table", {"x": 1, "y": "2", "z": None}, from_="baz", where="id > 1").sql()\n"UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *properties: dictionary of properties to set which are\nauto converted to sql objects eg None -> NULL
  • \n
  • where: sql conditional parsed into a WHERE statement
  • \n
  • from_: sql statement parsed into a FROM statement
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Update: the syntax tree for the UPDATE statement.

\n
\n", "signature": "(\ttable: str | sqlglot.expressions.Table,\tproperties: dict,\twhere: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tfrom_: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Update:", "funcdef": "def"}, "sqlglot.expressions.delete": {"fullname": "sqlglot.expressions.delete", "modulename": "sqlglot.expressions", "qualname": "delete", "kind": "function", "doc": "

Builds a delete statement.

\n\n
Example:
\n\n
\n
\n
>>> delete("my_table", where="id > 1").sql()\n'DELETE FROM my_table WHERE id > 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • where: sql conditional parsed into a WHERE statement
  • \n
  • returning: sql conditional parsed into a RETURNING statement
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Delete: the syntax tree for the DELETE statement.

\n
\n", "signature": "(\ttable: Union[str, sqlglot.expressions.Expression],\twhere: Union[str, sqlglot.expressions.Expression, NoneType] = None,\treturning: Union[str, sqlglot.expressions.Expression, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Delete:", "funcdef": "def"}, "sqlglot.expressions.insert": {"fullname": "sqlglot.expressions.insert", "modulename": "sqlglot.expressions", "qualname": "insert", "kind": "function", "doc": "

Builds an INSERT statement.

\n\n
Example:
\n\n
\n
\n
>>> insert("VALUES (1, 2, 3)", "tbl").sql()\n'INSERT INTO tbl VALUES (1, 2, 3)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the sql string or expression of the INSERT statement
  • \n
  • into: the tbl to insert data to.
  • \n
  • columns: optionally the table's column names.
  • \n
  • overwrite: whether to INSERT OVERWRITE or not.
  • \n
  • dialect: the dialect used to parse the input expressions.
  • \n
  • copy: whether or not to copy the expression.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Insert: the syntax tree for the INSERT statement.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tinto: Union[str, sqlglot.expressions.Expression],\tcolumns: Optional[Sequence[Union[str, sqlglot.expressions.Expression]]] = None,\toverwrite: Optional[bool] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Insert:", "funcdef": "def"}, "sqlglot.expressions.condition": {"fullname": "sqlglot.expressions.condition", "modulename": "sqlglot.expressions", "qualname": "condition", "kind": "function", "doc": "

Initialize a logical condition expression.

\n\n
Example:
\n\n
\n
\n
>>> condition("x=1").sql()\n'x = 1'\n
\n
\n \n

This is helpful for composing larger logical syntax trees:

\n \n
\n
>>> where = condition("x=1")\n>>> where = where.and_("y=1")\n>>> Select().from_("tbl").select("*").where(where).sql()\n'SELECT * FROM tbl WHERE x = 1 AND y = 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expression: the SQL code string to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expression (in the case that the\ninput expression is a SQL string).
  • \n
  • copy: Whether or not to copy expression (only applies to expressions).
  • \n
  • **opts: other options to use to parse the input expressions (again, in the case\nthat the input expression is a SQL string).
  • \n
\n\n
Returns:
\n\n
\n

The new Condition instance

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Condition:", "funcdef": "def"}, "sqlglot.expressions.and_": {"fullname": "sqlglot.expressions.and_", "modulename": "sqlglot.expressions", "qualname": "and_", "kind": "function", "doc": "

Combine multiple conditions with an AND logical operator.

\n\n
Example:
\n\n
\n
\n
>>> and_("x=1", and_("y=1", "z=1")).sql()\n'x = 1 AND (y = 1 AND z = 1)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether or not to copy expressions (only applies to Expressions).
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

And: the new condition

\n
\n", "signature": "(\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Condition:", "funcdef": "def"}, "sqlglot.expressions.or_": {"fullname": "sqlglot.expressions.or_", "modulename": "sqlglot.expressions", "qualname": "or_", "kind": "function", "doc": "

Combine multiple conditions with an OR logical operator.

\n\n
Example:
\n\n
\n
\n
>>> or_("x=1", or_("y=1", "z=1")).sql()\n'x = 1 OR (y = 1 OR z = 1)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • *expressions: the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether or not to copy expressions (only applies to Expressions).
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Or: the new condition

\n
\n", "signature": "(\t*expressions: Union[str, sqlglot.expressions.Expression, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Condition:", "funcdef": "def"}, "sqlglot.expressions.not_": {"fullname": "sqlglot.expressions.not_", "modulename": "sqlglot.expressions", "qualname": "not_", "kind": "function", "doc": "

Wrap a condition with a NOT operator.

\n\n
Example:
\n\n
\n
\n
>>> not_("this_suit='black'").sql()\n"NOT this_suit = 'black'"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: whether to copy the expression or not.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

The new condition.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts) -> sqlglot.expressions.Not:", "funcdef": "def"}, "sqlglot.expressions.paren": {"fullname": "sqlglot.expressions.paren", "modulename": "sqlglot.expressions", "qualname": "paren", "kind": "function", "doc": "

Wrap an expression in parentheses.

\n\n
Example:
\n\n
\n
\n
>>> paren("5 + 3").sql()\n'(5 + 3)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code string to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • copy: whether to copy the expression or not.
  • \n
\n\n
Returns:
\n\n
\n

The wrapped expression.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tcopy: bool = True) -> sqlglot.expressions.Paren:", "funcdef": "def"}, "sqlglot.expressions.to_identifier": {"fullname": "sqlglot.expressions.to_identifier", "modulename": "sqlglot.expressions", "qualname": "to_identifier", "kind": "function", "doc": "

Builds an identifier.

\n\n
Arguments:
\n\n
    \n
  • name: The name to turn into an identifier.
  • \n
  • quoted: Whether or not force quote the identifier.
  • \n
  • copy: Whether or not to copy a passed in Identefier node.
  • \n
\n\n
Returns:
\n\n
\n

The identifier ast node.

\n
\n", "signature": "(name, quoted=None, copy=True):", "funcdef": "def"}, "sqlglot.expressions.to_interval": {"fullname": "sqlglot.expressions.to_interval", "modulename": "sqlglot.expressions", "qualname": "to_interval", "kind": "function", "doc": "

Builds an interval expression from a string like '1 day' or '5 months'.

\n", "signature": "(\tinterval: str | sqlglot.expressions.Literal) -> sqlglot.expressions.Interval:", "funcdef": "def"}, "sqlglot.expressions.to_table": {"fullname": "sqlglot.expressions.to_table", "modulename": "sqlglot.expressions", "qualname": "to_table", "kind": "function", "doc": "

Create a table expression from a [catalog].[schema].[table] sql path. Catalog and schema are optional.\nIf a table is passed in then that table is returned.

\n\n
Arguments:
\n\n
    \n
  • sql_path: a [catalog].[schema].[table] string.
  • \n
  • dialect: the source dialect according to which the table name will be parsed.
  • \n
  • kwargs: the kwargs to instantiate the resulting Table expression with.
  • \n
\n\n
Returns:
\n\n
\n

A table expression.

\n
\n", "signature": "(\tsql_path: Union[str, sqlglot.expressions.Table, NoneType],\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**kwargs) -> Optional[sqlglot.expressions.Table]:", "funcdef": "def"}, "sqlglot.expressions.to_column": {"fullname": "sqlglot.expressions.to_column", "modulename": "sqlglot.expressions", "qualname": "to_column", "kind": "function", "doc": "

Create a column from a [table].[column] sql path. Schema is optional.

\n\n

If a column is passed in then that column is returned.

\n\n
Arguments:
\n\n
    \n
  • sql_path: [table].[column] string
  • \n
\n\n
Returns:
\n\n
\n

Table: A column expression

\n
\n", "signature": "(\tsql_path: str | sqlglot.expressions.Column,\t**kwargs) -> sqlglot.expressions.Column:", "funcdef": "def"}, "sqlglot.expressions.alias_": {"fullname": "sqlglot.expressions.alias_", "modulename": "sqlglot.expressions", "qualname": "alias_", "kind": "function", "doc": "

Create an Alias expression.

\n\n
Example:
\n\n
\n
\n
>>> alias_('foo', 'bar').sql()\n'foo AS bar'\n
\n
\n \n
\n
>>> alias_('(select 1, 2)', 'bar', table=['a', 'b']).sql()\n'(SELECT 1, 2) AS bar(a, b)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • alias: the alias name to use. If the name has\nspecial characters it is quoted.
  • \n
  • table: Whether or not to create a table alias, can also be a list of columns.
  • \n
  • quoted: whether or not to quote the alias
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • copy: Whether or not to copy the expression.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

Alias: the aliased expression

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\talias: str | sqlglot.expressions.Identifier,\ttable: Union[bool, Sequence[str | sqlglot.expressions.Identifier]] = False,\tquoted: Optional[bool] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tcopy: bool = True,\t**opts):", "funcdef": "def"}, "sqlglot.expressions.subquery": {"fullname": "sqlglot.expressions.subquery", "modulename": "sqlglot.expressions", "qualname": "subquery", "kind": "function", "doc": "

Build a subquery expression.

\n\n
Example:
\n\n
\n
\n
>>> subquery('select x from tbl', 'bar').select('x').sql()\n'SELECT x FROM (SELECT x FROM tbl) AS bar'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.
  • \n
  • alias: the alias name to use.
  • \n
  • dialect: the dialect used to parse the input expression.
  • \n
  • **opts: other options to use to parse the input expressions.
  • \n
\n\n
Returns:
\n\n
\n

A new Select instance with the subquery expression included.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\talias: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**opts) -> sqlglot.expressions.Select:", "funcdef": "def"}, "sqlglot.expressions.column": {"fullname": "sqlglot.expressions.column", "modulename": "sqlglot.expressions", "qualname": "column", "kind": "function", "doc": "

Build a Column.

\n\n
Arguments:
\n\n
    \n
  • col: Column name.
  • \n
  • table: Table name.
  • \n
  • db: Database name.
  • \n
  • catalog: Catalog name.
  • \n
  • quoted: Whether to force quotes on the column's identifiers.
  • \n
\n\n
Returns:
\n\n
\n

The new Column instance.

\n
\n", "signature": "(\tcol: str | sqlglot.expressions.Identifier,\ttable: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tdb: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tcatalog: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tquoted: Optional[bool] = None) -> sqlglot.expressions.Column:", "funcdef": "def"}, "sqlglot.expressions.cast": {"fullname": "sqlglot.expressions.cast", "modulename": "sqlglot.expressions", "qualname": "cast", "kind": "function", "doc": "

Cast an expression to a data type.

\n\n
Example:
\n\n
\n
\n
>>> cast('x + 1', 'int').sql()\n'CAST(x + 1 AS INT)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: The expression to cast.
  • \n
  • to: The datatype to cast to.
  • \n
\n\n
Returns:
\n\n
\n

The new Cast instance.

\n
\n", "signature": "(\texpression: Union[str, sqlglot.expressions.Expression],\tto: str | sqlglot.expressions.DataType | sqlglot.expressions.DataType.Type,\t**opts) -> sqlglot.expressions.Cast:", "funcdef": "def"}, "sqlglot.expressions.table_": {"fullname": "sqlglot.expressions.table_", "modulename": "sqlglot.expressions", "qualname": "table_", "kind": "function", "doc": "

Build a Table.

\n\n
Arguments:
\n\n
    \n
  • table: Table name.
  • \n
  • db: Database name.
  • \n
  • catalog: Catalog name.
  • \n
  • quote: Whether to force quotes on the table's identifiers.
  • \n
  • alias: Table's alias.
  • \n
\n\n
Returns:
\n\n
\n

The new Table instance.

\n
\n", "signature": "(\ttable: sqlglot.expressions.Identifier | str,\tdb: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tcatalog: Union[sqlglot.expressions.Identifier, str, NoneType] = None,\tquoted: Optional[bool] = None,\talias: Union[sqlglot.expressions.Identifier, str, NoneType] = None) -> sqlglot.expressions.Table:", "funcdef": "def"}, "sqlglot.expressions.values": {"fullname": "sqlglot.expressions.values", "modulename": "sqlglot.expressions", "qualname": "values", "kind": "function", "doc": "

Build VALUES statement.

\n\n
Example:
\n\n
\n
\n
>>> values([(1, '2')]).sql()\n"VALUES (1, '2')"\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • values: values statements that will be converted to SQL
  • \n
  • alias: optional alias
  • \n
  • columns: Optional list of ordered column names or ordered dictionary of column names to types.\nIf either are provided then an alias is also required.
  • \n
\n\n
Returns:
\n\n
\n

Values: the Values expression object

\n
\n", "signature": "(\tvalues: Iterable[Tuple[Any, ...]],\talias: Optional[str] = None,\tcolumns: Union[Iterable[str], Dict[str, sqlglot.expressions.DataType], NoneType] = None) -> sqlglot.expressions.Values:", "funcdef": "def"}, "sqlglot.expressions.var": {"fullname": "sqlglot.expressions.var", "modulename": "sqlglot.expressions", "qualname": "var", "kind": "function", "doc": "

Build a SQL variable.

\n\n
Example:
\n\n
\n
\n
>>> repr(var('x'))\n'(VAR this: x)'\n
\n
\n \n
\n
>>> repr(var(column('x', table='y')))\n'(VAR this: x)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • name: The name of the var or an expression who's name will become the var.
  • \n
\n\n
Returns:
\n\n
\n

The new variable node.

\n
\n", "signature": "(\tname: Union[str, sqlglot.expressions.Expression, NoneType]) -> sqlglot.expressions.Var:", "funcdef": "def"}, "sqlglot.expressions.rename_table": {"fullname": "sqlglot.expressions.rename_table", "modulename": "sqlglot.expressions", "qualname": "rename_table", "kind": "function", "doc": "

Build ALTER TABLE... RENAME... expression

\n\n
Arguments:
\n\n
    \n
  • old_name: The old name of the table
  • \n
  • new_name: The new name of the table
  • \n
\n\n
Returns:
\n\n
\n

Alter table expression

\n
\n", "signature": "(\told_name: str | sqlglot.expressions.Table,\tnew_name: str | sqlglot.expressions.Table) -> sqlglot.expressions.AlterTable:", "funcdef": "def"}, "sqlglot.expressions.convert": {"fullname": "sqlglot.expressions.convert", "modulename": "sqlglot.expressions", "qualname": "convert", "kind": "function", "doc": "

Convert a python value into an expression object.

\n\n

Raises an error if a conversion is not possible.

\n\n
Arguments:
\n\n
    \n
  • value: A python object.
  • \n
  • copy: Whether or not to copy value (only applies to Expressions and collections).
  • \n
\n\n
Returns:
\n\n
\n

Expression: the equivalent expression object.

\n
\n", "signature": "(value: Any, copy: bool = False) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.replace_children": {"fullname": "sqlglot.expressions.replace_children", "modulename": "sqlglot.expressions", "qualname": "replace_children", "kind": "function", "doc": "

Replace children of an expression with the result of a lambda fun(child) -> exp.

\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tfun: Callable,\t*args,\t**kwargs) -> None:", "funcdef": "def"}, "sqlglot.expressions.column_table_names": {"fullname": "sqlglot.expressions.column_table_names", "modulename": "sqlglot.expressions", "qualname": "column_table_names", "kind": "function", "doc": "

Return all table names referenced through columns in an expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> column_table_names(sqlglot.parse_one("a.b AND c.d AND c.e"))\n['c', 'a']\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: expression to find table names.
  • \n
\n\n
Returns:
\n\n
\n

A list of unique names.

\n
\n", "signature": "(expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.expressions.table_name": {"fullname": "sqlglot.expressions.table_name", "modulename": "sqlglot.expressions", "qualname": "table_name", "kind": "function", "doc": "

Get the full name of a table as a string.

\n\n
Arguments:
\n\n
    \n
  • table: table expression node or string.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> from sqlglot import exp, parse_one\n>>> table_name(parse_one("select * from a.b.c").find(exp.Table))\n'a.b.c'\n
\n
\n
\n\n
Returns:
\n\n
\n

The table name.

\n
\n", "signature": "(table: sqlglot.expressions.Table | str) -> str:", "funcdef": "def"}, "sqlglot.expressions.replace_tables": {"fullname": "sqlglot.expressions.replace_tables", "modulename": "sqlglot.expressions", "qualname": "replace_tables", "kind": "function", "doc": "

Replace all tables in expression according to the mapping.

\n\n
Arguments:
\n\n
    \n
  • expression: expression node to be transformed and replaced.
  • \n
  • mapping: mapping of table names.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> from sqlglot import exp, parse_one\n>>> replace_tables(parse_one("select * from a.b"), {"a.b": "c"}).sql()\n'SELECT * FROM c'\n
\n
\n
\n\n
Returns:
\n\n
\n

The mapped expression.

\n
\n", "signature": "(expression: ~E, mapping: Dict[str, str]) -> ~E:", "funcdef": "def"}, "sqlglot.expressions.replace_placeholders": {"fullname": "sqlglot.expressions.replace_placeholders", "modulename": "sqlglot.expressions", "qualname": "replace_placeholders", "kind": "function", "doc": "

Replace placeholders in an expression.

\n\n
Arguments:
\n\n
    \n
  • expression: expression node to be transformed and replaced.
  • \n
  • args: positional names that will substitute unnamed placeholders in the given order.
  • \n
  • kwargs: keyword arguments that will substitute named placeholders.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> from sqlglot import exp, parse_one\n>>> replace_placeholders(\n...     parse_one("select * from :tbl where ? = ?"),\n...     exp.to_identifier("str_col"), "b", tbl=exp.to_identifier("foo")\n... ).sql()\n"SELECT * FROM foo WHERE str_col = 'b'"\n
\n
\n
\n\n
Returns:
\n\n
\n

The mapped expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\t*args,\t**kwargs) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.expand": {"fullname": "sqlglot.expressions.expand", "modulename": "sqlglot.expressions", "qualname": "expand", "kind": "function", "doc": "

Transforms an expression by expanding all referenced sources into subqueries.

\n\n
Examples:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y")}).sql()\n'SELECT * FROM (SELECT * FROM y) AS z /* source: x */'\n
\n
\n \n
\n
>>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y"), "y": parse_one("select * from z")}).sql()\n'SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: The expression to expand.
  • \n
  • sources: A dictionary of name to Subqueryables.
  • \n
  • copy: Whether or not to copy the expression during transformation. Defaults to True.
  • \n
\n\n
Returns:
\n\n
\n

The transformed expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tsources: Dict[str, sqlglot.expressions.Subqueryable],\tcopy: bool = True) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.expressions.func": {"fullname": "sqlglot.expressions.func", "modulename": "sqlglot.expressions", "qualname": "func", "kind": "function", "doc": "

Returns a Func expression.

\n\n
Examples:
\n\n
\n
\n
>>> func("abs", 5).sql()\n'ABS(5)'\n
\n
\n \n
\n
>>> func("cast", this=5, to=DataType.build("DOUBLE")).sql()\n'CAST(5 AS DOUBLE)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • name: the name of the function to build.
  • \n
  • args: the args used to instantiate the function of interest.
  • \n
  • dialect: the source dialect.
  • \n
  • kwargs: the kwargs used to instantiate the function of interest.
  • \n
\n\n
Note:
\n\n
\n

The arguments args and kwargs are mutually exclusive.

\n
\n\n
Returns:
\n\n
\n

An instance of the function of interest, or an anonymous function, if name doesn't\n correspond to an existing sqlglot.expressions.Func class.

\n
\n", "signature": "(\tname: str,\t*args,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**kwargs) -> sqlglot.expressions.Func:", "funcdef": "def"}, "sqlglot.expressions.true": {"fullname": "sqlglot.expressions.true", "modulename": "sqlglot.expressions", "qualname": "true", "kind": "function", "doc": "

Returns a true Boolean expression.

\n", "signature": "() -> sqlglot.expressions.Boolean:", "funcdef": "def"}, "sqlglot.expressions.false": {"fullname": "sqlglot.expressions.false", "modulename": "sqlglot.expressions", "qualname": "false", "kind": "function", "doc": "

Returns a false Boolean expression.

\n", "signature": "() -> sqlglot.expressions.Boolean:", "funcdef": "def"}, "sqlglot.expressions.null": {"fullname": "sqlglot.expressions.null", "modulename": "sqlglot.expressions", "qualname": "null", "kind": "function", "doc": "

Returns a Null expression.

\n", "signature": "() -> sqlglot.expressions.Null:", "funcdef": "def"}, "sqlglot.generator": {"fullname": "sqlglot.generator", "modulename": "sqlglot.generator", "kind": "module", "doc": "

\n"}, "sqlglot.generator.Generator": {"fullname": "sqlglot.generator.Generator", "modulename": "sqlglot.generator", "qualname": "Generator", "kind": "class", "doc": "

Generator interprets the given syntax tree and produces a SQL string as an output.

\n\n
Arguments:
\n\n
    \n
  • time_mapping (dict): the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format
  • \n
  • time_trie (trie): a trie of the time_mapping keys
  • \n
  • pretty (bool): if set to True the returned string will be formatted. Default: False.
  • \n
  • quote_start (str): specifies which starting character to use to delimit quotes. Default: '.
  • \n
  • quote_end (str): specifies which ending character to use to delimit quotes. Default: '.
  • \n
  • identifier_start (str): specifies which starting character to use to delimit identifiers. Default: \".
  • \n
  • identifier_end (str): specifies which ending character to use to delimit identifiers. Default: \".
  • \n
  • bit_start (str): specifies which starting character to use to delimit bit literals. Default: None.
  • \n
  • bit_end (str): specifies which ending character to use to delimit bit literals. Default: None.
  • \n
  • hex_start (str): specifies which starting character to use to delimit hex literals. Default: None.
  • \n
  • hex_end (str): specifies which ending character to use to delimit hex literals. Default: None.
  • \n
  • byte_start (str): specifies which starting character to use to delimit byte literals. Default: None.
  • \n
  • byte_end (str): specifies which ending character to use to delimit byte literals. Default: None.
  • \n
  • raw_start (str): specifies which starting character to use to delimit raw literals. Default: None.
  • \n
  • raw_end (str): specifies which ending character to use to delimit raw literals. Default: None.
  • \n
  • identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.
  • \n
  • normalize (bool): if set to True all identifiers will lower cased
  • \n
  • string_escape (str): specifies a string escape character. Default: '.
  • \n
  • identifier_escape (str): specifies an identifier escape character. Default: \".
  • \n
  • pad (int): determines padding in a formatted string. Default: 2.
  • \n
  • indent (int): determines the size of indentation in a formatted string. Default: 4.
  • \n
  • unnest_column_only (bool): if true unnest table aliases are considered only as column aliases
  • \n
  • normalize_functions (str): normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"
  • \n
  • alias_post_tablesample (bool): if the table alias comes after tablesample\nDefault: False
  • \n
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit\nDefault: False
  • \n
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.
  • \n
  • null_ordering (str): 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\"
  • \n
  • max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • leading_comma (bool): if the the comma is leading or trailing in select statements\nDefault: False
  • \n
  • max_text_width: 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
  • \n
  • comments: Whether or not to preserve comments in the output SQL code.\nDefault: True
  • \n
\n"}, "sqlglot.generator.Generator.__init__": {"fullname": "sqlglot.generator.Generator.__init__", "modulename": "sqlglot.generator", "qualname": "Generator.__init__", "kind": "function", "doc": "

\n", "signature": "(\ttime_mapping=None,\ttime_trie=None,\tpretty=None,\tquote_start=None,\tquote_end=None,\tidentifier_start=None,\tidentifier_end=None,\tbit_start=None,\tbit_end=None,\thex_start=None,\thex_end=None,\tbyte_start=None,\tbyte_end=None,\traw_start=None,\traw_end=None,\tidentify=False,\tnormalize=False,\tstring_escape=None,\tidentifier_escape=None,\tpad=2,\tindent=2,\tindex_offset=0,\tunnest_column_only=False,\talias_post_tablesample=False,\tidentifiers_can_start_with_digit=False,\tnormalize_functions='upper',\tunsupported_level=<ErrorLevel.WARN: 'WARN'>,\tnull_ordering=None,\tmax_unsupported=3,\tleading_comma=False,\tmax_text_width=80,\tcomments=True)"}, "sqlglot.generator.Generator.generate": {"fullname": "sqlglot.generator.Generator.generate", "modulename": "sqlglot.generator", "qualname": "Generator.generate", "kind": "function", "doc": "

Generates a SQL string by interpreting the given syntax tree.

\n\n

Args\n expression: the syntax tree.\n cache: an optional sql string cache. this leverages the hash of an expression which is slow, so only use this if you set _hash on each node.

\n\n

Returns\n the SQL string.

\n", "signature": "(\tself,\texpression: Optional[sqlglot.expressions.Expression],\tcache: Optional[Dict[int, str]] = None) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.unsupported": {"fullname": "sqlglot.generator.Generator.unsupported", "modulename": "sqlglot.generator", "qualname": "Generator.unsupported", "kind": "function", "doc": "

\n", "signature": "(self, message: str) -> None:", "funcdef": "def"}, "sqlglot.generator.Generator.sep": {"fullname": "sqlglot.generator.Generator.sep", "modulename": "sqlglot.generator", "qualname": "Generator.sep", "kind": "function", "doc": "

\n", "signature": "(self, sep: str = ' ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.seg": {"fullname": "sqlglot.generator.Generator.seg", "modulename": "sqlglot.generator", "qualname": "Generator.seg", "kind": "function", "doc": "

\n", "signature": "(self, sql: str, sep: str = ' ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.pad_comment": {"fullname": "sqlglot.generator.Generator.pad_comment", "modulename": "sqlglot.generator", "qualname": "Generator.pad_comment", "kind": "function", "doc": "

\n", "signature": "(self, comment: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.maybe_comment": {"fullname": "sqlglot.generator.Generator.maybe_comment", "modulename": "sqlglot.generator", "qualname": "Generator.maybe_comment", "kind": "function", "doc": "

\n", "signature": "(\tself,\tsql: str,\texpression: Optional[sqlglot.expressions.Expression] = None,\tcomments: Optional[List[str]] = None) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.wrap": {"fullname": "sqlglot.generator.Generator.wrap", "modulename": "sqlglot.generator", "qualname": "Generator.wrap", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression | str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.no_identify": {"fullname": "sqlglot.generator.Generator.no_identify", "modulename": "sqlglot.generator", "qualname": "Generator.no_identify", "kind": "function", "doc": "

\n", "signature": "(self, func: Callable[..., str], *args, **kwargs) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.normalize_func": {"fullname": "sqlglot.generator.Generator.normalize_func", "modulename": "sqlglot.generator", "qualname": "Generator.normalize_func", "kind": "function", "doc": "

\n", "signature": "(self, name: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.indent": {"fullname": "sqlglot.generator.Generator.indent", "modulename": "sqlglot.generator", "qualname": "Generator.indent", "kind": "function", "doc": "

\n", "signature": "(\tself,\tsql: str,\tlevel: int = 0,\tpad: Optional[int] = None,\tskip_first: bool = False,\tskip_last: bool = False) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.sql": {"fullname": "sqlglot.generator.Generator.sql", "modulename": "sqlglot.generator", "qualname": "Generator.sql", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: Union[str, sqlglot.expressions.Expression, NoneType],\tkey: Optional[str] = None,\tcomment: bool = True) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.uncache_sql": {"fullname": "sqlglot.generator.Generator.uncache_sql", "modulename": "sqlglot.generator", "qualname": "Generator.uncache_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Uncache) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.cache_sql": {"fullname": "sqlglot.generator.Generator.cache_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cache_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Cache) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.characterset_sql": {"fullname": "sqlglot.generator.Generator.characterset_sql", "modulename": "sqlglot.generator", "qualname": "Generator.characterset_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.CharacterSet) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.column_sql": {"fullname": "sqlglot.generator.Generator.column_sql", "modulename": "sqlglot.generator", "qualname": "Generator.column_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Column) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.columnposition_sql": {"fullname": "sqlglot.generator.Generator.columnposition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columnposition_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ColumnPosition) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.columndef_sql": {"fullname": "sqlglot.generator.Generator.columndef_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columndef_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ColumnDef, sep: str = ' ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.columnconstraint_sql": {"fullname": "sqlglot.generator.Generator.columnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.autoincrementcolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, _) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.compresscolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.compresscolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.CompressColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.generatedasidentitycolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.GeneratedAsIdentityColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.notnullcolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.notnullcolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NotNullColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.primarykeycolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.primarykeycolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.PrimaryKeyColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.uniquecolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.uniquecolumnconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.UniqueColumnConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.create_sql": {"fullname": "sqlglot.generator.Generator.create_sql", "modulename": "sqlglot.generator", "qualname": "Generator.create_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Create) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.clone_sql": {"fullname": "sqlglot.generator.Generator.clone_sql", "modulename": "sqlglot.generator", "qualname": "Generator.clone_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Clone) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.describe_sql": {"fullname": "sqlglot.generator.Generator.describe_sql", "modulename": "sqlglot.generator", "qualname": "Generator.describe_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Describe) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.prepend_ctes": {"fullname": "sqlglot.generator.Generator.prepend_ctes", "modulename": "sqlglot.generator", "qualname": "Generator.prepend_ctes", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression, sql: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.with_sql": {"fullname": "sqlglot.generator.Generator.with_sql", "modulename": "sqlglot.generator", "qualname": "Generator.with_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.With) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.cte_sql": {"fullname": "sqlglot.generator.Generator.cte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cte_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.CTE) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tablealias_sql": {"fullname": "sqlglot.generator.Generator.tablealias_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tablealias_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.TableAlias) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitstring_sql": {"fullname": "sqlglot.generator.Generator.bitstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitstring_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitString) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.hexstring_sql": {"fullname": "sqlglot.generator.Generator.hexstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.hexstring_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.HexString) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bytestring_sql": {"fullname": "sqlglot.generator.Generator.bytestring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bytestring_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ByteString) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.rawstring_sql": {"fullname": "sqlglot.generator.Generator.rawstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rawstring_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.RawString) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.datatypesize_sql": {"fullname": "sqlglot.generator.Generator.datatypesize_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datatypesize_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DataTypeSize) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.datatype_sql": {"fullname": "sqlglot.generator.Generator.datatype_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datatype_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DataType) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.directory_sql": {"fullname": "sqlglot.generator.Generator.directory_sql", "modulename": "sqlglot.generator", "qualname": "Generator.directory_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Directory) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.delete_sql": {"fullname": "sqlglot.generator.Generator.delete_sql", "modulename": "sqlglot.generator", "qualname": "Generator.delete_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Delete) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.drop_sql": {"fullname": "sqlglot.generator.Generator.drop_sql", "modulename": "sqlglot.generator", "qualname": "Generator.drop_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Drop) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.except_sql": {"fullname": "sqlglot.generator.Generator.except_sql", "modulename": "sqlglot.generator", "qualname": "Generator.except_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Except) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.except_op": {"fullname": "sqlglot.generator.Generator.except_op", "modulename": "sqlglot.generator", "qualname": "Generator.except_op", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Except) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.fetch_sql": {"fullname": "sqlglot.generator.Generator.fetch_sql", "modulename": "sqlglot.generator", "qualname": "Generator.fetch_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Fetch) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.filter_sql": {"fullname": "sqlglot.generator.Generator.filter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.filter_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Filter) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.hint_sql": {"fullname": "sqlglot.generator.Generator.hint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.hint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Hint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.index_sql": {"fullname": "sqlglot.generator.Generator.index_sql", "modulename": "sqlglot.generator", "qualname": "Generator.index_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Index) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.identifier_sql": {"fullname": "sqlglot.generator.Generator.identifier_sql", "modulename": "sqlglot.generator", "qualname": "Generator.identifier_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Identifier) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.inputoutputformat_sql": {"fullname": "sqlglot.generator.Generator.inputoutputformat_sql", "modulename": "sqlglot.generator", "qualname": "Generator.inputoutputformat_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.InputOutputFormat) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.national_sql": {"fullname": "sqlglot.generator.Generator.national_sql", "modulename": "sqlglot.generator", "qualname": "Generator.national_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.National, prefix: str = 'N') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.partition_sql": {"fullname": "sqlglot.generator.Generator.partition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.partition_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Partition) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.properties_sql": {"fullname": "sqlglot.generator.Generator.properties_sql", "modulename": "sqlglot.generator", "qualname": "Generator.properties_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.root_properties": {"fullname": "sqlglot.generator.Generator.root_properties", "modulename": "sqlglot.generator", "qualname": "Generator.root_properties", "kind": "function", "doc": "

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.properties": {"fullname": "sqlglot.generator.Generator.properties", "modulename": "sqlglot.generator", "qualname": "Generator.properties", "kind": "function", "doc": "

\n", "signature": "(\tself,\tproperties: sqlglot.expressions.Properties,\tprefix: str = '',\tsep: str = ', ',\tsuffix: str = '',\twrapped: bool = True) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.with_properties": {"fullname": "sqlglot.generator.Generator.with_properties", "modulename": "sqlglot.generator", "qualname": "Generator.with_properties", "kind": "function", "doc": "

\n", "signature": "(self, properties: sqlglot.expressions.Properties) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.locate_properties": {"fullname": "sqlglot.generator.Generator.locate_properties", "modulename": "sqlglot.generator", "qualname": "Generator.locate_properties", "kind": "function", "doc": "

\n", "signature": "(\tself,\tproperties: sqlglot.expressions.Properties) -> Dict[sqlglot.expressions.Properties.Location, list[sqlglot.expressions.Property]]:", "funcdef": "def"}, "sqlglot.generator.Generator.property_sql": {"fullname": "sqlglot.generator.Generator.property_sql", "modulename": "sqlglot.generator", "qualname": "Generator.property_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Property) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.likeproperty_sql": {"fullname": "sqlglot.generator.Generator.likeproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.likeproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LikeProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.fallbackproperty_sql": {"fullname": "sqlglot.generator.Generator.fallbackproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.fallbackproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.FallbackProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.journalproperty_sql": {"fullname": "sqlglot.generator.Generator.journalproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.journalproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.JournalProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.freespaceproperty_sql": {"fullname": "sqlglot.generator.Generator.freespaceproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.freespaceproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.FreespaceProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.checksumproperty_sql": {"fullname": "sqlglot.generator.Generator.checksumproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.checksumproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ChecksumProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"fullname": "sqlglot.generator.Generator.mergeblockratioproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mergeblockratioproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MergeBlockRatioProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"fullname": "sqlglot.generator.Generator.datablocksizeproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datablocksizeproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DataBlocksizeProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"fullname": "sqlglot.generator.Generator.blockcompressionproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.blockcompressionproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BlockCompressionProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"fullname": "sqlglot.generator.Generator.isolatedloadingproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.isolatedloadingproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.IsolatedLoadingProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lockingproperty_sql": {"fullname": "sqlglot.generator.Generator.lockingproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lockingproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LockingProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.withdataproperty_sql": {"fullname": "sqlglot.generator.Generator.withdataproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.withdataproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.WithDataProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.insert_sql": {"fullname": "sqlglot.generator.Generator.insert_sql", "modulename": "sqlglot.generator", "qualname": "Generator.insert_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Insert) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.intersect_sql": {"fullname": "sqlglot.generator.Generator.intersect_sql", "modulename": "sqlglot.generator", "qualname": "Generator.intersect_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Intersect) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.intersect_op": {"fullname": "sqlglot.generator.Generator.intersect_op", "modulename": "sqlglot.generator", "qualname": "Generator.intersect_op", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Intersect) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.introducer_sql": {"fullname": "sqlglot.generator.Generator.introducer_sql", "modulename": "sqlglot.generator", "qualname": "Generator.introducer_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Introducer) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.pseudotype_sql": {"fullname": "sqlglot.generator.Generator.pseudotype_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pseudotype_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.PseudoType) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.onconflict_sql": {"fullname": "sqlglot.generator.Generator.onconflict_sql", "modulename": "sqlglot.generator", "qualname": "Generator.onconflict_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.OnConflict) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.returning_sql": {"fullname": "sqlglot.generator.Generator.returning_sql", "modulename": "sqlglot.generator", "qualname": "Generator.returning_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Returning) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"fullname": "sqlglot.generator.Generator.rowformatdelimitedproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rowformatdelimitedproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.RowFormatDelimitedProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.table_sql": {"fullname": "sqlglot.generator.Generator.table_sql", "modulename": "sqlglot.generator", "qualname": "Generator.table_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Table, sep: str = ' AS ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tablesample_sql": {"fullname": "sqlglot.generator.Generator.tablesample_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tablesample_sql", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.TableSample,\tseed_prefix: str = 'SEED',\tsep=' AS ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.pivot_sql": {"fullname": "sqlglot.generator.Generator.pivot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pivot_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Pivot) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tuple_sql": {"fullname": "sqlglot.generator.Generator.tuple_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tuple_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Tuple) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.update_sql": {"fullname": "sqlglot.generator.Generator.update_sql", "modulename": "sqlglot.generator", "qualname": "Generator.update_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Update) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.values_sql": {"fullname": "sqlglot.generator.Generator.values_sql", "modulename": "sqlglot.generator", "qualname": "Generator.values_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Values) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.var_sql": {"fullname": "sqlglot.generator.Generator.var_sql", "modulename": "sqlglot.generator", "qualname": "Generator.var_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Var) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.into_sql": {"fullname": "sqlglot.generator.Generator.into_sql", "modulename": "sqlglot.generator", "qualname": "Generator.into_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Into) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.from_sql": {"fullname": "sqlglot.generator.Generator.from_sql", "modulename": "sqlglot.generator", "qualname": "Generator.from_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.From) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.group_sql": {"fullname": "sqlglot.generator.Generator.group_sql", "modulename": "sqlglot.generator", "qualname": "Generator.group_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Group) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.having_sql": {"fullname": "sqlglot.generator.Generator.having_sql", "modulename": "sqlglot.generator", "qualname": "Generator.having_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Having) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.join_sql": {"fullname": "sqlglot.generator.Generator.join_sql", "modulename": "sqlglot.generator", "qualname": "Generator.join_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Join) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lambda_sql": {"fullname": "sqlglot.generator.Generator.lambda_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lambda_sql", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.Lambda,\tarrow_sep: str = '->') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lateral_sql": {"fullname": "sqlglot.generator.Generator.lateral_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lateral_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Lateral) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.limit_sql": {"fullname": "sqlglot.generator.Generator.limit_sql", "modulename": "sqlglot.generator", "qualname": "Generator.limit_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Limit) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.offset_sql": {"fullname": "sqlglot.generator.Generator.offset_sql", "modulename": "sqlglot.generator", "qualname": "Generator.offset_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Offset) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.setitem_sql": {"fullname": "sqlglot.generator.Generator.setitem_sql", "modulename": "sqlglot.generator", "qualname": "Generator.setitem_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.SetItem) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.set_sql": {"fullname": "sqlglot.generator.Generator.set_sql", "modulename": "sqlglot.generator", "qualname": "Generator.set_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Set) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.pragma_sql": {"fullname": "sqlglot.generator.Generator.pragma_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pragma_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Pragma) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lock_sql": {"fullname": "sqlglot.generator.Generator.lock_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lock_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Lock) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.literal_sql": {"fullname": "sqlglot.generator.Generator.literal_sql", "modulename": "sqlglot.generator", "qualname": "Generator.literal_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Literal) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.loaddata_sql": {"fullname": "sqlglot.generator.Generator.loaddata_sql", "modulename": "sqlglot.generator", "qualname": "Generator.loaddata_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LoadData) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.null_sql": {"fullname": "sqlglot.generator.Generator.null_sql", "modulename": "sqlglot.generator", "qualname": "Generator.null_sql", "kind": "function", "doc": "

\n", "signature": "(self, *_) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.boolean_sql": {"fullname": "sqlglot.generator.Generator.boolean_sql", "modulename": "sqlglot.generator", "qualname": "Generator.boolean_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Boolean) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.order_sql": {"fullname": "sqlglot.generator.Generator.order_sql", "modulename": "sqlglot.generator", "qualname": "Generator.order_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Order, flat: bool = False) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.cluster_sql": {"fullname": "sqlglot.generator.Generator.cluster_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cluster_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Cluster) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.distribute_sql": {"fullname": "sqlglot.generator.Generator.distribute_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distribute_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Distribute) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.sort_sql": {"fullname": "sqlglot.generator.Generator.sort_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sort_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Sort) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.ordered_sql": {"fullname": "sqlglot.generator.Generator.ordered_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ordered_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Ordered) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.matchrecognize_sql": {"fullname": "sqlglot.generator.Generator.matchrecognize_sql", "modulename": "sqlglot.generator", "qualname": "Generator.matchrecognize_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MatchRecognize) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.query_modifiers": {"fullname": "sqlglot.generator.Generator.query_modifiers", "modulename": "sqlglot.generator", "qualname": "Generator.query_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression, *sqls: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.after_having_modifiers": {"fullname": "sqlglot.generator.Generator.after_having_modifiers", "modulename": "sqlglot.generator", "qualname": "Generator.after_having_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.generator.Generator.after_limit_modifiers": {"fullname": "sqlglot.generator.Generator.after_limit_modifiers", "modulename": "sqlglot.generator", "qualname": "Generator.after_limit_modifiers", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> List[str]:", "funcdef": "def"}, "sqlglot.generator.Generator.select_sql": {"fullname": "sqlglot.generator.Generator.select_sql", "modulename": "sqlglot.generator", "qualname": "Generator.select_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Select) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.schema_sql": {"fullname": "sqlglot.generator.Generator.schema_sql", "modulename": "sqlglot.generator", "qualname": "Generator.schema_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Schema) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.star_sql": {"fullname": "sqlglot.generator.Generator.star_sql", "modulename": "sqlglot.generator", "qualname": "Generator.star_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Star) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.parameter_sql": {"fullname": "sqlglot.generator.Generator.parameter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.parameter_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Parameter) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.sessionparameter_sql": {"fullname": "sqlglot.generator.Generator.sessionparameter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sessionparameter_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.SessionParameter) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.placeholder_sql": {"fullname": "sqlglot.generator.Generator.placeholder_sql", "modulename": "sqlglot.generator", "qualname": "Generator.placeholder_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Placeholder) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.subquery_sql": {"fullname": "sqlglot.generator.Generator.subquery_sql", "modulename": "sqlglot.generator", "qualname": "Generator.subquery_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Subquery, sep: str = ' AS ') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.qualify_sql": {"fullname": "sqlglot.generator.Generator.qualify_sql", "modulename": "sqlglot.generator", "qualname": "Generator.qualify_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Qualify) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.union_sql": {"fullname": "sqlglot.generator.Generator.union_sql", "modulename": "sqlglot.generator", "qualname": "Generator.union_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Union) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.union_op": {"fullname": "sqlglot.generator.Generator.union_op", "modulename": "sqlglot.generator", "qualname": "Generator.union_op", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Union) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.unnest_sql": {"fullname": "sqlglot.generator.Generator.unnest_sql", "modulename": "sqlglot.generator", "qualname": "Generator.unnest_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Unnest) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.where_sql": {"fullname": "sqlglot.generator.Generator.where_sql", "modulename": "sqlglot.generator", "qualname": "Generator.where_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Where) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.window_sql": {"fullname": "sqlglot.generator.Generator.window_sql", "modulename": "sqlglot.generator", "qualname": "Generator.window_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Window) -> str:", "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": "

\n", "signature": "(\tself,\texpression: sqlglot.expressions.Window | sqlglot.expressions.MatchRecognize) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.windowspec_sql": {"fullname": "sqlglot.generator.Generator.windowspec_sql", "modulename": "sqlglot.generator", "qualname": "Generator.windowspec_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.WindowSpec) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.withingroup_sql": {"fullname": "sqlglot.generator.Generator.withingroup_sql", "modulename": "sqlglot.generator", "qualname": "Generator.withingroup_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.WithinGroup) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.between_sql": {"fullname": "sqlglot.generator.Generator.between_sql", "modulename": "sqlglot.generator", "qualname": "Generator.between_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Between) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bracket_sql": {"fullname": "sqlglot.generator.Generator.bracket_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bracket_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Bracket) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.all_sql": {"fullname": "sqlglot.generator.Generator.all_sql", "modulename": "sqlglot.generator", "qualname": "Generator.all_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.All) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.any_sql": {"fullname": "sqlglot.generator.Generator.any_sql", "modulename": "sqlglot.generator", "qualname": "Generator.any_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Any) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.exists_sql": {"fullname": "sqlglot.generator.Generator.exists_sql", "modulename": "sqlglot.generator", "qualname": "Generator.exists_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Exists) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.case_sql": {"fullname": "sqlglot.generator.Generator.case_sql", "modulename": "sqlglot.generator", "qualname": "Generator.case_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Case) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.constraint_sql": {"fullname": "sqlglot.generator.Generator.constraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.constraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Constraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.nextvaluefor_sql": {"fullname": "sqlglot.generator.Generator.nextvaluefor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nextvaluefor_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NextValueFor) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.extract_sql": {"fullname": "sqlglot.generator.Generator.extract_sql", "modulename": "sqlglot.generator", "qualname": "Generator.extract_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Extract) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.trim_sql": {"fullname": "sqlglot.generator.Generator.trim_sql", "modulename": "sqlglot.generator", "qualname": "Generator.trim_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Trim) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.concat_sql": {"fullname": "sqlglot.generator.Generator.concat_sql", "modulename": "sqlglot.generator", "qualname": "Generator.concat_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Concat) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.check_sql": {"fullname": "sqlglot.generator.Generator.check_sql", "modulename": "sqlglot.generator", "qualname": "Generator.check_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Check) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.foreignkey_sql": {"fullname": "sqlglot.generator.Generator.foreignkey_sql", "modulename": "sqlglot.generator", "qualname": "Generator.foreignkey_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ForeignKey) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.primarykey_sql": {"fullname": "sqlglot.generator.Generator.primarykey_sql", "modulename": "sqlglot.generator", "qualname": "Generator.primarykey_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ForeignKey) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.if_sql": {"fullname": "sqlglot.generator.Generator.if_sql", "modulename": "sqlglot.generator", "qualname": "Generator.if_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.If) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.matchagainst_sql": {"fullname": "sqlglot.generator.Generator.matchagainst_sql", "modulename": "sqlglot.generator", "qualname": "Generator.matchagainst_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MatchAgainst) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"fullname": "sqlglot.generator.Generator.jsonkeyvalue_sql", "modulename": "sqlglot.generator", "qualname": "Generator.jsonkeyvalue_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.JSONKeyValue) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.jsonobject_sql": {"fullname": "sqlglot.generator.Generator.jsonobject_sql", "modulename": "sqlglot.generator", "qualname": "Generator.jsonobject_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.JSONObject) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"fullname": "sqlglot.generator.Generator.openjsoncolumndef_sql", "modulename": "sqlglot.generator", "qualname": "Generator.openjsoncolumndef_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.OpenJSONColumnDef) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.openjson_sql": {"fullname": "sqlglot.generator.Generator.openjson_sql", "modulename": "sqlglot.generator", "qualname": "Generator.openjson_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.OpenJSON) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.in_sql": {"fullname": "sqlglot.generator.Generator.in_sql", "modulename": "sqlglot.generator", "qualname": "Generator.in_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.In) -> str:", "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": "

\n", "signature": "(self, unnest: sqlglot.expressions.Unnest) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.interval_sql": {"fullname": "sqlglot.generator.Generator.interval_sql", "modulename": "sqlglot.generator", "qualname": "Generator.interval_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Interval) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.return_sql": {"fullname": "sqlglot.generator.Generator.return_sql", "modulename": "sqlglot.generator", "qualname": "Generator.return_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Return) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.reference_sql": {"fullname": "sqlglot.generator.Generator.reference_sql", "modulename": "sqlglot.generator", "qualname": "Generator.reference_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Reference) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.anonymous_sql": {"fullname": "sqlglot.generator.Generator.anonymous_sql", "modulename": "sqlglot.generator", "qualname": "Generator.anonymous_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Anonymous) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.paren_sql": {"fullname": "sqlglot.generator.Generator.paren_sql", "modulename": "sqlglot.generator", "qualname": "Generator.paren_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Paren) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.neg_sql": {"fullname": "sqlglot.generator.Generator.neg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.neg_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Neg) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.not_sql": {"fullname": "sqlglot.generator.Generator.not_sql", "modulename": "sqlglot.generator", "qualname": "Generator.not_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Not) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.alias_sql": {"fullname": "sqlglot.generator.Generator.alias_sql", "modulename": "sqlglot.generator", "qualname": "Generator.alias_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Alias) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.aliases_sql": {"fullname": "sqlglot.generator.Generator.aliases_sql", "modulename": "sqlglot.generator", "qualname": "Generator.aliases_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Aliases) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.attimezone_sql": {"fullname": "sqlglot.generator.Generator.attimezone_sql", "modulename": "sqlglot.generator", "qualname": "Generator.attimezone_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.AtTimeZone) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.add_sql": {"fullname": "sqlglot.generator.Generator.add_sql", "modulename": "sqlglot.generator", "qualname": "Generator.add_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Add) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.and_sql": {"fullname": "sqlglot.generator.Generator.and_sql", "modulename": "sqlglot.generator", "qualname": "Generator.and_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.And) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.connector_sql": {"fullname": "sqlglot.generator.Generator.connector_sql", "modulename": "sqlglot.generator", "qualname": "Generator.connector_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Connector, op: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseand_sql": {"fullname": "sqlglot.generator.Generator.bitwiseand_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseand_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseAnd) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"fullname": "sqlglot.generator.Generator.bitwiseleftshift_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseleftshift_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseLeftShift) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwisenot_sql": {"fullname": "sqlglot.generator.Generator.bitwisenot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwisenot_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseNot) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseor_sql": {"fullname": "sqlglot.generator.Generator.bitwiseor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseor_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseOr) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"fullname": "sqlglot.generator.Generator.bitwiserightshift_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiserightshift_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseRightShift) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.bitwisexor_sql": {"fullname": "sqlglot.generator.Generator.bitwisexor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwisexor_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.BitwiseXor) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.cast_sql": {"fullname": "sqlglot.generator.Generator.cast_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cast_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Cast) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.currentdate_sql": {"fullname": "sqlglot.generator.Generator.currentdate_sql", "modulename": "sqlglot.generator", "qualname": "Generator.currentdate_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.CurrentDate) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.collate_sql": {"fullname": "sqlglot.generator.Generator.collate_sql", "modulename": "sqlglot.generator", "qualname": "Generator.collate_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Collate) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.command_sql": {"fullname": "sqlglot.generator.Generator.command_sql", "modulename": "sqlglot.generator", "qualname": "Generator.command_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Command) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.comment_sql": {"fullname": "sqlglot.generator.Generator.comment_sql", "modulename": "sqlglot.generator", "qualname": "Generator.comment_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Comment) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mergetreettlaction_sql": {"fullname": "sqlglot.generator.Generator.mergetreettlaction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mergetreettlaction_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MergeTreeTTLAction) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mergetreettl_sql": {"fullname": "sqlglot.generator.Generator.mergetreettl_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mergetreettl_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.MergeTreeTTL) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.transaction_sql": {"fullname": "sqlglot.generator.Generator.transaction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.transaction_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Transaction) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.commit_sql": {"fullname": "sqlglot.generator.Generator.commit_sql", "modulename": "sqlglot.generator", "qualname": "Generator.commit_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Commit) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.rollback_sql": {"fullname": "sqlglot.generator.Generator.rollback_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rollback_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Rollback) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.altercolumn_sql": {"fullname": "sqlglot.generator.Generator.altercolumn_sql", "modulename": "sqlglot.generator", "qualname": "Generator.altercolumn_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.AlterColumn) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.renametable_sql": {"fullname": "sqlglot.generator.Generator.renametable_sql", "modulename": "sqlglot.generator", "qualname": "Generator.renametable_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.RenameTable) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.altertable_sql": {"fullname": "sqlglot.generator.Generator.altertable_sql", "modulename": "sqlglot.generator", "qualname": "Generator.altertable_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.AlterTable) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.droppartition_sql": {"fullname": "sqlglot.generator.Generator.droppartition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.droppartition_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DropPartition) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.addconstraint_sql": {"fullname": "sqlglot.generator.Generator.addconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.addconstraint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.AddConstraint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.distinct_sql": {"fullname": "sqlglot.generator.Generator.distinct_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distinct_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Distinct) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.ignorenulls_sql": {"fullname": "sqlglot.generator.Generator.ignorenulls_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ignorenulls_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.IgnoreNulls) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.respectnulls_sql": {"fullname": "sqlglot.generator.Generator.respectnulls_sql", "modulename": "sqlglot.generator", "qualname": "Generator.respectnulls_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.RespectNulls) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.intdiv_sql": {"fullname": "sqlglot.generator.Generator.intdiv_sql", "modulename": "sqlglot.generator", "qualname": "Generator.intdiv_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.IntDiv) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.dpipe_sql": {"fullname": "sqlglot.generator.Generator.dpipe_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dpipe_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DPipe) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.div_sql": {"fullname": "sqlglot.generator.Generator.div_sql", "modulename": "sqlglot.generator", "qualname": "Generator.div_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Div) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.overlaps_sql": {"fullname": "sqlglot.generator.Generator.overlaps_sql", "modulename": "sqlglot.generator", "qualname": "Generator.overlaps_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Overlaps) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.distance_sql": {"fullname": "sqlglot.generator.Generator.distance_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distance_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Distance) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.dot_sql": {"fullname": "sqlglot.generator.Generator.dot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dot_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Dot) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.eq_sql": {"fullname": "sqlglot.generator.Generator.eq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.eq_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.EQ) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.escape_sql": {"fullname": "sqlglot.generator.Generator.escape_sql", "modulename": "sqlglot.generator", "qualname": "Generator.escape_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Escape) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.glob_sql": {"fullname": "sqlglot.generator.Generator.glob_sql", "modulename": "sqlglot.generator", "qualname": "Generator.glob_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Glob) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.gt_sql": {"fullname": "sqlglot.generator.Generator.gt_sql", "modulename": "sqlglot.generator", "qualname": "Generator.gt_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.GT) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.gte_sql": {"fullname": "sqlglot.generator.Generator.gte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.gte_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.GTE) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.ilike_sql": {"fullname": "sqlglot.generator.Generator.ilike_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ilike_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ILike) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.ilikeany_sql": {"fullname": "sqlglot.generator.Generator.ilikeany_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ilikeany_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ILikeAny) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.is_sql": {"fullname": "sqlglot.generator.Generator.is_sql", "modulename": "sqlglot.generator", "qualname": "Generator.is_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Is) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.like_sql": {"fullname": "sqlglot.generator.Generator.like_sql", "modulename": "sqlglot.generator", "qualname": "Generator.like_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Like) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.likeany_sql": {"fullname": "sqlglot.generator.Generator.likeany_sql", "modulename": "sqlglot.generator", "qualname": "Generator.likeany_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LikeAny) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.similarto_sql": {"fullname": "sqlglot.generator.Generator.similarto_sql", "modulename": "sqlglot.generator", "qualname": "Generator.similarto_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.SimilarTo) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lt_sql": {"fullname": "sqlglot.generator.Generator.lt_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lt_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LT) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.lte_sql": {"fullname": "sqlglot.generator.Generator.lte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lte_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.LTE) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mod_sql": {"fullname": "sqlglot.generator.Generator.mod_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mod_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Mod) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.mul_sql": {"fullname": "sqlglot.generator.Generator.mul_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mul_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Mul) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.neq_sql": {"fullname": "sqlglot.generator.Generator.neq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.neq_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NEQ) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.nullsafeeq_sql": {"fullname": "sqlglot.generator.Generator.nullsafeeq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nullsafeeq_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NullSafeEQ) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.nullsafeneq_sql": {"fullname": "sqlglot.generator.Generator.nullsafeneq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nullsafeneq_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.NullSafeNEQ) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.or_sql": {"fullname": "sqlglot.generator.Generator.or_sql", "modulename": "sqlglot.generator", "qualname": "Generator.or_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Or) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.slice_sql": {"fullname": "sqlglot.generator.Generator.slice_sql", "modulename": "sqlglot.generator", "qualname": "Generator.slice_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Slice) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.sub_sql": {"fullname": "sqlglot.generator.Generator.sub_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sub_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Sub) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.trycast_sql": {"fullname": "sqlglot.generator.Generator.trycast_sql", "modulename": "sqlglot.generator", "qualname": "Generator.trycast_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.TryCast) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.use_sql": {"fullname": "sqlglot.generator.Generator.use_sql", "modulename": "sqlglot.generator", "qualname": "Generator.use_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Use) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.binary": {"fullname": "sqlglot.generator.Generator.binary", "modulename": "sqlglot.generator", "qualname": "Generator.binary", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Binary, op: str) -> str:", "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": "

\n", "signature": "(self, expression: sqlglot.expressions.Func) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.func": {"fullname": "sqlglot.generator.Generator.func", "modulename": "sqlglot.generator", "qualname": "Generator.func", "kind": "function", "doc": "

\n", "signature": "(\tself,\tname: str,\t*args: Union[str, sqlglot.expressions.Expression, NoneType]) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.format_args": {"fullname": "sqlglot.generator.Generator.format_args", "modulename": "sqlglot.generator", "qualname": "Generator.format_args", "kind": "function", "doc": "

\n", "signature": "(self, *args: Union[str, sqlglot.expressions.Expression, NoneType]) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.text_width": {"fullname": "sqlglot.generator.Generator.text_width", "modulename": "sqlglot.generator", "qualname": "Generator.text_width", "kind": "function", "doc": "

\n", "signature": "(self, args: Iterable) -> int:", "funcdef": "def"}, "sqlglot.generator.Generator.format_time": {"fullname": "sqlglot.generator.Generator.format_time", "modulename": "sqlglot.generator", "qualname": "Generator.format_time", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression) -> Optional[str]:", "funcdef": "def"}, "sqlglot.generator.Generator.expressions": {"fullname": "sqlglot.generator.Generator.expressions", "modulename": "sqlglot.generator", "qualname": "Generator.expressions", "kind": "function", "doc": "

\n", "signature": "(\tself,\texpression: Optional[sqlglot.expressions.Expression] = None,\tkey: Optional[str] = None,\tsqls: Optional[List[str]] = None,\tflat: bool = False,\tindent: bool = True,\tsep: str = ', ',\tprefix: str = '') -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.op_expressions": {"fullname": "sqlglot.generator.Generator.op_expressions", "modulename": "sqlglot.generator", "qualname": "Generator.op_expressions", "kind": "function", "doc": "

\n", "signature": "(\tself,\top: str,\texpression: sqlglot.expressions.Expression,\tflat: bool = False) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.naked_property": {"fullname": "sqlglot.generator.Generator.naked_property", "modulename": "sqlglot.generator", "qualname": "Generator.naked_property", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Property) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.set_operation": {"fullname": "sqlglot.generator.Generator.set_operation", "modulename": "sqlglot.generator", "qualname": "Generator.set_operation", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Expression, op: str) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tag_sql": {"fullname": "sqlglot.generator.Generator.tag_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tag_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Tag) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.token_sql": {"fullname": "sqlglot.generator.Generator.token_sql", "modulename": "sqlglot.generator", "qualname": "Generator.token_sql", "kind": "function", "doc": "

\n", "signature": "(self, token_type: sqlglot.tokens.TokenType) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"fullname": "sqlglot.generator.Generator.userdefinedfunction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.userdefinedfunction_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.UserDefinedFunction) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.joinhint_sql": {"fullname": "sqlglot.generator.Generator.joinhint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.joinhint_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.JoinHint) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.kwarg_sql": {"fullname": "sqlglot.generator.Generator.kwarg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.kwarg_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Kwarg) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.when_sql": {"fullname": "sqlglot.generator.Generator.when_sql", "modulename": "sqlglot.generator", "qualname": "Generator.when_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.When) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.merge_sql": {"fullname": "sqlglot.generator.Generator.merge_sql", "modulename": "sqlglot.generator", "qualname": "Generator.merge_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.Merge) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.tochar_sql": {"fullname": "sqlglot.generator.Generator.tochar_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tochar_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.ToChar) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.dictproperty_sql": {"fullname": "sqlglot.generator.Generator.dictproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dictproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DictProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.dictrange_sql": {"fullname": "sqlglot.generator.Generator.dictrange_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dictrange_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DictRange) -> str:", "funcdef": "def"}, "sqlglot.generator.Generator.dictsubproperty_sql": {"fullname": "sqlglot.generator.Generator.dictsubproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dictsubproperty_sql", "kind": "function", "doc": "

\n", "signature": "(self, expression: sqlglot.expressions.DictSubProperty) -> str:", "funcdef": "def"}, "sqlglot.generator.cached_generator": {"fullname": "sqlglot.generator.cached_generator", "modulename": "sqlglot.generator", "qualname": "cached_generator", "kind": "function", "doc": "

Returns a cached generator.

\n", "signature": "(\tcache: Optional[Dict[int, str]] = None) -> Callable[[sqlglot.expressions.Expression], str]:", "funcdef": "def"}, "sqlglot.helper": {"fullname": "sqlglot.helper", "modulename": "sqlglot.helper", "kind": "module", "doc": "

\n"}, "sqlglot.helper.AutoName": {"fullname": "sqlglot.helper.AutoName", "modulename": "sqlglot.helper", "qualname": "AutoName", "kind": "class", "doc": "

This is used for creating enum classes where auto() is the string form of the corresponding value's name.

\n", "bases": "enum.Enum"}, "sqlglot.helper.seq_get": {"fullname": "sqlglot.helper.seq_get", "modulename": "sqlglot.helper", "qualname": "seq_get", "kind": "function", "doc": "

Returns the value in seq at position index, or None if index is out of bounds.

\n", "signature": "(seq: Sequence[~T], index: int) -> Optional[~T]:", "funcdef": "def"}, "sqlglot.helper.ensure_list": {"fullname": "sqlglot.helper.ensure_list", "modulename": "sqlglot.helper", "qualname": "ensure_list", "kind": "function", "doc": "

Ensures that a value is a list, otherwise casts or wraps it into one.

\n\n
Arguments:
\n\n
    \n
  • value: the value of interest.
  • \n
\n\n
Returns:
\n\n
\n

The value cast as a list if it's a list or a tuple, or else the value wrapped in a list.

\n
\n", "signature": "(value):", "funcdef": "def"}, "sqlglot.helper.ensure_collection": {"fullname": "sqlglot.helper.ensure_collection", "modulename": "sqlglot.helper", "qualname": "ensure_collection", "kind": "function", "doc": "

Ensures that a value is a collection (excluding str and bytes), otherwise wraps it into a list.

\n\n
Arguments:
\n\n
    \n
  • value: the value of interest.
  • \n
\n\n
Returns:
\n\n
\n

The value if it's a collection, or else the value wrapped in a list.

\n
\n", "signature": "(value):", "funcdef": "def"}, "sqlglot.helper.csv": {"fullname": "sqlglot.helper.csv", "modulename": "sqlglot.helper", "qualname": "csv", "kind": "function", "doc": "

Formats any number of string arguments as CSV.

\n\n
Arguments:
\n\n
    \n
  • args: the string arguments to format.
  • \n
  • sep: the argument separator.
  • \n
\n\n
Returns:
\n\n
\n

The arguments formatted as a CSV string.

\n
\n", "signature": "(*args: str, sep: str = ', ') -> str:", "funcdef": "def"}, "sqlglot.helper.subclasses": {"fullname": "sqlglot.helper.subclasses", "modulename": "sqlglot.helper", "qualname": "subclasses", "kind": "function", "doc": "

Returns all subclasses for a collection of classes, possibly excluding some of them.

\n\n
Arguments:
\n\n
    \n
  • module_name: the name of the module to search for subclasses in.
  • \n
  • classes: class(es) we want to find the subclasses of.
  • \n
  • exclude: class(es) we want to exclude from the returned list.
  • \n
\n\n
Returns:
\n\n
\n

The target subclasses.

\n
\n", "signature": "(\tmodule_name: str,\tclasses: Union[Type, Tuple[Type, ...]],\texclude: Union[Type, Tuple[Type, ...]] = ()) -> List[Type]:", "funcdef": "def"}, "sqlglot.helper.apply_index_offset": {"fullname": "sqlglot.helper.apply_index_offset", "modulename": "sqlglot.helper", "qualname": "apply_index_offset", "kind": "function", "doc": "

Applies an offset to a given integer literal expression.

\n\n
Arguments:
\n\n
    \n
  • this: the target of the index
  • \n
  • expressions: the expression the offset will be applied to, wrapped in a list.
  • \n
  • offset: the offset that will be applied.
  • \n
\n\n
Returns:
\n\n
\n

The original expression with the offset applied to it, wrapped in a list. If the provided\n expressions argument contains more than one expressions, it's returned unaffected.

\n
\n", "signature": "(\tthis: sqlglot.expressions.Expression,\texpressions: List[Optional[~E]],\toffset: int) -> List[Optional[~E]]:", "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": "

Converts name from camelCase to snake_case and returns the result.

\n", "signature": "(name: str) -> str:", "funcdef": "def"}, "sqlglot.helper.while_changing": {"fullname": "sqlglot.helper.while_changing", "modulename": "sqlglot.helper", "qualname": "while_changing", "kind": "function", "doc": "

Applies a transformation to a given expression until a fix point is reached.

\n\n
Arguments:
\n\n
    \n
  • expression: the expression to be transformed.
  • \n
  • func: the transformation to be applied.
  • \n
\n\n
Returns:
\n\n
\n

The transformed expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tfunc: Callable[[sqlglot.expressions.Expression], ~E]) -> ~E:", "funcdef": "def"}, "sqlglot.helper.tsort": {"fullname": "sqlglot.helper.tsort", "modulename": "sqlglot.helper", "qualname": "tsort", "kind": "function", "doc": "

Sorts a given directed acyclic graph in topological order.

\n\n
Arguments:
\n\n
    \n
  • dag: the graph to be sorted.
  • \n
\n\n
Returns:
\n\n
\n

A list that contains all of the graph's nodes in topological order.

\n
\n", "signature": "(dag: Dict[~T, List[~T]]) -> List[~T]:", "funcdef": "def"}, "sqlglot.helper.open_file": {"fullname": "sqlglot.helper.open_file", "modulename": "sqlglot.helper", "qualname": "open_file", "kind": "function", "doc": "

Open a file that may be compressed as gzip and return it in universal newline mode.

\n", "signature": "(file_name: str) -> <class 'TextIO'>:", "funcdef": "def"}, "sqlglot.helper.csv_reader": {"fullname": "sqlglot.helper.csv_reader", "modulename": "sqlglot.helper", "qualname": "csv_reader", "kind": "function", "doc": "

Returns a csv reader given the expression READ_CSV(name, ['delimiter', '|', ...]).

\n\n
Arguments:
\n\n
    \n
  • read_csv: a ReadCSV function call
  • \n
\n\n
Yields:
\n\n
\n

A python csv reader.

\n
\n", "signature": "(read_csv: sqlglot.expressions.ReadCSV) -> Any:", "funcdef": "def"}, "sqlglot.helper.find_new_name": {"fullname": "sqlglot.helper.find_new_name", "modulename": "sqlglot.helper", "qualname": "find_new_name", "kind": "function", "doc": "

Searches for a new name.

\n\n
Arguments:
\n\n
    \n
  • taken: a collection of taken names.
  • \n
  • base: base name to alter.
  • \n
\n\n
Returns:
\n\n
\n

The new, available name.

\n
\n", "signature": "(taken: Collection[str], base: str) -> str:", "funcdef": "def"}, "sqlglot.helper.name_sequence": {"fullname": "sqlglot.helper.name_sequence", "modulename": "sqlglot.helper", "qualname": "name_sequence", "kind": "function", "doc": "

Returns a name generator given a prefix (e.g. a0, a1, a2, ... if the prefix is \"a\").

\n", "signature": "(prefix: str) -> Callable[[], str]:", "funcdef": "def"}, "sqlglot.helper.object_to_dict": {"fullname": "sqlglot.helper.object_to_dict", "modulename": "sqlglot.helper", "qualname": "object_to_dict", "kind": "function", "doc": "

Returns a dictionary created from an object's attributes.

\n", "signature": "(obj: Any, **kwargs) -> Dict:", "funcdef": "def"}, "sqlglot.helper.split_num_words": {"fullname": "sqlglot.helper.split_num_words", "modulename": "sqlglot.helper", "qualname": "split_num_words", "kind": "function", "doc": "

Perform a split on a value and return N words as a result with None used for words that don't exist.

\n\n
Arguments:
\n\n
    \n
  • value: the value to be split.
  • \n
  • sep: the value to use to split on.
  • \n
  • min_num_words: the minimum number of words that are going to be in the result.
  • \n
  • fill_from_start: indicates that if None values should be inserted at the start or end of the list.
  • \n
\n\n
Examples:
\n\n
\n
\n
>>> split_num_words("db.table", ".", 3)\n[None, 'db', 'table']\n>>> split_num_words("db.table", ".", 3, fill_from_start=False)\n['db', 'table', None]\n>>> split_num_words("db.table", ".", 1)\n['db', 'table']\n
\n
\n
\n\n
Returns:
\n\n
\n

The list of words returned by split, possibly augmented by a number of None values.

\n
\n", "signature": "(\tvalue: str,\tsep: str,\tmin_num_words: int,\tfill_from_start: bool = True) -> List[Optional[str]]:", "funcdef": "def"}, "sqlglot.helper.is_iterable": {"fullname": "sqlglot.helper.is_iterable", "modulename": "sqlglot.helper", "qualname": "is_iterable", "kind": "function", "doc": "

Checks if the value is an iterable, excluding the types str and bytes.

\n\n
Examples:
\n\n
\n
\n
>>> is_iterable([1,2])\nTrue\n>>> is_iterable("test")\nFalse\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • value: the value to check if it is an iterable.
  • \n
\n\n
Returns:
\n\n
\n

A bool value indicating if it is an iterable.

\n
\n", "signature": "(value: Any) -> bool:", "funcdef": "def"}, "sqlglot.helper.flatten": {"fullname": "sqlglot.helper.flatten", "modulename": "sqlglot.helper", "qualname": "flatten", "kind": "function", "doc": "

Flattens an iterable that can contain both iterable and non-iterable elements. Objects of\ntype str and bytes are not regarded as iterables.

\n\n
Examples:
\n\n
\n
\n
>>> list(flatten([[1, 2], 3, {4}, (5, "bla")]))\n[1, 2, 3, 4, 5, 'bla']\n>>> list(flatten([1, 2, 3]))\n[1, 2, 3]\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • values: the value to be flattened.
  • \n
\n\n
Yields:
\n\n
\n

Non-iterable elements in values.

\n
\n", "signature": "(values: Iterable[Union[Iterable[Any], Any]]) -> Iterator[Any]:", "funcdef": "def"}, "sqlglot.helper.dict_depth": {"fullname": "sqlglot.helper.dict_depth", "modulename": "sqlglot.helper", "qualname": "dict_depth", "kind": "function", "doc": "

Get the nesting depth of a dictionary.

\n\n
For example:
\n\n
\n
\n
>>> dict_depth(None)\n0\n>>> dict_depth({})\n1\n>>> dict_depth({"a": "b"})\n1\n>>> dict_depth({"a": {}})\n2\n>>> dict_depth({"a": {"b": {}}})\n3\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • d (dict): dictionary
  • \n
\n\n
Returns:
\n\n
\n

int: depth

\n
\n", "signature": "(d: Dict) -> int:", "funcdef": "def"}, "sqlglot.helper.first": {"fullname": "sqlglot.helper.first", "modulename": "sqlglot.helper", "qualname": "first", "kind": "function", "doc": "

Returns the first element from an iterable.

\n\n

Useful for sets.

\n", "signature": "(it: Iterable[~T]) -> ~T:", "funcdef": "def"}, "sqlglot.helper.case_sensitive": {"fullname": "sqlglot.helper.case_sensitive", "modulename": "sqlglot.helper", "qualname": "case_sensitive", "kind": "function", "doc": "

Checks if text contains any case sensitive characters depending on dialect.

\n", "signature": "(\ttext: str,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType]) -> bool:", "funcdef": "def"}, "sqlglot.helper.should_identify": {"fullname": "sqlglot.helper.should_identify", "modulename": "sqlglot.helper", "qualname": "should_identify", "kind": "function", "doc": "

Checks if text should be identified given an identify option.

\n\n
Arguments:
\n\n
    \n
  • text: the text to check.
  • \n
  • identify: \"always\" or True: always returns true.\n\"safe\": true if there is no uppercase or lowercase character in text, depending on dialect.
  • \n
  • dialect: the dialect to use in order to decide whether a text should be identified.
  • \n
\n\n
Returns:
\n\n
\n

Whether or not a string should be identified.

\n
\n", "signature": "(\ttext: str,\tidentify: str | bool,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> bool:", "funcdef": "def"}, "sqlglot.lineage": {"fullname": "sqlglot.lineage", "modulename": "sqlglot.lineage", "kind": "module", "doc": "

\n"}, "sqlglot.lineage.Node": {"fullname": "sqlglot.lineage.Node", "modulename": "sqlglot.lineage", "qualname": "Node", "kind": "class", "doc": "

\n"}, "sqlglot.lineage.Node.__init__": {"fullname": "sqlglot.lineage.Node.__init__", "modulename": "sqlglot.lineage", "qualname": "Node.__init__", "kind": "function", "doc": "

\n", "signature": "(\tname: str,\texpression: sqlglot.expressions.Expression,\tsource: sqlglot.expressions.Expression,\tdownstream: List[sqlglot.lineage.Node] = <factory>,\talias: str = '')"}, "sqlglot.lineage.Node.walk": {"fullname": "sqlglot.lineage.Node.walk", "modulename": "sqlglot.lineage", "qualname": "Node.walk", "kind": "function", "doc": "

\n", "signature": "(self) -> Iterator[sqlglot.lineage.Node]:", "funcdef": "def"}, "sqlglot.lineage.Node.to_html": {"fullname": "sqlglot.lineage.Node.to_html", "modulename": "sqlglot.lineage", "qualname": "Node.to_html", "kind": "function", "doc": "

\n", "signature": "(self, **opts) -> sqlglot.lineage.LineageHTML:", "funcdef": "def"}, "sqlglot.lineage.lineage": {"fullname": "sqlglot.lineage.lineage", "modulename": "sqlglot.lineage", "qualname": "lineage", "kind": "function", "doc": "

Build the lineage graph for a column of a SQL query.

\n\n
Arguments:
\n\n
    \n
  • column: The column to build the lineage for.
  • \n
  • sql: The SQL string or expression.
  • \n
  • schema: The schema of tables.
  • \n
  • sources: A mapping of queries which will be used to continue building lineage.
  • \n
  • dialect: The dialect of input SQL.
  • \n
  • **kwargs: Qualification optimizer kwargs.
  • \n
\n\n
Returns:
\n\n
\n

A lineage node.

\n
\n", "signature": "(\tcolumn: str | sqlglot.expressions.Column,\tsql: str | sqlglot.expressions.Expression,\tschema: Union[Dict, sqlglot.schema.Schema, NoneType] = None,\tsources: Optional[Dict[str, str | sqlglot.expressions.Subqueryable]] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\t**kwargs) -> sqlglot.lineage.Node:", "funcdef": "def"}, "sqlglot.lineage.LineageHTML": {"fullname": "sqlglot.lineage.LineageHTML", "modulename": "sqlglot.lineage", "qualname": "LineageHTML", "kind": "class", "doc": "

Node to HTML generator using vis.js.

\n\n

https://visjs.github.io/vis-network/docs/network/

\n"}, "sqlglot.lineage.LineageHTML.__init__": {"fullname": "sqlglot.lineage.LineageHTML.__init__", "modulename": "sqlglot.lineage", "qualname": "LineageHTML.__init__", "kind": "function", "doc": "

\n", "signature": "(\tnode: sqlglot.lineage.Node,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\timports: bool = True,\t**opts: Any)"}, "sqlglot.optimizer": {"fullname": "sqlglot.optimizer", "modulename": "sqlglot.optimizer", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.annotate_types": {"fullname": "sqlglot.optimizer.annotate_types", "modulename": "sqlglot.optimizer.annotate_types", "kind": "module", "doc": "

\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": "

Recursively infer & annotate types in an expression syntax tree against a schema.\nAssumes that we've already executed the optimizer's qualify_columns step.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> schema = {"y": {"cola": "SMALLINT"}}\n>>> sql = "SELECT x.cola + 2.5 AS cola FROM (SELECT y.cola AS cola FROM y AS y) AS x"\n>>> annotated_expr = annotate_types(sqlglot.parse_one(sql), schema=schema)\n>>> annotated_expr.expressions[0].type.this  # Get the type of "x.cola + 2.5 AS cola"\n<Type.DOUBLE: 'DOUBLE'>\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): Expression to annotate.
  • \n
  • schema (dict|sqlglot.optimizer.Schema): Database schema.
  • \n
  • annotators (dict): Maps expression type to corresponding annotation function.
  • \n
  • coerces_to (dict): Maps expression type to set of types that it can be coerced into.
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: expression annotated with types

\n
\n", "signature": "(expression, schema=None, annotators=None, coerces_to=None):", "funcdef": "def"}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator", "kind": "class", "doc": "

\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": "

\n", "signature": "(schema=None, annotators=None, coerces_to=None)"}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator.annotate", "kind": "function", "doc": "

\n", "signature": "(self, expression):", "funcdef": "def"}, "sqlglot.optimizer.canonicalize": {"fullname": "sqlglot.optimizer.canonicalize", "modulename": "sqlglot.optimizer.canonicalize", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.canonicalize.canonicalize": {"fullname": "sqlglot.optimizer.canonicalize.canonicalize", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "canonicalize", "kind": "function", "doc": "

Converts a sql expression into a standard form.

\n\n

This method relies on annotate_types because many of the\nconversions rely on type inference.

\n\n
Arguments:
\n\n
    \n
  • expression: The expression to canonicalize.
  • \n
\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "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": "

\n", "signature": "(node: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.optimizer.canonicalize.coerce_type": {"fullname": "sqlglot.optimizer.canonicalize.coerce_type", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "coerce_type", "kind": "function", "doc": "

\n", "signature": "(node: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "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": "

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "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": "

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.optimizer.eliminate_ctes": {"fullname": "sqlglot.optimizer.eliminate_ctes", "modulename": "sqlglot.optimizer.eliminate_ctes", "kind": "module", "doc": "

\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": "

Remove unused CTEs from an expression.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sql = "WITH y AS (SELECT a FROM x) SELECT a FROM z"\n>>> expression = sqlglot.parse_one(sql)\n>>> eliminate_ctes(expression).sql()\n'SELECT a FROM z'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.eliminate_joins": {"fullname": "sqlglot.optimizer.eliminate_joins", "modulename": "sqlglot.optimizer.eliminate_joins", "kind": "module", "doc": "

\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": "

Remove unused joins from an expression.

\n\n

This only removes joins when we know that the join condition doesn't produce duplicate rows.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sql = "SELECT x.a FROM x LEFT JOIN (SELECT DISTINCT y.b FROM y) AS y ON x.b = y.b"\n>>> expression = sqlglot.parse_one(sql)\n>>> eliminate_joins(expression).sql()\n'SELECT x.a FROM x'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression):", "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": "

Extract the join condition from a join expression.

\n\n
Arguments:
\n\n
    \n
  • join (exp.Join)
  • \n
\n\n
Returns:
\n\n
\n

tuple[list[str], list[str], exp.Expression]:\n Tuple of (source key, join key, remaining predicate)

\n
\n", "signature": "(join):", "funcdef": "def"}, "sqlglot.optimizer.eliminate_subqueries": {"fullname": "sqlglot.optimizer.eliminate_subqueries", "modulename": "sqlglot.optimizer.eliminate_subqueries", "kind": "module", "doc": "

\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": "

Rewrite derived tables as CTES, deduplicating if possible.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT a FROM (SELECT * FROM x) AS y")\n>>> eliminate_subqueries(expression).sql()\n'WITH y AS (SELECT * FROM x) SELECT a FROM y AS y'\n
\n
\n
\n\n
This also deduplicates common subqueries:
\n\n
\n
\n
>>> expression = sqlglot.parse_one("SELECT a FROM (SELECT * FROM x) AS y CROSS JOIN (SELECT * FROM x) AS z")\n>>> eliminate_subqueries(expression).sql()\n'WITH y AS (SELECT * FROM x) SELECT a FROM y AS y CROSS JOIN y AS z'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.isolate_table_selects": {"fullname": "sqlglot.optimizer.isolate_table_selects", "modulename": "sqlglot.optimizer.isolate_table_selects", "kind": "module", "doc": "

\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": "

\n", "signature": "(expression, schema=None):", "funcdef": "def"}, "sqlglot.optimizer.merge_subqueries": {"fullname": "sqlglot.optimizer.merge_subqueries", "modulename": "sqlglot.optimizer.merge_subqueries", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to merge derived tables into the outer query.

\n\n

This also merges CTEs if they are selected from only once.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT a FROM (SELECT x.a FROM x) CROSS JOIN y")\n>>> merge_subqueries(expression).sql()\n'SELECT x.a FROM x CROSS JOIN y'\n
\n
\n
\n\n

If leave_tables_isolated is True, this will not merge inner queries into outer\nqueries if it would result in multiple table selects in a single query:

\n\n
\n
\n
\n

expression = sqlglot.parse_one(\"SELECT a FROM (SELECT x.a FROM x) CROSS JOIN y\")\n merge_subqueries(expression, leave_tables_isolated=True).sql()\n 'SELECT a FROM (SELECT x.a FROM x) CROSS JOIN y'

\n
\n
\n
\n\n

Inspired by https://dev.mysql.com/doc/refman/8.0/en/derived-table-optimization.html

\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
  • leave_tables_isolated (bool):
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression, leave_tables_isolated=False):", "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": "

\n", "signature": "(expression, leave_tables_isolated=False):", "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": "

\n", "signature": "(expression, leave_tables_isolated=False):", "funcdef": "def"}, "sqlglot.optimizer.normalize": {"fullname": "sqlglot.optimizer.normalize", "modulename": "sqlglot.optimizer.normalize", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.normalize.normalize": {"fullname": "sqlglot.optimizer.normalize.normalize", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalize", "kind": "function", "doc": "

Rewrite sqlglot AST into conjunctive normal form or disjunctive normal form.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("(x AND y) OR z")\n>>> normalize(expression, dnf=False).sql()\n'(x OR z) AND (y OR z)'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: expression to normalize
  • \n
  • dnf: rewrite in disjunctive normal form instead.
  • \n
  • max_distance (int): the maximal estimated distance from cnf/dnf to attempt conversion
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: normalized expression

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tdnf: bool = False,\tmax_distance: int = 128):", "funcdef": "def"}, "sqlglot.optimizer.normalize.normalized": {"fullname": "sqlglot.optimizer.normalize.normalized", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalized", "kind": "function", "doc": "

\n", "signature": "(expression, dnf=False):", "funcdef": "def"}, "sqlglot.optimizer.normalize.normalization_distance": {"fullname": "sqlglot.optimizer.normalize.normalization_distance", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalization_distance", "kind": "function", "doc": "

The difference in the number of predicates between the current expression and the normalized form.

\n\n

This is used as an estimate of the cost of the conversion which is exponential in complexity.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("(a AND b) OR (c AND d)")\n>>> normalization_distance(expression)\n4\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to compute distance
  • \n
  • dnf (bool): compute to dnf distance instead
  • \n
\n\n
Returns:
\n\n
\n

int: difference

\n
\n", "signature": "(expression, dnf=False):", "funcdef": "def"}, "sqlglot.optimizer.normalize.distributive_law": {"fullname": "sqlglot.optimizer.normalize.distributive_law", "modulename": "sqlglot.optimizer.normalize", "qualname": "distributive_law", "kind": "function", "doc": "

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)

\n", "signature": "(expression, dnf, max_distance, generate):", "funcdef": "def"}, "sqlglot.optimizer.normalize_identifiers": {"fullname": "sqlglot.optimizer.normalize_identifiers", "modulename": "sqlglot.optimizer.normalize_identifiers", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"fullname": "sqlglot.optimizer.normalize_identifiers.normalize_identifiers", "modulename": "sqlglot.optimizer.normalize_identifiers", "qualname": "normalize_identifiers", "kind": "function", "doc": "

Normalize all unquoted identifiers to either lower or upper case, depending on\nthe dialect. This essentially makes those identifiers case-insensitive.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one('SELECT Bar.A AS A FROM "Foo".Bar')\n>>> normalize_identifiers(expression).sql()\n'SELECT bar.a AS a FROM "Foo".bar'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: The expression to transform.
  • \n
  • dialect: The dialect to use in order to decide how to normalize identifiers.
  • \n
\n\n
Returns:
\n\n
\n

The transformed expression.

\n
\n", "signature": "(\texpression: ~E,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> ~E:", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins": {"fullname": "sqlglot.optimizer.optimize_joins", "modulename": "sqlglot.optimizer.optimize_joins", "kind": "module", "doc": "

\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": "

Removes cross joins if possible and reorder joins based on predicate dependencies.

\n\n
Example:
\n\n
\n
\n
>>> from sqlglot import parse_one\n>>> optimize_joins(parse_one("SELECT * FROM x CROSS JOIN y JOIN z ON x.a = z.a AND y.a = z.a")).sql()\n'SELECT * FROM x JOIN z ON x.a = z.a AND TRUE JOIN y ON y.a = z.a'\n
\n
\n
\n", "signature": "(expression):", "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": "

Reorder joins by topological sort order based on predicate references.

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins.normalize": {"fullname": "sqlglot.optimizer.optimize_joins.normalize", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "normalize", "kind": "function", "doc": "

Remove INNER and OUTER from joins as they are optional.

\n", "signature": "(expression):", "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": "

\n", "signature": "(join, exclude):", "funcdef": "def"}, "sqlglot.optimizer.optimizer": {"fullname": "sqlglot.optimizer.optimizer", "modulename": "sqlglot.optimizer.optimizer", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.optimizer.optimize": {"fullname": "sqlglot.optimizer.optimizer.optimize", "modulename": "sqlglot.optimizer.optimizer", "qualname": "optimize", "kind": "function", "doc": "

Rewrite a sqlglot AST into an optimized form.

\n\n
Arguments:
\n\n
    \n
  • expression: expression to optimize
  • \n
  • schema: database schema.\nThis can either be an instance of sqlglot.optimizer.Schema 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 sqlgot.schema will be used
  • \n
  • db: specify the default database, as might be set by a USE DATABASE db statement
  • \n
  • catalog: specify the default catalog, as might be set by a USE CATALOG c statement
  • \n
  • dialect: The dialect to parse the sql string.
  • \n
  • rules: sequence of optimizer rules to use.\nMany of the rules require tables and columns to be qualified.\nDo not remove qualify from the sequence of rules unless you know what you're doing!
  • \n
  • *kwargs: If a rule has a keyword argument with a same name in *kwargs, it will be passed in.
  • \n
\n\n
Returns:
\n\n
\n

The optimized expression.

\n
\n", "signature": "(\texpression: str | sqlglot.expressions.Expression,\tschema: Union[dict, sqlglot.schema.Schema, NoneType] = None,\tdb: Optional[str] = None,\tcatalog: Optional[str] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\trules: Sequence[Callable] = (<function qualify at 0x7fe11813a560>, <function pushdown_projections at 0x7fe118139f30>, <function normalize at 0x7fe11814a0e0>, <function unnest_subqueries at 0x7fe11813a950>, <function pushdown_predicates at 0x7fe118138e50>, <function optimize_joins at 0x7fe118138af0>, <function eliminate_subqueries at 0x7fe11814bd90>, <function merge_subqueries at 0x7fe11814be20>, <function eliminate_joins at 0x7fe118149f30>, <function eliminate_ctes at 0x7fe118149e10>, <function quote_identifiers at 0x7fe118139ea0>, <function annotate_types at 0x7fe11818a560>, <function canonicalize at 0x7fe118149870>, <function simplify at 0x7fe11814a290>),\t**kwargs) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates": {"fullname": "sqlglot.optimizer.pushdown_predicates", "modulename": "sqlglot.optimizer.pushdown_predicates", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to pushdown predicates in FROMS and JOINS

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a FROM x AS x) AS y WHERE y.a = 1"\n>>> expression = sqlglot.parse_one(sql)\n>>> pushdown_predicates(expression).sql()\n'SELECT y.a AS a FROM (SELECT x.a AS a FROM x AS x WHERE x.a = 1) AS y WHERE TRUE'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown", "kind": "function", "doc": "

\n", "signature": "(condition, sources, scope_ref_count):", "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": "

If the predicates are in CNF like form, we can simply replace each block in the parent.

\n", "signature": "(predicates, scope, scope_ref_count):", "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": "

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.

\n", "signature": "(predicates, scope, scope_ref_count):", "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": "

\n", "signature": "(predicate, sources, scope_ref_count):", "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": "

\n", "signature": "(source, predicate):", "funcdef": "def"}, "sqlglot.optimizer.pushdown_projections": {"fullname": "sqlglot.optimizer.pushdown_projections", "modulename": "sqlglot.optimizer.pushdown_projections", "kind": "module", "doc": "

\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": "

\n", "signature": "():", "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": "

Rewrite sqlglot AST to remove unused columns projections.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a, x.b AS b FROM x) AS y"\n>>> expression = sqlglot.parse_one(sql)\n>>> pushdown_projections(expression).sql()\n'SELECT y.a AS a FROM (SELECT x.a AS a FROM x) AS y'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to optimize
  • \n
  • remove_unused_selections (bool): remove selects that are unused
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: optimized expression

\n
\n", "signature": "(expression, schema=None, remove_unused_selections=True):", "funcdef": "def"}, "sqlglot.optimizer.qualify": {"fullname": "sqlglot.optimizer.qualify", "modulename": "sqlglot.optimizer.qualify", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.qualify.qualify": {"fullname": "sqlglot.optimizer.qualify.qualify", "modulename": "sqlglot.optimizer.qualify", "qualname": "qualify", "kind": "function", "doc": "

Rewrite sqlglot AST to have normalized and qualified tables and columns.

\n\n

This step is necessary for all further SQLGlot optimizations.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> schema = {"tbl": {"col": "INT"}}\n>>> expression = sqlglot.parse_one("SELECT col FROM tbl")\n>>> qualify(expression, schema=schema).sql()\n'SELECT "tbl"."col" AS "col" FROM "tbl" AS "tbl"'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: Expression to qualify.
  • \n
  • db: Default database name for tables.
  • \n
  • catalog: Default catalog name for tables.
  • \n
  • schema: Schema to infer column names and types.
  • \n
  • expand_alias_refs: Whether or not to expand references to aliases.
  • \n
  • infer_schema: Whether or not to infer the schema if missing.
  • \n
  • isolate_tables: Whether or not to isolate table selects.
  • \n
  • qualify_columns: Whether or not to qualify columns.
  • \n
  • validate_qualify_columns: Whether or not to validate columns.
  • \n
  • quote_identifiers: Whether or not to run the quote_identifiers step.\nThis step is necessary to ensure correctness for case sensitive queries.\nBut this flag is provided in case this step is performed at a later time.
  • \n
  • identify: If True, quote all identifiers, else only necessary ones.
  • \n
\n\n
Returns:
\n\n
\n

The qualified expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tdb: Optional[str] = None,\tcatalog: Optional[str] = None,\tschema: Union[dict, sqlglot.schema.Schema, NoneType] = None,\texpand_alias_refs: bool = True,\tinfer_schema: Optional[bool] = None,\tisolate_tables: bool = False,\tqualify_columns: bool = True,\tvalidate_qualify_columns: bool = True,\tquote_identifiers: bool = True,\tidentify: bool = True) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns": {"fullname": "sqlglot.optimizer.qualify_columns", "modulename": "sqlglot.optimizer.qualify_columns", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to have fully qualified columns.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> schema = {"tbl": {"col": "INT"}}\n>>> expression = sqlglot.parse_one("SELECT col FROM tbl")\n>>> qualify_columns(expression, schema).sql()\n'SELECT tbl.col AS col FROM tbl'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: expression to qualify
  • \n
  • schema: Database schema
  • \n
  • expand_alias_refs: whether or not to expand references to aliases
  • \n
  • infer_schema: whether or not to infer the schema if missing
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: qualified expression

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression,\tschema: dict | sqlglot.schema.Schema,\texpand_alias_refs: bool = True,\tinfer_schema: Optional[bool] = None) -> sqlglot.expressions.Expression:", "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": "

Raise an OptimizeError if any columns aren't qualified

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"fullname": "sqlglot.optimizer.qualify_columns.quote_identifiers", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "quote_identifiers", "kind": "function", "doc": "

Makes sure all identifiers that need to be quoted are quoted.

\n", "signature": "(\texpression: ~E,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tidentify: bool = True) -> ~E:", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns.Resolver": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver", "kind": "class", "doc": "

Helper for resolving columns.

\n\n

This is a class so we can lazily load some things and easily share them across functions.

\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": "

\n", "signature": "(scope, schema, infer_schema: bool = True)"}, "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": "

Get the table for a column name.

\n\n
Arguments:
\n\n
    \n
  • column_name: The column name to find the table for.
  • \n
\n\n
Returns:
\n\n
\n

The table name if it can be found/inferred.

\n
\n", "signature": "(self, column_name: str) -> Optional[sqlglot.expressions.Identifier]:", "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": "

All available columns of all sources in this scope

\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": "

Resolve the source columns for a given source name

\n", "signature": "(self, name, only_visible=False):", "funcdef": "def"}, "sqlglot.optimizer.qualify_tables": {"fullname": "sqlglot.optimizer.qualify_tables", "modulename": "sqlglot.optimizer.qualify_tables", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to have fully qualified tables. Additionally, this\nreplaces \"join constructs\" (*) by equivalent SELECT * subqueries.

\n\n
Examples:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT 1 FROM tbl")\n>>> qualify_tables(expression, db="db").sql()\n'SELECT 1 FROM db.tbl AS tbl'\n>>>\n>>> expression = sqlglot.parse_one("SELECT * FROM (tbl1 JOIN tbl2 ON id1 = id2)")\n>>> qualify_tables(expression).sql()\n'SELECT * FROM (SELECT * FROM tbl1 AS tbl1 JOIN tbl2 AS tbl2 ON id1 = id2) AS _q_0'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: Expression to qualify
  • \n
  • db: Database name
  • \n
  • catalog: Catalog name
  • \n
  • schema: A schema to populate
  • \n
\n\n
Returns:
\n\n
\n

The qualified expression.

\n
\n\n

(*) See section 7.2.1.2 in https://www.postgresql.org/docs/current/queries-table-expressions.html

\n", "signature": "(\texpression: ~E,\tdb: Optional[str] = None,\tcatalog: Optional[str] = None,\tschema: Optional[sqlglot.schema.Schema] = None) -> ~E:", "funcdef": "def"}, "sqlglot.optimizer.scope": {"fullname": "sqlglot.optimizer.scope", "modulename": "sqlglot.optimizer.scope", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.scope.ScopeType": {"fullname": "sqlglot.optimizer.scope.ScopeType", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType", "kind": "class", "doc": "

An enumeration.

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<ScopeType.UDTF: 6>"}, "sqlglot.optimizer.scope.Scope": {"fullname": "sqlglot.optimizer.scope.Scope", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope", "kind": "class", "doc": "

Selection scope.

\n\n
Attributes:
\n\n
    \n
  • expression (exp.Select|exp.Union): Root expression of this scope
  • \n
  • sources (dict[str, exp.Table|Scope]): 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(...)}
  • \n
  • lateral_sources (dict[str, exp.Table|Scope]): 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.
  • \n
  • outer_column_list (list[str]): 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 [\"col1\", \"col2\"] for its outer_column_list
  • \n
  • parent (Scope): Parent scope
  • \n
  • scope_type (ScopeType): Type of this scope, relative to it's parent
  • \n
  • subquery_scopes (list[Scope]): List of all child scopes for subqueries
  • \n
  • cte_scopes (list[Scope]): List of all child scopes for CTEs
  • \n
  • derived_table_scopes (list[Scope]): List of all child scopes for derived_tables
  • \n
  • udtf_scopes (list[Scope]): List of all child scopes for user defined tabular functions
  • \n
  • table_scopes (list[Scope]): derived_table_scopes + udtf_scopes, in the order that they're defined
  • \n
  • union_scopes (list[Scope, Scope]): If this Scope is for a Union expression, this will be\na list of the left and right child scopes.
  • \n
\n"}, "sqlglot.optimizer.scope.Scope.__init__": {"fullname": "sqlglot.optimizer.scope.Scope.__init__", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.__init__", "kind": "function", "doc": "

\n", "signature": "(\texpression,\tsources=None,\touter_column_list=None,\tparent=None,\tscope_type=<ScopeType.ROOT: 1>,\tlateral_sources=None)"}, "sqlglot.optimizer.scope.Scope.clear_cache": {"fullname": "sqlglot.optimizer.scope.Scope.clear_cache", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.clear_cache", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.branch": {"fullname": "sqlglot.optimizer.scope.Scope.branch", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.branch", "kind": "function", "doc": "

Branch from the current scope to a new, inner scope

\n", "signature": "(self, expression, scope_type, chain_sources=None, **kwargs):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.walk": {"fullname": "sqlglot.optimizer.scope.Scope.walk", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.walk", "kind": "function", "doc": "

\n", "signature": "(self, bfs=True):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.find": {"fullname": "sqlglot.optimizer.scope.Scope.find", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.find", "kind": "function", "doc": "

Returns the first node in this scope which matches at least one of the specified types.

\n\n

This does NOT traverse into subscopes.

\n\n
Arguments:
\n\n
    \n
  • expression_types (type): the expression type(s) to match.
  • \n
  • bfs (bool): True to use breadth-first search, False to use depth-first.
  • \n
\n\n
Returns:
\n\n
\n

exp.Expression: the node which matches the criteria or None if no node matching\n the criteria was found.

\n
\n", "signature": "(self, *expression_types, bfs=True):", "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": "

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.

\n\n

This does NOT traverse into subscopes.

\n\n
Arguments:
\n\n
    \n
  • expression_types (type): the expression type(s) to match.
  • \n
  • bfs (bool): True to use breadth-first search, False to use depth-first.
  • \n
\n\n
Yields:
\n\n
\n

exp.Expression: nodes

\n
\n", "signature": "(self, *expression_types, bfs=True):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.replace": {"fullname": "sqlglot.optimizer.scope.Scope.replace", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.replace", "kind": "function", "doc": "

Replace old with new.

\n\n

This can be used instead of exp.Expression.replace to ensure the Scope is kept up-to-date.

\n\n
Arguments:
\n\n
    \n
  • old (exp.Expression): old node
  • \n
  • new (exp.Expression): new node
  • \n
\n", "signature": "(self, old, new):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.tables": {"fullname": "sqlglot.optimizer.scope.Scope.tables", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.tables", "kind": "variable", "doc": "

List of tables in this scope.

\n\n
Returns:
\n\n
\n

list[exp.Table]: tables

\n
\n"}, "sqlglot.optimizer.scope.Scope.ctes": {"fullname": "sqlglot.optimizer.scope.Scope.ctes", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.ctes", "kind": "variable", "doc": "

List of CTEs in this scope.

\n\n
Returns:
\n\n
\n

list[exp.CTE]: ctes

\n
\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": "

List of derived tables in this scope.

\n\n
For example:
\n\n
\n

SELECT * FROM (SELECT ...) <- that's a derived table

\n
\n\n
Returns:
\n\n
\n

list[exp.Subquery]: derived tables

\n
\n"}, "sqlglot.optimizer.scope.Scope.udtfs": {"fullname": "sqlglot.optimizer.scope.Scope.udtfs", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.udtfs", "kind": "variable", "doc": "

List of \"User Defined Tabular Functions\" in this scope.

\n\n
Returns:
\n\n
\n

list[exp.UDTF]: UDTFs

\n
\n"}, "sqlglot.optimizer.scope.Scope.subqueries": {"fullname": "sqlglot.optimizer.scope.Scope.subqueries", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.subqueries", "kind": "variable", "doc": "

List of subqueries in this scope.

\n\n
For example:
\n\n
\n

SELECT * FROM x WHERE a IN (SELECT ...) <- that's a subquery

\n
\n\n
Returns:
\n\n
\n

list[exp.Subqueryable]: subqueries

\n
\n"}, "sqlglot.optimizer.scope.Scope.columns": {"fullname": "sqlglot.optimizer.scope.Scope.columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.columns", "kind": "variable", "doc": "

List of columns in this scope.

\n\n
Returns:
\n\n
\n

list[exp.Column]: Column instances in this scope, plus any\n Columns that reference this scope from correlated subqueries.

\n
\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": "

Mapping of nodes and sources that are actually selected from in this scope.

\n\n

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.

\n\n
Returns:
\n\n
\n

dict[str, (exp.Table|exp.Select, exp.Table|Scope)]: selected sources and nodes

\n
\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": "

Sources that are CTEs.

\n\n
Returns:
\n\n
\n

dict[str, Scope]: Mapping of source alias to Scope

\n
\n"}, "sqlglot.optimizer.scope.Scope.selects": {"fullname": "sqlglot.optimizer.scope.Scope.selects", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.selects", "kind": "variable", "doc": "

Select expressions of this scope.

\n\n

For example, for the following expression:\n SELECT 1 as a, 2 as b FROM x

\n\n

The outputs are the \"1 as a\" and \"2 as b\" expressions.

\n\n
Returns:
\n\n
\n

list[exp.Expression]: expressions

\n
\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": "

Columns that appear to reference sources in outer scopes.

\n\n
Returns:
\n\n
\n

list[exp.Column]: Column instances that don't reference\n sources in the current scope.

\n
\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": "

Unqualified columns in the current scope.

\n\n
Returns:
\n\n
\n

list[exp.Column]: Unqualified columns

\n
\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": "

Hints that exist in the scope that reference tables

\n\n
Returns:
\n\n
\n

list[exp.JoinHint]: Join hints that are referenced within the scope

\n
\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": "

Get all columns in the current scope for a particular source.

\n\n
Arguments:
\n\n
    \n
  • source_name (str): Name of the source
  • \n
\n\n
Returns:
\n\n
\n

list[exp.Column]: Column instances that reference source_name

\n
\n", "signature": "(self, source_name):", "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": "

Determine if this scope is a subquery

\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": "

Determine if this scope is a derived table

\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": "

Determine if this scope is a union

\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": "

Determine if this scope is a common table expression

\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": "

Determine if this is the root scope

\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": "

Determine if this scope is a UDTF (User Defined Table Function)

\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": "

Determine if this scope is a correlated subquery

\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": "

Rename a source in this scope

\n", "signature": "(self, old_name, new_name):", "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": "

Add a source to this scope

\n", "signature": "(self, name, source):", "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": "

Remove a source from this scope

\n", "signature": "(self, name):", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.traverse": {"fullname": "sqlglot.optimizer.scope.Scope.traverse", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.traverse", "kind": "function", "doc": "

Traverse the scope tree from this node.

\n\n
Yields:
\n\n
\n

Scope: scope instances in depth-first-search post-order

\n
\n", "signature": "(self):", "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": "

Count the number of times each scope in this tree is referenced.

\n\n
Returns:
\n\n
\n

dict[int, int]: Mapping of Scope instance ID to reference count

\n
\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.optimizer.scope.traverse_scope": {"fullname": "sqlglot.optimizer.scope.traverse_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "traverse_scope", "kind": "function", "doc": "

Traverse an expression by it's \"scopes\".

\n\n

\"Scope\" represents the current context of a Select statement.

\n\n

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.

\n\n
Examples:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT a FROM (SELECT a FROM x) AS y")\n>>> scopes = traverse_scope(expression)\n>>> scopes[0].expression.sql(), list(scopes[0].sources)\n('SELECT a FROM x', ['x'])\n>>> scopes[1].expression.sql(), list(scopes[1].sources)\n('SELECT a FROM (SELECT a FROM x) AS y', ['y'])\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (exp.Expression): expression to traverse
  • \n
\n\n
Returns:
\n\n
\n

list[Scope]: scope instances

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> List[sqlglot.optimizer.scope.Scope]:", "funcdef": "def"}, "sqlglot.optimizer.scope.build_scope": {"fullname": "sqlglot.optimizer.scope.build_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "build_scope", "kind": "function", "doc": "

Build a scope tree.

\n\n
Arguments:
\n\n
    \n
  • expression (exp.Expression): expression to build the scope tree for
  • \n
\n\n
Returns:
\n\n
\n

Scope: root scope

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> Optional[sqlglot.optimizer.scope.Scope]:", "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": "

Returns a generator object which visits all nodes in the syntrax tree, stopping at\nnodes that start child scopes.

\n\n
Arguments:
\n\n
    \n
  • expression (exp.Expression):
  • \n
  • bfs (bool): if set to True the BFS traversal order will be applied,\notherwise the DFS traversal will be used instead.
  • \n
\n\n
Yields:
\n\n
\n

tuple[exp.Expression, Optional[exp.Expression], str]: node, parent, arg key

\n
\n", "signature": "(expression, bfs=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify": {"fullname": "sqlglot.optimizer.simplify", "modulename": "sqlglot.optimizer.simplify", "kind": "module", "doc": "

\n"}, "sqlglot.optimizer.simplify.simplify": {"fullname": "sqlglot.optimizer.simplify.simplify", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify", "kind": "function", "doc": "

Rewrite sqlglot AST to simplify expressions.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("TRUE AND TRUE")\n>>> simplify(expression).sql()\n'TRUE'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to simplify
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: simplified expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.rewrite_between": {"fullname": "sqlglot.optimizer.simplify.rewrite_between", "modulename": "sqlglot.optimizer.simplify", "qualname": "rewrite_between", "kind": "function", "doc": "

Rewrite x between y and z to x >= y AND x <= z.

\n\n

This is done because comparison simplification is only done on lt/lte/gt/gte.

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_not": {"fullname": "sqlglot.optimizer.simplify.simplify_not", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_not", "kind": "function", "doc": "

Demorgan's Law\nNOT (x OR y) -> NOT x AND NOT y\nNOT (x AND y) -> NOT x OR NOT y

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.flatten": {"fullname": "sqlglot.optimizer.simplify.flatten", "modulename": "sqlglot.optimizer.simplify", "qualname": "flatten", "kind": "function", "doc": "

A AND (B AND C) -> A AND B AND C\nA OR (B OR C) -> A OR B OR C

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_connectors": {"fullname": "sqlglot.optimizer.simplify.simplify_connectors", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_connectors", "kind": "function", "doc": "

\n", "signature": "(expression, root=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify.remove_compliments": {"fullname": "sqlglot.optimizer.simplify.remove_compliments", "modulename": "sqlglot.optimizer.simplify", "qualname": "remove_compliments", "kind": "function", "doc": "

Removing compliments.

\n\n

A AND NOT A -> FALSE\nA OR NOT A -> TRUE

\n", "signature": "(expression, root=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify.uniq_sort": {"fullname": "sqlglot.optimizer.simplify.uniq_sort", "modulename": "sqlglot.optimizer.simplify", "qualname": "uniq_sort", "kind": "function", "doc": "

Uniq and sort a connector.

\n\n

C AND A AND B AND B -> A AND B AND C

\n", "signature": "(expression, generate, root=True):", "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": "

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

\n", "signature": "(expression, root=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_literals": {"fullname": "sqlglot.optimizer.simplify.simplify_literals", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_literals", "kind": "function", "doc": "

\n", "signature": "(expression, root=True):", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_parens": {"fullname": "sqlglot.optimizer.simplify.simplify_parens", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_parens", "kind": "function", "doc": "

\n", "signature": "(expression):", "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": "

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.always_true": {"fullname": "sqlglot.optimizer.simplify.always_true", "modulename": "sqlglot.optimizer.simplify", "qualname": "always_true", "kind": "function", "doc": "

\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.simplify.is_complement": {"fullname": "sqlglot.optimizer.simplify.is_complement", "modulename": "sqlglot.optimizer.simplify", "qualname": "is_complement", "kind": "function", "doc": "

\n", "signature": "(a, b):", "funcdef": "def"}, "sqlglot.optimizer.simplify.is_false": {"fullname": "sqlglot.optimizer.simplify.is_false", "modulename": "sqlglot.optimizer.simplify", "qualname": "is_false", "kind": "function", "doc": "

\n", "signature": "(a: sqlglot.expressions.Expression) -> bool:", "funcdef": "def"}, "sqlglot.optimizer.simplify.is_null": {"fullname": "sqlglot.optimizer.simplify.is_null", "modulename": "sqlglot.optimizer.simplify", "qualname": "is_null", "kind": "function", "doc": "

\n", "signature": "(a: sqlglot.expressions.Expression) -> bool:", "funcdef": "def"}, "sqlglot.optimizer.simplify.eval_boolean": {"fullname": "sqlglot.optimizer.simplify.eval_boolean", "modulename": "sqlglot.optimizer.simplify", "qualname": "eval_boolean", "kind": "function", "doc": "

\n", "signature": "(expression, a, b):", "funcdef": "def"}, "sqlglot.optimizer.simplify.extract_date": {"fullname": "sqlglot.optimizer.simplify.extract_date", "modulename": "sqlglot.optimizer.simplify", "qualname": "extract_date", "kind": "function", "doc": "

\n", "signature": "(cast):", "funcdef": "def"}, "sqlglot.optimizer.simplify.extract_interval": {"fullname": "sqlglot.optimizer.simplify.extract_interval", "modulename": "sqlglot.optimizer.simplify", "qualname": "extract_interval", "kind": "function", "doc": "

\n", "signature": "(interval):", "funcdef": "def"}, "sqlglot.optimizer.simplify.date_literal": {"fullname": "sqlglot.optimizer.simplify.date_literal", "modulename": "sqlglot.optimizer.simplify", "qualname": "date_literal", "kind": "function", "doc": "

\n", "signature": "(date):", "funcdef": "def"}, "sqlglot.optimizer.simplify.boolean_literal": {"fullname": "sqlglot.optimizer.simplify.boolean_literal", "modulename": "sqlglot.optimizer.simplify", "qualname": "boolean_literal", "kind": "function", "doc": "

\n", "signature": "(condition):", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries": {"fullname": "sqlglot.optimizer.unnest_subqueries", "modulename": "sqlglot.optimizer.unnest_subqueries", "kind": "module", "doc": "

\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": "

Rewrite sqlglot AST to convert some predicates with subqueries into joins.

\n\n

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.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> expression = sqlglot.parse_one("SELECT * FROM x AS x WHERE (SELECT y.a AS a FROM y AS y WHERE x.a = y.a) = 1 ")\n>>> unnest_subqueries(expression).sql()\n'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'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression (sqlglot.Expression): expression to unnest
  • \n
\n\n
Returns:
\n\n
\n

sqlglot.Expression: unnested expression

\n
\n", "signature": "(expression):", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries.unnest": {"fullname": "sqlglot.optimizer.unnest_subqueries.unnest", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "unnest", "kind": "function", "doc": "

\n", "signature": "(select, parent_select, next_alias_name):", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"fullname": "sqlglot.optimizer.unnest_subqueries.decorrelate", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "decorrelate", "kind": "function", "doc": "

\n", "signature": "(select, parent_select, external_columns, next_alias_name):", "funcdef": "def"}, "sqlglot.parser": {"fullname": "sqlglot.parser", "modulename": "sqlglot.parser", "kind": "module", "doc": "

\n"}, "sqlglot.parser.parse_var_map": {"fullname": "sqlglot.parser.parse_var_map", "modulename": "sqlglot.parser", "qualname": "parse_var_map", "kind": "function", "doc": "

\n", "signature": "(args: List) -> sqlglot.expressions.StarMap | sqlglot.expressions.VarMap:", "funcdef": "def"}, "sqlglot.parser.parse_like": {"fullname": "sqlglot.parser.parse_like", "modulename": "sqlglot.parser", "qualname": "parse_like", "kind": "function", "doc": "

\n", "signature": "(args: List) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.parser.binary_range_parser": {"fullname": "sqlglot.parser.binary_range_parser", "modulename": "sqlglot.parser", "qualname": "binary_range_parser", "kind": "function", "doc": "

\n", "signature": "(\texpr_type: Type[sqlglot.expressions.Expression]) -> Callable[[sqlglot.parser.Parser, Optional[sqlglot.expressions.Expression]], Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.parser.Parser": {"fullname": "sqlglot.parser.Parser", "modulename": "sqlglot.parser", "qualname": "Parser", "kind": "class", "doc": "

Parser consumes a list of tokens produced by the sqlglot.tokens.Tokenizer and produces\na parsed syntax tree.

\n\n
Arguments:
\n\n
    \n
  • error_level: the desired error level.\nDefault: ErrorLevel.IMMEDIATE
  • \n
  • error_message_context: determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.
  • \n
  • index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0
  • \n
  • alias_post_tablesample: If the table alias comes after tablesample.\nDefault: False
  • \n
  • max_errors: Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3
  • \n
  • null_ordering: 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\"
  • \n
\n"}, "sqlglot.parser.Parser.__init__": {"fullname": "sqlglot.parser.Parser.__init__", "modulename": "sqlglot.parser", "qualname": "Parser.__init__", "kind": "function", "doc": "

\n", "signature": "(\terror_level: Optional[sqlglot.errors.ErrorLevel] = None,\terror_message_context: int = 100,\tindex_offset: int = 0,\tunnest_column_only: bool = False,\talias_post_tablesample: bool = False,\tmax_errors: int = 3,\tnull_ordering: Optional[str] = None)"}, "sqlglot.parser.Parser.reset": {"fullname": "sqlglot.parser.Parser.reset", "modulename": "sqlglot.parser", "qualname": "Parser.reset", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, "sqlglot.parser.Parser.parse": {"fullname": "sqlglot.parser.Parser.parse", "modulename": "sqlglot.parser", "qualname": "Parser.parse", "kind": "function", "doc": "

Parses a list of tokens and returns a list of syntax trees, one tree\nper parsed SQL statement.

\n\n
Arguments:
\n\n
    \n
  • raw_tokens: the list of tokens.
  • \n
  • sql: the original SQL string, used to produce helpful debug messages.
  • \n
\n\n
Returns:
\n\n
\n

The list of syntax trees.

\n
\n", "signature": "(\tself,\traw_tokens: List[sqlglot.tokens.Token],\tsql: Optional[str] = None) -> List[Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.parser.Parser.parse_into": {"fullname": "sqlglot.parser.Parser.parse_into", "modulename": "sqlglot.parser", "qualname": "Parser.parse_into", "kind": "function", "doc": "

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.

\n\n
Arguments:
\n\n
    \n
  • expression_types: the expression type(s) to try and parse the token list into.
  • \n
  • raw_tokens: the list of tokens.
  • \n
  • sql: the original SQL string, used to produce helpful debug messages.
  • \n
\n\n
Returns:
\n\n
\n

The target Expression.

\n
\n", "signature": "(\tself,\texpression_types: Union[str, Type[sqlglot.expressions.Expression], Collection[Union[str, Type[sqlglot.expressions.Expression]]]],\traw_tokens: List[sqlglot.tokens.Token],\tsql: Optional[str] = None) -> List[Optional[sqlglot.expressions.Expression]]:", "funcdef": "def"}, "sqlglot.parser.Parser.check_errors": {"fullname": "sqlglot.parser.Parser.check_errors", "modulename": "sqlglot.parser", "qualname": "Parser.check_errors", "kind": "function", "doc": "

Logs or raises any found errors, depending on the chosen error level setting.

\n", "signature": "(self) -> None:", "funcdef": "def"}, "sqlglot.parser.Parser.raise_error": {"fullname": "sqlglot.parser.Parser.raise_error", "modulename": "sqlglot.parser", "qualname": "Parser.raise_error", "kind": "function", "doc": "

Appends an error in the list of recorded errors or raises it, depending on the chosen\nerror level setting.

\n", "signature": "(self, message: str, token: Optional[sqlglot.tokens.Token] = None) -> None:", "funcdef": "def"}, "sqlglot.parser.Parser.expression": {"fullname": "sqlglot.parser.Parser.expression", "modulename": "sqlglot.parser", "qualname": "Parser.expression", "kind": "function", "doc": "

Creates a new, validated Expression.

\n\n
Arguments:
\n\n
    \n
  • exp_class: the expression class to instantiate.
  • \n
  • comments: an optional list of comments to attach to the expression.
  • \n
  • kwargs: the arguments to set for the expression along with their respective values.
  • \n
\n\n
Returns:
\n\n
\n

The target expression.

\n
\n", "signature": "(\tself,\texp_class: Type[~E],\tcomments: Optional[List[str]] = None,\t**kwargs) -> ~E:", "funcdef": "def"}, "sqlglot.parser.Parser.validate_expression": {"fullname": "sqlglot.parser.Parser.validate_expression", "modulename": "sqlglot.parser", "qualname": "Parser.validate_expression", "kind": "function", "doc": "

Validates an already instantiated expression, making sure that all its mandatory arguments\nare set.

\n\n
Arguments:
\n\n
    \n
  • expression: the expression to validate.
  • \n
  • args: an optional list of items that was used to instantiate the expression, if it's a Func.
  • \n
\n", "signature": "(\tself,\texpression: sqlglot.expressions.Expression,\targs: Optional[List] = None) -> None:", "funcdef": "def"}, "sqlglot.planner": {"fullname": "sqlglot.planner", "modulename": "sqlglot.planner", "kind": "module", "doc": "

\n"}, "sqlglot.planner.Plan": {"fullname": "sqlglot.planner.Plan", "modulename": "sqlglot.planner", "qualname": "Plan", "kind": "class", "doc": "

\n"}, "sqlglot.planner.Plan.__init__": {"fullname": "sqlglot.planner.Plan.__init__", "modulename": "sqlglot.planner", "qualname": "Plan.__init__", "kind": "function", "doc": "

\n", "signature": "(expression: sqlglot.expressions.Expression)"}, "sqlglot.planner.Step": {"fullname": "sqlglot.planner.Step", "modulename": "sqlglot.planner", "qualname": "Step", "kind": "class", "doc": "

\n"}, "sqlglot.planner.Step.from_expression": {"fullname": "sqlglot.planner.Step.from_expression", "modulename": "sqlglot.planner", "qualname": "Step.from_expression", "kind": "function", "doc": "

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:

\n\n

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

\n\n

the following DAG is produced (the expression IDs might differ per execution):

\n\n
    \n
  • Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n
      \n
    • x.a
    • \n
    • \"x\".\"\"\nDependencies:\n
        \n
      • Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:
      • \n
    • \n
    • Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:
    • \n
    • Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:
    • \n
  • \n
\n\n
Arguments:
\n\n
    \n
  • expression: the expression to build the DAG from.
  • \n
  • ctes: a dictionary that maps CTEs to their corresponding Step DAG by name.
  • \n
\n\n
Returns:
\n\n
\n

A Step DAG corresponding to expression.

\n
\n", "signature": "(\tcls,\texpression: sqlglot.expressions.Expression,\tctes: Optional[Dict[str, sqlglot.planner.Step]] = None) -> sqlglot.planner.Step:", "funcdef": "def"}, "sqlglot.planner.Step.add_dependency": {"fullname": "sqlglot.planner.Step.add_dependency", "modulename": "sqlglot.planner", "qualname": "Step.add_dependency", "kind": "function", "doc": "

\n", "signature": "(self, dependency: sqlglot.planner.Step) -> None:", "funcdef": "def"}, "sqlglot.planner.Step.to_s": {"fullname": "sqlglot.planner.Step.to_s", "modulename": "sqlglot.planner", "qualname": "Step.to_s", "kind": "function", "doc": "

\n", "signature": "(self, level: int = 0) -> str:", "funcdef": "def"}, "sqlglot.planner.Scan": {"fullname": "sqlglot.planner.Scan", "modulename": "sqlglot.planner", "qualname": "Scan", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.Scan.from_expression": {"fullname": "sqlglot.planner.Scan.from_expression", "modulename": "sqlglot.planner", "qualname": "Scan.from_expression", "kind": "function", "doc": "

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:

\n\n

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

\n\n

the following DAG is produced (the expression IDs might differ per execution):

\n\n
    \n
  • Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n
      \n
    • x.a
    • \n
    • \"x\".\"\"\nDependencies:\n
        \n
      • Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:
      • \n
    • \n
    • Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:
    • \n
    • Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:
    • \n
  • \n
\n\n
Arguments:
\n\n
    \n
  • expression: the expression to build the DAG from.
  • \n
  • ctes: a dictionary that maps CTEs to their corresponding Step DAG by name.
  • \n
\n\n
Returns:
\n\n
\n

A Step DAG corresponding to expression.

\n
\n", "signature": "(\tcls,\texpression: sqlglot.expressions.Expression,\tctes: Optional[Dict[str, sqlglot.planner.Step]] = None) -> sqlglot.planner.Step:", "funcdef": "def"}, "sqlglot.planner.Join": {"fullname": "sqlglot.planner.Join", "modulename": "sqlglot.planner", "qualname": "Join", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.Join.from_joins": {"fullname": "sqlglot.planner.Join.from_joins", "modulename": "sqlglot.planner", "qualname": "Join.from_joins", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tjoins: Iterable[sqlglot.expressions.Join],\tctes: Optional[Dict[str, sqlglot.planner.Step]] = None) -> sqlglot.planner.Step:", "funcdef": "def"}, "sqlglot.planner.Aggregate": {"fullname": "sqlglot.planner.Aggregate", "modulename": "sqlglot.planner", "qualname": "Aggregate", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.Sort": {"fullname": "sqlglot.planner.Sort", "modulename": "sqlglot.planner", "qualname": "Sort", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.SetOperation": {"fullname": "sqlglot.planner.SetOperation", "modulename": "sqlglot.planner", "qualname": "SetOperation", "kind": "class", "doc": "

\n", "bases": "Step"}, "sqlglot.planner.SetOperation.__init__": {"fullname": "sqlglot.planner.SetOperation.__init__", "modulename": "sqlglot.planner", "qualname": "SetOperation.__init__", "kind": "function", "doc": "

\n", "signature": "(\top: Type[sqlglot.expressions.Expression],\tleft: str | None,\tright: str | None,\tdistinct: bool = False)"}, "sqlglot.planner.SetOperation.from_expression": {"fullname": "sqlglot.planner.SetOperation.from_expression", "modulename": "sqlglot.planner", "qualname": "SetOperation.from_expression", "kind": "function", "doc": "

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:

\n\n

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

\n\n

the following DAG is produced (the expression IDs might differ per execution):

\n\n
    \n
  • Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n
      \n
    • x.a
    • \n
    • \"x\".\"\"\nDependencies:\n
        \n
      • Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:
      • \n
    • \n
    • Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:
    • \n
    • Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:
    • \n
  • \n
\n\n
Arguments:
\n\n
    \n
  • expression: the expression to build the DAG from.
  • \n
  • ctes: a dictionary that maps CTEs to their corresponding Step DAG by name.
  • \n
\n\n
Returns:
\n\n
\n

A Step DAG corresponding to expression.

\n
\n", "signature": "(\tcls,\texpression: sqlglot.expressions.Expression,\tctes: Optional[Dict[str, sqlglot.planner.Step]] = None) -> sqlglot.planner.Step:", "funcdef": "def"}, "sqlglot.schema.Schema": {"fullname": "sqlglot.schema.Schema", "modulename": "sqlglot.schema", "qualname": "Schema", "kind": "class", "doc": "

Abstract base class for database schemas

\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": "

Register or update a table. Some implementing classes may require column information to also be provided.

\n\n
Arguments:
\n\n
    \n
  • table: the Table expression instance or string representing the table.
  • \n
  • column_mapping: a column mapping that describes the structure of the table.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tcolumn_mapping: Union[Dict, str, sqlglot.dataframe.sql.types.StructType, List, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> None:", "funcdef": "def"}, "sqlglot.schema.Schema.column_names": {"fullname": "sqlglot.schema.Schema.column_names", "modulename": "sqlglot.schema", "qualname": "Schema.column_names", "kind": "function", "doc": "

Get the column names for a table.

\n\n
Arguments:
\n\n
    \n
  • table: the Table expression instance.
  • \n
  • only_visible: whether to include invisible columns.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n\n
Returns:
\n\n
\n

The list of column names.

\n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tonly_visible: bool = False,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> List[str]:", "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": "

Get the sqlglot.exp.DataType type of a column in the schema.

\n\n
Arguments:
\n\n
    \n
  • table: the source table.
  • \n
  • column: the target column.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n\n
Returns:
\n\n
\n

The resulting column type.

\n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tcolumn: sqlglot.expressions.Column,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> sqlglot.expressions.DataType:", "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": "

Table arguments this schema support, e.g. (\"this\", \"db\", \"catalog\")

\n", "annotation": ": Tuple[str, ...]"}, "sqlglot.schema.Schema.empty": {"fullname": "sqlglot.schema.Schema.empty", "modulename": "sqlglot.schema", "qualname": "Schema.empty", "kind": "variable", "doc": "

Returns whether or not the schema is empty.

\n", "annotation": ": bool"}, "sqlglot.schema.AbstractMappingSchema": {"fullname": "sqlglot.schema.AbstractMappingSchema", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema", "kind": "class", "doc": "

Abstract base class for generic types.

\n\n

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::

\n\n

class Mapping(Generic[KT, VT]):\n def __getitem__(self, key: KT) -> VT:\n ...\n # Etc.

\n\n

This class can then be used as follows::

\n\n

def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:\n try:\n return mapping[key]\n except KeyError:\n return default

\n", "bases": "typing.Generic[~T]"}, "sqlglot.schema.AbstractMappingSchema.__init__": {"fullname": "sqlglot.schema.AbstractMappingSchema.__init__", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.__init__", "kind": "function", "doc": "

\n", "signature": "(mapping: Optional[Dict] = None)"}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"fullname": "sqlglot.schema.AbstractMappingSchema.table_parts", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.table_parts", "kind": "function", "doc": "

\n", "signature": "(self, table: sqlglot.expressions.Table) -> List[str]:", "funcdef": "def"}, "sqlglot.schema.AbstractMappingSchema.find": {"fullname": "sqlglot.schema.AbstractMappingSchema.find", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.find", "kind": "function", "doc": "

\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table,\ttrie: Optional[Dict] = None,\traise_on_missing: bool = True) -> Optional[~T]:", "funcdef": "def"}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"fullname": "sqlglot.schema.AbstractMappingSchema.nested_get", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.nested_get", "kind": "function", "doc": "

\n", "signature": "(\tself,\tparts: Sequence[str],\td: Optional[Dict] = None,\traise_on_missing=True) -> Optional[Any]:", "funcdef": "def"}, "sqlglot.schema.MappingSchema": {"fullname": "sqlglot.schema.MappingSchema", "modulename": "sqlglot.schema", "qualname": "MappingSchema", "kind": "class", "doc": "

Schema based on a nested mapping.

\n\n
Arguments:
\n\n
    \n
  • schema: Mapping in one of the following forms:\n
      \n
    1. {table: {col: type}}
    2. \n
    3. {db: {table: {col: type}}}
    4. \n
    5. {catalog: {db: {table: {col: type}}}}
    6. \n
    7. None - Tables will be added later
    8. \n
  • \n
  • visible: 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
      \n
    1. {table: set(cols)}}
    2. \n
    3. {db: {table: set(cols)}}}
    4. \n
    5. {catalog: {db: {table: set(*cols)}}}}
    6. \n
  • \n
  • dialect: The dialect to be used for custom type mappings & parsing string arguments.
  • \n
  • normalize: Whether to normalize identifier names according to the given dialect or not.
  • \n
\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": "

\n", "signature": "(\tschema: Optional[Dict] = None,\tvisible: Optional[Dict] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None,\tnormalize: bool = True)"}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"fullname": "sqlglot.schema.MappingSchema.from_mapping_schema", "modulename": "sqlglot.schema", "qualname": "MappingSchema.from_mapping_schema", "kind": "function", "doc": "

\n", "signature": "(\tcls,\tmapping_schema: sqlglot.schema.MappingSchema) -> sqlglot.schema.MappingSchema:", "funcdef": "def"}, "sqlglot.schema.MappingSchema.copy": {"fullname": "sqlglot.schema.MappingSchema.copy", "modulename": "sqlglot.schema", "qualname": "MappingSchema.copy", "kind": "function", "doc": "

\n", "signature": "(self, **kwargs) -> sqlglot.schema.MappingSchema:", "funcdef": "def"}, "sqlglot.schema.MappingSchema.add_table": {"fullname": "sqlglot.schema.MappingSchema.add_table", "modulename": "sqlglot.schema", "qualname": "MappingSchema.add_table", "kind": "function", "doc": "

Register or update a table. Updates are only performed if a new column mapping is provided.

\n\n
Arguments:
\n\n
    \n
  • table: the Table expression instance or string representing the table.
  • \n
  • column_mapping: a column mapping that describes the structure of the table.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tcolumn_mapping: Union[Dict, str, sqlglot.dataframe.sql.types.StructType, List, NoneType] = None,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> None:", "funcdef": "def"}, "sqlglot.schema.MappingSchema.column_names": {"fullname": "sqlglot.schema.MappingSchema.column_names", "modulename": "sqlglot.schema", "qualname": "MappingSchema.column_names", "kind": "function", "doc": "

Get the column names for a table.

\n\n
Arguments:
\n\n
    \n
  • table: the Table expression instance.
  • \n
  • only_visible: whether to include invisible columns.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n\n
Returns:
\n\n
\n

The list of column names.

\n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tonly_visible: bool = False,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> List[str]:", "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": "

Get the sqlglot.exp.DataType type of a column in the schema.

\n\n
Arguments:
\n\n
    \n
  • table: the source table.
  • \n
  • column: the target column.
  • \n
  • dialect: the SQL dialect that will be used to parse table if it's a string.
  • \n
\n\n
Returns:
\n\n
\n

The resulting column type.

\n
\n", "signature": "(\tself,\ttable: sqlglot.expressions.Table | str,\tcolumn: sqlglot.expressions.Column,\tdialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> sqlglot.expressions.DataType:", "funcdef": "def"}, "sqlglot.schema.ensure_schema": {"fullname": "sqlglot.schema.ensure_schema", "modulename": "sqlglot.schema", "qualname": "ensure_schema", "kind": "function", "doc": "

\n", "signature": "(\tschema: Union[sqlglot.schema.Schema, Dict, NoneType],\t**kwargs: Any) -> sqlglot.schema.Schema:", "funcdef": "def"}, "sqlglot.schema.ensure_column_mapping": {"fullname": "sqlglot.schema.ensure_column_mapping", "modulename": "sqlglot.schema", "qualname": "ensure_column_mapping", "kind": "function", "doc": "

\n", "signature": "(\tmapping: Union[Dict, str, sqlglot.dataframe.sql.types.StructType, List, NoneType]) -> Dict:", "funcdef": "def"}, "sqlglot.schema.flatten_schema": {"fullname": "sqlglot.schema.flatten_schema", "modulename": "sqlglot.schema", "qualname": "flatten_schema", "kind": "function", "doc": "

\n", "signature": "(\tschema: Dict,\tdepth: int,\tkeys: Optional[List[str]] = None) -> List[List[str]]:", "funcdef": "def"}, "sqlglot.schema.nested_get": {"fullname": "sqlglot.schema.nested_get", "modulename": "sqlglot.schema", "qualname": "nested_get", "kind": "function", "doc": "

Get a value for a nested dictionary.

\n\n
Arguments:
\n\n
    \n
  • d: the dictionary to search.
  • \n
  • *path: tuples of (name, key), where:\nkey is the key in the dictionary to get.\nname is a string to use in the error if key isn't found.
  • \n
\n\n
Returns:
\n\n
\n

The value or None if it doesn't exist.

\n
\n", "signature": "(\td: Dict,\t*path: Tuple[str, str],\traise_on_missing: bool = True) -> Optional[Any]:", "funcdef": "def"}, "sqlglot.schema.nested_set": {"fullname": "sqlglot.schema.nested_set", "modulename": "sqlglot.schema", "qualname": "nested_set", "kind": "function", "doc": "

In-place set a value for a nested dictionary

\n\n
Example:
\n\n
\n
\n
>>> nested_set({}, ["top_key", "second_key"], "value")\n{'top_key': {'second_key': 'value'}}\n
\n
\n \n
\n
>>> nested_set({"top_key": {"third_key": "third_value"}}, ["top_key", "second_key"], "value")\n{'top_key': {'third_key': 'third_value', 'second_key': 'value'}}\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • d: dictionary to update.
  • \n
  • keys: the keys that makeup the path to value.
  • \n
  • value: the value to set in the dictionary for the given key path.
  • \n
\n\n
Returns:
\n\n
\n

The (possibly) updated dictionary.

\n
\n", "signature": "(d: Dict, keys: Sequence[str], value: Any) -> Dict:", "funcdef": "def"}, "sqlglot.serde": {"fullname": "sqlglot.serde", "modulename": "sqlglot.serde", "kind": "module", "doc": "

\n"}, "sqlglot.serde.dump": {"fullname": "sqlglot.serde.dump", "modulename": "sqlglot.serde", "qualname": "dump", "kind": "function", "doc": "

Recursively dump an AST into a JSON-serializable dict.

\n", "signature": "(\tnode: Union[List[ForwardRef('Node')], sqlglot.expressions.DataType.Type, sqlglot.expressions.Expression, dict, list, str, float, int, bool]) -> Union[dict, list, str, float, int, bool]:", "funcdef": "def"}, "sqlglot.serde.load": {"fullname": "sqlglot.serde.load", "modulename": "sqlglot.serde", "qualname": "load", "kind": "function", "doc": "

Recursively load a dict (as returned by dump) into an AST.

\n", "signature": "(\tobj: Union[dict, list, str, float, int, bool]) -> Union[List[ForwardRef('Node')], sqlglot.expressions.DataType.Type, sqlglot.expressions.Expression, dict, list, str, float, int, bool]:", "funcdef": "def"}, "sqlglot.time": {"fullname": "sqlglot.time", "modulename": "sqlglot.time", "kind": "module", "doc": "

\n"}, "sqlglot.time.format_time": {"fullname": "sqlglot.time.format_time", "modulename": "sqlglot.time", "qualname": "format_time", "kind": "function", "doc": "

Converts a time string given a mapping.

\n\n
Examples:
\n\n
\n
\n
>>> format_time("%Y", {"%Y": "YYYY"})\n'YYYY'\n
\n
\n \n

Args:\n mapping: dictionary of time format to target time format.\n trie: optional trie, can be passed in for performance.

\n \n

Returns:\n The converted time string.

\n
\n", "signature": "(\tstring: str,\tmapping: Dict[str, str],\ttrie: Optional[Dict] = None) -> Optional[str]:", "funcdef": "def"}, "sqlglot.tokens": {"fullname": "sqlglot.tokens", "modulename": "sqlglot.tokens", "kind": "module", "doc": "

\n"}, "sqlglot.tokens.TokenType": {"fullname": "sqlglot.tokens.TokenType", "modulename": "sqlglot.tokens", "qualname": "TokenType", "kind": "class", "doc": "

An enumeration.

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.COMMA: 'COMMA'>"}, "sqlglot.tokens.TokenType.DOT": {"fullname": "sqlglot.tokens.TokenType.DOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DOT: 'DOT'>"}, "sqlglot.tokens.TokenType.DASH": {"fullname": "sqlglot.tokens.TokenType.DASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.DASH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DASH: 'DASH'>"}, "sqlglot.tokens.TokenType.PLUS": {"fullname": "sqlglot.tokens.TokenType.PLUS", "modulename": "sqlglot.tokens", "qualname": "TokenType.PLUS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PLUS: 'PLUS'>"}, "sqlglot.tokens.TokenType.COLON": {"fullname": "sqlglot.tokens.TokenType.COLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COLON: 'COLON'>"}, "sqlglot.tokens.TokenType.DCOLON": {"fullname": "sqlglot.tokens.TokenType.DCOLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.DCOLON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DCOLON: 'DCOLON'>"}, "sqlglot.tokens.TokenType.SEMICOLON": {"fullname": "sqlglot.tokens.TokenType.SEMICOLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEMICOLON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SEMICOLON: 'SEMICOLON'>"}, "sqlglot.tokens.TokenType.STAR": {"fullname": "sqlglot.tokens.TokenType.STAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.STAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.STAR: 'STAR'>"}, "sqlglot.tokens.TokenType.BACKSLASH": {"fullname": "sqlglot.tokens.TokenType.BACKSLASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.BACKSLASH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BACKSLASH: 'BACKSLASH'>"}, "sqlglot.tokens.TokenType.SLASH": {"fullname": "sqlglot.tokens.TokenType.SLASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.SLASH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SLASH: 'SLASH'>"}, "sqlglot.tokens.TokenType.LT": {"fullname": "sqlglot.tokens.TokenType.LT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LT: 'LT'>"}, "sqlglot.tokens.TokenType.LTE": {"fullname": "sqlglot.tokens.TokenType.LTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LTE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LTE: 'LTE'>"}, "sqlglot.tokens.TokenType.GT": {"fullname": "sqlglot.tokens.TokenType.GT", "modulename": "sqlglot.tokens", "qualname": "TokenType.GT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GT: 'GT'>"}, "sqlglot.tokens.TokenType.GTE": {"fullname": "sqlglot.tokens.TokenType.GTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.GTE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GTE: 'GTE'>"}, "sqlglot.tokens.TokenType.NOT": {"fullname": "sqlglot.tokens.TokenType.NOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.NOT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NOT: 'NOT'>"}, "sqlglot.tokens.TokenType.EQ": {"fullname": "sqlglot.tokens.TokenType.EQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.EQ", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.EQ: 'EQ'>"}, "sqlglot.tokens.TokenType.NEQ": {"fullname": "sqlglot.tokens.TokenType.NEQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEQ", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.AND: 'AND'>"}, "sqlglot.tokens.TokenType.OR": {"fullname": "sqlglot.tokens.TokenType.OR", "modulename": "sqlglot.tokens", "qualname": "TokenType.OR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OR: 'OR'>"}, "sqlglot.tokens.TokenType.AMP": {"fullname": "sqlglot.tokens.TokenType.AMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.AMP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.AMP: 'AMP'>"}, "sqlglot.tokens.TokenType.DPIPE": {"fullname": "sqlglot.tokens.TokenType.DPIPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DPIPE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DPIPE: 'DPIPE'>"}, "sqlglot.tokens.TokenType.PIPE": {"fullname": "sqlglot.tokens.TokenType.PIPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.PIPE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PIPE: 'PIPE'>"}, "sqlglot.tokens.TokenType.CARET": {"fullname": "sqlglot.tokens.TokenType.CARET", "modulename": "sqlglot.tokens", "qualname": "TokenType.CARET", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CARET: 'CARET'>"}, "sqlglot.tokens.TokenType.TILDA": {"fullname": "sqlglot.tokens.TokenType.TILDA", "modulename": "sqlglot.tokens", "qualname": "TokenType.TILDA", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TILDA: 'TILDA'>"}, "sqlglot.tokens.TokenType.ARROW": {"fullname": "sqlglot.tokens.TokenType.ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.ARROW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ARROW: 'ARROW'>"}, "sqlglot.tokens.TokenType.DARROW": {"fullname": "sqlglot.tokens.TokenType.DARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.DARROW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DARROW: 'DARROW'>"}, "sqlglot.tokens.TokenType.FARROW": {"fullname": "sqlglot.tokens.TokenType.FARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.FARROW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FARROW: 'FARROW'>"}, "sqlglot.tokens.TokenType.HASH": {"fullname": "sqlglot.tokens.TokenType.HASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.HASH", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.DOLLAR: 'DOLLAR'>"}, "sqlglot.tokens.TokenType.PARAMETER": {"fullname": "sqlglot.tokens.TokenType.PARAMETER", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARAMETER", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.SESSION_PARAMETER: 'SESSION_PARAMETER'>"}, "sqlglot.tokens.TokenType.DAMP": {"fullname": "sqlglot.tokens.TokenType.DAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.DAMP", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.SPACE: 'SPACE'>"}, "sqlglot.tokens.TokenType.BREAK": {"fullname": "sqlglot.tokens.TokenType.BREAK", "modulename": "sqlglot.tokens", "qualname": "TokenType.BREAK", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BREAK: 'BREAK'>"}, "sqlglot.tokens.TokenType.STRING": {"fullname": "sqlglot.tokens.TokenType.STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.STRING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.STRING: 'STRING'>"}, "sqlglot.tokens.TokenType.NUMBER": {"fullname": "sqlglot.tokens.TokenType.NUMBER", "modulename": "sqlglot.tokens", "qualname": "TokenType.NUMBER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NUMBER: 'NUMBER'>"}, "sqlglot.tokens.TokenType.IDENTIFIER": {"fullname": "sqlglot.tokens.TokenType.IDENTIFIER", "modulename": "sqlglot.tokens", "qualname": "TokenType.IDENTIFIER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IDENTIFIER: 'IDENTIFIER'>"}, "sqlglot.tokens.TokenType.DATABASE": {"fullname": "sqlglot.tokens.TokenType.DATABASE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATABASE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATABASE: 'DATABASE'>"}, "sqlglot.tokens.TokenType.COLUMN": {"fullname": "sqlglot.tokens.TokenType.COLUMN", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLUMN", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.SCHEMA: 'SCHEMA'>"}, "sqlglot.tokens.TokenType.TABLE": {"fullname": "sqlglot.tokens.TokenType.TABLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TABLE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TABLE: 'TABLE'>"}, "sqlglot.tokens.TokenType.VAR": {"fullname": "sqlglot.tokens.TokenType.VAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.VAR", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.BYTE_STRING: 'BYTE_STRING'>"}, "sqlglot.tokens.TokenType.NATIONAL_STRING": {"fullname": "sqlglot.tokens.TokenType.NATIONAL_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.NATIONAL_STRING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NATIONAL_STRING: 'NATIONAL_STRING'>"}, "sqlglot.tokens.TokenType.RAW_STRING": {"fullname": "sqlglot.tokens.TokenType.RAW_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.RAW_STRING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RAW_STRING: 'RAW_STRING'>"}, "sqlglot.tokens.TokenType.BIT": {"fullname": "sqlglot.tokens.TokenType.BIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BIT: 'BIT'>"}, "sqlglot.tokens.TokenType.BOOLEAN": {"fullname": "sqlglot.tokens.TokenType.BOOLEAN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BOOLEAN", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BOOLEAN: 'BOOLEAN'>"}, "sqlglot.tokens.TokenType.TINYINT": {"fullname": "sqlglot.tokens.TokenType.TINYINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.TINYINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TINYINT: 'TINYINT'>"}, "sqlglot.tokens.TokenType.UTINYINT": {"fullname": "sqlglot.tokens.TokenType.UTINYINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UTINYINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UTINYINT: 'UTINYINT'>"}, "sqlglot.tokens.TokenType.SMALLINT": {"fullname": "sqlglot.tokens.TokenType.SMALLINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SMALLINT: 'SMALLINT'>"}, "sqlglot.tokens.TokenType.USMALLINT": {"fullname": "sqlglot.tokens.TokenType.USMALLINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.USMALLINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.USMALLINT: 'USMALLINT'>"}, "sqlglot.tokens.TokenType.INT": {"fullname": "sqlglot.tokens.TokenType.INT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT: 'INT'>"}, "sqlglot.tokens.TokenType.UINT": {"fullname": "sqlglot.tokens.TokenType.UINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UINT: 'UINT'>"}, "sqlglot.tokens.TokenType.BIGINT": {"fullname": "sqlglot.tokens.TokenType.BIGINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BIGINT: 'BIGINT'>"}, "sqlglot.tokens.TokenType.UBIGINT": {"fullname": "sqlglot.tokens.TokenType.UBIGINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UBIGINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UBIGINT: 'UBIGINT'>"}, "sqlglot.tokens.TokenType.INT128": {"fullname": "sqlglot.tokens.TokenType.INT128", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT128", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT128: 'INT128'>"}, "sqlglot.tokens.TokenType.UINT128": {"fullname": "sqlglot.tokens.TokenType.UINT128", "modulename": "sqlglot.tokens", "qualname": "TokenType.UINT128", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UINT128: 'UINT128'>"}, "sqlglot.tokens.TokenType.INT256": {"fullname": "sqlglot.tokens.TokenType.INT256", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT256", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT256: 'INT256'>"}, "sqlglot.tokens.TokenType.UINT256": {"fullname": "sqlglot.tokens.TokenType.UINT256", "modulename": "sqlglot.tokens", "qualname": "TokenType.UINT256", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UINT256: 'UINT256'>"}, "sqlglot.tokens.TokenType.FLOAT": {"fullname": "sqlglot.tokens.TokenType.FLOAT", "modulename": "sqlglot.tokens", "qualname": "TokenType.FLOAT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FLOAT: 'FLOAT'>"}, "sqlglot.tokens.TokenType.DOUBLE": {"fullname": "sqlglot.tokens.TokenType.DOUBLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOUBLE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DOUBLE: 'DOUBLE'>"}, "sqlglot.tokens.TokenType.DECIMAL": {"fullname": "sqlglot.tokens.TokenType.DECIMAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.DECIMAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DECIMAL: 'DECIMAL'>"}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"fullname": "sqlglot.tokens.TokenType.BIGDECIMAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGDECIMAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BIGDECIMAL: 'BIGDECIMAL'>"}, "sqlglot.tokens.TokenType.CHAR": {"fullname": "sqlglot.tokens.TokenType.CHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.CHAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CHAR: 'CHAR'>"}, "sqlglot.tokens.TokenType.NCHAR": {"fullname": "sqlglot.tokens.TokenType.NCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NCHAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NCHAR: 'NCHAR'>"}, "sqlglot.tokens.TokenType.VARCHAR": {"fullname": "sqlglot.tokens.TokenType.VARCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARCHAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VARCHAR: 'VARCHAR'>"}, "sqlglot.tokens.TokenType.NVARCHAR": {"fullname": "sqlglot.tokens.TokenType.NVARCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NVARCHAR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NVARCHAR: 'NVARCHAR'>"}, "sqlglot.tokens.TokenType.TEXT": {"fullname": "sqlglot.tokens.TokenType.TEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.TEXT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TEXT: 'TEXT'>"}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"fullname": "sqlglot.tokens.TokenType.MEDIUMTEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.MEDIUMTEXT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MEDIUMTEXT: 'MEDIUMTEXT'>"}, "sqlglot.tokens.TokenType.LONGTEXT": {"fullname": "sqlglot.tokens.TokenType.LONGTEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LONGTEXT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LONGTEXT: 'LONGTEXT'>"}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"fullname": "sqlglot.tokens.TokenType.MEDIUMBLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.MEDIUMBLOB", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MEDIUMBLOB: 'MEDIUMBLOB'>"}, "sqlglot.tokens.TokenType.LONGBLOB": {"fullname": "sqlglot.tokens.TokenType.LONGBLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.LONGBLOB", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LONGBLOB: 'LONGBLOB'>"}, "sqlglot.tokens.TokenType.BINARY": {"fullname": "sqlglot.tokens.TokenType.BINARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.BINARY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BINARY: 'BINARY'>"}, "sqlglot.tokens.TokenType.VARBINARY": {"fullname": "sqlglot.tokens.TokenType.VARBINARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARBINARY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VARBINARY: 'VARBINARY'>"}, "sqlglot.tokens.TokenType.JSON": {"fullname": "sqlglot.tokens.TokenType.JSON", "modulename": "sqlglot.tokens", "qualname": "TokenType.JSON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.JSON: 'JSON'>"}, "sqlglot.tokens.TokenType.JSONB": {"fullname": "sqlglot.tokens.TokenType.JSONB", "modulename": "sqlglot.tokens", "qualname": "TokenType.JSONB", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.JSONB: 'JSONB'>"}, "sqlglot.tokens.TokenType.TIME": {"fullname": "sqlglot.tokens.TokenType.TIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIME", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TIME: 'TIME'>"}, "sqlglot.tokens.TokenType.TIMESTAMP": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TIMESTAMP: 'TIMESTAMP'>"}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMPTZ", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMPTZ", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TIMESTAMPTZ: 'TIMESTAMPTZ'>"}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMPLTZ", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMPLTZ", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>"}, "sqlglot.tokens.TokenType.DATETIME": {"fullname": "sqlglot.tokens.TokenType.DATETIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATETIME", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATETIME: 'DATETIME'>"}, "sqlglot.tokens.TokenType.DATETIME64": {"fullname": "sqlglot.tokens.TokenType.DATETIME64", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATETIME64", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATETIME64: 'DATETIME64'>"}, "sqlglot.tokens.TokenType.DATE": {"fullname": "sqlglot.tokens.TokenType.DATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATE: 'DATE'>"}, "sqlglot.tokens.TokenType.INT4RANGE": {"fullname": "sqlglot.tokens.TokenType.INT4RANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT4RANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT4RANGE: 'INT4RANGE'>"}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"fullname": "sqlglot.tokens.TokenType.INT4MULTIRANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT4MULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT4MULTIRANGE: 'INT4MULTIRANGE'>"}, "sqlglot.tokens.TokenType.INT8RANGE": {"fullname": "sqlglot.tokens.TokenType.INT8RANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT8RANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT8RANGE: 'INT8RANGE'>"}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"fullname": "sqlglot.tokens.TokenType.INT8MULTIRANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT8MULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INT8MULTIRANGE: 'INT8MULTIRANGE'>"}, "sqlglot.tokens.TokenType.NUMRANGE": {"fullname": "sqlglot.tokens.TokenType.NUMRANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.NUMRANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NUMRANGE: 'NUMRANGE'>"}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"fullname": "sqlglot.tokens.TokenType.NUMMULTIRANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.NUMMULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NUMMULTIRANGE: 'NUMMULTIRANGE'>"}, "sqlglot.tokens.TokenType.TSRANGE": {"fullname": "sqlglot.tokens.TokenType.TSRANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TSRANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TSRANGE: 'TSRANGE'>"}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"fullname": "sqlglot.tokens.TokenType.TSMULTIRANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TSMULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TSMULTIRANGE: 'TSMULTIRANGE'>"}, "sqlglot.tokens.TokenType.TSTZRANGE": {"fullname": "sqlglot.tokens.TokenType.TSTZRANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TSTZRANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TSTZRANGE: 'TSTZRANGE'>"}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"fullname": "sqlglot.tokens.TokenType.TSTZMULTIRANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TSTZMULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TSTZMULTIRANGE: 'TSTZMULTIRANGE'>"}, "sqlglot.tokens.TokenType.DATERANGE": {"fullname": "sqlglot.tokens.TokenType.DATERANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATERANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATERANGE: 'DATERANGE'>"}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"fullname": "sqlglot.tokens.TokenType.DATEMULTIRANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATEMULTIRANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DATEMULTIRANGE: 'DATEMULTIRANGE'>"}, "sqlglot.tokens.TokenType.UUID": {"fullname": "sqlglot.tokens.TokenType.UUID", "modulename": "sqlglot.tokens", "qualname": "TokenType.UUID", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UUID: 'UUID'>"}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"fullname": "sqlglot.tokens.TokenType.GEOGRAPHY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GEOGRAPHY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GEOGRAPHY: 'GEOGRAPHY'>"}, "sqlglot.tokens.TokenType.NULLABLE": {"fullname": "sqlglot.tokens.TokenType.NULLABLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLABLE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NULLABLE: 'NULLABLE'>"}, "sqlglot.tokens.TokenType.GEOMETRY": {"fullname": "sqlglot.tokens.TokenType.GEOMETRY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GEOMETRY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GEOMETRY: 'GEOMETRY'>"}, "sqlglot.tokens.TokenType.HLLSKETCH": {"fullname": "sqlglot.tokens.TokenType.HLLSKETCH", "modulename": "sqlglot.tokens", "qualname": "TokenType.HLLSKETCH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.HLLSKETCH: 'HLLSKETCH'>"}, "sqlglot.tokens.TokenType.HSTORE": {"fullname": "sqlglot.tokens.TokenType.HSTORE", "modulename": "sqlglot.tokens", "qualname": "TokenType.HSTORE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.HSTORE: 'HSTORE'>"}, "sqlglot.tokens.TokenType.SUPER": {"fullname": "sqlglot.tokens.TokenType.SUPER", "modulename": "sqlglot.tokens", "qualname": "TokenType.SUPER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SUPER: 'SUPER'>"}, "sqlglot.tokens.TokenType.SERIAL": {"fullname": "sqlglot.tokens.TokenType.SERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.SERIAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SERIAL: 'SERIAL'>"}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"fullname": "sqlglot.tokens.TokenType.SMALLSERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLSERIAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SMALLSERIAL: 'SMALLSERIAL'>"}, "sqlglot.tokens.TokenType.BIGSERIAL": {"fullname": "sqlglot.tokens.TokenType.BIGSERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGSERIAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BIGSERIAL: 'BIGSERIAL'>"}, "sqlglot.tokens.TokenType.XML": {"fullname": "sqlglot.tokens.TokenType.XML", "modulename": "sqlglot.tokens", "qualname": "TokenType.XML", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.XML: 'XML'>"}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"fullname": "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNIQUEIDENTIFIER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>"}, "sqlglot.tokens.TokenType.MONEY": {"fullname": "sqlglot.tokens.TokenType.MONEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.MONEY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MONEY: 'MONEY'>"}, "sqlglot.tokens.TokenType.SMALLMONEY": {"fullname": "sqlglot.tokens.TokenType.SMALLMONEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLMONEY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SMALLMONEY: 'SMALLMONEY'>"}, "sqlglot.tokens.TokenType.ROWVERSION": {"fullname": "sqlglot.tokens.TokenType.ROWVERSION", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROWVERSION", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROWVERSION: 'ROWVERSION'>"}, "sqlglot.tokens.TokenType.IMAGE": {"fullname": "sqlglot.tokens.TokenType.IMAGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.IMAGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IMAGE: 'IMAGE'>"}, "sqlglot.tokens.TokenType.VARIANT": {"fullname": "sqlglot.tokens.TokenType.VARIANT", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARIANT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VARIANT: 'VARIANT'>"}, "sqlglot.tokens.TokenType.OBJECT": {"fullname": "sqlglot.tokens.TokenType.OBJECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.OBJECT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OBJECT: 'OBJECT'>"}, "sqlglot.tokens.TokenType.INET": {"fullname": "sqlglot.tokens.TokenType.INET", "modulename": "sqlglot.tokens", "qualname": "TokenType.INET", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INET: 'INET'>"}, "sqlglot.tokens.TokenType.ALIAS": {"fullname": "sqlglot.tokens.TokenType.ALIAS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALIAS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ALIAS: 'ALIAS'>"}, "sqlglot.tokens.TokenType.ALTER": {"fullname": "sqlglot.tokens.TokenType.ALTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALTER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ALTER: 'ALTER'>"}, "sqlglot.tokens.TokenType.ALWAYS": {"fullname": "sqlglot.tokens.TokenType.ALWAYS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALWAYS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ALWAYS: 'ALWAYS'>"}, "sqlglot.tokens.TokenType.ALL": {"fullname": "sqlglot.tokens.TokenType.ALL", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ALL: 'ALL'>"}, "sqlglot.tokens.TokenType.ANTI": {"fullname": "sqlglot.tokens.TokenType.ANTI", "modulename": "sqlglot.tokens", "qualname": "TokenType.ANTI", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ANTI: 'ANTI'>"}, "sqlglot.tokens.TokenType.ANY": {"fullname": "sqlglot.tokens.TokenType.ANY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ANY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ANY: 'ANY'>"}, "sqlglot.tokens.TokenType.APPLY": {"fullname": "sqlglot.tokens.TokenType.APPLY", "modulename": "sqlglot.tokens", "qualname": "TokenType.APPLY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.APPLY: 'APPLY'>"}, "sqlglot.tokens.TokenType.ARRAY": {"fullname": "sqlglot.tokens.TokenType.ARRAY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ARRAY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ARRAY: 'ARRAY'>"}, "sqlglot.tokens.TokenType.ASC": {"fullname": "sqlglot.tokens.TokenType.ASC", "modulename": "sqlglot.tokens", "qualname": "TokenType.ASC", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ASC: 'ASC'>"}, "sqlglot.tokens.TokenType.ASOF": {"fullname": "sqlglot.tokens.TokenType.ASOF", "modulename": "sqlglot.tokens", "qualname": "TokenType.ASOF", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ASOF: 'ASOF'>"}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"fullname": "sqlglot.tokens.TokenType.AUTO_INCREMENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.AUTO_INCREMENT", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.BEGIN: 'BEGIN'>"}, "sqlglot.tokens.TokenType.BETWEEN": {"fullname": "sqlglot.tokens.TokenType.BETWEEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BETWEEN", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.BETWEEN: 'BETWEEN'>"}, "sqlglot.tokens.TokenType.CACHE": {"fullname": "sqlglot.tokens.TokenType.CACHE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CACHE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CACHE: 'CACHE'>"}, "sqlglot.tokens.TokenType.CASE": {"fullname": "sqlglot.tokens.TokenType.CASE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CASE", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.CHARACTER_SET: 'CHARACTER_SET'>"}, "sqlglot.tokens.TokenType.COLLATE": {"fullname": "sqlglot.tokens.TokenType.COLLATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLLATE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COLLATE: 'COLLATE'>"}, "sqlglot.tokens.TokenType.COMMAND": {"fullname": "sqlglot.tokens.TokenType.COMMAND", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMAND", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COMMAND: 'COMMAND'>"}, "sqlglot.tokens.TokenType.COMMENT": {"fullname": "sqlglot.tokens.TokenType.COMMENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMENT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COMMENT: 'COMMENT'>"}, "sqlglot.tokens.TokenType.COMMIT": {"fullname": "sqlglot.tokens.TokenType.COMMIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMIT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.COMMIT: 'COMMIT'>"}, "sqlglot.tokens.TokenType.CONSTRAINT": {"fullname": "sqlglot.tokens.TokenType.CONSTRAINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.CONSTRAINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CONSTRAINT: 'CONSTRAINT'>"}, "sqlglot.tokens.TokenType.CREATE": {"fullname": "sqlglot.tokens.TokenType.CREATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CREATE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CREATE: 'CREATE'>"}, "sqlglot.tokens.TokenType.CROSS": {"fullname": "sqlglot.tokens.TokenType.CROSS", "modulename": "sqlglot.tokens", "qualname": "TokenType.CROSS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CROSS: 'CROSS'>"}, "sqlglot.tokens.TokenType.CUBE": {"fullname": "sqlglot.tokens.TokenType.CUBE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CUBE", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.CURRENT_DATETIME: 'CURRENT_DATETIME'>"}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"fullname": "sqlglot.tokens.TokenType.CURRENT_TIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_TIME", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'>"}, "sqlglot.tokens.TokenType.CURRENT_USER": {"fullname": "sqlglot.tokens.TokenType.CURRENT_USER", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_USER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.CURRENT_USER: 'CURRENT_USER'>"}, "sqlglot.tokens.TokenType.DEFAULT": {"fullname": "sqlglot.tokens.TokenType.DEFAULT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DEFAULT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DEFAULT: 'DEFAULT'>"}, "sqlglot.tokens.TokenType.DELETE": {"fullname": "sqlglot.tokens.TokenType.DELETE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DELETE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DELETE: 'DELETE'>"}, "sqlglot.tokens.TokenType.DESC": {"fullname": "sqlglot.tokens.TokenType.DESC", "modulename": "sqlglot.tokens", "qualname": "TokenType.DESC", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DESC: 'DESC'>"}, "sqlglot.tokens.TokenType.DESCRIBE": {"fullname": "sqlglot.tokens.TokenType.DESCRIBE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DESCRIBE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DESCRIBE: 'DESCRIBE'>"}, "sqlglot.tokens.TokenType.DICTIONARY": {"fullname": "sqlglot.tokens.TokenType.DICTIONARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.DICTIONARY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DICTIONARY: 'DICTIONARY'>"}, "sqlglot.tokens.TokenType.DISTINCT": {"fullname": "sqlglot.tokens.TokenType.DISTINCT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DISTINCT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DISTINCT: 'DISTINCT'>"}, "sqlglot.tokens.TokenType.DIV": {"fullname": "sqlglot.tokens.TokenType.DIV", "modulename": "sqlglot.tokens", "qualname": "TokenType.DIV", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DIV: 'DIV'>"}, "sqlglot.tokens.TokenType.DROP": {"fullname": "sqlglot.tokens.TokenType.DROP", "modulename": "sqlglot.tokens", "qualname": "TokenType.DROP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.DROP: 'DROP'>"}, "sqlglot.tokens.TokenType.ELSE": {"fullname": "sqlglot.tokens.TokenType.ELSE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ELSE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ELSE: 'ELSE'>"}, "sqlglot.tokens.TokenType.END": {"fullname": "sqlglot.tokens.TokenType.END", "modulename": "sqlglot.tokens", "qualname": "TokenType.END", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.END: 'END'>"}, "sqlglot.tokens.TokenType.ESCAPE": {"fullname": "sqlglot.tokens.TokenType.ESCAPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ESCAPE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ESCAPE: 'ESCAPE'>"}, "sqlglot.tokens.TokenType.EXCEPT": {"fullname": "sqlglot.tokens.TokenType.EXCEPT", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXCEPT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.EXCEPT: 'EXCEPT'>"}, "sqlglot.tokens.TokenType.EXECUTE": {"fullname": "sqlglot.tokens.TokenType.EXECUTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXECUTE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.EXECUTE: 'EXECUTE'>"}, "sqlglot.tokens.TokenType.EXISTS": {"fullname": "sqlglot.tokens.TokenType.EXISTS", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXISTS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.EXISTS: 'EXISTS'>"}, "sqlglot.tokens.TokenType.FALSE": {"fullname": "sqlglot.tokens.TokenType.FALSE", "modulename": "sqlglot.tokens", "qualname": "TokenType.FALSE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FALSE: 'FALSE'>"}, "sqlglot.tokens.TokenType.FETCH": {"fullname": "sqlglot.tokens.TokenType.FETCH", "modulename": "sqlglot.tokens", "qualname": "TokenType.FETCH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FETCH: 'FETCH'>"}, "sqlglot.tokens.TokenType.FILTER": {"fullname": "sqlglot.tokens.TokenType.FILTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.FILTER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FILTER: 'FILTER'>"}, "sqlglot.tokens.TokenType.FINAL": {"fullname": "sqlglot.tokens.TokenType.FINAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.FINAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FINAL: 'FINAL'>"}, "sqlglot.tokens.TokenType.FIRST": {"fullname": "sqlglot.tokens.TokenType.FIRST", "modulename": "sqlglot.tokens", "qualname": "TokenType.FIRST", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FIRST: 'FIRST'>"}, "sqlglot.tokens.TokenType.FOR": {"fullname": "sqlglot.tokens.TokenType.FOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.FOR", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.FORMAT: 'FORMAT'>"}, "sqlglot.tokens.TokenType.FROM": {"fullname": "sqlglot.tokens.TokenType.FROM", "modulename": "sqlglot.tokens", "qualname": "TokenType.FROM", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FROM: 'FROM'>"}, "sqlglot.tokens.TokenType.FULL": {"fullname": "sqlglot.tokens.TokenType.FULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.FULL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FULL: 'FULL'>"}, "sqlglot.tokens.TokenType.FUNCTION": {"fullname": "sqlglot.tokens.TokenType.FUNCTION", "modulename": "sqlglot.tokens", "qualname": "TokenType.FUNCTION", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.FUNCTION: 'FUNCTION'>"}, "sqlglot.tokens.TokenType.GLOB": {"fullname": "sqlglot.tokens.TokenType.GLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.GLOB", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.GLOB: 'GLOB'>"}, "sqlglot.tokens.TokenType.GLOBAL": {"fullname": "sqlglot.tokens.TokenType.GLOBAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.GLOBAL", "kind": "variable", "doc": "

\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": "

\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": "

\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": "

\n", "default_value": "<TokenType.HAVING: 'HAVING'>"}, "sqlglot.tokens.TokenType.HINT": {"fullname": "sqlglot.tokens.TokenType.HINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.HINT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.HINT: 'HINT'>"}, "sqlglot.tokens.TokenType.IF": {"fullname": "sqlglot.tokens.TokenType.IF", "modulename": "sqlglot.tokens", "qualname": "TokenType.IF", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IF: 'IF'>"}, "sqlglot.tokens.TokenType.ILIKE": {"fullname": "sqlglot.tokens.TokenType.ILIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ILIKE", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.IN: 'IN'>"}, "sqlglot.tokens.TokenType.INDEX": {"fullname": "sqlglot.tokens.TokenType.INDEX", "modulename": "sqlglot.tokens", "qualname": "TokenType.INDEX", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INDEX: 'INDEX'>"}, "sqlglot.tokens.TokenType.INNER": {"fullname": "sqlglot.tokens.TokenType.INNER", "modulename": "sqlglot.tokens", "qualname": "TokenType.INNER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INNER: 'INNER'>"}, "sqlglot.tokens.TokenType.INSERT": {"fullname": "sqlglot.tokens.TokenType.INSERT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INSERT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INSERT: 'INSERT'>"}, "sqlglot.tokens.TokenType.INTERSECT": {"fullname": "sqlglot.tokens.TokenType.INTERSECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTERSECT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INTERSECT: 'INTERSECT'>"}, "sqlglot.tokens.TokenType.INTERVAL": {"fullname": "sqlglot.tokens.TokenType.INTERVAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTERVAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INTERVAL: 'INTERVAL'>"}, "sqlglot.tokens.TokenType.INTO": {"fullname": "sqlglot.tokens.TokenType.INTO", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTO", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INTO: 'INTO'>"}, "sqlglot.tokens.TokenType.INTRODUCER": {"fullname": "sqlglot.tokens.TokenType.INTRODUCER", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTRODUCER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.INTRODUCER: 'INTRODUCER'>"}, "sqlglot.tokens.TokenType.IRLIKE": {"fullname": "sqlglot.tokens.TokenType.IRLIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.IRLIKE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IRLIKE: 'IRLIKE'>"}, "sqlglot.tokens.TokenType.IS": {"fullname": "sqlglot.tokens.TokenType.IS", "modulename": "sqlglot.tokens", "qualname": "TokenType.IS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.IS: 'IS'>"}, "sqlglot.tokens.TokenType.ISNULL": {"fullname": "sqlglot.tokens.TokenType.ISNULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.ISNULL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ISNULL: 'ISNULL'>"}, "sqlglot.tokens.TokenType.JOIN": {"fullname": "sqlglot.tokens.TokenType.JOIN", "modulename": "sqlglot.tokens", "qualname": "TokenType.JOIN", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.JOIN_MARKER: 'JOIN_MARKER'>"}, "sqlglot.tokens.TokenType.KEEP": {"fullname": "sqlglot.tokens.TokenType.KEEP", "modulename": "sqlglot.tokens", "qualname": "TokenType.KEEP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.KEEP: 'KEEP'>"}, "sqlglot.tokens.TokenType.LANGUAGE": {"fullname": "sqlglot.tokens.TokenType.LANGUAGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LANGUAGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LANGUAGE: 'LANGUAGE'>"}, "sqlglot.tokens.TokenType.LATERAL": {"fullname": "sqlglot.tokens.TokenType.LATERAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.LATERAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LATERAL: 'LATERAL'>"}, "sqlglot.tokens.TokenType.LEFT": {"fullname": "sqlglot.tokens.TokenType.LEFT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LEFT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LEFT: 'LEFT'>"}, "sqlglot.tokens.TokenType.LIKE": {"fullname": "sqlglot.tokens.TokenType.LIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LIKE", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.LIMIT: 'LIMIT'>"}, "sqlglot.tokens.TokenType.LOAD": {"fullname": "sqlglot.tokens.TokenType.LOAD", "modulename": "sqlglot.tokens", "qualname": "TokenType.LOAD", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LOAD: 'LOAD'>"}, "sqlglot.tokens.TokenType.LOCK": {"fullname": "sqlglot.tokens.TokenType.LOCK", "modulename": "sqlglot.tokens", "qualname": "TokenType.LOCK", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.LOCK: 'LOCK'>"}, "sqlglot.tokens.TokenType.MAP": {"fullname": "sqlglot.tokens.TokenType.MAP", "modulename": "sqlglot.tokens", "qualname": "TokenType.MAP", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.MATCH_RECOGNIZE: 'MATCH_RECOGNIZE'>"}, "sqlglot.tokens.TokenType.MERGE": {"fullname": "sqlglot.tokens.TokenType.MERGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.MERGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MERGE: 'MERGE'>"}, "sqlglot.tokens.TokenType.MOD": {"fullname": "sqlglot.tokens.TokenType.MOD", "modulename": "sqlglot.tokens", "qualname": "TokenType.MOD", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.MOD: 'MOD'>"}, "sqlglot.tokens.TokenType.NATURAL": {"fullname": "sqlglot.tokens.TokenType.NATURAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NATURAL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NATURAL: 'NATURAL'>"}, "sqlglot.tokens.TokenType.NEXT": {"fullname": "sqlglot.tokens.TokenType.NEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEXT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NEXT: 'NEXT'>"}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"fullname": "sqlglot.tokens.TokenType.NEXT_VALUE_FOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEXT_VALUE_FOR", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NEXT_VALUE_FOR: 'NEXT_VALUE_FOR'>"}, "sqlglot.tokens.TokenType.NOTNULL": {"fullname": "sqlglot.tokens.TokenType.NOTNULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NOTNULL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NOTNULL: 'NOTNULL'>"}, "sqlglot.tokens.TokenType.NULL": {"fullname": "sqlglot.tokens.TokenType.NULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULL", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.NULL: 'NULL'>"}, "sqlglot.tokens.TokenType.OFFSET": {"fullname": "sqlglot.tokens.TokenType.OFFSET", "modulename": "sqlglot.tokens", "qualname": "TokenType.OFFSET", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OFFSET: 'OFFSET'>"}, "sqlglot.tokens.TokenType.ON": {"fullname": "sqlglot.tokens.TokenType.ON", "modulename": "sqlglot.tokens", "qualname": "TokenType.ON", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ON: 'ON'>"}, "sqlglot.tokens.TokenType.ORDER_BY": {"fullname": "sqlglot.tokens.TokenType.ORDER_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDER_BY", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.ORDERED: 'ORDERED'>"}, "sqlglot.tokens.TokenType.ORDINALITY": {"fullname": "sqlglot.tokens.TokenType.ORDINALITY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDINALITY", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ORDINALITY: 'ORDINALITY'>"}, "sqlglot.tokens.TokenType.OUTER": {"fullname": "sqlglot.tokens.TokenType.OUTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.OUTER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OUTER: 'OUTER'>"}, "sqlglot.tokens.TokenType.OVER": {"fullname": "sqlglot.tokens.TokenType.OVER", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OVER: 'OVER'>"}, "sqlglot.tokens.TokenType.OVERLAPS": {"fullname": "sqlglot.tokens.TokenType.OVERLAPS", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVERLAPS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OVERLAPS: 'OVERLAPS'>"}, "sqlglot.tokens.TokenType.OVERWRITE": {"fullname": "sqlglot.tokens.TokenType.OVERWRITE", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVERWRITE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.OVERWRITE: 'OVERWRITE'>"}, "sqlglot.tokens.TokenType.PARTITION": {"fullname": "sqlglot.tokens.TokenType.PARTITION", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARTITION", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.PERCENT: 'PERCENT'>"}, "sqlglot.tokens.TokenType.PIVOT": {"fullname": "sqlglot.tokens.TokenType.PIVOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.PIVOT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PIVOT: 'PIVOT'>"}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"fullname": "sqlglot.tokens.TokenType.PLACEHOLDER", "modulename": "sqlglot.tokens", "qualname": "TokenType.PLACEHOLDER", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PLACEHOLDER: 'PLACEHOLDER'>"}, "sqlglot.tokens.TokenType.PRAGMA": {"fullname": "sqlglot.tokens.TokenType.PRAGMA", "modulename": "sqlglot.tokens", "qualname": "TokenType.PRAGMA", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.PRAGMA: 'PRAGMA'>"}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"fullname": "sqlglot.tokens.TokenType.PRIMARY_KEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.PRIMARY_KEY", "kind": "variable", "doc": "

\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": "

\n", "default_value": "<TokenType.PROCEDURE: 'PROCEDURE'>"}, "sqlglot.tokens.TokenType.PROPERTIES": {"fullname": "sqlglot.tokens.TokenType.PROPERTIES", "modulename": "sqlglot.tokens", "qualname": "TokenType.PROPERTIES", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.QUALIFY: 'QUALIFY'>"}, "sqlglot.tokens.TokenType.QUOTE": {"fullname": "sqlglot.tokens.TokenType.QUOTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.QUOTE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.QUOTE: 'QUOTE'>"}, "sqlglot.tokens.TokenType.RANGE": {"fullname": "sqlglot.tokens.TokenType.RANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RANGE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RANGE: 'RANGE'>"}, "sqlglot.tokens.TokenType.RECURSIVE": {"fullname": "sqlglot.tokens.TokenType.RECURSIVE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RECURSIVE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RECURSIVE: 'RECURSIVE'>"}, "sqlglot.tokens.TokenType.REPLACE": {"fullname": "sqlglot.tokens.TokenType.REPLACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.REPLACE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.REPLACE: 'REPLACE'>"}, "sqlglot.tokens.TokenType.RETURNING": {"fullname": "sqlglot.tokens.TokenType.RETURNING", "modulename": "sqlglot.tokens", "qualname": "TokenType.RETURNING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RETURNING: 'RETURNING'>"}, "sqlglot.tokens.TokenType.REFERENCES": {"fullname": "sqlglot.tokens.TokenType.REFERENCES", "modulename": "sqlglot.tokens", "qualname": "TokenType.REFERENCES", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.REFERENCES: 'REFERENCES'>"}, "sqlglot.tokens.TokenType.RIGHT": {"fullname": "sqlglot.tokens.TokenType.RIGHT", "modulename": "sqlglot.tokens", "qualname": "TokenType.RIGHT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RIGHT: 'RIGHT'>"}, "sqlglot.tokens.TokenType.RLIKE": {"fullname": "sqlglot.tokens.TokenType.RLIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RLIKE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.RLIKE: 'RLIKE'>"}, "sqlglot.tokens.TokenType.ROLLBACK": {"fullname": "sqlglot.tokens.TokenType.ROLLBACK", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROLLBACK", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROLLBACK: 'ROLLBACK'>"}, "sqlglot.tokens.TokenType.ROLLUP": {"fullname": "sqlglot.tokens.TokenType.ROLLUP", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROLLUP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROLLUP: 'ROLLUP'>"}, "sqlglot.tokens.TokenType.ROW": {"fullname": "sqlglot.tokens.TokenType.ROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROW: 'ROW'>"}, "sqlglot.tokens.TokenType.ROWS": {"fullname": "sqlglot.tokens.TokenType.ROWS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROWS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.ROWS: 'ROWS'>"}, "sqlglot.tokens.TokenType.SELECT": {"fullname": "sqlglot.tokens.TokenType.SELECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.SELECT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SELECT: 'SELECT'>"}, "sqlglot.tokens.TokenType.SEMI": {"fullname": "sqlglot.tokens.TokenType.SEMI", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEMI", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SEMI: 'SEMI'>"}, "sqlglot.tokens.TokenType.SEPARATOR": {"fullname": "sqlglot.tokens.TokenType.SEPARATOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEPARATOR", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.SET: 'SET'>"}, "sqlglot.tokens.TokenType.SETTINGS": {"fullname": "sqlglot.tokens.TokenType.SETTINGS", "modulename": "sqlglot.tokens", "qualname": "TokenType.SETTINGS", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.SETTINGS: 'SETTINGS'>"}, "sqlglot.tokens.TokenType.SHOW": {"fullname": "sqlglot.tokens.TokenType.SHOW", "modulename": "sqlglot.tokens", "qualname": "TokenType.SHOW", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.SOME: 'SOME'>"}, "sqlglot.tokens.TokenType.STRUCT": {"fullname": "sqlglot.tokens.TokenType.STRUCT", "modulename": "sqlglot.tokens", "qualname": "TokenType.STRUCT", "kind": "variable", "doc": "

\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": "

\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": "

\n", "default_value": "<TokenType.TEMPORARY: 'TEMPORARY'>"}, "sqlglot.tokens.TokenType.TOP": {"fullname": "sqlglot.tokens.TokenType.TOP", "modulename": "sqlglot.tokens", "qualname": "TokenType.TOP", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TOP: 'TOP'>"}, "sqlglot.tokens.TokenType.THEN": {"fullname": "sqlglot.tokens.TokenType.THEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.THEN", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.THEN: 'THEN'>"}, "sqlglot.tokens.TokenType.TRUE": {"fullname": "sqlglot.tokens.TokenType.TRUE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TRUE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.TRUE: 'TRUE'>"}, "sqlglot.tokens.TokenType.UNCACHE": {"fullname": "sqlglot.tokens.TokenType.UNCACHE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNCACHE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNCACHE: 'UNCACHE'>"}, "sqlglot.tokens.TokenType.UNION": {"fullname": "sqlglot.tokens.TokenType.UNION", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNION", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNION: 'UNION'>"}, "sqlglot.tokens.TokenType.UNNEST": {"fullname": "sqlglot.tokens.TokenType.UNNEST", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNNEST", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNNEST: 'UNNEST'>"}, "sqlglot.tokens.TokenType.UNPIVOT": {"fullname": "sqlglot.tokens.TokenType.UNPIVOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNPIVOT", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNPIVOT: 'UNPIVOT'>"}, "sqlglot.tokens.TokenType.UPDATE": {"fullname": "sqlglot.tokens.TokenType.UPDATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UPDATE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UPDATE: 'UPDATE'>"}, "sqlglot.tokens.TokenType.USE": {"fullname": "sqlglot.tokens.TokenType.USE", "modulename": "sqlglot.tokens", "qualname": "TokenType.USE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.USE: 'USE'>"}, "sqlglot.tokens.TokenType.USING": {"fullname": "sqlglot.tokens.TokenType.USING", "modulename": "sqlglot.tokens", "qualname": "TokenType.USING", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.USING: 'USING'>"}, "sqlglot.tokens.TokenType.VALUES": {"fullname": "sqlglot.tokens.TokenType.VALUES", "modulename": "sqlglot.tokens", "qualname": "TokenType.VALUES", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VALUES: 'VALUES'>"}, "sqlglot.tokens.TokenType.VIEW": {"fullname": "sqlglot.tokens.TokenType.VIEW", "modulename": "sqlglot.tokens", "qualname": "TokenType.VIEW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VIEW: 'VIEW'>"}, "sqlglot.tokens.TokenType.VOLATILE": {"fullname": "sqlglot.tokens.TokenType.VOLATILE", "modulename": "sqlglot.tokens", "qualname": "TokenType.VOLATILE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.VOLATILE: 'VOLATILE'>"}, "sqlglot.tokens.TokenType.WHEN": {"fullname": "sqlglot.tokens.TokenType.WHEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.WHEN", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.WHEN: 'WHEN'>"}, "sqlglot.tokens.TokenType.WHERE": {"fullname": "sqlglot.tokens.TokenType.WHERE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WHERE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.WHERE: 'WHERE'>"}, "sqlglot.tokens.TokenType.WINDOW": {"fullname": "sqlglot.tokens.TokenType.WINDOW", "modulename": "sqlglot.tokens", "qualname": "TokenType.WINDOW", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.WINDOW: 'WINDOW'>"}, "sqlglot.tokens.TokenType.WITH": {"fullname": "sqlglot.tokens.TokenType.WITH", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITH", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.WITH: 'WITH'>"}, "sqlglot.tokens.TokenType.UNIQUE": {"fullname": "sqlglot.tokens.TokenType.UNIQUE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNIQUE", "kind": "variable", "doc": "

\n", "default_value": "<TokenType.UNIQUE: 'UNIQUE'>"}, "sqlglot.tokens.Token": {"fullname": "sqlglot.tokens.Token", "modulename": "sqlglot.tokens", "qualname": "Token", "kind": "class", "doc": "

\n"}, "sqlglot.tokens.Token.__init__": {"fullname": "sqlglot.tokens.Token.__init__", "modulename": "sqlglot.tokens", "qualname": "Token.__init__", "kind": "function", "doc": "

Token initializer.

\n\n
Arguments:
\n\n
    \n
  • token_type: The TokenType Enum.
  • \n
  • text: The text of the token.
  • \n
  • line: The line that the token ends on.
  • \n
  • col: The column that the token ends on.
  • \n
  • start: The start index of the token.
  • \n
  • end: The ending index of the token.
  • \n
\n", "signature": "(\ttoken_type: sqlglot.tokens.TokenType,\ttext: str,\tline: int = 1,\tcol: int = 1,\tstart: int = 0,\tend: int = 0,\tcomments: List[str] = [])"}, "sqlglot.tokens.Token.number": {"fullname": "sqlglot.tokens.Token.number", "modulename": "sqlglot.tokens", "qualname": "Token.number", "kind": "function", "doc": "

Returns a NUMBER token with number as its text.

\n", "signature": "(cls, number: int) -> sqlglot.tokens.Token:", "funcdef": "def"}, "sqlglot.tokens.Token.string": {"fullname": "sqlglot.tokens.Token.string", "modulename": "sqlglot.tokens", "qualname": "Token.string", "kind": "function", "doc": "

Returns a STRING token with string as its text.

\n", "signature": "(cls, string: str) -> sqlglot.tokens.Token:", "funcdef": "def"}, "sqlglot.tokens.Token.identifier": {"fullname": "sqlglot.tokens.Token.identifier", "modulename": "sqlglot.tokens", "qualname": "Token.identifier", "kind": "function", "doc": "

Returns an IDENTIFIER token with identifier as its text.

\n", "signature": "(cls, identifier: str) -> sqlglot.tokens.Token:", "funcdef": "def"}, "sqlglot.tokens.Token.var": {"fullname": "sqlglot.tokens.Token.var", "modulename": "sqlglot.tokens", "qualname": "Token.var", "kind": "function", "doc": "

Returns an VAR token with var as its text.

\n", "signature": "(cls, var: str) -> sqlglot.tokens.Token:", "funcdef": "def"}, "sqlglot.tokens.Tokenizer": {"fullname": "sqlglot.tokens.Tokenizer", "modulename": "sqlglot.tokens", "qualname": "Tokenizer", "kind": "class", "doc": "

\n"}, "sqlglot.tokens.Tokenizer.reset": {"fullname": "sqlglot.tokens.Tokenizer.reset", "modulename": "sqlglot.tokens", "qualname": "Tokenizer.reset", "kind": "function", "doc": "

\n", "signature": "(self) -> None:", "funcdef": "def"}, "sqlglot.tokens.Tokenizer.tokenize": {"fullname": "sqlglot.tokens.Tokenizer.tokenize", "modulename": "sqlglot.tokens", "qualname": "Tokenizer.tokenize", "kind": "function", "doc": "

Returns a list of tokens corresponding to the SQL string sql.

\n", "signature": "(self, sql: str) -> List[sqlglot.tokens.Token]:", "funcdef": "def"}, "sqlglot.transforms": {"fullname": "sqlglot.transforms", "modulename": "sqlglot.transforms", "kind": "module", "doc": "

\n"}, "sqlglot.transforms.unalias_group": {"fullname": "sqlglot.transforms.unalias_group", "modulename": "sqlglot.transforms", "qualname": "unalias_group", "kind": "function", "doc": "

Replace references to select aliases in GROUP BY clauses.

\n\n
Example:
\n\n
\n
\n
>>> import sqlglot\n>>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()\n'SELECT a AS b FROM x GROUP BY 1'\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • expression: the expression that will be transformed.
  • \n
\n\n
Returns:
\n\n
\n

The transformed expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.eliminate_distinct_on": {"fullname": "sqlglot.transforms.eliminate_distinct_on", "modulename": "sqlglot.transforms", "qualname": "eliminate_distinct_on", "kind": "function", "doc": "

Convert SELECT DISTINCT ON statements to a subquery with a window function.

\n\n

This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.

\n\n
Arguments:
\n\n
    \n
  • expression: the expression that will be transformed.
  • \n
\n\n
Returns:
\n\n
\n

The transformed expression.

\n
\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.eliminate_qualify": {"fullname": "sqlglot.transforms.eliminate_qualify", "modulename": "sqlglot.transforms", "qualname": "eliminate_qualify", "kind": "function", "doc": "

Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.

\n\n

The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY:\nhttps://docs.snowflake.com/en/sql-reference/constructs/qualify

\n\n

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.

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "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": "

Some dialects only allow the precision for parameterized types to be defined in the DDL and not in\nother expressions. This transforms removes the precision from parameterized types in expressions.

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.unnest_to_explode": {"fullname": "sqlglot.transforms.unnest_to_explode", "modulename": "sqlglot.transforms", "qualname": "unnest_to_explode", "kind": "function", "doc": "

Convert cross join unnest into lateral view explode (used in presto -> hive).

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.explode_to_unnest": {"fullname": "sqlglot.transforms.explode_to_unnest", "modulename": "sqlglot.transforms", "qualname": "explode_to_unnest", "kind": "function", "doc": "

Convert explode/posexplode into unnest (used in hive -> presto).

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.remove_target_from_merge": {"fullname": "sqlglot.transforms.remove_target_from_merge", "modulename": "sqlglot.transforms", "qualname": "remove_target_from_merge", "kind": "function", "doc": "

Remove table refs from columns in when statements.

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.remove_within_group_for_percentiles": {"fullname": "sqlglot.transforms.remove_within_group_for_percentiles", "modulename": "sqlglot.transforms", "qualname": "remove_within_group_for_percentiles", "kind": "function", "doc": "

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.add_recursive_cte_column_names": {"fullname": "sqlglot.transforms.add_recursive_cte_column_names", "modulename": "sqlglot.transforms", "qualname": "add_recursive_cte_column_names", "kind": "function", "doc": "

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.epoch_cast_to_ts": {"fullname": "sqlglot.transforms.epoch_cast_to_ts", "modulename": "sqlglot.transforms", "qualname": "epoch_cast_to_ts", "kind": "function", "doc": "

\n", "signature": "(\texpression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:", "funcdef": "def"}, "sqlglot.transforms.preprocess": {"fullname": "sqlglot.transforms.preprocess", "modulename": "sqlglot.transforms", "qualname": "preprocess", "kind": "function", "doc": "

Creates a new transform by chaining a sequence of transformations and converts the resulting\nexpression to SQL, using either the \"_sql\" method corresponding to the resulting expression,\nor the appropriate Generator.TRANSFORMS function (when applicable -- see below).

\n\n
Arguments:
\n\n
    \n
  • transforms: sequence of transform functions. These will be called in order.
  • \n
\n\n
Returns:
\n\n
\n

Function that can be used as a generator transform.

\n
\n", "signature": "(\ttransforms: List[Callable[[sqlglot.expressions.Expression], sqlglot.expressions.Expression]]) -> Callable[[sqlglot.generator.Generator, sqlglot.expressions.Expression], str]:", "funcdef": "def"}, "sqlglot.trie": {"fullname": "sqlglot.trie", "modulename": "sqlglot.trie", "kind": "module", "doc": "

\n"}, "sqlglot.trie.new_trie": {"fullname": "sqlglot.trie.new_trie", "modulename": "sqlglot.trie", "qualname": "new_trie", "kind": "function", "doc": "

Creates a new trie out of a collection of keywords.

\n\n

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.

\n\n
Example:
\n\n
\n
\n
>>> new_trie(["bla", "foo", "blab"])\n{'b': {'l': {'a': {0: True, 'b': {0: True}}}}, 'f': {'o': {'o': {0: True}}}}\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • keywords: the keywords to create the trie from.
  • \n
  • trie: a trie to mutate instead of creating a new one
  • \n
\n\n
Returns:
\n\n
\n

The trie corresponding to keywords.

\n
\n", "signature": "(\tkeywords: Iterable[Sequence[Hashable]],\ttrie: Optional[Dict] = None) -> Dict:", "funcdef": "def"}, "sqlglot.trie.in_trie": {"fullname": "sqlglot.trie.in_trie", "modulename": "sqlglot.trie", "qualname": "in_trie", "kind": "function", "doc": "

Checks whether a key is in a trie.

\n\n
Examples:
\n\n
\n
\n
>>> in_trie(new_trie(["cat"]), "bob")\n(0, {'c': {'a': {'t': {0: True}}}})\n
\n
\n \n
\n
>>> in_trie(new_trie(["cat"]), "ca")\n(1, {'t': {0: True}})\n
\n
\n \n
\n
>>> in_trie(new_trie(["cat"]), "cat")\n(2, {0: True})\n
\n
\n
\n\n
Arguments:
\n\n
    \n
  • trie: the trie to be searched.
  • \n
  • key: the target key.
  • \n
\n\n
Returns:
\n\n
\n

A pair (value, subtrie), where subtrie is the sub-trie we get at the point where the search stops, and value\n is either 0 (search was unsuccessful), 1 (value is a prefix of a keyword in trie) or 2 (key is intrie`).

\n
\n", "signature": "(trie: Dict, key: Sequence[Hashable]) -> Tuple[int, Dict]:", "funcdef": "def"}}, "docInfo": {"sqlglot": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 5861}, "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": 3}, "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": 692}, "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.bigquery.BigQuery.Generator.with_properties": {"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": 692}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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": 692}, "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.SPARK2": {"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.no_comment_column_constraint_sql": {"qualname": 5, "fullname": 8, "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.parse_date_delta_with_interval": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 46, "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.left_to_substring_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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": 51, "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.dialect.pivot_column_names": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 111, "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": 692}, "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": 692}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 81, "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": 692}, "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.hive.Hive.Generator.after_having_modifiers": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 40, "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": 692}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "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": 692}, "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": 692}, "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": 692}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "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": 692}, "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.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": 692}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "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.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": 692}, "sqlglot.dialects.spark.Spark.Generator.datediff_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.spark2": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.spark2.Spark2": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.spark2.Spark2.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 174}, "sqlglot.dialects.spark2.Spark2.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 692}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dialects.spark2.Spark2.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": 692}, "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.groupconcat_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "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": 692}, "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": 692}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "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": 692}, "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": 692}, "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": 67, "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": 692}, "sqlglot.dialects.tsql.TSQL.Generator.offset_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "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": 692}, "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": 2, "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.add_comments": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.expressions.Expression.append": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 54}, "sqlglot.expressions.Expression.set": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 45}, "sqlglot.expressions.Expression.depth": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.iter_expressions": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 14}, "sqlglot.expressions.Expression.find": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 83}, "sqlglot.expressions.Expression.find_all": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 81}, "sqlglot.expressions.Expression.find_ancestor": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 43}, "sqlglot.expressions.Expression.parent_select": {"qualname": 3, "fullname": 5, "annotation": 4, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "sqlglot.expressions.Expression.same_parent": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 13}, "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": 81}, "sqlglot.expressions.Expression.pop": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 22}, "sqlglot.expressions.Expression.assert_is": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "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": 168, "bases": 0, "doc": 183}, "sqlglot.expressions.Condition.or_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 168, "bases": 0, "doc": 183}, "sqlglot.expressions.Condition.not_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 108}, "sqlglot.expressions.Condition.as_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 178, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.isin": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 110, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.between": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.is_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.like": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.ilike": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.eq": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.neq": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.expressions.Condition.rlike": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "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": 160, "bases": 0, "doc": 201}, "sqlglot.expressions.Unionable.intersect": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 160, "bases": 0, "doc": 201}, "sqlglot.expressions.Unionable.except_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 160, "bases": 0, "doc": 202}, "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.Clone": {"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.Pragma": {"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.RawString": {"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.Column.parts": {"qualname": 2, "fullname": 4, "annotation": 4, "default_value": 0, "signature": 0, "bases": 0, "doc": 15}, "sqlglot.expressions.Column.to_dot": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 10}, "sqlglot.expressions.ColumnPosition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "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.MergeTreeTTLAction": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MergeTreeTTL": {"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.OnUpdateColumnConstraint": {"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": 186, "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.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": 2, "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.Insert.with_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 236, "bases": 0, "doc": 291}, "sqlglot.expressions.OnConflict": {"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": 2, "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": 186, "bases": 0, "doc": 239}, "sqlglot.expressions.Join.using": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 241}, "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.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.InputOutputFormat": {"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.DictProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DictSubProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DictRange": {"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.RowFormatProperty": {"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.SettingsProperty": {"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.StabilityProperty": {"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.VolatileProperty": {"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": 35, "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.Tuple.isin": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 110, "bases": 0, "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": 89, "bases": 0, "doc": 213}, "sqlglot.expressions.Subqueryable.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 166, "bases": 0, "doc": 3}, "sqlglot.expressions.Subqueryable.with_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 236, "bases": 0, "doc": 301}, "sqlglot.expressions.Table": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Table.parts": {"qualname": 2, "fullname": 4, "annotation": 4, "default_value": 0, "signature": 0, "bases": 0, "doc": 14}, "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": 166, "bases": 0, "doc": 221}, "sqlglot.expressions.Union.select": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "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": 160, "bases": 0, "doc": 199}, "sqlglot.expressions.Select.group_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 275}, "sqlglot.expressions.Select.order_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 250}, "sqlglot.expressions.Select.sort_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 264}, "sqlglot.expressions.Select.cluster_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 264}, "sqlglot.expressions.Select.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 166, "bases": 0, "doc": 219}, "sqlglot.expressions.Select.offset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 166, "bases": 0, "doc": 219}, "sqlglot.expressions.Select.select": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 196}, "sqlglot.expressions.Select.lateral": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 235}, "sqlglot.expressions.Select.join": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 372, "bases": 0, "doc": 621}, "sqlglot.expressions.Select.where": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 253}, "sqlglot.expressions.Select.having": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 275}, "sqlglot.expressions.Select.window": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 3}, "sqlglot.expressions.Select.qualify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 186, "bases": 0, "doc": 3}, "sqlglot.expressions.Select.distinct": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 102, "bases": 0, "doc": 157}, "sqlglot.expressions.Select.ctas": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 184, "bases": 0, "doc": 223}, "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": 2, "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": 2, "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.DataTypeSize": {"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.ARRAY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"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.BIGSERIAL": {"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.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.CHAR": {"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.DATETIME64": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TSRANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DATERANGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"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.DOUBLE": {"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.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.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.IMAGE": {"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.INT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT128": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT256": {"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.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.LONGBLOB": {"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.MAP": {"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.MEDIUMTEXT": {"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.NCHAR": {"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.NULLABLE": {"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.OBJECT": {"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.SERIAL": {"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.SMALLMONEY": {"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.STRUCT": {"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.TEXT": {"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.TINYINT": {"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.UINT": {"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.UTINYINT": {"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.Type.UINT128": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UINT256": {"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.UUID": {"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.VARCHAR": {"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.XML": {"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": 65, "bases": 0, "doc": 3}, "sqlglot.expressions.PseudoType": {"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": 1, "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.Dot.build": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 12}, "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": 1, "doc": 3}, "sqlglot.expressions.Paren": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "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": 2, "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.ParameterizedAgg": {"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.Hll": {"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.Case.when": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 117, "bases": 0, "doc": 3}, "sqlglot.expressions.Case.else_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 84, "bases": 0, "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": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Cast.is_type": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 65, "bases": 0, "doc": 3}, "sqlglot.expressions.CastToStrType": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "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.CurrentUser": {"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.FromBase64": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ToBase64": {"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.JSONKeyValue": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONObject": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.OpenJSONColumnDef": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.OpenJSON": {"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.JSONFormat": {"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.Left": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Right": {"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.StarMap": {"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.MatchAgainst": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Max": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MD5": {"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.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.SHA": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SHA2": {"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.StandardHash": {"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.NextValueFor": {"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": 187, "bases": 0, "doc": 216}, "sqlglot.expressions.intersect": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 187, "bases": 0, "doc": 216}, "sqlglot.expressions.except_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 187, "bases": 0, "doc": 217}, "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": 136, "bases": 0, "doc": 205}, "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.insert": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 259, "bases": 0, "doc": 197}, "sqlglot.expressions.condition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 154, "bases": 0, "doc": 347}, "sqlglot.expressions.and_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 162, "bases": 0, "doc": 192}, "sqlglot.expressions.or_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 162, "bases": 0, "doc": 192}, "sqlglot.expressions.not_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 154, "bases": 0, "doc": 159}, "sqlglot.expressions.paren": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 122}, "sqlglot.expressions.to_identifier": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 69}, "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": 149, "bases": 0, "doc": 101}, "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": 242, "bases": 0, "doc": 305}, "sqlglot.expressions.subquery": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 182, "bases": 0, "doc": 188}, "sqlglot.expressions.column": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 208, "bases": 0, "doc": 74}, "sqlglot.expressions.cast": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 108, "bases": 0, "doc": 123}, "sqlglot.expressions.table_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 208, "bases": 0, "doc": 75}, "sqlglot.expressions.values": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 143}, "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": 46, "bases": 0, "doc": 74}, "sqlglot.expressions.replace_children": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 57, "bases": 0, "doc": 18}, "sqlglot.expressions.column_table_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 127}, "sqlglot.expressions.table_name": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 147}, "sqlglot.expressions.replace_tables": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 170}, "sqlglot.expressions.replace_placeholders": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 56, "bases": 0, "doc": 246}, "sqlglot.expressions.expand": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 91, "bases": 0, "doc": 338}, "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": 20, "bases": 0, "doc": 8}, "sqlglot.expressions.false": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 8}, "sqlglot.expressions.null": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 20, "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": 692}, "sqlglot.generator.Generator.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 411, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.generate": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 76, "bases": 0, "doc": 55}, "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": 88, "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.columnposition_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": 54, "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": 34, "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.clone_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.bytestring_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.rawstring_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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": 55, "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.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.onconflict_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": 74, "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.pragma_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.after_having_modifiers": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.after_limit_modifiers": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "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.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.windowspec_sql": {"qualname": 3, "fullname": 5, "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.nextvaluefor_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.if_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.matchagainst_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.jsonobject_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_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.likeany_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": 179, "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.generator.Generator.dictproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.dictrange_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.dictsubproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.cached_generator": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 65, "bases": 0, "doc": 7}, "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": 41, "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": 76, "bases": 0, "doc": 98}, "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": 67, "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.name_sequence": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 20}, "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.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.case_sensitive": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 89, "bases": 0, "doc": 14}, "sqlglot.helper.should_identify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 113, "bases": 0, "doc": 102}, "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": 120, "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": 253, "bases": 0, "doc": 106}, "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.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": 278}, "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.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": 276}, "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": 64, "bases": 0, "doc": 188}, "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": 27, "bases": 0, "doc": 39}, "sqlglot.optimizer.normalize_identifiers": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 100, "bases": 0, "doc": 187}, "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": 580, "bases": 0, "doc": 221}, "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": 198}, "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": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.qualify.qualify": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 350, "bases": 0, "doc": 392}, "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": 112, "bases": 0, "doc": 232}, "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.quote_identifiers": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 118, "bases": 0, "doc": 14}, "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": 32, "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": 106, "bases": 0, "doc": 313}, "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": 51, "bases": 0, "doc": 330}, "sqlglot.optimizer.scope.build_scope": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "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": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.remove_compliments": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 19}, "sqlglot.optimizer.simplify.uniq_sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 23}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 58}, "sqlglot.optimizer.simplify.simplify_literals": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "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.is_false": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.is_null": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 29, "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": 24, "bases": 0, "doc": 3}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 30, "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": 45, "bases": 0, "doc": 3}, "sqlglot.parser.parse_like": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "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": 73, "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": 187, "bases": 0, "doc": 83}, "sqlglot.schema.Schema.column_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 143, "bases": 0, "doc": 79}, "sqlglot.schema.Schema.get_column_type": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 149, "bases": 0, "doc": 79}, "sqlglot.schema.Schema.supported_table_args": {"qualname": 4, "fullname": 6, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "sqlglot.schema.Schema.empty": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "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.AbstractMappingSchema.nested_get": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 75, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 155}, "sqlglot.schema.MappingSchema.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 146, "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": 187, "bases": 0, "doc": 83}, "sqlglot.schema.MappingSchema.column_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 143, "bases": 0, "doc": 79}, "sqlglot.schema.MappingSchema.get_column_type": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 149, "bases": 0, "doc": 79}, "sqlglot.schema.ensure_schema": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 71, "bases": 0, "doc": 3}, "sqlglot.schema.ensure_column_mapping": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 3}, "sqlglot.schema.flatten_schema": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 69, "bases": 0, "doc": 3}, "sqlglot.schema.nested_get": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 71, "bases": 0, "doc": 86}, "sqlglot.schema.nested_set": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 276}, "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.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.NATIONAL_STRING": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UINT128": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INT256": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UINT256": {"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.BIGDECIMAL": {"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.DATETIME64": {"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.INT4RANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INT8RANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NUMRANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TSRANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TSTZRANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DATERANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.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.CACHE": {"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.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.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_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.CURRENT_USER": {"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.DICTIONARY": {"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.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.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.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.KEEP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "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.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": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LOCK": {"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.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.NEXT_VALUE_FOR": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 13, "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.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.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.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.PRAGMA": {"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.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.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.SETTINGS": {"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.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.TRUE": {"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.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.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": 133, "bases": 0, "doc": 83}, "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.unnest_to_explode": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 16}, "sqlglot.transforms.explode_to_unnest": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 12}, "sqlglot.transforms.remove_target_from_merge": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 11}, "sqlglot.transforms.remove_within_group_for_percentiles": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.transforms.add_recursive_cte_column_names": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.transforms.epoch_cast_to_ts": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.transforms.preprocess": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 94, "bases": 0, "doc": 84}, "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": 54, "bases": 0, "doc": 200}, "sqlglot.trie.in_trie": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 299}}, "length": 1843, "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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Case.else_": {"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": 52, "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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}}, "df": 8}}}, "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, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "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": 22}}}, "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}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.expressions.Pragma": {"tf": 1}, "sqlglot.generator.Generator.pragma_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PRAGMA": {"tf": 1}}, "df": 3}}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 11, "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.spark2.Spark2.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": 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.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}}, "df": 3}}, "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, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.expressions.ParameterizedAgg": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "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}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}}, "df": 2}, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_parens": {"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}}}}, "s": {"docs": {"sqlglot.transforms.remove_within_group_for_percentiles": {"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.dialects.dialect.pivot_column_names": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}}, "df": 6}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1}}, "df": 1}}}, "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.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}}, "df": 4, "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}}}, "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}}}}}}}}}}}}}, "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.Schema.empty": {"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": 14, "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": {"2": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Tokenizer": {"tf": 1}}, "df": 7}, "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.datediff_sql": {"tf": 1}}, "df": 5, "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}}}}, "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.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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}, "sqlglot.generator.Generator.dictproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}}, "df": 279, "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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}}, "df": 10}}}, "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.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": 25, "s": {"docs": {"sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}}, "df": 2}, "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.schema.nested_set": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}}, "df": 12, "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, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.SETTINGS": {"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.SettingsProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "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, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.name_sequence": {"tf": 1}}, "df": 1}}}}}}, "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.helper.case_sensitive": {"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}}}}}}}}, "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}}, "df": 8, "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.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.dialects.dialect.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_sql": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}}, "df": 4}}}}}}, "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}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StarMap": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.python.PythonExecutor.static": {"tf": 1}}, "df": 1}}}, "b": {"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.StabilityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.StandardHash": {"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, "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.TokenType.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_STRING": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 9}}}, "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, "e": {"docs": {"sqlglot.expressions.Expression.same_parent": {"tf": 1}}, "df": 1}, "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.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 10}}}}}}}, "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}}}}, "a": {"2": {"docs": {"sqlglot.expressions.SHA2": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.expressions.SHA": {"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}}}, "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}}}}}, "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}}}}}}}}}}, "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}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"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.OnUpdateColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.OnConflict": {"tf": 1}, "sqlglot.generator.Generator.onconflict_sql": {"tf": 1}}, "df": 2}}}}}}, "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}}}}}}}}}}}}}}}, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.max_or_greatest": {"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": 9, "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.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": 8}}}}}, "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}}}}}}}}}}}, "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, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.OpenJSON": {"tf": 1}, "sqlglot.generator.Generator.openjson_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, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "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": {}, "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.dialects.tsql.TSQL.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": 7}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "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, "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.Table.parts": {"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.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.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}}, "df": 7}, "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}}}}}}}, "g": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 1}}}}}, "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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.Column.to_dot": {"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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1}}, "df": 22, "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.spark2.Spark2.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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 288}}}}}}}, "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}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"6": {"4": {"docs": {"sqlglot.expressions.ToBase64": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}, "p": {"docs": {"sqlglot.tokens.TokenType.TOP": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1}}, "df": 2, "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.offset_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 8}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}, "t": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "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.CURRENT_TIME": {"tf": 1}}, "df": 9, "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.expressions.Tuple.isin": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}}, "df": 5}}}}, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"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": 82, "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.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}}, "df": 3}}}}}}, "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.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1}, "sqlglot.expressions.Count": {"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.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.dialects.dialect.pivot_column_names": {"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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 53, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 3}}}, "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}, "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.expressions.ColumnPosition": {"tf": 1}, "sqlglot.generator.Generator.columnposition_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.dialects.dialect.no_comment_column_constraint_sql": {"tf": 1}, "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": 6, "s": {"docs": {"sqlglot.expressions.Expression.add_comments": {"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.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}}}}}}}}, "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.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}}, "df": 4}}}}}}}, "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.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 15}}}}}}, "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, "d": {"docs": {"sqlglot.generator.cached_generator": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1}}, "df": 10, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CastToStrType": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.case_sensitive": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}}, "df": 7, "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}}}}}}}}}}}}}}}}}}}}}}}}}}, "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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}}, "df": 9}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Clone": {"tf": 1}, "sqlglot.generator.Generator.clone_sql": {"tf": 1}}, "df": 2}}}, "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}}, "df": 3}}}}}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 8, "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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.CurrentUser": {"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": {}, "df": 0, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}}, "df": 83, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataTypeSize": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"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": 11, "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.spark.Spark.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}}, "df": 3}}}}, "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": {"6": {"4": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME64": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "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}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}, "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.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 7}}}}, "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}}, "df": 2}, "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.SPARK2": {"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": 22}}}}}}, "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, "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.DictProperty": {"tf": 1}, "sqlglot.generator.Generator.dictproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"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.DictSubProperty": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DictRange": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.DICTIONARY": {"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.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.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 3}}, "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}}}}, "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.DEFAULT": {"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.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, "t": {"docs": {"sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}}, "df": 5}, "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}}}}, "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": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT128": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}}, "8": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"tf": 1}, "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": 9}}}}}, "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.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}}, "df": 7, "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}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.InputOutputFormat": {"tf": 1}, "sqlglot.generator.Generator.inputoutputformat_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "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.Condition.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.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}}, "df": 25, "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}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}}, "df": 3}}, "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.Condition.ilike": {"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": 7, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.generator.Generator.ilikeany_sql": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.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": 7, "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}}, "df": 1, "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}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1}}, "df": 2, "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, "s": {"docs": {"sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}}, "df": 2}}}}, "y": {"docs": {"sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "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.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": {"sqlglot.expressions.Condition.as_": {"tf": 1}}, "df": 1, "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}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}}, "df": 4}}}}, "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.Expression.add_comments": {"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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 11, "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}}}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}}, "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.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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}}, "df": 5}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"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.Insert.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}}, "df": 13, "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.transforms.remove_within_group_for_percentiles": {"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}}}}}}}}}}}}}}}}}}}}}}, "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.tokens.TokenType.WINDOW": {"tf": 1}}, "df": 9, "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}, "sqlglot.generator.Generator.windowspec_sql": {"tf": 1}}, "df": 10}}}}}}}}, "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}}, "df": 4}}}, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}}, "df": 4, "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, "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.FROM": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 13, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"6": {"4": {"docs": {"sqlglot.expressions.FromBase64": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}, "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}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}}, "df": 3}}}}, "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.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}}, "df": 3}}}, "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.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"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.dialects.dialect.max_or_greatest": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}}, "df": 2}}}}}}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.hive.Hive.Generator.after_having_modifiers": {"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.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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.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.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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.offset_sql": {"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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.Generator.dictproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}}, "df": 310}}, "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, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}}, "df": 2}}}}}}, "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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "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.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 8}, "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}}}}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.JSONKeyValue": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}}, "df": 2}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONObject": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_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.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}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONFormat": {"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.tokens.TokenType.UNIQUE": {"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.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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_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}}}}}}}}}, "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": {"sqlglot.tokens.TokenType.CURRENT_USER": {"tf": 1}}, "df": 1, "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}}}}}}}}, "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}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "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}}}}}}}, "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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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.same_parent": {"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": 46, "s": {"docs": {"sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 4}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.expand": {"tf": 1}}, "df": 1}}}}, "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.Condition.eq": {"tf": 1}, "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": 5}, "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, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}}, "df": 2}}, "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}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.schema.Schema.empty": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.transforms.epoch_cast_to_ts": {"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.datatype_sql": {"tf": 1}}, "df": 8}}}}}, "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.expressions.RenameTable": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 3}}}}}}, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}}, "df": 9}}}}, "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": {}, "df": 0, "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.expressions.Condition.rlike": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}}, "df": 2, "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, "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.RowFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}, "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}}}, "w": {"docs": {"sqlglot.tokens.TokenType.RAW_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.RawString": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.right_to_substring_sql": {"tf": 1}, "sqlglot.expressions.Right": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}}, "df": 3}}}}}, "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.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"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.generator.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}}, "df": 9}}}, "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.Condition.like": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 7, "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}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.generator.Generator.likeany_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}}, "df": 2, "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}}}}}, "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}}, "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}}}}}}}}}}}}}, "k": {"docs": {"sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}}, "df": 4, "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": {"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, "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}}}}, "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}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Lower": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.left_to_substring_sql": {"tf": 1}, "sqlglot.expressions.Left": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}}, "df": 3}}, "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}}}, "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}}}}}}}}}}, "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}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}}, "df": 9}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}}, "df": 6}}}}, "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}}}, "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": {"sqlglot.expressions.Hll": {"tf": 1}}, "df": 1, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 8, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.MergeTreeTTL": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_sql": {"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.expressions.MergeTreeTTLAction": {"tf": 1}, "sqlglot.generator.Generator.mergetreettlaction_sql": {"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.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, "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}}}}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dialects.dialect.max_or_greatest": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}}, "df": 3}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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": {}, "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.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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}}, "df": 5}}}}}}}, "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}}, "d": {"5": {"docs": {"sqlglot.expressions.MD5": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}}, "df": 13}}}}}, "d": {"docs": {}, "df": 0, "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.BIGDECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"tf": 1}}, "df": 2}}}}}}}, "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.Condition.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": 6}}}}}, "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.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}}, "df": 8, "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}, "sqlglot.generator.Generator.bytestring_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 3}}}}, "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}, "sqlglot.helper.name_sequence": {"tf": 1}}, "df": 14, "s": {"docs": {"sqlglot.dialects.dialect.pivot_column_names": {"tf": 1}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 7}}}, "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_STRING": {"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.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}}, "df": 7, "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}}, "df": 5, "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}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "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.dialects.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"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.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}}, "df": 5, "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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 4}}}}, "q": {"docs": {"sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}}, "df": 4}, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}}, "df": 2, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.NextValueFor": {"tf": 1}, "sqlglot.generator.Generator.nextvaluefor_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "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, "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}}}}}}, "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}}}}, "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": {"sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.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": 5}}}, "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, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"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.VolatileProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"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}, "sqlglot.tokens.TokenType.KEEP": {"tf": 1}}, "df": 3}}, "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}}}}}, "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.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"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": 9}}}}, "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}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"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}}}}}}, "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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Case.else_": {"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": 52, "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.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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}, "sqlglot.generator.Generator.dictproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}}, "df": 384, "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.bigquery.BigQuery.Generator.with_properties": {"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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.SPARK2": {"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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.dialect.pivot_column_names": {"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.hive.Hive.Generator.after_having_modifiers": {"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.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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.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.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.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.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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.offset_sql": {"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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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.same_parent": {"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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.Clone": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Pragma": {"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.RawString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.ColumnPosition": {"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.MergeTreeTTLAction": {"tf": 1}, "sqlglot.expressions.MergeTreeTTL": {"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.OnUpdateColumnConstraint": {"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.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.Insert.with_": {"tf": 1}, "sqlglot.expressions.OnConflict": {"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.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.InputOutputFormat": {"tf": 1}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.expressions.LanguageProperty": {"tf": 1}, "sqlglot.expressions.DictProperty": {"tf": 1}, "sqlglot.expressions.DictSubProperty": {"tf": 1}, "sqlglot.expressions.DictRange": {"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.RowFormatProperty": {"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.SettingsProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.StabilityProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatileProperty": {"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.Tuple.isin": {"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.Table.parts": {"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.DataTypeSize": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.PseudoType": {"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.Dot.build": {"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.ParameterizedAgg": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.Hll": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.CastToStrType": {"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.CurrentUser": {"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.FromBase64": {"tf": 1}, "sqlglot.expressions.ToBase64": {"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.JSONKeyValue": {"tf": 1}, "sqlglot.expressions.JSONObject": {"tf": 1}, "sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.expressions.OpenJSON": {"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.JSONFormat": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}, "sqlglot.expressions.Left": {"tf": 1}, "sqlglot.expressions.Right": {"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.StarMap": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.MD5": {"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.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.SHA": {"tf": 1}, "sqlglot.expressions.SHA2": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StandardHash": {"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.NextValueFor": {"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.insert": {"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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.Generator.dictproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}, "sqlglot.generator.cached_generator": {"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.name_sequence": {"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.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.helper.case_sensitive": {"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.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"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.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"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.quote_identifiers": {"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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"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.parse_like": {"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.Schema.empty": {"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.AbstractMappingSchema.nested_get": {"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.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.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.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 1843, "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.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": 11}}}, "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.Schema.empty": {"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.AbstractMappingSchema.nested_get": {"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.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}}, "df": 28, "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": {"2": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK2": {"tf": 1}, "sqlglot.dialects.spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Tokenizer": {"tf": 1.4142135623730951}}, "df": 8}, "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.datediff_sql": {"tf": 1.4142135623730951}}, "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, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.select": {"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": 25, "s": {"docs": {"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": 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.schema.nested_set": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}}, "df": 12, "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, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.SETTINGS": {"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.SettingsProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "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, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.name_sequence": {"tf": 1}}, "df": 1}}}}}}, "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.helper.case_sensitive": {"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}}}}}}}}, "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}}, "df": 8, "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.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.dialects.dialect.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_sql": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}}, "df": 4}}}}}}, "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}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StarMap": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.python.PythonExecutor.static": {"tf": 1}}, "df": 1}}}, "b": {"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.StabilityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.StandardHash": {"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, "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.TokenType.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_STRING": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 9}}}, "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, "e": {"docs": {"sqlglot.expressions.Expression.same_parent": {"tf": 1}}, "df": 1}, "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.except_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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": 11}}}}}}}, "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}}}}, "a": {"2": {"docs": {"sqlglot.expressions.SHA2": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.expressions.SHA": {"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}}}, "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}}}}}, "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}}}}}}}}}}, "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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"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": 21}}}}}}}, "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.interval_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1.4142135623730951}}, "df": 9}}}, "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, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "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": 22}}}, "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}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.expressions.Pragma": {"tf": 1}, "sqlglot.generator.Generator.pragma_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PRAGMA": {"tf": 1}}, "df": 3}}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 11, "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.spark2.Spark2.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.parse_like": {"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": 34}, "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.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}}, "df": 3}}, "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, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.expressions.ParameterizedAgg": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "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}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}}, "df": 2}, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_parens": {"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}}}}, "s": {"docs": {"sqlglot.transforms.remove_within_group_for_percentiles": {"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.dialects.dialect.pivot_column_names": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}}, "df": 6}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1}}, "df": 1}}}, "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.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}}, "df": 4, "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}}}, "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}}}}}}}}}}}}}, "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}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"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.OnUpdateColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.OnConflict": {"tf": 1}, "sqlglot.generator.Generator.onconflict_sql": {"tf": 1}}, "df": 2}}}}}}, "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}}}}}}}}}}}}}}}, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.max_or_greatest": {"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": 9, "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.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": 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": {"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.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"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.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"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.quote_identifiers": {"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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"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": 131}}}}}}}, "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, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.OpenJSON": {"tf": 1}, "sqlglot.generator.Generator.openjson_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, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "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": {}, "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.dialects.tsql.TSQL.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": 7}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "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.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 12}}}}}, "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, "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.Table.parts": {"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.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": 40, "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.Generator.if_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}}, "df": 8}, "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}}}}}}}, "g": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 1}}}}}, "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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.Column.to_dot": {"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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1}}, "df": 22, "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.spark2.Spark2.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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.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": 298}, "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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 288}}}}}}}, "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}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"6": {"4": {"docs": {"sqlglot.expressions.ToBase64": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}, "p": {"docs": {"sqlglot.tokens.TokenType.TOP": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1}}, "df": 2, "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.offset_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1.4142135623730951}}, "df": 10}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}, "t": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "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.CURRENT_TIME": {"tf": 1}}, "df": 10, "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.expressions.Tuple.isin": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}}, "df": 5}}}}, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"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": 82, "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": {}, "df": 0, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}}, "df": 83, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataTypeSize": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"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": 11, "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.spark.Spark.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}}, "df": 3}}}}, "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": {"6": {"4": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME64": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "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}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}, "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.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 7}}}}, "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}}, "df": 2}, "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.SPARK2": {"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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.dialect.pivot_column_names": {"tf": 1}}, "df": 70, "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.bigquery.BigQuery.Generator.with_properties": {"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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.SPARK2": {"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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.dialect.pivot_column_names": {"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.hive.Hive.Generator.after_having_modifiers": {"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.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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.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.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.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.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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.offset_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 220}}}}}}, "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, "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.DictProperty": {"tf": 1}, "sqlglot.generator.Generator.dictproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"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.DictSubProperty": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DictRange": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.DICTIONARY": {"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.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.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 3}}, "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}}}}, "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.DEFAULT": {"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.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, "t": {"docs": {"sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}}, "df": 5}, "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}}}}, "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.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}}, "df": 3}}}}}}, "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.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1}, "sqlglot.expressions.Count": {"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.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.dialects.dialect.pivot_column_names": {"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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 53, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 3}}}, "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.quote_identifiers": {"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.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": 15}, "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.expressions.ColumnPosition": {"tf": 1}, "sqlglot.generator.Generator.columnposition_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.dialects.dialect.no_comment_column_constraint_sql": {"tf": 1}, "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": 6, "s": {"docs": {"sqlglot.expressions.Expression.add_comments": {"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.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}}}}}}}}, "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.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}}, "df": 4}}}}}}}, "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.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 15}}}}}}, "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, "d": {"docs": {"sqlglot.generator.cached_generator": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1}}, "df": 10, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CastToStrType": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.case_sensitive": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}}, "df": 7, "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}}}}}}}}}}}}}}}}}}}}}}}}}}, "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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}}, "df": 10}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Clone": {"tf": 1}, "sqlglot.generator.Generator.clone_sql": {"tf": 1}}, "df": 2}}}, "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}}, "df": 3}}}}}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 8, "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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.CurrentUser": {"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": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT128": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}}, "8": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"tf": 1}, "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": 9}}}}}, "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.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}}, "df": 7, "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}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.InputOutputFormat": {"tf": 1}, "sqlglot.generator.Generator.inputoutputformat_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "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.Condition.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.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}}, "df": 25, "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}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}}, "df": 3}}, "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.Condition.ilike": {"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": 7, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.generator.Generator.ilikeany_sql": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.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": 7, "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}}, "df": 1, "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}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1}}, "df": 2, "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, "s": {"docs": {"sqlglot.optimizer.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}}, "df": 3}}}}, "y": {"docs": {"sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "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": {"sqlglot.expressions.Condition.as_": {"tf": 1}}, "df": 1, "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}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}}, "df": 4}}}}, "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.Expression.add_comments": {"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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 11, "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}}}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}}, "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.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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}}, "df": 5}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"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.Insert.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}}, "df": 13, "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.transforms.remove_within_group_for_percentiles": {"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}}}}}}}}}}}}}}}}}}}}}}, "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.tokens.TokenType.WINDOW": {"tf": 1}}, "df": 9, "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}, "sqlglot.generator.Generator.windowspec_sql": {"tf": 1}}, "df": 10}}}}}}}}, "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}}, "df": 4}}}, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}}, "df": 4, "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, "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.FROM": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 13, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"6": {"4": {"docs": {"sqlglot.expressions.FromBase64": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}, "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}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}}, "df": 3}}}}, "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.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}}, "df": 3}}}, "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.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"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.dialects.dialect.max_or_greatest": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}}, "df": 2}}}}}}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.hive.Hive.Generator.after_having_modifiers": {"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.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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.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.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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.offset_sql": {"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.columnposition_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.clone_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.bytestring_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.is_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.like_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.likeany_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}, "sqlglot.generator.Generator.dictproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.cached_generator": {"tf": 1.4142135623730951}}, "df": 311}}, "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, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}}, "df": 2}}}}}}, "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}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "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.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 8}, "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}}}}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.JSONKeyValue": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}}, "df": 2}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONObject": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_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.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}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONFormat": {"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.tokens.TokenType.UNIQUE": {"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.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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 14}}}}, "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}}}}}}}}}, "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": {"sqlglot.tokens.TokenType.CURRENT_USER": {"tf": 1}}, "df": 1, "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}}}}}}}}, "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}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "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}}}}}}}, "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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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.same_parent": {"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": 46, "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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1.4142135623730951}, "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.same_parent": {"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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.Clone": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Pragma": {"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.RawString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.ColumnPosition": {"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.MergeTreeTTLAction": {"tf": 1}, "sqlglot.expressions.MergeTreeTTL": {"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.OnUpdateColumnConstraint": {"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.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.Insert.with_": {"tf": 1}, "sqlglot.expressions.OnConflict": {"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.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.InputOutputFormat": {"tf": 1}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.expressions.LanguageProperty": {"tf": 1}, "sqlglot.expressions.DictProperty": {"tf": 1}, "sqlglot.expressions.DictSubProperty": {"tf": 1}, "sqlglot.expressions.DictRange": {"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.RowFormatProperty": {"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.SettingsProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.StabilityProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatileProperty": {"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.Tuple.isin": {"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.Table.parts": {"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.DataTypeSize": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.PseudoType": {"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.Dot.build": {"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.ParameterizedAgg": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.Hll": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.CastToStrType": {"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.CurrentUser": {"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.FromBase64": {"tf": 1}, "sqlglot.expressions.ToBase64": {"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.JSONKeyValue": {"tf": 1}, "sqlglot.expressions.JSONObject": {"tf": 1}, "sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.expressions.OpenJSON": {"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.JSONFormat": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}, "sqlglot.expressions.Left": {"tf": 1}, "sqlglot.expressions.Right": {"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.StarMap": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.MD5": {"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.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.SHA": {"tf": 1}, "sqlglot.expressions.SHA2": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StandardHash": {"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.NextValueFor": {"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.insert": {"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": 648}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.expand": {"tf": 1}}, "df": 1}}}}, "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.Condition.eq": {"tf": 1}, "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": 5}, "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, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}}, "df": 2}}, "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}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.schema.Schema.empty": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.transforms.epoch_cast_to_ts": {"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.datatype_sql": {"tf": 1.4142135623730951}}, "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.expressions.RenameTable": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 3}}}}}}, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1}}, "df": 9}}}}, "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": {}, "df": 0, "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.expressions.Condition.rlike": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}}, "df": 2, "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, "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.RowFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}, "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}}}, "w": {"docs": {"sqlglot.tokens.TokenType.RAW_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.RawString": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.right_to_substring_sql": {"tf": 1}, "sqlglot.expressions.Right": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}}, "df": 3}}}}}, "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.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"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.generator.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}}, "df": 9}}}, "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.Condition.like": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.parser.parse_like": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 7, "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}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.generator.Generator.likeany_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}}, "df": 2, "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}}}}}, "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}}, "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}}}}}}}}}}}}}, "k": {"docs": {"sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}}, "df": 4, "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": {"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, "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}}}}, "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}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Lower": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.left_to_substring_sql": {"tf": 1}, "sqlglot.expressions.Left": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}}, "df": 3}}, "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}}}, "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}}}}}}}}}}, "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}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1.4142135623730951}}, "df": 10}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}}, "df": 6}}}}, "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}}}, "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.name_sequence": {"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.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.helper.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 23}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Hll": {"tf": 1}}, "df": 1, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 9, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.MergeTreeTTL": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_sql": {"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.expressions.MergeTreeTTLAction": {"tf": 1}, "sqlglot.generator.Generator.mergetreettlaction_sql": {"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.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, "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}}}}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dialects.dialect.max_or_greatest": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}}, "df": 3}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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": {}, "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.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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}}, "df": 5}}}}}}}, "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}}, "d": {"5": {"docs": {"sqlglot.expressions.MD5": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}}, "df": 14}}}}}, "d": {"docs": {}, "df": 0, "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.BIGDECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"tf": 1}}, "df": 2}}}}}}}, "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.Condition.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": 6}}}}}, "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.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}}, "df": 8, "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}, "sqlglot.generator.Generator.bytestring_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "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}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 3}}}}, "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}, "sqlglot.helper.name_sequence": {"tf": 1}}, "df": 14, "s": {"docs": {"sqlglot.dialects.dialect.pivot_column_names": {"tf": 1}, "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}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1}}, "df": 7}}}, "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_STRING": {"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.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}}, "df": 7, "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}}, "df": 5, "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}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "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.dialects.dialect.no_comment_column_constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"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.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}}, "df": 10, "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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 4}}}}, "q": {"docs": {"sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}}, "df": 4}, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}}, "df": 2, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.NextValueFor": {"tf": 1}, "sqlglot.generator.Generator.nextvaluefor_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "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, "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}}}}}}, "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}}}}, "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": {"sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.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": 5}}}, "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, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"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.VolatileProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"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}, "sqlglot.tokens.TokenType.KEEP": {"tf": 1}}, "df": 3}}, "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}}}}}, "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.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.optimizer.qualify": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "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.quote_identifiers": {"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.4142135623730951}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 18}}}}, "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}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"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}}}}}}, "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.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Table.parts": {"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.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.schema.Schema.supported_table_args": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.empty": {"tf": 1}}, "df": 23, "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.Expression.same_parent": {"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.empty": {"tf": 1}}, "df": 9}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"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}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.parent_select": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.depth": {"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.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}}, "df": 2}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"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": {}, "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.expressions.Expression.parent_select": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "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": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}}, "df": 3}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"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.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"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.SPARK2": {"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.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.XML": {"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.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.NATIONAL_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT256": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT256": {"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.BIGDECIMAL": {"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.DATETIME64": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"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.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.TRUE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1.4142135623730951}}, "df": 402, "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}}}}, "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}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}}, "df": 2, "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}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.tokens.TokenType.FROM": {"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.SPARK2": {"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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 402, "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}}}}}, "k": {"docs": {"sqlglot.tokens.TokenType.LOCK": {"tf": 1.4142135623730951}}, "df": 1}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "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}}}}, "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}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.LOAD": {"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}}}}}}, "e": {"docs": {}, "df": 0, "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": {"2": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK2": {"tf": 1.4142135623730951}}, "df": 1}, "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}, "sqlglot.tokens.TokenType.NATIONAL_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RAW_STRING": {"tf": 1.4142135623730951}}, "df": 6}}}}}, "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}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.SETTINGS": {"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}}}}}}}}, "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}}}, "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}}}}}, "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}}}}}}}}}}, "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}}}}}}}, "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}}}, "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}}}}, "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, "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}}}}, "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}}}}}}}}, "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": {}, "df": 0, "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}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "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.SPARK2": {"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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 402, "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}}, "df": 1, "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.SPARK2": {"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}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.DICTIONARY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "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}}, "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": {}, "df": 0, "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": {"6": {"4": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATETIME64": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "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}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}}, "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}}}, "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.DEFAULT": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "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}}}}}}}, "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}}}}}, "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.SPARK2": {"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.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.XML": {"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.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.NATIONAL_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT256": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT256": {"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.BIGDECIMAL": {"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.DATETIME64": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"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.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.TRUE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1.4142135623730951}}, "df": 395}, "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}}}}}, "d": {"docs": {}, "df": 0, "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.BIGDECIMAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "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}}}}}}, "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.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}}, "df": 3, "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}}}}}}}, "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}}}}}}}}}, "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}}}}, "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, "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_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.PRAGMA": {"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}}}}}, "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}}}, "w": {"docs": {"sqlglot.tokens.TokenType.RAW_STRING": {"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.ROW": {"tf": 1.4142135623730951}}, "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.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}}}, "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}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}, "t": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}}}, "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.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}}, "df": 76}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}}, "df": 3, "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}}}}}}}}}}, "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}}}}}, "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.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.NATIONAL_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1}, "sqlglot.tokens.TokenType.INT256": {"tf": 1}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGDECIMAL": {"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.DATETIME64": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"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.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1}}, "df": 287}}}}}}}, "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}}, "df": 1}}}}}, "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": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.INT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT128": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.INT256": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT256": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}, "8": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}, "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}}, "df": 2}}, "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_STRING": {"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}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.NUMBER": {"tf": 1.4142135623730951}}, "df": 1}}}}, "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": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.NULLSAFE_EQ": {"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}}}}}}}, "o": {"docs": {}, "df": 0, "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}, "sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}}, "df": 2}}}}, "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}}, "df": 2}, "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}}}}, "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}}}}}}}}}, "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}}}}}, "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}}}, "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}}}}}, "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}}}}}}, "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}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"1": {"2": {"8": {"docs": {"sqlglot.expressions.DataType.Type.UINT128": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"6": {"docs": {"sqlglot.expressions.DataType.Type.UINT256": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT256": {"tf": 1.4142135623730951}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT": {"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, "r": {"docs": {"sqlglot.tokens.TokenType.CURRENT_USER": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.USING": {"tf": 1.4142135623730951}}, "df": 1}}}}, "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}}}}}}}, "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}}}}}}, "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}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.VAR": {"tf": 1.4142135623730951}}, "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.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "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}}}}, "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": {"sqlglot.tokens.TokenType.NEXT_VALUE_FOR": {"tf": 1.4142135623730951}}, "df": 1, "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}}}}}}}}, "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}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.KEEP": {"tf": 1.4142135623730951}}, "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, "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}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 6, "x": {"7": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"1": {"1": {"8": {"1": {"3": {"8": {"docs": {}, "df": 0, "e": {"5": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "a": {"docs": {}, "df": 0, "f": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}, "9": {"docs": {}, "df": 0, "f": {"3": {"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}}}, "docs": {}, "df": 0, "a": {"5": {"6": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"5": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "4": {"9": {"8": {"7": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "f": {"3": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "e": {"1": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0, "a": {"0": {"docs": {}, "df": 0, "e": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "2": {"9": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "b": {"docs": {}, "df": 0, "d": {"9": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "e": {"2": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "8": {"docs": {}, "df": 0, "a": {"5": {"6": {"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}, "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": {"6": {"0": {"4": {"7": {"2": {"2": {"4": {"9": {"9": {"3": {"4": {"4": {"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}, "5": {"5": {"6": {"9": {"9": {"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}, "6": {"1": {"6": {"5": {"2": {"8": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"2": {"1": {"6": {"0": {"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}, "7": {"1": {"8": {"7": {"6": {"8": {"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}, "9": {"6": {"4": {"4": {"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}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"0": {"6": {"0": {"4": {"8": {"0": {"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}, "1": {"7": {"0": {"5": {"1": {"2": {"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}, "5": {"3": {"5": {"9": {"0": {"4": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"9": {"3": {"2": {"8": {"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}, "8": {"2": {"2": {"9": {"9": {"2": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"0": {"8": {"8": {"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}, "9": {"3": {"3": {"6": {"8": {"0": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"3": {"7": {"2": {"8": {"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}, "docs": {}, "df": 0}, "4": {"0": {"4": {"8": {"9": {"4": {"4": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"0": {"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}, "1": {"5": {"6": {"4": {"8": {"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}, "3": {"3": {"9": {"3": {"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}, "docs": {}, "df": 0}, "4": {"6": {"0": {"4": {"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}, "9": {"3": {"9": {"1": {"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}, "docs": {}, "df": 0}, "5": {"8": {"4": {"7": {"0": {"5": {"6": {"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}, "6": {"2": {"9": {"6": {"2": {"4": {"0": {"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}, "8": {"4": {"4": {"0": {"8": {"6": {"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}, "9": {"5": {"6": {"5": {"1": {"6": {"8": {"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": 2}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.columndef_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.national_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties": {"tf": 2.449489742783178}, "sqlglot.generator.Generator.table_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 2}, "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.lineage.Node.__init__": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 42}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 5.291502622129181}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 5.744562646538029}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"tf": 6.164414002968976}, "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.left_to_substring_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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": 6.48074069840786}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 4}, "sqlglot.dialects.dialect.pivot_column_names": {"tf": 9.539392014169456}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 4.47213595499958}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 8}, "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.hive.Hive.Generator.after_having_modifiers": {"tf": 5.744562646538029}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 5.291502622129181}, "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.interval_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 5.291502622129181}, "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.datatype_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_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.datediff_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 6.6332495807108}, "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.groupconcat_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tableau.Tableau.Generator.count_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": 7.416198487095663}, "sqlglot.dialects.tsql.TSQL.Generator.offset_sql": {"tf": 5.291502622129181}, "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.add_comments": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.append": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.set": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 5.744562646538029}, "sqlglot.expressions.Expression.find": {"tf": 7.0710678118654755}, "sqlglot.expressions.Expression.find_all": {"tf": 7.0710678118654755}, "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": 4.47213595499958}, "sqlglot.expressions.Expression.assert_is": {"tf": 5.477225575051661}, "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": 11.789826122551595}, "sqlglot.expressions.Condition.or_": {"tf": 11.789826122551595}, "sqlglot.expressions.Condition.not_": {"tf": 4.898979485566356}, "sqlglot.expressions.Condition.as_": {"tf": 12.12435565298214}, "sqlglot.expressions.Condition.isin": {"tf": 9.591663046625438}, "sqlglot.expressions.Condition.between": {"tf": 7.810249675906654}, "sqlglot.expressions.Condition.is_": {"tf": 6.928203230275509}, "sqlglot.expressions.Condition.like": {"tf": 6.928203230275509}, "sqlglot.expressions.Condition.ilike": {"tf": 6.928203230275509}, "sqlglot.expressions.Condition.eq": {"tf": 5.291502622129181}, "sqlglot.expressions.Condition.neq": {"tf": 5.291502622129181}, "sqlglot.expressions.Condition.rlike": {"tf": 6.928203230275509}, "sqlglot.expressions.Unionable.union": {"tf": 11.489125293076057}, "sqlglot.expressions.Unionable.intersect": {"tf": 11.489125293076057}, "sqlglot.expressions.Unionable.except_": {"tf": 11.489125293076057}, "sqlglot.expressions.Column.to_dot": {"tf": 4.47213595499958}, "sqlglot.expressions.Delete.delete": {"tf": 11.489125293076057}, "sqlglot.expressions.Delete.where": {"tf": 12.409673645990857}, "sqlglot.expressions.Delete.returning": {"tf": 11.489125293076057}, "sqlglot.expressions.Insert.with_": {"tf": 13.96424004376894}, "sqlglot.expressions.Literal.number": {"tf": 4.898979485566356}, "sqlglot.expressions.Literal.string": {"tf": 4.898979485566356}, "sqlglot.expressions.Join.on": {"tf": 12.409673645990857}, "sqlglot.expressions.Join.using": {"tf": 12.409673645990857}, "sqlglot.expressions.Properties.from_dict": {"tf": 5.291502622129181}, "sqlglot.expressions.Tuple.isin": {"tf": 9.591663046625438}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 8.602325267042627}, "sqlglot.expressions.Subqueryable.limit": {"tf": 11.704699910719626}, "sqlglot.expressions.Subqueryable.with_": {"tf": 13.96424004376894}, "sqlglot.expressions.Union.limit": {"tf": 11.704699910719626}, "sqlglot.expressions.Union.select": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.from_": {"tf": 11.489125293076057}, "sqlglot.expressions.Select.group_by": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.order_by": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.sort_by": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.cluster_by": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.limit": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.offset": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.select": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.lateral": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.join": {"tf": 17.46424919657298}, "sqlglot.expressions.Select.where": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.having": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.window": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.qualify": {"tf": 12.409673645990857}, "sqlglot.expressions.Select.distinct": {"tf": 9.219544457292887}, "sqlglot.expressions.Select.ctas": {"tf": 12.328828005937952}, "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": 7.3484692283495345}, "sqlglot.expressions.Dot.build": {"tf": 6.557438524302}, "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.Case.when": {"tf": 9.848857801796104}, "sqlglot.expressions.Case.else_": {"tf": 8.366600265340756}, "sqlglot.expressions.Cast.is_type": {"tf": 7.3484692283495345}, "sqlglot.expressions.maybe_parse": {"tf": 14.866068747318506}, "sqlglot.expressions.union": {"tf": 12.409673645990857}, "sqlglot.expressions.intersect": {"tf": 12.409673645990857}, "sqlglot.expressions.except_": {"tf": 12.409673645990857}, "sqlglot.expressions.select": {"tf": 10.677078252031311}, "sqlglot.expressions.from_": {"tf": 10.583005244258363}, "sqlglot.expressions.update": {"tf": 13.892443989449804}, "sqlglot.expressions.delete": {"tf": 13.711309200802088}, "sqlglot.expressions.insert": {"tf": 14.594519519326424}, "sqlglot.expressions.condition": {"tf": 11.269427669584644}, "sqlglot.expressions.and_": {"tf": 11.575836902790225}, "sqlglot.expressions.or_": {"tf": 11.575836902790225}, "sqlglot.expressions.not_": {"tf": 11.269427669584644}, "sqlglot.expressions.paren": {"tf": 7.615773105863909}, "sqlglot.expressions.to_identifier": {"tf": 5.0990195135927845}, "sqlglot.expressions.to_interval": {"tf": 6.164414002968976}, "sqlglot.expressions.to_table": {"tf": 11.045361017187261}, "sqlglot.expressions.to_column": {"tf": 6.708203932499369}, "sqlglot.expressions.alias_": {"tf": 14.142135623730951}, "sqlglot.expressions.subquery": {"tf": 12.24744871391589}, "sqlglot.expressions.column": {"tf": 13.114877048604}, "sqlglot.expressions.cast": {"tf": 9.433981132056603}, "sqlglot.expressions.table_": {"tf": 13.114877048604}, "sqlglot.expressions.values": {"tf": 10.44030650891055}, "sqlglot.expressions.var": {"tf": 6.928203230275509}, "sqlglot.expressions.rename_table": {"tf": 7.745966692414834}, "sqlglot.expressions.convert": {"tf": 6.164414002968976}, "sqlglot.expressions.replace_children": {"tf": 6.928203230275509}, "sqlglot.expressions.column_table_names": {"tf": 5.385164807134504}, "sqlglot.expressions.table_name": {"tf": 5.385164807134504}, "sqlglot.expressions.replace_tables": {"tf": 6.164414002968976}, "sqlglot.expressions.replace_placeholders": {"tf": 6.855654600401044}, "sqlglot.expressions.expand": {"tf": 8.660254037844387}, "sqlglot.expressions.func": {"tf": 10.04987562112089}, "sqlglot.expressions.true": {"tf": 4.123105625617661}, "sqlglot.expressions.false": {"tf": 4.123105625617661}, "sqlglot.expressions.null": {"tf": 4.123105625617661}, "sqlglot.generator.Generator.__init__": {"tf": 17.52141546793523}, "sqlglot.generator.Generator.generate": {"tf": 7.937253933193772}, "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": 8.54400374531753}, "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.columnposition_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.columndef_sql": {"tf": 6.6332495807108}, "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": 5.291502622129181}, "sqlglot.generator.Generator.create_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.clone_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.bytestring_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.national_sql": {"tf": 6.6332495807108}, "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.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.onconflict_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": 7.615773105863909}, "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.pragma_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.after_having_modifiers": {"tf": 5.744562646538029}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 5.744562646538029}, "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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.is_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.like_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.likeany_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": 12.165525060596439}, "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.generator.Generator.dictproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.cached_generator": {"tf": 7.3484692283495345}, "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.830951894845301}, "sqlglot.helper.subclasses": {"tf": 9.38083151964686}, "sqlglot.helper.apply_index_offset": {"tf": 7.937253933193772}, "sqlglot.helper.camel_to_snake_case": {"tf": 4}, "sqlglot.helper.while_changing": {"tf": 7.483314773547883}, "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.name_sequence": {"tf": 4.795831523312719}, "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.dict_depth": {"tf": 4}, "sqlglot.helper.first": {"tf": 5}, "sqlglot.helper.case_sensitive": {"tf": 8.54400374531753}, "sqlglot.helper.should_identify": {"tf": 9.643650760992955}, "sqlglot.lineage.Node.__init__": {"tf": 9.899494936611665}, "sqlglot.lineage.Node.walk": {"tf": 5}, "sqlglot.lineage.Node.to_html": {"tf": 5.0990195135927845}, "sqlglot.lineage.lineage": {"tf": 14.422205101855956}, "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.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.isolate_table_selects.isolate_table_selects": {"tf": 4.242640687119285}, "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": 7.280109889280518}, "sqlglot.optimizer.normalize.normalized": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 4.69041575982343}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 9.1104335791443}, "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": 21.071307505705477}, "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.qualify": {"tf": 16.822603841260722}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 9.486832980505138}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 3.1622776601683795}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 9.899494936611665}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 5.0990195135927845}, "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": 9.433981132056603}, "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": 6.48074069840786}, "sqlglot.optimizer.scope.build_scope": {"tf": 6.48074069840786}, "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": 4.242640687119285}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 4.242640687119285}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 4.69041575982343}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 4.242640687119285}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 4.242640687119285}, "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.is_false": {"tf": 4.898979485566356}, "sqlglot.optimizer.simplify.is_null": {"tf": 4.898979485566356}, "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": 6.082762530298219}, "sqlglot.parser.parse_like": {"tf": 4.898979485566356}, "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": 7.810249675906654}, "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": 12.36931687685298}, "sqlglot.schema.Schema.column_names": {"tf": 10.816653826391969}, "sqlglot.schema.Schema.get_column_type": {"tf": 11.045361017187261}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 4.795831523312719}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 5.744562646538029}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 8.48528137423857}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 7.810249675906654}, "sqlglot.schema.MappingSchema.__init__": {"tf": 11}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 6.164414002968976}, "sqlglot.schema.MappingSchema.copy": {"tf": 5.0990195135927845}, "sqlglot.schema.MappingSchema.add_table": {"tf": 12.36931687685298}, "sqlglot.schema.MappingSchema.column_names": {"tf": 10.816653826391969}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 11.045361017187261}, "sqlglot.schema.ensure_schema": {"tf": 7.681145747868608}, "sqlglot.schema.ensure_column_mapping": {"tf": 7.615773105863909}, "sqlglot.schema.flatten_schema": {"tf": 7.54983443527075}, "sqlglot.schema.nested_get": {"tf": 7.615773105863909}, "sqlglot.schema.nested_set": {"tf": 6.082762530298219}, "sqlglot.serde.dump": {"tf": 11.045361017187261}, "sqlglot.serde.load": {"tf": 11.045361017187261}, "sqlglot.time.format_time": {"tf": 7.810249675906654}, "sqlglot.tokens.Token.__init__": {"tf": 10.535653752852738}, "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.unnest_to_explode": {"tf": 5.744562646538029}, "sqlglot.transforms.explode_to_unnest": {"tf": 5.744562646538029}, "sqlglot.transforms.remove_target_from_merge": {"tf": 5.744562646538029}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 5.744562646538029}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 5.744562646538029}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 5.744562646538029}, "sqlglot.transforms.preprocess": {"tf": 8.774964387392123}, "sqlglot.trie.new_trie": {"tf": 6.708203932499369}, "sqlglot.trie.in_trie": {"tf": 6.244997998398398}}, "df": 782, "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}}, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.left_to_substring_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.4142135623730951}, "sqlglot.dialects.dialect.pivot_column_names": {"tf": 1.7320508075688772}, "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.hive.Hive.Generator.after_having_modifiers": {"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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator.offset_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.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Condition.or_": {"tf": 2}, "sqlglot.expressions.Condition.as_": {"tf": 2}, "sqlglot.expressions.Condition.isin": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.like": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.ilike": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2}, "sqlglot.expressions.Unionable.intersect": {"tf": 2}, "sqlglot.expressions.Unionable.except_": {"tf": 2}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 2}, "sqlglot.expressions.Delete.where": {"tf": 2}, "sqlglot.expressions.Delete.returning": {"tf": 2}, "sqlglot.expressions.Insert.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 2}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.limit": {"tf": 2}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.23606797749979}, "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}, "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}, "sqlglot.expressions.Select.lateral": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.where": {"tf": 2}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.expressions.Select.window": {"tf": 2}, "sqlglot.expressions.Select.qualify": {"tf": 2}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 2}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 2.23606797749979}, "sqlglot.expressions.DataType.is_type": {"tf": 1.4142135623730951}, "sqlglot.expressions.Dot.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.Case.when": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case.else_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.is_type": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 2.449489742783178}, "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.449489742783178}, "sqlglot.expressions.delete": {"tf": 2.449489742783178}, "sqlglot.expressions.insert": {"tf": 2.449489742783178}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 2}, "sqlglot.expressions.or_": {"tf": 2}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.paren": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 2}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "sqlglot.expressions.column": {"tf": 2.23606797749979}, "sqlglot.expressions.cast": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 2.23606797749979}, "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.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"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.columnposition_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.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.Generator.dictproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.case_sensitive": {"tf": 1.4142135623730951}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "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.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1.4142135623730951}, "sqlglot.parser.parse_like": {"tf": 1}, "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.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": 2}, "sqlglot.schema.Schema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.get_column_type": {"tf": 2.23606797749979}, "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": 2}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2.23606797749979}, "sqlglot.schema.ensure_schema": {"tf": 1.4142135623730951}, "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.unnest_to_explode": {"tf": 1.4142135623730951}, "sqlglot.transforms.explode_to_unnest": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1.4142135623730951}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1.4142135623730951}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 585}}}}, "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.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.dialect.pivot_column_names": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.7320508075688772}, "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.hive.Hive.Generator.after_having_modifiers": {"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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_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.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.4142135623730951}, "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.6457513110645907}, "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.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1.4142135623730951}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "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": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.insert": {"tf": 2}, "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.paren": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"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.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "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.7320508075688772}, "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.columnposition_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1.4142135623730951}, "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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1.4142135623730951}, "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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.23606797749979}, "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.generator.Generator.dictproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1.4142135623730951}, "sqlglot.helper.csv": {"tf": 1.7320508075688772}, "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.name_sequence": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.helper.case_sensitive": {"tf": 1.4142135623730951}, "sqlglot.helper.should_identify": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.__init__": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 2.23606797749979}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "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.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_set": {"tf": 1}, "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}}, "df": 515, "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}}}}}}}, "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": 2.6457513110645907}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 10, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.substr": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.parser.parse_var_map": {"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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.hive.Hive.Generator.after_having_modifiers": {"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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"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.Dot.build": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"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.columnposition_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.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.Generator.dictproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_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.AbstractMappingSchema.nested_get": {"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": 547}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"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.expressions.subquery": {"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, "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.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 14}}}}}}, "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}}, "p": {"docs": {"sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_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": 13}, "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}}}}}}, "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.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.qualify": {"tf": 2}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "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": 2.23606797749979}, "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}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}}, "df": 9, "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.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 3}}}}}, "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}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"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}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"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, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Condition.rlike": {"tf": 1}}, "df": 1}}}}}}}}, "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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}}, "df": 2}}}}}}}, "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": {"sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}}, "df": 2}}, "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.generator.Generator.renametable_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.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"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.generator.Generator.rawstring_sql": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 3}}}}, "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}, "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}}, "df": 6}}}, "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.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}, "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.dialects.dialect.pivot_column_names": {"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.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "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.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.window": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.qualify": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1.4142135623730951}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "sqlglot.expressions.union": {"tf": 2}, "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.7320508075688772}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.insert": {"tf": 2}, "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.paren": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "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.helper.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "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.MappingSchema.__init__": {"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}, "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}}, "df": 132, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}}, "df": 3}}}}}}, "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": {}, "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.uniquecolumnconstraint_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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 5, "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.dialects.dialect.pivot_column_names": {"tf": 2.23606797749979}, "sqlglot.executor.execute": {"tf": 2}, "sqlglot.expressions.Expression.sql": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.as_": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.union": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.where": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.returning": {"tf": 2.23606797749979}, "sqlglot.expressions.Insert.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.on": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.using": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.limit": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.limit": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.group_by": {"tf": 2.23606797749979}, "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.23606797749979}, "sqlglot.expressions.Select.offset": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lateral": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.having": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.window": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.qualify": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.ctas": {"tf": 2.23606797749979}, "sqlglot.expressions.DataType.build": {"tf": 2.23606797749979}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "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.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.insert": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 2.23606797749979}, "sqlglot.expressions.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.not_": {"tf": 2.23606797749979}, "sqlglot.expressions.to_table": {"tf": 2.23606797749979}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.helper.case_sensitive": {"tf": 2.23606797749979}, "sqlglot.helper.should_identify": {"tf": 2.23606797749979}, "sqlglot.lineage.lineage": {"tf": 2.23606797749979}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 2.23606797749979}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.column_names": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.get_column_type": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.__init__": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.column_names": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2.23606797749979}}, "df": 74, "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.dialects.dialect.pivot_column_names": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.as_": {"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.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.limit": {"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.window": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.qualify": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"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.insert": {"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.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.helper.case_sensitive": {"tf": 1.4142135623730951}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"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.MappingSchema.__init__": {"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": 71}}}}}}, "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.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.cached_generator": {"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.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"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.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1.4142135623730951}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}, "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.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 47, "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.dictproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.dictrange_sql": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"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.dictsubproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "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}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}, "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.4142135623730951}, "sqlglot.expressions.Cast.is_type": {"tf": 1.4142135623730951}, "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, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.datatypesize_sql": {"tf": 1}}, "df": 1}}}}}}}}, "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.spark.Spark.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.tsql.generate_date_delta_with_unit_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}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}}, "df": 3}, "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}}}}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}}, "df": 2}}}}}, "b": {"docs": {"sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 5}, "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}}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.dialect.pivot_column_names": {"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.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"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.Insert.with_": {"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.4142135623730951}, "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": 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.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.insert": {"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.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"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.helper.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"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.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"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.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 93, "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.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"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.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"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.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1}, "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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.insert": {"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.alias_": {"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.qualify.qualify": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"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.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.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 84}}, "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.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 5}}, "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.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}}, "df": 3}}}}}}, "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.4142135623730951}, "sqlglot.generator.Generator.table_sql": {"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.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.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.qualify.qualify": {"tf": 1}}, "df": 9, "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.Expression.iter_expressions": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 15}}}}, "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}, "sqlglot.helper.apply_index_offset": {"tf": 1}}, "df": 6}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Case.when": {"tf": 1}}, "df": 1}}}, "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}}, "df": 6, "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.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {"sqlglot.generator.Generator.national_sql": {"tf": 1}}, "df": 1, "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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"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.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.isin": {"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.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"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.insert": {"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.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 4.242640687119285}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1.7320508075688772}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.should_identify": {"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.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"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.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 152, "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.dialects.dialect.pivot_column_names": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"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.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1}, "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": 2}, "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.DataType.build": {"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.update": {"tf": 1.7320508075688772}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.insert": {"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_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "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.helper.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "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.MappingSchema.__init__": {"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}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 97}}}}}}, "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}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}}, "df": 3}}}}}}}, "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}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 28}}, "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}, "q": {"docs": {"sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}}, "df": 2}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 2, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.nextvaluefor_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {"sqlglot.generator.Generator.neg_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.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 4, "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.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"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.insert": {"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": 64}, "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.dialects.dialect.parse_date_delta_with_interval": {"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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "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.7320508075688772}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"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.qualify": {"tf": 1.7320508075688772}, "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.7320508075688772}, "sqlglot.optimizer.scope.build_scope": {"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.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 78}}}}, "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, "r": {"docs": {"sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"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}}}}}}}, "n": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.openjson_sql": {"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, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "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}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"tf": 1}}, "df": 17}}}}, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.expressions.Select.distinct": {"tf": 1}}, "df": 1}, "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}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.onconflict_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "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}, "sqlglot.expressions.insert": {"tf": 1}}, "df": 2}}}}}, "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.dialects.tsql.TSQL.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": 6}}}}}, "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.generator.Generator.or_sql": {"tf": 1}}, "df": 2, "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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"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.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.pivot_column_names": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator.after_having_modifiers": {"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.add_comments": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"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.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.parse_like": {"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": 72}}, "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}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.generator.Generator.like_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.generator.Generator.likeproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.likeany_sql": {"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.dialects.dialect.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_sql": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}}, "df": 6}}, "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}}}}, "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.optimizer.optimizer.optimize": {"tf": 3.7416573867739413}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 25, "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}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.expressions.Condition.between": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "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.dialect.parse_date_delta_with_interval": {"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.Expression.pop": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}}, "df": 15, "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.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.dialect.pivot_column_names": {"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.hive.Hive.Generator.after_having_modifiers": {"tf": 1.4142135623730951}, "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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.offset_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.iter_expressions": {"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.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.expressions.Condition.like": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.4142135623730951}, "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}, "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": 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.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1.4142135623730951}, "sqlglot.expressions.Case.else_": {"tf": 1}, "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}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.insert": {"tf": 2}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.paren": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.7320508075688772}, "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.columnposition_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.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.Generator.dictproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"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.isolate_table_selects.isolate_table_selects": {"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.4142135623730951}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"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.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.parse_like": {"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.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.unnest_to_explode": {"tf": 1.7320508075688772}, "sqlglot.transforms.explode_to_unnest": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1.7320508075688772}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1.7320508075688772}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}}, "df": 470, "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.bigquery.BigQuery.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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.no_comment_column_constraint_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.left_to_substring_sql": {"tf": 1}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.pivot_column_names": {"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.hive.Hive.Generator.after_having_modifiers": {"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.interval_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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.datatype_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.settag_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.datediff_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_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.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.count_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.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.offset_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.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.isin": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Condition.is_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.like": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.ilike": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Condition.rlike": {"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.to_dot": {"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.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.using": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "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.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "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.window": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.qualify": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.is_type": {"tf": 1.4142135623730951}, "sqlglot.expressions.Dot.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case.when": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case.else_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.is_type": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "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.4142135623730951}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.insert": {"tf": 2}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.paren": {"tf": 1.4142135623730951}, "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.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 2.23606797749979}, "sqlglot.expressions.cast": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 2.23606797749979}, "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.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "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.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.columnposition_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.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.clone_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.bytestring_sql": {"tf": 1}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.likeany_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.generator.Generator.dictproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "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.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1.4142135623730951}, "sqlglot.parser.parse_like": {"tf": 1}, "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.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.unnest_to_explode": {"tf": 1.4142135623730951}, "sqlglot.transforms.explode_to_unnest": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1.4142135623730951}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1.4142135623730951}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}}, "df": 469}}}}}}}, "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.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}}, "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.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}}, "df": 5}}}, "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": 2.449489742783178}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 8}, "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}}}}, "q": {"docs": {"sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}}, "df": 2}, "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}}}}}, "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.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}}, "df": 3, "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.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"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": 2}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 39, "o": {"docs": {"sqlglot.parse_one": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}}, "df": 5}, "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.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}}, "df": 5}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.presto.Presto.Generator.interval_sql": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}}, "df": 4}}}}}, "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.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}}, "df": 5}}}}, "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}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.inputoutputformat_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}}, "df": 3}}}}, "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}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 2}, "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": 10, "s": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}}, "df": 3}}}}, "y": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}}, "df": 4}}}}}}}, "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.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}}, "df": 5}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}}, "df": 3}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.expressions.Condition.ilike": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.ilikeany_sql": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"sqlglot.expressions.Condition.is_": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify.qualify": {"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, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 2}}}, "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.insert": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 8}, "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.generator.Generator.columnposition_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.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 11}}}}}}, "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.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"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.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.insert": {"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.alias_": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}}, "df": 50}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "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, "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.dialect.no_comment_column_constraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.expressions.Expression.add_comments": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 5}}}}, "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}}}, "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}}}}}}}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"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}}, "df": 5, "i": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"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}}}, "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.dialects.dialect.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 5, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.clone_sql": {"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.parse_date_delta_with_interval": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.name_sequence": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 17}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.spark2.Spark2.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.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 5}}}}}, "n": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1, "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}}}}}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.cached_generator": {"tf": 1}}, "df": 3}}}}, "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.windowspec_sql": {"tf": 1}}, "df": 9}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}}, "df": 3, "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.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"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.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1}, "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.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Case.when": {"tf": 1}, "sqlglot.expressions.Case.else_": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"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.insert": {"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.paren": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"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.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.simplify.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"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.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 97, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}}, "df": 3}}}}}}, "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, "t": {"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, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.bytestring_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "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}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Condition.between": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "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.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}}}}}}}}}}}}}}}}}}}}}}}, "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}}}}}}}}}}}, "x": {"docs": {"sqlglot.dialects.dialect.max_or_greatest": {"tf": 1}, "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": 5, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}}, "df": 1}}}}}, "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}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.matchagainst_sql": {"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}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.mergetreettl_sql": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.mergetreettlaction_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}, "sqlglot.schema.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 3}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.mul_sql": {"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.optimizer.optimizer.optimize": {"tf": 3.7416573867739413}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 26, "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}}}}}}, "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}}, "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.no_comment_column_constraint_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.left_to_substring_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.4142135623730951}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 33}}, "e": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.presto.Presto.Generator.generateseries_sql": {"tf": 1}}, "df": 1}}}}}}, "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.expressions.convert": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 2.449489742783178}, "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.qualify": {"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": 24}}, "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.optimizer.optimizer.optimize": {"tf": 3.7416573867739413}}, "df": 1, "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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 18, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 4}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify.qualify": {"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}, "sqlglot.parser.parse_var_map": {"tf": 1}}, "df": 2}}}}}, "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}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.schema.AbstractMappingSchema.nested_get": {"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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 3}}, "d": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"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.bigquery.BigQuery.Generator.with_properties": {"tf": 1.4142135623730951}, "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": 12}}}, "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.national_sql": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.helper.name_sequence": {"tf": 1}}, "df": 7}}}, "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}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.generator.Generator.pragma_sql": {"tf": 1}}, "df": 1}}}}}, "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.dialects.clickhouse.ClickHouse.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}}, "df": 2}}}}}}}}, "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}}}}}}, "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}}}}, "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}}}, "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": {"sqlglot.expressions.Condition.between": {"tf": 1}}, "df": 1, "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": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "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.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.lineage.lineage": {"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}, "sqlglot.schema.ensure_schema": {"tf": 1}}, "df": 34}}}}}, "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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 2}, "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.is_false": {"tf": 1}, "sqlglot.optimizer.simplify.is_null": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}}, "df": 6, "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.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Condition.between": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.eq": {"tf": 1}, "sqlglot.expressions.Condition.neq": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.convert": {"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.AbstractMappingSchema.nested_get": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 31}, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}}, "df": 2}, "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.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}}, "df": 2}}}}}}}, "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.Condition.as_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "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.lineage.Node.__init__": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 17, "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.parse_like": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 20}}, "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.Insert.with_": {"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.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}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "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": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.pivot_column_names": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 3.7416573867739413}}, "df": 1, "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}}}}}}}}}, "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}}}}}}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1}}, "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.generator.Generator.jsonobject_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.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "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": 9, "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}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}}, "df": 3, "d": {"docs": {"sqlglot.expressions.Condition.as_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}}, "df": 5}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Condition.isin": {"tf": 1}, "sqlglot.expressions.Tuple.isin": {"tf": 1}}, "df": 2}}}, "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.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}}, "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.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 85, "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": {"2": {"docs": {"sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}}, "df": 4}, "docs": {"sqlglot.dialects.databricks.Databricks": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}}, "df": 3}}}}, "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.spark2.Spark2": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 36}}}}}}, "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.spark2.Spark2.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.spark2.Spark2.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": 19}}}}}, "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.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.DictProperty": {"tf": 1}, "sqlglot.expressions.DictSubProperty": {"tf": 1}, "sqlglot.expressions.DictRange": {"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.RowFormatProperty": {"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.SettingsProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.StabilityProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatileProperty": {"tf": 1}, "sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1}}, "df": 47}}}}}}}}, "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.spark2.Spark2.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": 21}}}}, "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.Clone": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Pragma": {"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.ColumnPosition": {"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.MergeTreeTTLAction": {"tf": 1}, "sqlglot.expressions.MergeTreeTTL": {"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.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.OnConflict": {"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.InputOutputFormat": {"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.DataTypeSize": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.PseudoType": {"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.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.JSONKeyValue": {"tf": 1}, "sqlglot.expressions.OpenJSONColumnDef": {"tf": 1}, "sqlglot.expressions.Use": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}}, "df": 103}}}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.spark2.Spark2": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.ParameterizedAgg": {"tf": 1}, "sqlglot.expressions.Hll": {"tf": 1}, "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.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.RawString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.expressions.Unary": {"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.OnUpdateColumnConstraint": {"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": 19}}}}}}}}}}}}}}}}}}}, "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.CastToStrType": {"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.CurrentUser": {"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.FromBase64": {"tf": 1}, "sqlglot.expressions.ToBase64": {"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.JSONObject": {"tf": 1}, "sqlglot.expressions.OpenJSON": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.JSONFormat": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}, "sqlglot.expressions.Left": {"tf": 1}, "sqlglot.expressions.Right": {"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.StarMap": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.MatchAgainst": {"tf": 1}, "sqlglot.expressions.MD5": {"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.SHA": {"tf": 1}, "sqlglot.expressions.SHA2": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StandardHash": {"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}, "sqlglot.expressions.NextValueFor": {"tf": 1}}, "df": 136}}}}, "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}, "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.928203230275509}, "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.spark2.Spark2.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.qualify_tables.qualify_tables": {"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": 41, "/": {"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}, "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.insert": {"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.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "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.spark2.Spark2.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.insert": {"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.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 46}, "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.Insert.with_": {"tf": 1.4142135623730951}, "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.insert": {"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.paren": {"tf": 1.4142135623730951}, "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": 2}, "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.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 2}, "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.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2}, "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.schema.nested_set": {"tf": 4}, "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": 90}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.paren": {"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": 53}, "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.spark2.Spark2.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": 27}, "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.spark2.Spark2.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}, "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.paren": {"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": 8}, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 2}, "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.spark2.Spark2.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}, "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": 62.12889826803627}, "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": 13.638181696985855}, "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.bigquery.BigQuery.Generator.with_properties": {"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": 13.638181696985855}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.after_limit_modifiers": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.parameterizedagg_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.placeholder_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": 13.638181696985855}, "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.SPARK2": {"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.no_comment_column_constraint_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.parse_date_delta_with_interval": {"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.left_to_substring_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.right_to_substring_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.max_or_greatest": {"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.dialect.pivot_column_names": {"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": 13.638181696985855}, "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": 13.638181696985855}, "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": 13.638181696985855}, "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.hive.Hive.Generator.after_having_modifiers": {"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": 13.638181696985855}, "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": 13.638181696985855}, "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": 13.638181696985855}, "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": 13.638181696985855}, "sqlglot.dialects.presto.Presto.Generator.interval_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator.generateseries_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": 13.638181696985855}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 3.3166247903554}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 2}, "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": 13.638181696985855}, "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.settag_sql": {"tf": 1.7320508075688772}, "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": 13.638181696985855}, "sqlglot.dialects.spark.Spark.Generator.datediff_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 13.638181696985855}, "sqlglot.dialects.spark2.Spark2.Generator.cast_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.Generator.columndef_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.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": 13.638181696985855}, "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.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": 13.638181696985855}, "sqlglot.dialects.tableau": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 13.638181696985855}, "sqlglot.dialects.tableau.Tableau.Generator.if_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator.coalesce_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator.count_sql": {"tf": 1.7320508075688772}, "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": 13.638181696985855}, "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": 13.638181696985855}, "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": 13.638181696985855}, "sqlglot.dialects.tsql.TSQL.Generator.offset_sql": {"tf": 1.7320508075688772}, "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": 13.638181696985855}, "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.add_comments": {"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.iter_expressions": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.find_all": {"tf": 5.291502622129181}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 4.795831523312719}, "sqlglot.expressions.Expression.parent_select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.same_parent": {"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.477225575051661}, "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.797958971132712}, "sqlglot.expressions.Condition.or_": {"tf": 9.797958971132712}, "sqlglot.expressions.Condition.not_": {"tf": 8.54400374531753}, "sqlglot.expressions.Condition.as_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.isin": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.between": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.is_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.like": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.ilike": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.eq": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.neq": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.rlike": {"tf": 1.7320508075688772}, "sqlglot.expressions.Predicate": {"tf": 1.7320508075688772}, "sqlglot.expressions.DerivedTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 10.488088481701515}, "sqlglot.expressions.Unionable.intersect": {"tf": 10.488088481701515}, "sqlglot.expressions.Unionable.except_": {"tf": 10.535653752852738}, "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.Clone": {"tf": 1.7320508075688772}, "sqlglot.expressions.Describe": {"tf": 1.7320508075688772}, "sqlglot.expressions.Pragma": {"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.RawString": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Column.parts": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.to_dot": {"tf": 1.7320508075688772}, "sqlglot.expressions.ColumnPosition": {"tf": 1.7320508075688772}, "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.MergeTreeTTLAction": {"tf": 1.7320508075688772}, "sqlglot.expressions.MergeTreeTTL": {"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.OnUpdateColumnConstraint": {"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.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.Insert.with_": {"tf": 11.874342087037917}, "sqlglot.expressions.OnConflict": {"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.135528725660043}, "sqlglot.expressions.Join.using": {"tf": 11.445523142259598}, "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.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.InputOutputFormat": {"tf": 1.7320508075688772}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.JournalProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LanguageProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DictProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DictSubProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DictRange": {"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.RowFormatProperty": {"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.SettingsProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SortKeyProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.StabilityProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TemporaryProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TransientProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.VolatileProperty": {"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.Tuple.isin": {"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.449899597988733}, "sqlglot.expressions.Table": {"tf": 1.7320508075688772}, "sqlglot.expressions.Table.parts": {"tf": 1.7320508075688772}, "sqlglot.expressions.SystemTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 10.816653826391969}, "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": 10.488088481701515}, "sqlglot.expressions.Select.group_by": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.order_by": {"tf": 11.445523142259598}, "sqlglot.expressions.Select.sort_by": {"tf": 11.874342087037917}, "sqlglot.expressions.Select.cluster_by": {"tf": 11.874342087037917}, "sqlglot.expressions.Select.limit": {"tf": 10.954451150103322}, "sqlglot.expressions.Select.offset": {"tf": 10.954451150103322}, "sqlglot.expressions.Select.select": {"tf": 10.246950765959598}, "sqlglot.expressions.Select.lateral": {"tf": 11.180339887498949}, "sqlglot.expressions.Select.join": {"tf": 18.894443627691185}, "sqlglot.expressions.Select.where": {"tf": 11.180339887498949}, "sqlglot.expressions.Select.having": {"tf": 12.041594578792296}, "sqlglot.expressions.Select.window": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.qualify": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.distinct": {"tf": 10.14889156509222}, "sqlglot.expressions.Select.ctas": {"tf": 11.135528725660043}, "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.DataTypeSize": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGDECIMAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATETIME64": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT4RANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT4MULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT8RANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT8MULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NUMRANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NUMMULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TSRANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TSMULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TSTZRANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TSTZMULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATERANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATEMULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT128": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT256": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TEXT": {"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.TINYINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UINT128": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UINT256": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.XML": {"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.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.Dot.build": {"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.ParameterizedAgg": {"tf": 1.7320508075688772}, "sqlglot.expressions.Abs": {"tf": 1.7320508075688772}, "sqlglot.expressions.Anonymous": {"tf": 1.7320508075688772}, "sqlglot.expressions.Hll": {"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.Case.when": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case.else_": {"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.CastToStrType": {"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.CurrentUser": {"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.FromBase64": {"tf": 1.7320508075688772}, "sqlglot.expressions.ToBase64": {"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.JSONKeyValue": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONObject": {"tf": 1.7320508075688772}, "sqlglot.expressions.OpenJSONColumnDef": {"tf": 1.7320508075688772}, "sqlglot.expressions.OpenJSON": {"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.JSONFormat": {"tf": 1.7320508075688772}, "sqlglot.expressions.Least": {"tf": 1.7320508075688772}, "sqlglot.expressions.Left": {"tf": 1.7320508075688772}, "sqlglot.expressions.Right": {"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.StarMap": {"tf": 1.7320508075688772}, "sqlglot.expressions.VarMap": {"tf": 1.7320508075688772}, "sqlglot.expressions.MatchAgainst": {"tf": 1.7320508075688772}, "sqlglot.expressions.Max": {"tf": 1.7320508075688772}, "sqlglot.expressions.MD5": {"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.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.SHA": {"tf": 1.7320508075688772}, "sqlglot.expressions.SHA2": {"tf": 1.7320508075688772}, "sqlglot.expressions.SortArray": {"tf": 1.7320508075688772}, "sqlglot.expressions.Split": {"tf": 1.7320508075688772}, "sqlglot.expressions.Substring": {"tf": 1.7320508075688772}, "sqlglot.expressions.StandardHash": {"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.NextValueFor": {"tf": 1.7320508075688772}, "sqlglot.expressions.maybe_parse": {"tf": 10.14889156509222}, "sqlglot.expressions.union": {"tf": 10}, "sqlglot.expressions.intersect": {"tf": 10}, "sqlglot.expressions.except_": {"tf": 10.04987562112089}, "sqlglot.expressions.select": {"tf": 9.797958971132712}, "sqlglot.expressions.from_": {"tf": 9.797958971132712}, "sqlglot.expressions.update": {"tf": 12}, "sqlglot.expressions.delete": {"tf": 9.433981132056603}, "sqlglot.expressions.insert": {"tf": 10.04987562112089}, "sqlglot.expressions.condition": {"tf": 14.071247279470288}, "sqlglot.expressions.and_": {"tf": 10.04987562112089}, "sqlglot.expressions.or_": {"tf": 10.04987562112089}, "sqlglot.expressions.not_": {"tf": 9}, "sqlglot.expressions.paren": {"tf": 8.48528137423857}, "sqlglot.expressions.to_identifier": {"tf": 5.744562646538029}, "sqlglot.expressions.to_interval": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 6.244997998398398}, "sqlglot.expressions.to_column": {"tf": 5.291502622129181}, "sqlglot.expressions.alias_": {"tf": 12.84523257866513}, "sqlglot.expressions.subquery": {"tf": 10}, "sqlglot.expressions.column": {"tf": 6.557438524302}, "sqlglot.expressions.cast": {"tf": 8.888194417315589}, "sqlglot.expressions.table_": {"tf": 6.557438524302}, "sqlglot.expressions.values": {"tf": 8.888194417315589}, "sqlglot.expressions.var": {"tf": 10.488088481701515}, "sqlglot.expressions.rename_table": {"tf": 4.898979485566356}, "sqlglot.expressions.convert": {"tf": 5.744562646538029}, "sqlglot.expressions.replace_children": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 8.54400374531753}, "sqlglot.expressions.table_name": {"tf": 9.695359714832659}, "sqlglot.expressions.replace_tables": {"tf": 10.344080432788601}, "sqlglot.expressions.replace_placeholders": {"tf": 12.489995996796797}, "sqlglot.expressions.expand": {"tf": 14.247806848775006}, "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": 13.638181696985855}, "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.columnposition_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.clone_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.bytestring_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.rawstring_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.datatypesize_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.inputoutputformat_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.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.onconflict_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.pragma_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.after_having_modifiers": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.after_limit_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.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.windowspec_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.nextvaluefor_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.if_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.matchagainst_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.jsonkeyvalue_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.jsonobject_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.openjsoncolumndef_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.openjson_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.mergetreettlaction_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.mergetreettl_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.ilikeany_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.is_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.like_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.likeany_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.generator.Generator.dictproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.dictrange_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.dictsubproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.cached_generator": {"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.830951894845301}, "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.name_sequence": {"tf": 1.7320508075688772}, "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.dict_depth": {"tf": 11.489125293076057}, "sqlglot.helper.first": {"tf": 2.449489742783178}, "sqlglot.helper.case_sensitive": {"tf": 1.7320508075688772}, "sqlglot.helper.should_identify": {"tf": 6.324555320336759}, "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.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.isolate_table_selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1.7320508075688772}, "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.535653752852738}, "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.normalize_identifiers": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 9.9498743710662}, "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.745966692414834}, "sqlglot.optimizer.pushdown_predicates": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 10.14889156509222}, "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": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify.qualify": {"tf": 13.674794331177344}, "sqlglot.optimizer.qualify_columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 11.832159566199232}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 2}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1.7320508075688772}, "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": 13.341664064126334}, "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.is_false": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.is_null": {"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.parse_like": {"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": 5.291502622129181}, "sqlglot.schema.Schema.column_names": {"tf": 6.082762530298219}, "sqlglot.schema.Schema.get_column_type": {"tf": 6.082762530298219}, "sqlglot.schema.Schema.supported_table_args": {"tf": 2.449489742783178}, "sqlglot.schema.Schema.empty": {"tf": 1.7320508075688772}, "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.AbstractMappingSchema.nested_get": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema": {"tf": 7.3484692283495345}, "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": 5.291502622129181}, "sqlglot.schema.MappingSchema.column_names": {"tf": 6.082762530298219}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 6.082762530298219}, "sqlglot.schema.ensure_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.ensure_column_mapping": {"tf": 1.7320508075688772}, "sqlglot.schema.flatten_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.nested_get": {"tf": 5.830951894845301}, "sqlglot.schema.nested_set": {"tf": 12.649110640673518}, "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.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.NATIONAL_STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RAW_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.INT128": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UINT128": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INT256": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UINT256": {"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.BIGDECIMAL": {"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.DATETIME64": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INT4RANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INT4MULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INT8RANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INT8MULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NUMRANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NUMMULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TSRANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TSMULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TSTZRANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TSTZMULTIRANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DATERANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DATEMULTIRANGE": {"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.AUTO_INCREMENT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"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.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_TIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_USER": {"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.DICTIONARY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DISTINCT": {"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.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.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.KEEP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LATERAL": {"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": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LOCK": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"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.NEXT_VALUE_FOR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ON": {"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.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.PRAGMA": {"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.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.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.SETTINGS": {"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.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.TRUE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNION": {"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.UNIQUE": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.__init__": {"tf": 6.244997998398398}, "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.unnest_to_explode": {"tf": 2}, "sqlglot.transforms.explode_to_unnest": {"tf": 2}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_within_group_for_percentiles": {"tf": 1.7320508075688772}, "sqlglot.transforms.add_recursive_cte_column_names": {"tf": 1.7320508075688772}, "sqlglot.transforms.epoch_cast_to_ts": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 5}, "sqlglot.trie": {"tf": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 9.539392014169456}, "sqlglot.trie.in_trie": {"tf": 13.228756555322953}}, "df": 1843, "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.spark2.Spark2.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.insert": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "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.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"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.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 67, "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.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.spark2.Spark2.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.Insert.with_": {"tf": 1.7320508075688772}, "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.insert": {"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.paren": {"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.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1.7320508075688772}, "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.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "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.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"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.tokenize": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 133, "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.spark2.Spark2.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.4142135623730951}, "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.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.merge_subqueries.merge_subqueries": {"tf": 2.449489742783178}, "sqlglot.optimizer.normalize.normalize": {"tf": 2}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2.23606797749979}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify.qualify": {"tf": 2}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2}, "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}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"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": 3.7416573867739413}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.7416573867739413}, "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.teradata.Teradata.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.executor.python.Python.Generator": {"tf": 3.7416573867739413}, "sqlglot.generator.Generator": {"tf": 3.7416573867739413}}, "df": 22}}, "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.executor": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.insert": {"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": 61}, "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.executor.env.null_if_any": {"tf": 1}}, "df": 2}, "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.qualify_tables.qualify_tables": {"tf": 1}, "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": 13}}}, "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.diff": {"tf": 1}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 5}, "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.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.7320508075688772}, "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.generator.Generator.generate": {"tf": 1}, "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": 15, "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.Select.join": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "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": 24, "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": 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.spark2.Spark2.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.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2.8284271247461903}, "sqlglot.generator.Generator": {"tf": 2.8284271247461903}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 27, "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": 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.spark2.Spark2.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": 22}}}}, "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.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.insert": {"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.spark2.Spark2.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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 30}}}}}}, "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.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 2, "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": 4.123105625617661}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 4.123105625617661}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 4.123105625617661}, "sqlglot.executor.python.Python.Generator": {"tf": 4.123105625617661}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 4.123105625617661}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 31, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "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}}}}}}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 1.4142135623730951}, "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.insert": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "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.7320508075688772}, "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.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"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}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.string": {"tf": 1.4142135623730951}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 106, "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.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 25}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.6457513110645907}}, "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.optimizer.qualify.qualify": {"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": 8, "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}}}}}}}, "i": {"docs": {}, "df": 0, "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": {"sqlglot": {"tf": 1}}, "df": 1, "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}}}}, "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.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": 10}}}, "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.spark2.Spark2.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}}, "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}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"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}, "sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 3}}, "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.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 2}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.limit": {"tf": 2.23606797749979}, "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.23606797749979}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 3.1622776601683795}, "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.merge_subqueries.merge_subqueries": {"tf": 2.6457513110645907}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "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.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2.449489742783178}, "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.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"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.schema.AbstractMappingSchema": {"tf": 1}}, "df": 6}}, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 5, "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.expressions.Dot.build": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 8, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 1.4142135623730951}, "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.generator.Generator.generate": {"tf": 1}, "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}, "sqlglot.schema.nested_set": {"tf": 2}}, "df": 89, "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}, "sqlglot.schema.nested_set": {"tf": 2}}, "df": 2, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 2, "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.spark2.Spark2.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": 22}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "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.schema.nested_get": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 9, "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}}}}}}}, "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.helper.case_sensitive": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}}, "df": 2}}}}}}}}, "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.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.6457513110645907}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.449489742783178}, "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.Schema.empty": {"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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 44, "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.spark2.Spark2.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}}}}}}, "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}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"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.spark2.Spark2.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": 23}}, "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.605551275463989}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}, "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.Insert.with_": {"tf": 2.23606797749979}, "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.paren": {"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}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.generator.Generator.generate": {"tf": 1}, "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.name_sequence": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 2.23606797749979}, "sqlglot.helper.should_identify": {"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.qualify": {"tf": 2}, "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.Schema.empty": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 165, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 3}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}}, "df": 1, "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.spark2.Spark2.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.Insert.with_": {"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.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"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.nested_get": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 96, "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.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.same_parent": {"tf": 1}, "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.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"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.Table.parts": {"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.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"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.should_identify": {"tf": 1.4142135623730951}, "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.normalize_identifiers.normalize_identifiers": {"tf": 1}, "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.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"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.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}, "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.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 2.449489742783178}}, "df": 168, "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.Insert.with_": {"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.insert": {"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": 45, "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": {"sqlglot": {"tf": 1.4142135623730951}}, "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, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45, "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.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.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1.7320508075688772}, "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.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "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}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.func": {"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": 59, "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.to_table": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 6, "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}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 11}}}, "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}, "sqlglot.expressions.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.insert": {"tf": 2.8284271247461903}}, "df": 5, "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.normalize_identifiers.normalize_identifiers": {"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.spark2.Spark2.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.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.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 33, "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.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"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.insert": {"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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 44}, "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.spark2.Spark2.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, "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}, "sqlglot.expressions.intersect": {"tf": 2}}, "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}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}}, "df": 3}}}}}, "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}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}}, "df": 4, "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.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}}}}}}, "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.spark2.Spark2.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.helper.apply_index_offset": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 23}, "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.spark2.Spark2.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, "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.spark2.Spark2.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}}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 48}}, "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}, "r": {"docs": {"sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "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.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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.qualify": {"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": 42, "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": {"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.spark2.Spark2.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, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"1": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}}, "df": 1}, "2": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}}, "df": 1}, "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.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.spark2.Spark2.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": 3.3166247903554}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_identifier": {"tf": 2}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1.4142135623730951}}, "df": 32, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"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.snowflake.Snowflake.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark2.Spark2.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": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 2}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}}, "df": 31}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.7320508075688772}}, "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.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.qualify.qualify": {"tf": 1}}, "df": 25, "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}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.to_identifier": {"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": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3}, "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": 3}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3}, "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": 3}, "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.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"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.Insert.with_": {"tf": 2}, "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": 1.7320508075688772}, "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.paren": {"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}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 3}, "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.apply_index_offset": {"tf": 1}, "sqlglot.helper.name_sequence": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1.7320508075688772}, "sqlglot.helper.case_sensitive": {"tf": 1}, "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.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"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.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}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 159}, "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": {"0": {"docs": {"sqlglot.helper.name_sequence": {"tf": 1}}, "df": 1}, "1": {"docs": {"sqlglot.helper.name_sequence": {"tf": 1}}, "df": 1}, "2": {"docs": {"sqlglot.helper.name_sequence": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 7.681145747868608}, "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.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "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.Table.parts": {"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.4142135623730951}, "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.Dot.build": {"tf": 1.4142135623730951}, "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_identifier": {"tf": 1}, "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}, "sqlglot.expressions.table_": {"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.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.generator.cached_generator": {"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.name_sequence": {"tf": 1.7320508075688772}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 2}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "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.merge_subqueries.merge_subqueries": {"tf": 2.8284271247461903}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 2}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2.8284271247461903}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.6457513110645907}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 3.1622776601683795}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "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.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1.7320508075688772}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}, "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": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 2.6457513110645907}, "sqlglot.trie.in_trie": {"tf": 2.449489742783178}}, "df": 239, "n": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "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.dialect.Dialects": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "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.spark2.Spark2.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}, "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": 2}, "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.Insert.with_": {"tf": 1.4142135623730951}, "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": 2}, "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.insert": {"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.4142135623730951}, "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": 2}, "sqlglot.generator.Generator.generate": {"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.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}}, "df": 133, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.iter_expressions": {"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.convert": {"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.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.qualify": {"tf": 1.7320508075688772}, "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": 120}, "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.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": 13}}}}, "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.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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"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.csv": {"tf": 1}, "sqlglot.helper.case_sensitive": {"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": 28, "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.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": 16}}, "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.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.iter_expressions": {"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.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.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"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": 70, "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.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 2.8284271247461903}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 59, "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.spark2.Spark2.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.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 27}, "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.spark2.Spark2.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": 25}}}}, "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}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}}, "df": 6, "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.parser.Parser.validate_expression": {"tf": 1}}, "df": 4}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "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.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark2.Spark2.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.qualify_columns.quote_identifiers": {"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": 80, "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.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": 12, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.iter_expressions": {"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.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.Insert.with_": {"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.insert": {"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_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.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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.qualify": {"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.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"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": 189}}}}}}, "s": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.iter_expressions": {"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": 12}}, "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.spark2.Spark2.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}, "[": {"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.spark2.Spark2.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}, "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.spark2.Spark2.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}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.same_parent": {"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.Insert.with_": {"tf": 2.6457513110645907}, "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}, "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.paren": {"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": 2.23606797749979}, "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.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2.8284271247461903}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2}, "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": 147, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"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.qualify": {"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": 20, "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, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.schema.MappingSchema": {"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}}}}, "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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"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, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 5}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3}}, "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}}}}}}}, "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.to_table": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3, "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}}, "df": 3, "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.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}}, "df": 10}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}}, "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.Insert.with_": {"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.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}}}}}, "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.spark2.Spark2.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, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3}}, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.qualify.qualify": {"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": 14, "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": {}, "df": 0, "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.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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "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.Schema.empty": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 83, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_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": 7, "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.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.generator.Generator.generate": {"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": 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.spark2.Spark2.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.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 3}, "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": 3}, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 34}}, "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.7320508075688772}}, "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.spark2.Spark2.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}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}}, "df": 26, "d": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}}, "df": 3}}, "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}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe": {"tf": 3}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.helper.split_num_words": {"tf": 2}}, "df": 3, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.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": 52}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}}}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 47, "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.spark2.Spark2.Parser": {"tf": 2}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "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.Column.parts": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "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.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 2}, "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.helper.name_sequence": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "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}, "sqlglot.schema.nested_get": {"tf": 1.4142135623730951}}, "df": 49, "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.spark2.Spark2.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.insert": {"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.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}}, "df": 37}, "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.spark2.Spark2.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.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.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.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"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.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 63, "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.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "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.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 5}}, "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}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.7320508075688772}}, "df": 2}}}}}}}, "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}}}}}}, "^": {"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}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 8, "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.helper.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 6}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 44}}}}}}}, "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.spark2.Spark2.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": 22}}, "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": 5.291502622129181}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 5.291502622129181}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 5.291502622129181}, "sqlglot.executor.python.Python.Generator": {"tf": 5.291502622129181}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 5.291502622129181}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 2.6457513110645907}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}}, "df": 52, "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.spark2.Spark2.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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 25}, "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, "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}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}}, "df": 3, "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}}}}}}}, "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": 3.4641016151377544}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.4641016151377544}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.4641016151377544}, "sqlglot.executor.python.Python.Generator": {"tf": 3.4641016151377544}, "sqlglot.generator.Generator": {"tf": 3.4641016151377544}}, "df": 22, "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}}}}, "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.Insert.with_": {"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.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.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.insert": {"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.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.helper.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.7320508075688772}, "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.MappingSchema": {"tf": 1.7320508075688772}, "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": 66, "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.23606797749979}, "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.spark2.Spark2.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}}}}}}, "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.4142135623730951}}, "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.spark2.Spark2.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.generator.Generator": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 2.449489742783178}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 28, "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.spark2.Spark2.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}, "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.schema.nested_get": {"tf": 1.7320508075688772}, "sqlglot.schema.nested_set": {"tf": 2}, "sqlglot.time.format_time": {"tf": 1}}, "df": 35}}}}}}, "|": {"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}}, "df": 1}}}}}}}}, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1}}}}}, "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}}}}}}, "g": {"docs": {}, "df": 0, "i": {"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.spark2.Spark2.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": 22}}}, "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.diff": {"tf": 1}}, "df": 1}, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 6, "\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.spark2.Spark2.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": 28, "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}}, "t": {"docs": {"sqlglot.expressions.Column.to_dot": {"tf": 1}, "sqlglot.expressions.Dot.build": {"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.insert": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}}, "df": 8, "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.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1}}, "df": 9}}}}}}, "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.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 5}}, "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}}}}}}, "b": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2.449489742783178}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2}}, "df": 12, "/": {"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}}}}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "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.Insert.with_": {"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.insert": {"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.paren": {"tf": 1}, "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": 2.449489742783178}, "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.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "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.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"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}}, "df": 90, "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.spark2.Spark2.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": 26, "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.spark2.Spark2.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": 21}}}}}, "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.spark2.Spark2.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.expressions.to_table": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}}, "df": 29}, "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}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 8, "/": {"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.Insert.with_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"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}, "sqlglot.expressions.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}}, "df": 4}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.paren": {"tf": 1}}, "df": 1, "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.same_parent": {"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": 9, "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}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.paren": {"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}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}}, "df": 5, "s": {"docs": {"sqlglot.diff": {"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.Insert.with_": {"tf": 1.4142135623730951}, "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.paren": {"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.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 43}}, "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.spark2.Spark2.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, "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.spark2.Spark2.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}}}}}, "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}}}, "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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 10}}, "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.spark2.Spark2.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": 23, "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.spark2.Spark2.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": 25}}}, "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": {}, "df": 0, "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.helper.name_sequence": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 3}}}}, "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}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 12}, "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}}, "df": 1}}, "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.spark2.Spark2.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": 24}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 44}}, "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.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 2}}}}}}, "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.spark2.Spark2.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": 29, "\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.Insert.with_": {"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.schema.nested_set": {"tf": 1}}, "df": 29, "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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 3}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45, "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, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"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.spark2.Spark2.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.Insert.with_": {"tf": 1.4142135623730951}, "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.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 43, "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.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}}, "df": 7, "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.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 12}}, "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}}, "df": 6}, "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.spark2.Spark2.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, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.insert": {"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": 75, "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.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"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.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.qualify.qualify": {"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": 69}}, "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.spark2.Spark2.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.8284271247461903}, "sqlglot.trie.in_trie": {"tf": 3.4641016151377544}}, "df": 25, "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": 5.477225575051661}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 5.477225575051661}, "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": 5.477225575051661}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 5.477225575051661}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 5.477225575051661}, "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": 5.477225575051661}, "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.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "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.449489742783178}, "sqlglot.expressions.Condition.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.Condition.not_": {"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.Delete.delete": {"tf": 2}, "sqlglot.expressions.Delete.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Delete.returning": {"tf": 2}, "sqlglot.expressions.Insert.with_": {"tf": 2.8284271247461903}, "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}, "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.distinct": {"tf": 1}, "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.insert": {"tf": 2.6457513110645907}, "sqlglot.expressions.condition": {"tf": 2.449489742783178}, "sqlglot.expressions.and_": {"tf": 2.449489742783178}, "sqlglot.expressions.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.not_": {"tf": 2.23606797749979}, "sqlglot.expressions.paren": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 2.8284271247461903}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 2.23606797749979}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.7320508075688772}, "sqlglot.expressions.expand": {"tf": 2}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 5.477225575051661}, "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.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "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.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 2.23606797749979}, "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.qualify": {"tf": 3.3166247903554}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "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.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1.7320508075688772}, "sqlglot.schema.nested_set": {"tf": 1.7320508075688772}, "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.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 200, "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.__init__": {"tf": 2.6457513110645907}, "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, "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.spark2.Spark2.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": 26}, "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.spark2.Spark2.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": 23}, "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}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 3}}}}}}}, "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}, "sqlglot.schema.nested_set": {"tf": 2.23606797749979}}, "df": 2, "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.69041575982343}, "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.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.spark2.Spark2.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark2.Spark2.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.iter_expressions": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.find_all": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.same_parent": {"tf": 1.4142135623730951}, "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.449489742783178}, "sqlglot.expressions.Condition.or_": {"tf": 2.449489742783178}, "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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"tf": 1}, "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.Insert.with_": {"tf": 3.4641016151377544}, "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.Table.parts": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.select": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.from_": {"tf": 2.449489742783178}, "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.4641016151377544}, "sqlglot.expressions.Select.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.having": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.distinct": {"tf": 2}, "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}, "sqlglot.expressions.intersect": {"tf": 3}, "sqlglot.expressions.except_": {"tf": 3}, "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.insert": {"tf": 3.1622776601683795}, "sqlglot.expressions.condition": {"tf": 3}, "sqlglot.expressions.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.not_": {"tf": 2.449489742783178}, "sqlglot.expressions.paren": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_identifier": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 2}, "sqlglot.expressions.alias_": {"tf": 3}, "sqlglot.expressions.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}, "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": 2}, "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.8284271247461903}, "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.name_sequence": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2.6457513110645907}, "sqlglot.helper.is_iterable": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "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.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 2.449489742783178}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 2}, "sqlglot.optimizer.optimizer.optimize": {"tf": 3}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"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}, "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": 2.23606797749979}, "sqlglot.schema.Schema.column_names": {"tf": 2}, "sqlglot.schema.Schema.get_column_type": {"tf": 2.449489742783178}, "sqlglot.schema.Schema.empty": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2.449489742783178}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.column_names": {"tf": 2}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2.449489742783178}, "sqlglot.schema.nested_get": {"tf": 2.23606797749979}, "sqlglot.schema.nested_set": {"tf": 2.449489742783178}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 3.3166247903554}, "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": 2}, "sqlglot.trie.new_trie": {"tf": 2.23606797749979}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 252, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 2}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 5, "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}}}}, "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}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 16}, "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.spark2.Spark2.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": 30}, "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.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.qualify_columns.quote_identifiers": {"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.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"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}, "sqlglot.schema.nested_set": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}, "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}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 70}, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.4142135623730951}, "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.Insert.with_": {"tf": 1.7320508075688772}, "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.4142135623730951}, "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.paren": {"tf": 1}, "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.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"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.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"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}}, "df": 180}, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 2}}, "df": 2}}}, "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.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 5}}}, "r": {"docs": {}, "df": 0, "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}}}}}}, "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.executor": {"tf": 1}}, "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.spark2.Spark2.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.helper.apply_index_offset": {"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": 35, "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.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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.Insert.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Table.parts": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 2.6457513110645907}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 2.8284271247461903}, "sqlglot.expressions.to_column": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 2.449489742783178}, "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.449489742783178}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 2.449489742783178}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "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.449489742783178}, "sqlglot.schema.Schema.column_names": {"tf": 2}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2.449489742783178}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2.449489742783178}, "sqlglot.schema.MappingSchema.column_names": {"tf": 2}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 90, "s": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "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}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}}}, "|": {"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.spark2.Spark2.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.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 2.23606797749979}, "sqlglot.tokens.Token.__init__": {"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": 33, "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.spark2.Spark2.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.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.time.format_time": {"tf": 2.23606797749979}}, "df": 29, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}}, "df": 2}, "2": {"docs": {"sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}}, "df": 4}, "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.Insert.with_": {"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.insert": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}}, "df": 31}}, "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}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "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.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}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "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.qualify.qualify": {"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": 22}, "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}}}}, "s": {"docs": {"sqlglot.schema.nested_get": {"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.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": 10, "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}}, "df": 8, "/": {"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.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": 9}, "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}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}}, "df": 3}}}}}}, "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.join": {"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.generator.Generator.generate": {"tf": 1}, "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": 14, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.insert": {"tf": 1}}, "df": 3}}, "[": {"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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"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.insert": {"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": 90}}}}, "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.Insert.with_": {"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.insert": {"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": 46}}, "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": 4}, "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.spark2.Spark2.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.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Insert.with_": {"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.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 2.6457513110645907}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"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.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 2}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.8284271247461903}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"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.Schema.empty": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 101, "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.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"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.replace_placeholders": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "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": 22, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}}}, "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, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "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.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "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}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Table.parts": {"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.Dot.build": {"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.insert": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "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.generator.Generator.generate": {"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": 2}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "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.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.schema.nested_get": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1.7320508075688772}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 165, "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.spark2.Spark2.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": 23}}}}, "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.spark2.Spark2.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": 35, "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.spark2.Spark2.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.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "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.tokens.Token.__init__": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 55, "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": 2.449489742783178}, "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.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "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}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 64, "s": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}}, "df": 3}}, "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.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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.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.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.generator.Generator.generate": {"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.qualify.qualify": {"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": 72}}, "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}}, "s": {"docs": {"sqlglot.expressions.Select.distinct": {"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.Condition.not_": {"tf": 1}, "sqlglot.expressions.Dot.build": {"tf": 1}, "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": 13, "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.Insert.with_": {"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.insert": {"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": 50, "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.Insert.with_": {"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.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}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.insert": {"tf": 1.4142135623730951}}, "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.helper.name_sequence": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 11, "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": 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.spark2.Spark2.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.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2.6457513110645907}, "sqlglot.generator.Generator": {"tf": 2.6457513110645907}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 26, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"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.spark2.Spark2.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}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 23}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}, "s": {"docs": {"sqlglot.tokens.Token.__init__": {"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.spark2.Spark2.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}}}}}}}, "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}, "sqlglot.tokens.Token.__init__": {"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.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.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}}, "df": 3, "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.generator.Generator.generate": {"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.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.7320508075688772}, "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.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.iter_expressions": {"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.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.Unionable.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.to_dot": {"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.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 2.6457513110645907}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.6457513110645907}, "sqlglot.expressions.Union.limit": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 2.449489742783178}, "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": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.having": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 2}, "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}, "sqlglot.expressions.intersect": {"tf": 2}, "sqlglot.expressions.except_": {"tf": 2}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 2.449489742783178}, "sqlglot.expressions.insert": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 2.6457513110645907}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.paren": {"tf": 2.23606797749979}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.449489742783178}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "sqlglot.expressions.cast": {"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": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 2}, "sqlglot.expressions.replace_placeholders": {"tf": 2}, "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.4142135623730951}, "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.merge_subqueries.merge_subqueries": {"tf": 3}, "sqlglot.optimizer.normalize.normalize": {"tf": 2.449489742783178}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 2.449489742783178}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2.6457513110645907}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.449489742783178}, "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": 153, "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.spark2.Spark2.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": 2.23606797749979}, "sqlglot.expressions.Condition.or_": {"tf": 2.23606797749979}, "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.Insert.with_": {"tf": 2}, "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}, "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.Select.distinct": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Dot.build": {"tf": 1}, "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.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 2}, "sqlglot.expressions.or_": {"tf": 2}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.convert": {"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.qualify_tables.qualify_tables": {"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": 95}}}}}}}}, "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, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.iter_expressions": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 3, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "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.transforms.explode_to_unnest": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}}}}, "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}}}}}, "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.7320508075688772}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}}, "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.Insert.with_": {"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.insert": {"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.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.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"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.schema.nested_set": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 94, "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.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 17}}}}}, "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}, "sqlglot.expressions.except_": {"tf": 2}, "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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 4, "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.Insert.with_": {"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.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}}, "df": 21}}}}}, "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.spark2.Spark2.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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 30, "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.spark2.Spark2.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": 29}, "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.spark2.Spark2.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}}}}}}, "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.spark2.Spark2.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": 26}, "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}, "sqlglot.schema.Schema.empty": {"tf": 1}}, "df": 10}}}, "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.spark2.Spark2.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": 23}}}}, "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.normalize_identifiers.normalize_identifiers": {"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.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"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.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 11}}}}}, "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}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 3, "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.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": 22, "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.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.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.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}, "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.generator.Generator": {"tf": 1.4142135623730951}, "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": 51, "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, "s": {"docs": {"sqlglot.helper.ensure_list": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.dataframe": {"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.case_sensitive": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}}, "df": 13, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 4}, "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.spark2.Spark2.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}}}, "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}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}}, "df": 3, "d": {"docs": {"sqlglot.generator.cached_generator": {"tf": 1}}, "df": 1}}}}, "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.spark2.Spark2.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.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}}, "df": 11}}}}}, "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, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.qualify.qualify": {"tf": 1}}, "df": 1}}}}}}, "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.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 16}}}}}}}}, "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}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "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}}}}}}, "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}}}}}}}, "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.spark2.Spark2.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": 26}}}}, "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.Insert.with_": {"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": 14, "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.spark2.Spark2.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": 22, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 43}}, "/": {"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.spark2.Spark2.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": 29}}}, "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.spark2.Spark2.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": 24, "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}, "sqlglot.helper.case_sensitive": {"tf": 1}}, "df": 6}}}}, "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.4142135623730951}, "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.spark2.Spark2.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": 23}}, "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.spark2.Spark2.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": 21}}}}, "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}}, "s": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"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.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 12, "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.Column.to_dot": {"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}}, "df": 9}, "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.spark2.Spark2.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.Insert.with_": {"tf": 1.4142135623730951}, "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.paren": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 72}}, "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.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify.qualify": {"tf": 2}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 10, "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.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.Column.parts": {"tf": 1}, "sqlglot.expressions.Column.to_dot": {"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.insert": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 2.449489742783178}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "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.qualify.qualify": {"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.tokens.Token.__init__": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 63, "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.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.23606797749979}, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 28}, "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}, "sqlglot.expressions.convert": {"tf": 1}}, "df": 2}}}}}}}}, "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}}, "df": 1}}}}}, "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.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"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.insert": {"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.paren": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}}, "df": 42}}}, "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.spark2.Spark2.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": 27, "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.case_sensitive": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 14}}}}, "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": 3.7416573867739413}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.7416573867739413}, "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.teradata.Teradata.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 3.7416573867739413}, "sqlglot.generator.Generator": {"tf": 3.7416573867739413}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 25, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.helper.case_sensitive": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 44}}}}}}}, "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.expressions.Insert.with_": {"tf": 2}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}}, "df": 5, "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": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "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.spark2.Spark2.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.trie.new_trie": {"tf": 1}}, "df": 25}}, "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.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 5}}}}, "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.same_parent": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "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.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.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 2, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}}}}}}}, "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.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}, "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.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"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.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "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.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}, "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.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.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.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": 111, "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}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 2}}}, "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.spark2.Spark2.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, "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.spark2.Spark2.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": 24}}}}, "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.spark2.Spark2.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": 27}}}, "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}}, "df": 2}}}}}, "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}}}}, "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.spark2.Spark2.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": 22}}, "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.Dot.build": {"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": 16, "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.insert": {"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": 10}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "t": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 6}}, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "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": 59, "t": {"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.spark2.Spark2.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.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}}, "df": 23, "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, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "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.normalize_identifiers.normalize_identifiers": {"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.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.spark2.Spark2.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.python.Python.Generator": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.6457513110645907}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"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": 35, "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.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "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": 7}}}, "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": 3.605551275463989}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.605551275463989}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 3.605551275463989}, "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.Insert.with_": {"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.insert": {"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": 3.605551275463989}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 97, "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.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"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.Insert.with_": {"tf": 1.7320508075688772}, "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.insert": {"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.paren": {"tf": 1}, "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.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"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.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 86}, "s": {"docs": {"sqlglot": {"tf": 2}, "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}}, "df": 6}}}, "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.executor": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "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.spark2.Spark2.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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 26, "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.spark2.Spark2.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": 23, "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.spark2.Spark2.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}}}}}}}, "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}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 2}, "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": {}, "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.spark2.Spark2.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.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}}, "df": 23}}}}, "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.spark2.Spark2.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}}}}, "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.spark2.Spark2.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.normalize_identifiers.normalize_identifiers": {"tf": 1}}, "df": 23, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.should_identify": {"tf": 1}}, "df": 1}}}}}}}, "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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 7, "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}, "sqlglot.schema.nested_set": {"tf": 1}}, "df": 3}}}}}}, "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.spark2.Spark2.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.iter_expressions": {"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.join": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 2.23606797749979}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.insert": {"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.qualify": {"tf": 2}, "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.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}, "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}}, "df": 89, "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.7320508075688772}, "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.spark2.Spark2.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": 27, "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.spark2.Spark2.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": 24}}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "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.expressions.table_": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.executor": {"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.4142135623730951}, "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}}}, "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.normalize_identifiers.normalize_identifiers": {"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}, "sqlglot.schema.nested_get": {"tf": 1}}, "df": 9, "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}}}}}}}}}}}}, "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.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.Insert.with_": {"tf": 2}, "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.23606797749979}, "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": 3.3166247903554}, "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.merge_subqueries.merge_subqueries": {"tf": 2.8284271247461903}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1.4142135623730951}, "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.qualify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2.23606797749979}, "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.transforms.remove_target_from_merge": {"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}}}}}}}, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "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": 8, "/": {"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}}, "df": 1, "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.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": 14}}}, "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}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "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}}}, "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.spark2.Spark2.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.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.spark2.Spark2.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}}, "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}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}}, "df": 2}}}}}}, "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.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": 5}, "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}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}}, "df": 7}}, "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}}}}}}, "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": 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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 1}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Insert.with_": {"tf": 1.4142135623730951}, "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": 2}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"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": 83}}, "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}}}}}}}, "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.spark2.Spark2.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.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 24, "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.spark2.Spark2.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": 23}, "/": {"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.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.spark2.Spark2.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.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2.8284271247461903}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.8284271247461903}}, "df": 24}}}}}, "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.spark2.Spark2.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.iter_expressions": {"tf": 1}, "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}, "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": 57, "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.spark2.Spark2.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.normalize_identifiers.normalize_identifiers": {"tf": 1}}, "df": 23, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.should_identify": {"tf": 1}}, "df": 1}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark2.Spark2.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": 47}, "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}, "sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 2}}}}}}}, "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.spark2.Spark2.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": 22}}}}, "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.spark2.Spark2.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": 25}}}}, "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}}}}}, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "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}}}}}}}}}}}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 44}}, "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.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1}}}}}}, "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}}, "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.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 8}, "d": {"docs": {"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": 6}, "/": {"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}}}}}}}, "s": {"docs": {"sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.transforms.remove_target_from_merge": {"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.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Insert.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}}, "df": 5, "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.parts": {"tf": 1}, "sqlglot.expressions.Table.parts": {"tf": 1}, "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": 12, "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.same_parent": {"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.Insert.with_": {"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.insert": {"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_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.generator.cached_generator": {"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.name_sequence": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"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.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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.qualify": {"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.Schema.empty": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.nested_get": {"tf": 1}, "sqlglot.schema.nested_set": {"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": 178}, "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.spark2.Spark2.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": 39}}, "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.qualify": {"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": 13}}}}, "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.spark2.Spark2.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": 26}, "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.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}, "s": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 1}}}}, "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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}}, "df": 13, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45}}}}}, "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": {"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.expressions.to_table": {"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": 6}}}, "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}}}}}, "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}}}, "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.Insert.with_": {"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": 11}}}, "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.datatype_sql": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "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}}}}}}}, "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}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 2}}}}}, "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}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.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}}, "df": 46, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 42}}}}, "w": {"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.spark2.Spark2.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": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 25}, "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}}}}}}}}, "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.qualify.qualify": {"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.optimizer.optimizer.optimize": {"tf": 2}}, "df": 2}}}}, "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.spark2.Spark2.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}}, "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.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.with_properties": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.58257569495584}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "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.Insert.with_": {"tf": 1.4142135623730951}, "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.Dot.build": {"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.to_table": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "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.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": 70, "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}}, "df": 5}}}, "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.spark2.Spark2.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.Insert.with_": {"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.to_table": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "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.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}, "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}}, "df": 83}}, "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": 3.605551275463989}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.spark2.Spark2.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.605551275463989}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.605551275463989}, "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": 3.605551275463989}, "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.expressions.to_table": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 3.605551275463989}, "sqlglot.generator.Generator.generate": {"tf": 1}, "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": 53}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "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.datatype_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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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}, "sqlglot.transforms.remove_target_from_merge": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 53}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dataframe": {"tf": 1}, "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.schema.nested_get": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 19}}, "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.spark2.Spark2.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.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"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.insert": {"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.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.empty": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 59}}}}}, "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}, "sqlglot.expressions.paren": {"tf": 1}}, "df": 3, "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.expressions.paren": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}}, "df": 12}}}, "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.spark2.Spark2.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}, "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.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 2, "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.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": 15, "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.optimizer.qualify.qualify": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 3, "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.convert": {"tf": 1.7320508075688772}, "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.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.schema.nested_set": {"tf": 3.1622776601683795}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 17, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.insert": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 2.6457513110645907}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 10}}}}}, "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": 2.23606797749979}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "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.spark2.Spark2.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}, "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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 3}}}, "\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.helper.name_sequence": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 7, "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.spark2.Spark2.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.generator.cached_generator": {"tf": 1}, "sqlglot.helper.name_sequence": {"tf": 1}, "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}}, "df": 40}}, "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.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tag": {"tf": 1}}, "df": 3}}, "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.schema.nested_get": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 16, "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}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "n": {"docs": {"sqlglot": {"tf": 1}, "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.spark2.Spark2.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.name_sequence": {"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.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.nested_set": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 47}}}, "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}}}}}, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "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.Insert.with_": {"tf": 1.7320508075688772}, "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.insert": {"tf": 1.7320508075688772}, "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.paren": {"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": 3}, "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.merge_subqueries.merge_subqueries": {"tf": 3}, "sqlglot.optimizer.normalize.normalize": {"tf": 3}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 3}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"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.qualify": {"tf": 3.4641016151377544}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 3.4641016151377544}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 4.242640687119285}, "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.schema.nested_set": {"tf": 2.449489742783178}, "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": 101}, "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}}}}}}, "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": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 1, "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.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 7}, "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.spark2.Spark2.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": 29, "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.Insert.with_": {"tf": 2.8284271247461903}, "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.8284271247461903}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.8284271247461903}, "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.insert": {"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.paren": {"tf": 1.4142135623730951}, "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": 3.1622776601683795}, "sqlglot.expressions.expand": {"tf": 4}, "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.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 2}, "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.qualify": {"tf": 4.242640687119285}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2.449489742783178}, "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.schema.nested_set": {"tf": 4.242640687119285}, "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": 94, "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.spark2.Spark2.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.table_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.optimizer.qualify.qualify": {"tf": 1.7320508075688772}}, "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.qualify_columns.quote_identifiers": {"tf": 1.4142135623730951}}, "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.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark2.Spark2.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.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 26}}}, "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.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify.qualify": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.7320508075688772}}, "df": 7}, "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.qualify": {"tf": 1.4142135623730951}, "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": 5}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "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": 2.449489742783178}, "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.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.23606797749979}, "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": 40, "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.generator.Generator.generate": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 8, "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.iter_expressions": {"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": 9}, "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}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}, "sqlglot.transforms.explode_to_unnest": {"tf": 1}}, "df": 11}}, "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}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}}, "df": 5, "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.spark2.Spark2.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}, "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}}, "df": 3, "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}}}}}, "x": {"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.spark2.Spark2.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": 22}, "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.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 10, "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}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}}, "df": 2, "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}}}}}}}}}}, "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}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.optimizer.qualify_tables.qualify_tables": {"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": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 4}}}}, "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.diff": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.optimizer.normalize_identifiers.normalize_identifiers": {"tf": 1}, "sqlglot.optimizer.qualify_columns.quote_identifiers": {"tf": 1}}, "df": 5}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.schema.nested_set": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}, "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.spark2.Spark2.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": 40, "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.spark2.Spark2.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": 23}, "[": {"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.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}}, "df": 3}, "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.optimizer.scope.Scope.find": {"tf": 1}}, "df": 4, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 45, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 42}}, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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.preprocess": {"tf": 1}}, "df": 48}}}, "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.spark2.Spark2.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": 20, "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.spark2.Spark2.Parser": {"tf": 1}, "sqlglot.dialects.spark2.Spark2.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": 46}}}}}}, "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.Insert.with_": {"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": 26}, "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.Insert.with_": {"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": 23}}}}}, "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.spark2.Spark2.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": 24, "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.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 4, "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}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}, "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}}}}}, "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}}}}, "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}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.qualify.qualify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}}, "df": 2}}}}}, "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}}}}}}}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"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": 7}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "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}}, "df": 1, "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.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}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}}}, "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}}}}}, "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}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 3.872983346207417}, "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.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "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}, "sqlglot.transforms.unnest_to_explode": {"tf": 1}}, "df": 18, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "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": 8}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Select.join": {"tf": 1}}, "df": 1}}, "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.Insert.with_": {"tf": 1.4142135623730951}, "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": 2.449489742783178}, "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.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.6457513110645907}, "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": 2.449489742783178}, "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.spark2.Spark2.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.iter_expressions": {"tf": 1}, "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.schema.nested_get": {"tf": 2}, "sqlglot.schema.nested_set": {"tf": 3.4641016151377544}, "sqlglot.trie.in_trie": {"tf": 2}}, "df": 38, "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.spark2.Spark2.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}, "sqlglot.schema.nested_set": {"tf": 1.4142135623730951}}, "df": 26}, "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.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 6}}}}}}}}}, "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/_version.html b/docs/sqlglot/_version.html index c56aa75..9942e5f 100644 --- a/docs/sqlglot/_version.html +++ b/docs/sqlglot/_version.html @@ -51,8 +51,8 @@
1# file generated by setuptools_scm
 2# don't change, don't track in version control
-3__version__ = version = '14.1.1'
-4__version_tuple__ = version_tuple = (14, 1, 1)
+3__version__ = version = '15.1.0'
+4__version_tuple__ = version_tuple = (15, 1, 0)
 
diff --git a/docs/sqlglot/dataframe/sql.html b/docs/sqlglot/dataframe/sql.html index 2f821a5..3cb2b9a 100644 --- a/docs/sqlglot/dataframe/sql.html +++ b/docs/sqlglot/dataframe/sql.html @@ -550,33 +550,29 @@ 127 return name 128 129 @property -130 def _random_name(self) -> str: -131 return "r" + uuid.uuid4().hex -132 -133 @property -134 def _random_branch_id(self) -> str: -135 id = self._random_id -136 self.known_branch_ids.add(id) -137 return id -138 -139 @property -140 def _random_sequence_id(self): -141 id = self._random_id -142 self.known_sequence_ids.add(id) -143 return id -144 -145 @property -146 def _random_id(self) -> str: -147 id = self._random_name -148 self.known_ids.add(id) -149 return id +130 def _random_branch_id(self) -> str: +131 id = self._random_id +132 self.known_branch_ids.add(id) +133 return id +134 +135 @property +136 def _random_sequence_id(self): +137 id = self._random_id +138 self.known_sequence_ids.add(id) +139 return id +140 +141 @property +142 def _random_id(self) -> str: +143 id = "r" + uuid.uuid4().hex +144 self.known_ids.add(id) +145 return id +146 +147 @property +148 def _join_hint_names(self) -> t.Set[str]: +149 return {"BROADCAST", "MERGE", "SHUFFLE_HASH", "SHUFFLE_REPLICATE_NL"} 150 -151 @property -152 def _join_hint_names(self) -> t.Set[str]: -153 return {"BROADCAST", "MERGE", "SHUFFLE_HASH", "SHUFFLE_REPLICATE_NL"} -154 -155 def _add_alias_to_mapping(self, name: str, sequence_id: str): -156 self.name_to_sequence_id_mapping[name].append(sequence_id) +151 def _add_alias_to_mapping(self, name: str, sequence_id: str): +152 self.name_to_sequence_id_mapping[name].append(sequence_id) @@ -606,7 +602,7 @@
def - createDataFrame( self, data: Sequence[Union[Dict[str, <MagicMock id='139684976777040'>], List[<MagicMock id='139684976777040'>], Tuple]], schema: Optional[<MagicMock id='139684976987632'>] = None, samplingRatio: Optional[float] = None, verifySchema: bool = False) -> sqlglot.dataframe.sql.DataFrame: + createDataFrame( self, data: Sequence[Union[Dict[str, <MagicMock id='140604724939168'>], List[<MagicMock id='140604724939168'>], Tuple]], schema: Optional[<MagicMock id='140604726296240'>] = None, samplingRatio: Optional[float] = None, verifySchema: bool = False) -> sqlglot.dataframe.sql.DataFrame: @@ -812,7 +808,7 @@ 128 sequence_id: t.Optional[str] = None, 129 **kwargs, 130 ) -> t.Tuple[exp.CTE, str]: -131 name = self.spark._random_name +131 name = self._create_hash_from_expression(expression) 132 expression_to_cte = expression.copy() 133 expression_to_cte.set("with", None) 134 cte = exp.Select().with_(name, as_=expression_to_cte, **kwargs).ctes[0] @@ -948,7 +944,7 @@ 264 return [Column(x) for x in (expression.find(exp.Select) or exp.Select()).expressions] 265 266 @classmethod -267 def _create_hash_from_expression(cls, expression: exp.Select): +267 def _create_hash_from_expression(cls, expression: exp.Expression) -> str: 268 value = expression.sql(dialect="spark").encode("utf-8") 269 return f"t{zlib.crc32(value)}"[:6] 270 @@ -984,7 +980,7 @@ 300 for expression_type, select_expression in select_expressions: 301 select_expression = select_expression.transform(replace_id_value, replacement_mapping) 302 if optimize: -303 select_expression = optimize_func(select_expression, identify="always") +303 select_expression = t.cast(exp.Select, optimize_func(select_expression)) 304 select_expression = df._replace_cte_names_with_hashes(select_expression) 305 expression: t.Union[exp.Select, exp.Cache, exp.Drop] 306 if expression_type == exp.Cache: @@ -1509,7 +1505,7 @@
- DataFrame( spark: <MagicMock id='139684981920560'>, expression: sqlglot.expressions.Select, branch_id: Optional[str] = None, sequence_id: Optional[str] = None, last_op: sqlglot.dataframe.sql.operations.Operation = <Operation.INIT: -1>, pending_hints: Optional[List[sqlglot.expressions.Expression]] = None, output_expression_container: Optional[<MagicMock id='139684981549680'>] = None, **kwargs) + DataFrame( spark: <MagicMock id='140604728440864'>, expression: sqlglot.expressions.Select, branch_id: Optional[str] = None, sequence_id: Optional[str] = None, last_op: sqlglot.dataframe.sql.operations.Operation = <Operation.INIT: -1>, pending_hints: Optional[List[sqlglot.expressions.Expression]] = None, output_expression_container: Optional[<MagicMock id='140604729565168'>] = None, **kwargs) @@ -1558,7 +1554,7 @@ 300 for expression_type, select_expression in select_expressions: 301 select_expression = select_expression.transform(replace_id_value, replacement_mapping) 302 if optimize: -303 select_expression = optimize_func(select_expression, identify="always") +303 select_expression = t.cast(exp.Select, optimize_func(select_expression)) 304 select_expression = df._replace_cte_names_with_hashes(select_expression) 305 expression: t.Union[exp.Select, exp.Cache, exp.Drop] 306 if expression_type == exp.Cache: @@ -2284,7 +2280,7 @@ is unlikely to come up.

@operation(Operation.FROM)
def - fillna( self, value: <MagicMock id='139684977266160'>, subset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.DataFrame: + fillna( self, value: <MagicMock id='140604723599328'>, subset: Union[str, Tuple[str, ...], List[str], NoneType] = None) -> sqlglot.dataframe.sql.DataFrame: @@ -2353,7 +2349,7 @@ and check if it matches the type of the value provided. If not then make it null
@operation(Operation.FROM)
def - replace( self, to_replace: Union[bool, int, float, str, List, Dict], value: Union[bool, int, float, str, List, NoneType] = None, subset: Union[Collection[<MagicMock id='139684977728224'>], <MagicMock id='139684977728224'>, NoneType] = None) -> sqlglot.dataframe.sql.DataFrame: + replace( self, to_replace: Union[bool, int, float, str, List, Dict], value: Union[bool, int, float, str, List, NoneType] = None, subset: Union[Collection[<MagicMock id='140604723535904'>], <MagicMock id='140604723535904'>, NoneType] = None) -> sqlglot.dataframe.sql.DataFrame: @@ -2558,7 +2554,7 @@ and check if it matches the type of the value provided. If not then make it null
@operation(Operation.NO_OP)
def - repartition( self, numPartitions: Union[int, <MagicMock id='139684976134272'>], *cols: <MagicMock id='139684975680992'>) -> sqlglot.dataframe.sql.DataFrame: + repartition( self, numPartitions: Union[int, <MagicMock id='140604723822992'>], *cols: <MagicMock id='140604723880880'>) -> sqlglot.dataframe.sql.DataFrame: @@ -3226,7 +3222,7 @@ and check if it matches the type of the value provided. If not then make it null
- Column( expression: Union[<MagicMock id='139684979775312'>, sqlglot.expressions.Expression, NoneType]) + Column( expression: Union[<MagicMock id='140604725847056'>, sqlglot.expressions.Expression, NoneType]) @@ -3254,7 +3250,7 @@ and check if it matches the type of the value provided. If not then make it null
@classmethod
def - ensure_col( cls, value: Union[<MagicMock id='139684975891488'>, sqlglot.expressions.Expression, NoneType]): + ensure_col( cls, value: Union[<MagicMock id='140604723943728'>, sqlglot.expressions.Expression, NoneType]): @@ -3275,7 +3271,7 @@ and check if it matches the type of the value provided. If not then make it null
@classmethod
def - ensure_cols( cls, args: List[Union[<MagicMock id='139684975947792'>, sqlglot.expressions.Expression]]) -> List[sqlglot.dataframe.sql.Column]: + ensure_cols( cls, args: List[Union[<MagicMock id='140604723933680'>, sqlglot.expressions.Expression]]) -> List[sqlglot.dataframe.sql.Column]: @@ -3296,7 +3292,7 @@ and check if it matches the type of the value provided. If not then make it null
@classmethod
def - invoke_anonymous_function( cls, column: Optional[<MagicMock id='139684976195040'>], func_name: str, *args: Optional[<MagicMock id='139684976104048'>]) -> sqlglot.dataframe.sql.Column: + invoke_anonymous_function( cls, column: Optional[<MagicMock id='140604724460464'>], func_name: str, *args: Optional[<MagicMock id='140604724156480'>]) -> sqlglot.dataframe.sql.Column: @@ -3323,7 +3319,7 @@ and check if it matches the type of the value provided. If not then make it null
@classmethod
def - invoke_expression_over_column( cls, column: Optional[<MagicMock id='139684976054896'>], callable_expression: Callable, **kwargs) -> sqlglot.dataframe.sql.Column: + invoke_expression_over_column( cls, column: Optional[<MagicMock id='140604724090944'>], callable_expression: Callable, **kwargs) -> sqlglot.dataframe.sql.Column: @@ -3360,7 +3356,7 @@ and check if it matches the type of the value provided. If not then make it null
def - binary_op( self, klass: Callable, other: <MagicMock id='139684975964368'>, **kwargs) -> sqlglot.dataframe.sql.Column: + binary_op( self, klass: Callable, other: <MagicMock id='140604724048944'>, **kwargs) -> sqlglot.dataframe.sql.Column: @@ -3381,7 +3377,7 @@ and check if it matches the type of the value provided. If not then make it null
def - inverse_binary_op( self, klass: Callable, other: <MagicMock id='139684976270528'>, **kwargs) -> sqlglot.dataframe.sql.Column: + inverse_binary_op( self, klass: Callable, other: <MagicMock id='140604724339344'>, **kwargs) -> sqlglot.dataframe.sql.Column: @@ -3891,7 +3887,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string

def - isin( self, *cols: Union[<MagicMock id='139684976455936'>, Iterable[<MagicMock id='139684976455936'>]]): + isin( self, *cols: Union[<MagicMock id='140604722499344'>, Iterable[<MagicMock id='140604722499344'>]]): @@ -3912,7 +3908,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string

def - between( self, lowerBound: <MagicMock id='139684976541168'>, upperBound: <MagicMock id='139684976612096'>) -> sqlglot.dataframe.sql.Column: + between( self, lowerBound: <MagicMock id='140604722556992'>, upperBound: <MagicMock id='140604722616528'>) -> sqlglot.dataframe.sql.Column: @@ -3947,7 +3943,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string

def - over( self, window: <MagicMock id='139684976653312'>) -> sqlglot.dataframe.sql.Column: + over( self, window: <MagicMock id='140604722692160'>) -> sqlglot.dataframe.sql.Column: @@ -4145,7 +4141,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string

@classmethod
def - partitionBy( cls, *cols: Union[<MagicMock id='139684973733504'>, List[<MagicMock id='139684973733504'>]]) -> sqlglot.dataframe.sql.WindowSpec: + partitionBy( cls, *cols: Union[<MagicMock id='140604722964432'>, List[<MagicMock id='140604722964432'>]]) -> sqlglot.dataframe.sql.WindowSpec: @@ -4166,7 +4162,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string

@classmethod
def - orderBy( cls, *cols: Union[<MagicMock id='139684973580960'>, List[<MagicMock id='139684973580960'>]]) -> sqlglot.dataframe.sql.WindowSpec: + orderBy( cls, *cols: Union[<MagicMock id='140604723170512'>, List[<MagicMock id='140604723170512'>]]) -> sqlglot.dataframe.sql.WindowSpec: @@ -4391,7 +4387,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string

def - partitionBy( self, *cols: Union[<MagicMock id='139684973878944'>, List[<MagicMock id='139684973878944'>]]) -> sqlglot.dataframe.sql.WindowSpec: + partitionBy( self, *cols: Union[<MagicMock id='140604723060480'>, List[<MagicMock id='140604723060480'>]]) -> sqlglot.dataframe.sql.WindowSpec: @@ -4418,7 +4414,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string

def - orderBy( self, *cols: Union[<MagicMock id='139684973929056'>, List[<MagicMock id='139684973929056'>]]) -> sqlglot.dataframe.sql.WindowSpec: + orderBy( self, *cols: Union[<MagicMock id='140604722718768'>, List[<MagicMock id='140604722718768'>]]) -> sqlglot.dataframe.sql.WindowSpec: diff --git a/docs/sqlglot/dialects/bigquery.html b/docs/sqlglot/dialects/bigquery.html index fdc370d..246130a 100644 --- a/docs/sqlglot/dialects/bigquery.html +++ b/docs/sqlglot/dialects/bigquery.html @@ -240,226 +240,229 @@ 137 "BEGIN": TokenType.COMMAND, 138 "BEGIN TRANSACTION": TokenType.BEGIN, 139 "CURRENT_DATETIME": TokenType.CURRENT_DATETIME, -140 "DECLARE": TokenType.COMMAND, -141 "FLOAT64": TokenType.DOUBLE, -142 "INT64": TokenType.BIGINT, -143 "BYTES": TokenType.BINARY, -144 "NOT DETERMINISTIC": TokenType.VOLATILE, -145 "UNKNOWN": TokenType.NULL, -146 } -147 KEYWORDS.pop("DIV") -148 -149 class Parser(parser.Parser): -150 PREFIXED_PIVOT_COLUMNS = True -151 -152 LOG_BASE_FIRST = False -153 LOG_DEFAULTS_TO_LN = True -154 -155 FUNCTIONS = { -156 **parser.Parser.FUNCTIONS, -157 "DATE_TRUNC": lambda args: exp.DateTrunc( -158 unit=exp.Literal.string(str(seq_get(args, 1))), -159 this=seq_get(args, 0), -160 ), -161 "DATE_ADD": parse_date_delta_with_interval(exp.DateAdd), -162 "DATETIME_ADD": parse_date_delta_with_interval(exp.DatetimeAdd), -163 "DIV": lambda args: exp.IntDiv(this=seq_get(args, 0), expression=seq_get(args, 1)), -164 "REGEXP_CONTAINS": exp.RegexpLike.from_arg_list, -165 "REGEXP_EXTRACT": lambda args: exp.RegexpExtract( -166 this=seq_get(args, 0), -167 expression=seq_get(args, 1), -168 position=seq_get(args, 2), -169 occurrence=seq_get(args, 3), -170 group=exp.Literal.number(1) -171 if re.compile(str(seq_get(args, 1))).groups == 1 -172 else None, -173 ), -174 "TIME_ADD": parse_date_delta_with_interval(exp.TimeAdd), -175 "TIMESTAMP_ADD": parse_date_delta_with_interval(exp.TimestampAdd), -176 "DATE_SUB": parse_date_delta_with_interval(exp.DateSub), -177 "DATETIME_SUB": parse_date_delta_with_interval(exp.DatetimeSub), -178 "TIME_SUB": parse_date_delta_with_interval(exp.TimeSub), -179 "TIMESTAMP_SUB": parse_date_delta_with_interval(exp.TimestampSub), -180 "PARSE_TIMESTAMP": lambda args: exp.StrToTime( -181 this=seq_get(args, 1), format=seq_get(args, 0) -182 ), -183 } -184 -185 FUNCTION_PARSERS = { -186 **parser.Parser.FUNCTION_PARSERS, -187 "ARRAY": lambda self: self.expression(exp.Array, expressions=[self._parse_statement()]), -188 } -189 FUNCTION_PARSERS.pop("TRIM") -190 -191 NO_PAREN_FUNCTIONS = { -192 **parser.Parser.NO_PAREN_FUNCTIONS, -193 TokenType.CURRENT_DATETIME: exp.CurrentDatetime, -194 } -195 -196 NESTED_TYPE_TOKENS = { -197 *parser.Parser.NESTED_TYPE_TOKENS, -198 TokenType.TABLE, -199 } -200 -201 ID_VAR_TOKENS = { -202 *parser.Parser.ID_VAR_TOKENS, -203 TokenType.VALUES, -204 } -205 -206 PROPERTY_PARSERS = { -207 **parser.Parser.PROPERTY_PARSERS, -208 "NOT DETERMINISTIC": lambda self: self.expression( -209 exp.StabilityProperty, this=exp.Literal.string("VOLATILE") -210 ), -211 "OPTIONS": lambda self: self._parse_with_property(), -212 } -213 -214 CONSTRAINT_PARSERS = { -215 **parser.Parser.CONSTRAINT_PARSERS, -216 "OPTIONS": lambda self: exp.Properties(expressions=self._parse_with_property()), -217 } -218 -219 def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]: -220 this = super()._parse_table_part(schema=schema) -221 -222 # https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#table_names -223 if isinstance(this, exp.Identifier): -224 table_name = this.name -225 while self._match(TokenType.DASH, advance=False) and self._next: -226 self._advance(2) -227 table_name += f"-{self._prev.text}" -228 -229 this = exp.Identifier(this=table_name, quoted=this.args.get("quoted")) -230 -231 return this -232 -233 def _parse_table_parts(self, schema: bool = False) -> exp.Table: -234 table = super()._parse_table_parts(schema=schema) -235 if isinstance(table.this, exp.Identifier) and "." in table.name: -236 catalog, db, this, *rest = ( -237 t.cast(t.Optional[exp.Expression], exp.to_identifier(x)) -238 for x in split_num_words(table.name, ".", 3) -239 ) -240 -241 if rest and this: -242 this = exp.Dot.build(t.cast(t.List[exp.Expression], [this, *rest])) -243 -244 table = exp.Table(this=this, db=db, catalog=catalog) -245 -246 return table -247 -248 class Generator(generator.Generator): -249 EXPLICIT_UNION = True -250 INTERVAL_ALLOWS_PLURAL_FORM = False -251 JOIN_HINTS = False -252 TABLE_HINTS = False -253 LIMIT_FETCH = "LIMIT" -254 RENAME_TABLE_WITH_DB = False -255 -256 TRANSFORMS = { -257 **generator.Generator.TRANSFORMS, -258 exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"), -259 exp.ArraySize: rename_func("ARRAY_LENGTH"), -260 exp.AtTimeZone: lambda self, e: self.func( -261 "TIMESTAMP", self.func("DATETIME", e.this, e.args.get("zone")) -262 ), -263 exp.Cast: transforms.preprocess([transforms.remove_precision_parameterized_types]), -264 exp.DateAdd: _date_add_sql("DATE", "ADD"), -265 exp.DateSub: _date_add_sql("DATE", "SUB"), -266 exp.DatetimeAdd: _date_add_sql("DATETIME", "ADD"), -267 exp.DatetimeSub: _date_add_sql("DATETIME", "SUB"), -268 exp.DateDiff: lambda self, e: f"DATE_DIFF({self.sql(e, 'this')}, {self.sql(e, 'expression')}, {self.sql(e.args.get('unit', 'DAY'))})", -269 exp.DateStrToDate: datestrtodate_sql, -270 exp.DateTrunc: lambda self, e: self.func("DATE_TRUNC", e.this, e.text("unit")), -271 exp.GroupConcat: rename_func("STRING_AGG"), -272 exp.ILike: no_ilike_sql, -273 exp.IntDiv: rename_func("DIV"), -274 exp.Max: max_or_greatest, -275 exp.Min: min_or_least, -276 exp.Select: transforms.preprocess( -277 [_unqualify_unnest, transforms.eliminate_distinct_on] -278 ), -279 exp.StrToTime: lambda self, e: f"PARSE_TIMESTAMP({self.format_time(e)}, {self.sql(e, 'this')})", -280 exp.TimeAdd: _date_add_sql("TIME", "ADD"), -281 exp.TimeSub: _date_add_sql("TIME", "SUB"), -282 exp.TimestampAdd: _date_add_sql("TIMESTAMP", "ADD"), -283 exp.TimestampSub: _date_add_sql("TIMESTAMP", "SUB"), -284 exp.TimeStrToTime: timestrtotime_sql, -285 exp.TryCast: lambda self, e: f"SAFE_CAST({self.sql(e, 'this')} AS {self.sql(e, 'to')})", -286 exp.TsOrDsToDate: ts_or_ds_to_date_sql("bigquery"), -287 exp.TsOrDsAdd: _date_add_sql("DATE", "ADD"), -288 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", -289 exp.VariancePop: rename_func("VAR_POP"), -290 exp.Values: _derived_table_values_to_unnest, -291 exp.ReturnsProperty: _returnsproperty_sql, -292 exp.Create: _create_sql, -293 exp.Trim: lambda self, e: self.func(f"TRIM", e.this, e.expression), -294 exp.StabilityProperty: lambda self, e: f"DETERMINISTIC" -295 if e.name == "IMMUTABLE" -296 else "NOT DETERMINISTIC", -297 exp.RegexpLike: rename_func("REGEXP_CONTAINS"), -298 } -299 -300 TYPE_MAPPING = { -301 **generator.Generator.TYPE_MAPPING, -302 exp.DataType.Type.BIGDECIMAL: "BIGNUMERIC", -303 exp.DataType.Type.BIGINT: "INT64", -304 exp.DataType.Type.BINARY: "BYTES", -305 exp.DataType.Type.BOOLEAN: "BOOL", -306 exp.DataType.Type.CHAR: "STRING", -307 exp.DataType.Type.DECIMAL: "NUMERIC", -308 exp.DataType.Type.DOUBLE: "FLOAT64", -309 exp.DataType.Type.FLOAT: "FLOAT64", -310 exp.DataType.Type.INT: "INT64", -311 exp.DataType.Type.NCHAR: "STRING", -312 exp.DataType.Type.NVARCHAR: "STRING", -313 exp.DataType.Type.SMALLINT: "INT64", -314 exp.DataType.Type.TEXT: "STRING", -315 exp.DataType.Type.TIMESTAMP: "DATETIME", -316 exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP", -317 exp.DataType.Type.TINYINT: "INT64", -318 exp.DataType.Type.VARBINARY: "BYTES", -319 exp.DataType.Type.VARCHAR: "STRING", -320 exp.DataType.Type.VARIANT: "ANY TYPE", -321 } -322 -323 PROPERTIES_LOCATION = { -324 **generator.Generator.PROPERTIES_LOCATION, -325 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, -326 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -327 } -328 -329 def array_sql(self, expression: exp.Array) -> str: -330 first_arg = seq_get(expression.expressions, 0) -331 if isinstance(first_arg, exp.Subqueryable): -332 return f"ARRAY{self.wrap(self.sql(first_arg))}" -333 -334 return inline_array_sql(self, expression) -335 -336 def transaction_sql(self, *_) -> str: -337 return "BEGIN TRANSACTION" +140 "BYTES": TokenType.BINARY, +141 "DECLARE": TokenType.COMMAND, +142 "FLOAT64": TokenType.DOUBLE, +143 "INT64": TokenType.BIGINT, +144 "RECORD": TokenType.STRUCT, +145 "NOT DETERMINISTIC": TokenType.VOLATILE, +146 "UNKNOWN": TokenType.NULL, +147 } +148 KEYWORDS.pop("DIV") +149 +150 class Parser(parser.Parser): +151 PREFIXED_PIVOT_COLUMNS = True +152 +153 LOG_BASE_FIRST = False +154 LOG_DEFAULTS_TO_LN = True +155 +156 FUNCTIONS = { +157 **parser.Parser.FUNCTIONS, +158 "DATE_TRUNC": lambda args: exp.DateTrunc( +159 unit=exp.Literal.string(str(seq_get(args, 1))), +160 this=seq_get(args, 0), +161 ), +162 "DATE_ADD": parse_date_delta_with_interval(exp.DateAdd), +163 "DATETIME_ADD": parse_date_delta_with_interval(exp.DatetimeAdd), +164 "DIV": lambda args: exp.IntDiv(this=seq_get(args, 0), expression=seq_get(args, 1)), +165 "REGEXP_CONTAINS": exp.RegexpLike.from_arg_list, +166 "REGEXP_EXTRACT": lambda args: exp.RegexpExtract( +167 this=seq_get(args, 0), +168 expression=seq_get(args, 1), +169 position=seq_get(args, 2), +170 occurrence=seq_get(args, 3), +171 group=exp.Literal.number(1) +172 if re.compile(str(seq_get(args, 1))).groups == 1 +173 else None, +174 ), +175 "TIME_ADD": parse_date_delta_with_interval(exp.TimeAdd), +176 "TIMESTAMP_ADD": parse_date_delta_with_interval(exp.TimestampAdd), +177 "DATE_SUB": parse_date_delta_with_interval(exp.DateSub), +178 "DATETIME_SUB": parse_date_delta_with_interval(exp.DatetimeSub), +179 "TIME_SUB": parse_date_delta_with_interval(exp.TimeSub), +180 "TIMESTAMP_SUB": parse_date_delta_with_interval(exp.TimestampSub), +181 "PARSE_TIMESTAMP": lambda args: exp.StrToTime( +182 this=seq_get(args, 1), format=seq_get(args, 0) +183 ), +184 } +185 +186 FUNCTION_PARSERS = { +187 **parser.Parser.FUNCTION_PARSERS, +188 "ARRAY": lambda self: self.expression(exp.Array, expressions=[self._parse_statement()]), +189 } +190 FUNCTION_PARSERS.pop("TRIM") +191 +192 NO_PAREN_FUNCTIONS = { +193 **parser.Parser.NO_PAREN_FUNCTIONS, +194 TokenType.CURRENT_DATETIME: exp.CurrentDatetime, +195 } +196 +197 NESTED_TYPE_TOKENS = { +198 *parser.Parser.NESTED_TYPE_TOKENS, +199 TokenType.TABLE, +200 } +201 +202 ID_VAR_TOKENS = { +203 *parser.Parser.ID_VAR_TOKENS, +204 TokenType.VALUES, +205 } +206 +207 PROPERTY_PARSERS = { +208 **parser.Parser.PROPERTY_PARSERS, +209 "NOT DETERMINISTIC": lambda self: self.expression( +210 exp.StabilityProperty, this=exp.Literal.string("VOLATILE") +211 ), +212 "OPTIONS": lambda self: self._parse_with_property(), +213 } +214 +215 CONSTRAINT_PARSERS = { +216 **parser.Parser.CONSTRAINT_PARSERS, +217 "OPTIONS": lambda self: exp.Properties(expressions=self._parse_with_property()), +218 } +219 +220 def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]: +221 this = super()._parse_table_part(schema=schema) +222 +223 # https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#table_names +224 if isinstance(this, exp.Identifier): +225 table_name = this.name +226 while self._match(TokenType.DASH, advance=False) and self._next: +227 self._advance(2) +228 table_name += f"-{self._prev.text}" +229 +230 this = exp.Identifier(this=table_name, quoted=this.args.get("quoted")) +231 +232 return this +233 +234 def _parse_table_parts(self, schema: bool = False) -> exp.Table: +235 table = super()._parse_table_parts(schema=schema) +236 if isinstance(table.this, exp.Identifier) and "." in table.name: +237 catalog, db, this, *rest = ( +238 t.cast(t.Optional[exp.Expression], exp.to_identifier(x)) +239 for x in split_num_words(table.name, ".", 3) +240 ) +241 +242 if rest and this: +243 this = exp.Dot.build(t.cast(t.List[exp.Expression], [this, *rest])) +244 +245 table = exp.Table(this=this, db=db, catalog=catalog) +246 +247 return table +248 +249 class Generator(generator.Generator): +250 EXPLICIT_UNION = True +251 INTERVAL_ALLOWS_PLURAL_FORM = False +252 JOIN_HINTS = False +253 TABLE_HINTS = False +254 LIMIT_FETCH = "LIMIT" +255 RENAME_TABLE_WITH_DB = False +256 +257 TRANSFORMS = { +258 **generator.Generator.TRANSFORMS, +259 exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"), +260 exp.ArraySize: rename_func("ARRAY_LENGTH"), +261 exp.AtTimeZone: lambda self, e: self.func( +262 "TIMESTAMP", self.func("DATETIME", e.this, e.args.get("zone")) +263 ), +264 exp.Cast: transforms.preprocess([transforms.remove_precision_parameterized_types]), +265 exp.DateAdd: _date_add_sql("DATE", "ADD"), +266 exp.DateSub: _date_add_sql("DATE", "SUB"), +267 exp.DatetimeAdd: _date_add_sql("DATETIME", "ADD"), +268 exp.DatetimeSub: _date_add_sql("DATETIME", "SUB"), +269 exp.DateDiff: lambda self, e: f"DATE_DIFF({self.sql(e, 'this')}, {self.sql(e, 'expression')}, {self.sql(e.args.get('unit', 'DAY'))})", +270 exp.DateStrToDate: datestrtodate_sql, +271 exp.DateTrunc: lambda self, e: self.func("DATE_TRUNC", e.this, e.text("unit")), +272 exp.GroupConcat: rename_func("STRING_AGG"), +273 exp.ILike: no_ilike_sql, +274 exp.IntDiv: rename_func("DIV"), +275 exp.Max: max_or_greatest, +276 exp.Min: min_or_least, +277 exp.Select: transforms.preprocess( +278 [_unqualify_unnest, transforms.eliminate_distinct_on] +279 ), +280 exp.StrToTime: lambda self, e: f"PARSE_TIMESTAMP({self.format_time(e)}, {self.sql(e, 'this')})", +281 exp.TimeAdd: _date_add_sql("TIME", "ADD"), +282 exp.TimeSub: _date_add_sql("TIME", "SUB"), +283 exp.TimestampAdd: _date_add_sql("TIMESTAMP", "ADD"), +284 exp.TimestampSub: _date_add_sql("TIMESTAMP", "SUB"), +285 exp.TimeStrToTime: timestrtotime_sql, +286 exp.TryCast: lambda self, e: f"SAFE_CAST({self.sql(e, 'this')} AS {self.sql(e, 'to')})", +287 exp.TsOrDsToDate: ts_or_ds_to_date_sql("bigquery"), +288 exp.TsOrDsAdd: _date_add_sql("DATE", "ADD"), +289 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", +290 exp.VariancePop: rename_func("VAR_POP"), +291 exp.Values: _derived_table_values_to_unnest, +292 exp.ReturnsProperty: _returnsproperty_sql, +293 exp.Create: _create_sql, +294 exp.Trim: lambda self, e: self.func(f"TRIM", e.this, e.expression), +295 exp.StabilityProperty: lambda self, e: f"DETERMINISTIC" +296 if e.name == "IMMUTABLE" +297 else "NOT DETERMINISTIC", +298 exp.RegexpLike: rename_func("REGEXP_CONTAINS"), +299 } +300 +301 TYPE_MAPPING = { +302 **generator.Generator.TYPE_MAPPING, +303 exp.DataType.Type.BIGDECIMAL: "BIGNUMERIC", +304 exp.DataType.Type.BIGINT: "INT64", +305 exp.DataType.Type.BINARY: "BYTES", +306 exp.DataType.Type.BOOLEAN: "BOOL", +307 exp.DataType.Type.CHAR: "STRING", +308 exp.DataType.Type.DECIMAL: "NUMERIC", +309 exp.DataType.Type.DOUBLE: "FLOAT64", +310 exp.DataType.Type.FLOAT: "FLOAT64", +311 exp.DataType.Type.INT: "INT64", +312 exp.DataType.Type.NCHAR: "STRING", +313 exp.DataType.Type.NVARCHAR: "STRING", +314 exp.DataType.Type.SMALLINT: "INT64", +315 exp.DataType.Type.TEXT: "STRING", +316 exp.DataType.Type.TIMESTAMP: "DATETIME", +317 exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP", +318 exp.DataType.Type.TINYINT: "INT64", +319 exp.DataType.Type.VARBINARY: "BYTES", +320 exp.DataType.Type.VARCHAR: "STRING", +321 exp.DataType.Type.VARIANT: "ANY TYPE", +322 } +323 +324 PROPERTIES_LOCATION = { +325 **generator.Generator.PROPERTIES_LOCATION, +326 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, +327 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +328 } +329 +330 RESERVED_KEYWORDS = {*generator.Generator.RESERVED_KEYWORDS, "hash"} +331 +332 def array_sql(self, expression: exp.Array) -> str: +333 first_arg = seq_get(expression.expressions, 0) +334 if isinstance(first_arg, exp.Subqueryable): +335 return f"ARRAY{self.wrap(self.sql(first_arg))}" +336 +337 return inline_array_sql(self, expression) 338 -339 def commit_sql(self, *_) -> str: -340 return "COMMIT TRANSACTION" +339 def transaction_sql(self, *_) -> str: +340 return "BEGIN TRANSACTION" 341 -342 def rollback_sql(self, *_) -> str: -343 return "ROLLBACK TRANSACTION" +342 def commit_sql(self, *_) -> str: +343 return "COMMIT TRANSACTION" 344 -345 def in_unnest_op(self, expression: exp.Unnest) -> str: -346 return self.sql(expression) +345 def rollback_sql(self, *_) -> str: +346 return "ROLLBACK TRANSACTION" 347 -348 def except_op(self, expression: exp.Except) -> str: -349 if not expression.args.get("distinct", False): -350 self.unsupported("EXCEPT without DISTINCT is not supported in BigQuery") -351 return f"EXCEPT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}" -352 -353 def intersect_op(self, expression: exp.Intersect) -> str: -354 if not expression.args.get("distinct", False): -355 self.unsupported("INTERSECT without DISTINCT is not supported in BigQuery") -356 return f"INTERSECT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}" -357 -358 def with_properties(self, properties: exp.Properties) -> str: -359 return self.properties(properties, prefix=self.seg("OPTIONS")) +348 def in_unnest_op(self, expression: exp.Unnest) -> str: +349 return self.sql(expression) +350 +351 def except_op(self, expression: exp.Except) -> str: +352 if not expression.args.get("distinct", False): +353 self.unsupported("EXCEPT without DISTINCT is not supported in BigQuery") +354 return f"EXCEPT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}" +355 +356 def intersect_op(self, expression: exp.Intersect) -> str: +357 if not expression.args.get("distinct", False): +358 self.unsupported("INTERSECT without DISTINCT is not supported in BigQuery") +359 return f"INTERSECT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}" +360 +361 def with_properties(self, properties: exp.Properties) -> str: +362 return self.properties(properties, prefix=self.seg("OPTIONS"))
@@ -510,226 +513,229 @@ 138 "BEGIN": TokenType.COMMAND, 139 "BEGIN TRANSACTION": TokenType.BEGIN, 140 "CURRENT_DATETIME": TokenType.CURRENT_DATETIME, -141 "DECLARE": TokenType.COMMAND, -142 "FLOAT64": TokenType.DOUBLE, -143 "INT64": TokenType.BIGINT, -144 "BYTES": TokenType.BINARY, -145 "NOT DETERMINISTIC": TokenType.VOLATILE, -146 "UNKNOWN": TokenType.NULL, -147 } -148 KEYWORDS.pop("DIV") -149 -150 class Parser(parser.Parser): -151 PREFIXED_PIVOT_COLUMNS = True -152 -153 LOG_BASE_FIRST = False -154 LOG_DEFAULTS_TO_LN = True -155 -156 FUNCTIONS = { -157 **parser.Parser.FUNCTIONS, -158 "DATE_TRUNC": lambda args: exp.DateTrunc( -159 unit=exp.Literal.string(str(seq_get(args, 1))), -160 this=seq_get(args, 0), -161 ), -162 "DATE_ADD": parse_date_delta_with_interval(exp.DateAdd), -163 "DATETIME_ADD": parse_date_delta_with_interval(exp.DatetimeAdd), -164 "DIV": lambda args: exp.IntDiv(this=seq_get(args, 0), expression=seq_get(args, 1)), -165 "REGEXP_CONTAINS": exp.RegexpLike.from_arg_list, -166 "REGEXP_EXTRACT": lambda args: exp.RegexpExtract( -167 this=seq_get(args, 0), -168 expression=seq_get(args, 1), -169 position=seq_get(args, 2), -170 occurrence=seq_get(args, 3), -171 group=exp.Literal.number(1) -172 if re.compile(str(seq_get(args, 1))).groups == 1 -173 else None, -174 ), -175 "TIME_ADD": parse_date_delta_with_interval(exp.TimeAdd), -176 "TIMESTAMP_ADD": parse_date_delta_with_interval(exp.TimestampAdd), -177 "DATE_SUB": parse_date_delta_with_interval(exp.DateSub), -178 "DATETIME_SUB": parse_date_delta_with_interval(exp.DatetimeSub), -179 "TIME_SUB": parse_date_delta_with_interval(exp.TimeSub), -180 "TIMESTAMP_SUB": parse_date_delta_with_interval(exp.TimestampSub), -181 "PARSE_TIMESTAMP": lambda args: exp.StrToTime( -182 this=seq_get(args, 1), format=seq_get(args, 0) -183 ), -184 } -185 -186 FUNCTION_PARSERS = { -187 **parser.Parser.FUNCTION_PARSERS, -188 "ARRAY": lambda self: self.expression(exp.Array, expressions=[self._parse_statement()]), -189 } -190 FUNCTION_PARSERS.pop("TRIM") -191 -192 NO_PAREN_FUNCTIONS = { -193 **parser.Parser.NO_PAREN_FUNCTIONS, -194 TokenType.CURRENT_DATETIME: exp.CurrentDatetime, -195 } -196 -197 NESTED_TYPE_TOKENS = { -198 *parser.Parser.NESTED_TYPE_TOKENS, -199 TokenType.TABLE, -200 } -201 -202 ID_VAR_TOKENS = { -203 *parser.Parser.ID_VAR_TOKENS, -204 TokenType.VALUES, -205 } -206 -207 PROPERTY_PARSERS = { -208 **parser.Parser.PROPERTY_PARSERS, -209 "NOT DETERMINISTIC": lambda self: self.expression( -210 exp.StabilityProperty, this=exp.Literal.string("VOLATILE") -211 ), -212 "OPTIONS": lambda self: self._parse_with_property(), -213 } -214 -215 CONSTRAINT_PARSERS = { -216 **parser.Parser.CONSTRAINT_PARSERS, -217 "OPTIONS": lambda self: exp.Properties(expressions=self._parse_with_property()), -218 } -219 -220 def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]: -221 this = super()._parse_table_part(schema=schema) -222 -223 # https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#table_names -224 if isinstance(this, exp.Identifier): -225 table_name = this.name -226 while self._match(TokenType.DASH, advance=False) and self._next: -227 self._advance(2) -228 table_name += f"-{self._prev.text}" -229 -230 this = exp.Identifier(this=table_name, quoted=this.args.get("quoted")) -231 -232 return this -233 -234 def _parse_table_parts(self, schema: bool = False) -> exp.Table: -235 table = super()._parse_table_parts(schema=schema) -236 if isinstance(table.this, exp.Identifier) and "." in table.name: -237 catalog, db, this, *rest = ( -238 t.cast(t.Optional[exp.Expression], exp.to_identifier(x)) -239 for x in split_num_words(table.name, ".", 3) -240 ) -241 -242 if rest and this: -243 this = exp.Dot.build(t.cast(t.List[exp.Expression], [this, *rest])) -244 -245 table = exp.Table(this=this, db=db, catalog=catalog) -246 -247 return table -248 -249 class Generator(generator.Generator): -250 EXPLICIT_UNION = True -251 INTERVAL_ALLOWS_PLURAL_FORM = False -252 JOIN_HINTS = False -253 TABLE_HINTS = False -254 LIMIT_FETCH = "LIMIT" -255 RENAME_TABLE_WITH_DB = False -256 -257 TRANSFORMS = { -258 **generator.Generator.TRANSFORMS, -259 exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"), -260 exp.ArraySize: rename_func("ARRAY_LENGTH"), -261 exp.AtTimeZone: lambda self, e: self.func( -262 "TIMESTAMP", self.func("DATETIME", e.this, e.args.get("zone")) -263 ), -264 exp.Cast: transforms.preprocess([transforms.remove_precision_parameterized_types]), -265 exp.DateAdd: _date_add_sql("DATE", "ADD"), -266 exp.DateSub: _date_add_sql("DATE", "SUB"), -267 exp.DatetimeAdd: _date_add_sql("DATETIME", "ADD"), -268 exp.DatetimeSub: _date_add_sql("DATETIME", "SUB"), -269 exp.DateDiff: lambda self, e: f"DATE_DIFF({self.sql(e, 'this')}, {self.sql(e, 'expression')}, {self.sql(e.args.get('unit', 'DAY'))})", -270 exp.DateStrToDate: datestrtodate_sql, -271 exp.DateTrunc: lambda self, e: self.func("DATE_TRUNC", e.this, e.text("unit")), -272 exp.GroupConcat: rename_func("STRING_AGG"), -273 exp.ILike: no_ilike_sql, -274 exp.IntDiv: rename_func("DIV"), -275 exp.Max: max_or_greatest, -276 exp.Min: min_or_least, -277 exp.Select: transforms.preprocess( -278 [_unqualify_unnest, transforms.eliminate_distinct_on] -279 ), -280 exp.StrToTime: lambda self, e: f"PARSE_TIMESTAMP({self.format_time(e)}, {self.sql(e, 'this')})", -281 exp.TimeAdd: _date_add_sql("TIME", "ADD"), -282 exp.TimeSub: _date_add_sql("TIME", "SUB"), -283 exp.TimestampAdd: _date_add_sql("TIMESTAMP", "ADD"), -284 exp.TimestampSub: _date_add_sql("TIMESTAMP", "SUB"), -285 exp.TimeStrToTime: timestrtotime_sql, -286 exp.TryCast: lambda self, e: f"SAFE_CAST({self.sql(e, 'this')} AS {self.sql(e, 'to')})", -287 exp.TsOrDsToDate: ts_or_ds_to_date_sql("bigquery"), -288 exp.TsOrDsAdd: _date_add_sql("DATE", "ADD"), -289 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", -290 exp.VariancePop: rename_func("VAR_POP"), -291 exp.Values: _derived_table_values_to_unnest, -292 exp.ReturnsProperty: _returnsproperty_sql, -293 exp.Create: _create_sql, -294 exp.Trim: lambda self, e: self.func(f"TRIM", e.this, e.expression), -295 exp.StabilityProperty: lambda self, e: f"DETERMINISTIC" -296 if e.name == "IMMUTABLE" -297 else "NOT DETERMINISTIC", -298 exp.RegexpLike: rename_func("REGEXP_CONTAINS"), -299 } -300 -301 TYPE_MAPPING = { -302 **generator.Generator.TYPE_MAPPING, -303 exp.DataType.Type.BIGDECIMAL: "BIGNUMERIC", -304 exp.DataType.Type.BIGINT: "INT64", -305 exp.DataType.Type.BINARY: "BYTES", -306 exp.DataType.Type.BOOLEAN: "BOOL", -307 exp.DataType.Type.CHAR: "STRING", -308 exp.DataType.Type.DECIMAL: "NUMERIC", -309 exp.DataType.Type.DOUBLE: "FLOAT64", -310 exp.DataType.Type.FLOAT: "FLOAT64", -311 exp.DataType.Type.INT: "INT64", -312 exp.DataType.Type.NCHAR: "STRING", -313 exp.DataType.Type.NVARCHAR: "STRING", -314 exp.DataType.Type.SMALLINT: "INT64", -315 exp.DataType.Type.TEXT: "STRING", -316 exp.DataType.Type.TIMESTAMP: "DATETIME", -317 exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP", -318 exp.DataType.Type.TINYINT: "INT64", -319 exp.DataType.Type.VARBINARY: "BYTES", -320 exp.DataType.Type.VARCHAR: "STRING", -321 exp.DataType.Type.VARIANT: "ANY TYPE", -322 } -323 -324 PROPERTIES_LOCATION = { -325 **generator.Generator.PROPERTIES_LOCATION, -326 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, -327 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -328 } -329 -330 def array_sql(self, expression: exp.Array) -> str: -331 first_arg = seq_get(expression.expressions, 0) -332 if isinstance(first_arg, exp.Subqueryable): -333 return f"ARRAY{self.wrap(self.sql(first_arg))}" -334 -335 return inline_array_sql(self, expression) -336 -337 def transaction_sql(self, *_) -> str: -338 return "BEGIN TRANSACTION" +141 "BYTES": TokenType.BINARY, +142 "DECLARE": TokenType.COMMAND, +143 "FLOAT64": TokenType.DOUBLE, +144 "INT64": TokenType.BIGINT, +145 "RECORD": TokenType.STRUCT, +146 "NOT DETERMINISTIC": TokenType.VOLATILE, +147 "UNKNOWN": TokenType.NULL, +148 } +149 KEYWORDS.pop("DIV") +150 +151 class Parser(parser.Parser): +152 PREFIXED_PIVOT_COLUMNS = True +153 +154 LOG_BASE_FIRST = False +155 LOG_DEFAULTS_TO_LN = True +156 +157 FUNCTIONS = { +158 **parser.Parser.FUNCTIONS, +159 "DATE_TRUNC": lambda args: exp.DateTrunc( +160 unit=exp.Literal.string(str(seq_get(args, 1))), +161 this=seq_get(args, 0), +162 ), +163 "DATE_ADD": parse_date_delta_with_interval(exp.DateAdd), +164 "DATETIME_ADD": parse_date_delta_with_interval(exp.DatetimeAdd), +165 "DIV": lambda args: exp.IntDiv(this=seq_get(args, 0), expression=seq_get(args, 1)), +166 "REGEXP_CONTAINS": exp.RegexpLike.from_arg_list, +167 "REGEXP_EXTRACT": lambda args: exp.RegexpExtract( +168 this=seq_get(args, 0), +169 expression=seq_get(args, 1), +170 position=seq_get(args, 2), +171 occurrence=seq_get(args, 3), +172 group=exp.Literal.number(1) +173 if re.compile(str(seq_get(args, 1))).groups == 1 +174 else None, +175 ), +176 "TIME_ADD": parse_date_delta_with_interval(exp.TimeAdd), +177 "TIMESTAMP_ADD": parse_date_delta_with_interval(exp.TimestampAdd), +178 "DATE_SUB": parse_date_delta_with_interval(exp.DateSub), +179 "DATETIME_SUB": parse_date_delta_with_interval(exp.DatetimeSub), +180 "TIME_SUB": parse_date_delta_with_interval(exp.TimeSub), +181 "TIMESTAMP_SUB": parse_date_delta_with_interval(exp.TimestampSub), +182 "PARSE_TIMESTAMP": lambda args: exp.StrToTime( +183 this=seq_get(args, 1), format=seq_get(args, 0) +184 ), +185 } +186 +187 FUNCTION_PARSERS = { +188 **parser.Parser.FUNCTION_PARSERS, +189 "ARRAY": lambda self: self.expression(exp.Array, expressions=[self._parse_statement()]), +190 } +191 FUNCTION_PARSERS.pop("TRIM") +192 +193 NO_PAREN_FUNCTIONS = { +194 **parser.Parser.NO_PAREN_FUNCTIONS, +195 TokenType.CURRENT_DATETIME: exp.CurrentDatetime, +196 } +197 +198 NESTED_TYPE_TOKENS = { +199 *parser.Parser.NESTED_TYPE_TOKENS, +200 TokenType.TABLE, +201 } +202 +203 ID_VAR_TOKENS = { +204 *parser.Parser.ID_VAR_TOKENS, +205 TokenType.VALUES, +206 } +207 +208 PROPERTY_PARSERS = { +209 **parser.Parser.PROPERTY_PARSERS, +210 "NOT DETERMINISTIC": lambda self: self.expression( +211 exp.StabilityProperty, this=exp.Literal.string("VOLATILE") +212 ), +213 "OPTIONS": lambda self: self._parse_with_property(), +214 } +215 +216 CONSTRAINT_PARSERS = { +217 **parser.Parser.CONSTRAINT_PARSERS, +218 "OPTIONS": lambda self: exp.Properties(expressions=self._parse_with_property()), +219 } +220 +221 def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]: +222 this = super()._parse_table_part(schema=schema) +223 +224 # https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#table_names +225 if isinstance(this, exp.Identifier): +226 table_name = this.name +227 while self._match(TokenType.DASH, advance=False) and self._next: +228 self._advance(2) +229 table_name += f"-{self._prev.text}" +230 +231 this = exp.Identifier(this=table_name, quoted=this.args.get("quoted")) +232 +233 return this +234 +235 def _parse_table_parts(self, schema: bool = False) -> exp.Table: +236 table = super()._parse_table_parts(schema=schema) +237 if isinstance(table.this, exp.Identifier) and "." in table.name: +238 catalog, db, this, *rest = ( +239 t.cast(t.Optional[exp.Expression], exp.to_identifier(x)) +240 for x in split_num_words(table.name, ".", 3) +241 ) +242 +243 if rest and this: +244 this = exp.Dot.build(t.cast(t.List[exp.Expression], [this, *rest])) +245 +246 table = exp.Table(this=this, db=db, catalog=catalog) +247 +248 return table +249 +250 class Generator(generator.Generator): +251 EXPLICIT_UNION = True +252 INTERVAL_ALLOWS_PLURAL_FORM = False +253 JOIN_HINTS = False +254 TABLE_HINTS = False +255 LIMIT_FETCH = "LIMIT" +256 RENAME_TABLE_WITH_DB = False +257 +258 TRANSFORMS = { +259 **generator.Generator.TRANSFORMS, +260 exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"), +261 exp.ArraySize: rename_func("ARRAY_LENGTH"), +262 exp.AtTimeZone: lambda self, e: self.func( +263 "TIMESTAMP", self.func("DATETIME", e.this, e.args.get("zone")) +264 ), +265 exp.Cast: transforms.preprocess([transforms.remove_precision_parameterized_types]), +266 exp.DateAdd: _date_add_sql("DATE", "ADD"), +267 exp.DateSub: _date_add_sql("DATE", "SUB"), +268 exp.DatetimeAdd: _date_add_sql("DATETIME", "ADD"), +269 exp.DatetimeSub: _date_add_sql("DATETIME", "SUB"), +270 exp.DateDiff: lambda self, e: f"DATE_DIFF({self.sql(e, 'this')}, {self.sql(e, 'expression')}, {self.sql(e.args.get('unit', 'DAY'))})", +271 exp.DateStrToDate: datestrtodate_sql, +272 exp.DateTrunc: lambda self, e: self.func("DATE_TRUNC", e.this, e.text("unit")), +273 exp.GroupConcat: rename_func("STRING_AGG"), +274 exp.ILike: no_ilike_sql, +275 exp.IntDiv: rename_func("DIV"), +276 exp.Max: max_or_greatest, +277 exp.Min: min_or_least, +278 exp.Select: transforms.preprocess( +279 [_unqualify_unnest, transforms.eliminate_distinct_on] +280 ), +281 exp.StrToTime: lambda self, e: f"PARSE_TIMESTAMP({self.format_time(e)}, {self.sql(e, 'this')})", +282 exp.TimeAdd: _date_add_sql("TIME", "ADD"), +283 exp.TimeSub: _date_add_sql("TIME", "SUB"), +284 exp.TimestampAdd: _date_add_sql("TIMESTAMP", "ADD"), +285 exp.TimestampSub: _date_add_sql("TIMESTAMP", "SUB"), +286 exp.TimeStrToTime: timestrtotime_sql, +287 exp.TryCast: lambda self, e: f"SAFE_CAST({self.sql(e, 'this')} AS {self.sql(e, 'to')})", +288 exp.TsOrDsToDate: ts_or_ds_to_date_sql("bigquery"), +289 exp.TsOrDsAdd: _date_add_sql("DATE", "ADD"), +290 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", +291 exp.VariancePop: rename_func("VAR_POP"), +292 exp.Values: _derived_table_values_to_unnest, +293 exp.ReturnsProperty: _returnsproperty_sql, +294 exp.Create: _create_sql, +295 exp.Trim: lambda self, e: self.func(f"TRIM", e.this, e.expression), +296 exp.StabilityProperty: lambda self, e: f"DETERMINISTIC" +297 if e.name == "IMMUTABLE" +298 else "NOT DETERMINISTIC", +299 exp.RegexpLike: rename_func("REGEXP_CONTAINS"), +300 } +301 +302 TYPE_MAPPING = { +303 **generator.Generator.TYPE_MAPPING, +304 exp.DataType.Type.BIGDECIMAL: "BIGNUMERIC", +305 exp.DataType.Type.BIGINT: "INT64", +306 exp.DataType.Type.BINARY: "BYTES", +307 exp.DataType.Type.BOOLEAN: "BOOL", +308 exp.DataType.Type.CHAR: "STRING", +309 exp.DataType.Type.DECIMAL: "NUMERIC", +310 exp.DataType.Type.DOUBLE: "FLOAT64", +311 exp.DataType.Type.FLOAT: "FLOAT64", +312 exp.DataType.Type.INT: "INT64", +313 exp.DataType.Type.NCHAR: "STRING", +314 exp.DataType.Type.NVARCHAR: "STRING", +315 exp.DataType.Type.SMALLINT: "INT64", +316 exp.DataType.Type.TEXT: "STRING", +317 exp.DataType.Type.TIMESTAMP: "DATETIME", +318 exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP", +319 exp.DataType.Type.TINYINT: "INT64", +320 exp.DataType.Type.VARBINARY: "BYTES", +321 exp.DataType.Type.VARCHAR: "STRING", +322 exp.DataType.Type.VARIANT: "ANY TYPE", +323 } +324 +325 PROPERTIES_LOCATION = { +326 **generator.Generator.PROPERTIES_LOCATION, +327 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, +328 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +329 } +330 +331 RESERVED_KEYWORDS = {*generator.Generator.RESERVED_KEYWORDS, "hash"} +332 +333 def array_sql(self, expression: exp.Array) -> str: +334 first_arg = seq_get(expression.expressions, 0) +335 if isinstance(first_arg, exp.Subqueryable): +336 return f"ARRAY{self.wrap(self.sql(first_arg))}" +337 +338 return inline_array_sql(self, expression) 339 -340 def commit_sql(self, *_) -> str: -341 return "COMMIT TRANSACTION" +340 def transaction_sql(self, *_) -> str: +341 return "BEGIN TRANSACTION" 342 -343 def rollback_sql(self, *_) -> str: -344 return "ROLLBACK TRANSACTION" +343 def commit_sql(self, *_) -> str: +344 return "COMMIT TRANSACTION" 345 -346 def in_unnest_op(self, expression: exp.Unnest) -> str: -347 return self.sql(expression) +346 def rollback_sql(self, *_) -> str: +347 return "ROLLBACK TRANSACTION" 348 -349 def except_op(self, expression: exp.Except) -> str: -350 if not expression.args.get("distinct", False): -351 self.unsupported("EXCEPT without DISTINCT is not supported in BigQuery") -352 return f"EXCEPT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}" -353 -354 def intersect_op(self, expression: exp.Intersect) -> str: -355 if not expression.args.get("distinct", False): -356 self.unsupported("INTERSECT without DISTINCT is not supported in BigQuery") -357 return f"INTERSECT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}" -358 -359 def with_properties(self, properties: exp.Properties) -> str: -360 return self.properties(properties, prefix=self.seg("OPTIONS")) +349 def in_unnest_op(self, expression: exp.Unnest) -> str: +350 return self.sql(expression) +351 +352 def except_op(self, expression: exp.Except) -> str: +353 if not expression.args.get("distinct", False): +354 self.unsupported("EXCEPT without DISTINCT is not supported in BigQuery") +355 return f"EXCEPT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}" +356 +357 def intersect_op(self, expression: exp.Intersect) -> str: +358 if not expression.args.get("distinct", False): +359 self.unsupported("INTERSECT without DISTINCT is not supported in BigQuery") +360 return f"INTERSECT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}" +361 +362 def with_properties(self, properties: exp.Properties) -> str: +363 return self.properties(properties, prefix=self.seg("OPTIONS"))
@@ -786,14 +792,15 @@ 138 "BEGIN": TokenType.COMMAND, 139 "BEGIN TRANSACTION": TokenType.BEGIN, 140 "CURRENT_DATETIME": TokenType.CURRENT_DATETIME, -141 "DECLARE": TokenType.COMMAND, -142 "FLOAT64": TokenType.DOUBLE, -143 "INT64": TokenType.BIGINT, -144 "BYTES": TokenType.BINARY, -145 "NOT DETERMINISTIC": TokenType.VOLATILE, -146 "UNKNOWN": TokenType.NULL, -147 } -148 KEYWORDS.pop("DIV") +141 "BYTES": TokenType.BINARY, +142 "DECLARE": TokenType.COMMAND, +143 "FLOAT64": TokenType.DOUBLE, +144 "INT64": TokenType.BIGINT, +145 "RECORD": TokenType.STRUCT, +146 "NOT DETERMINISTIC": TokenType.VOLATILE, +147 "UNKNOWN": TokenType.NULL, +148 } +149 KEYWORDS.pop("DIV")
@@ -821,104 +828,104 @@
-
150    class Parser(parser.Parser):
-151        PREFIXED_PIVOT_COLUMNS = True
-152
-153        LOG_BASE_FIRST = False
-154        LOG_DEFAULTS_TO_LN = True
-155
-156        FUNCTIONS = {
-157            **parser.Parser.FUNCTIONS,
-158            "DATE_TRUNC": lambda args: exp.DateTrunc(
-159                unit=exp.Literal.string(str(seq_get(args, 1))),
-160                this=seq_get(args, 0),
-161            ),
-162            "DATE_ADD": parse_date_delta_with_interval(exp.DateAdd),
-163            "DATETIME_ADD": parse_date_delta_with_interval(exp.DatetimeAdd),
-164            "DIV": lambda args: exp.IntDiv(this=seq_get(args, 0), expression=seq_get(args, 1)),
-165            "REGEXP_CONTAINS": exp.RegexpLike.from_arg_list,
-166            "REGEXP_EXTRACT": lambda args: exp.RegexpExtract(
-167                this=seq_get(args, 0),
-168                expression=seq_get(args, 1),
-169                position=seq_get(args, 2),
-170                occurrence=seq_get(args, 3),
-171                group=exp.Literal.number(1)
-172                if re.compile(str(seq_get(args, 1))).groups == 1
-173                else None,
-174            ),
-175            "TIME_ADD": parse_date_delta_with_interval(exp.TimeAdd),
-176            "TIMESTAMP_ADD": parse_date_delta_with_interval(exp.TimestampAdd),
-177            "DATE_SUB": parse_date_delta_with_interval(exp.DateSub),
-178            "DATETIME_SUB": parse_date_delta_with_interval(exp.DatetimeSub),
-179            "TIME_SUB": parse_date_delta_with_interval(exp.TimeSub),
-180            "TIMESTAMP_SUB": parse_date_delta_with_interval(exp.TimestampSub),
-181            "PARSE_TIMESTAMP": lambda args: exp.StrToTime(
-182                this=seq_get(args, 1), format=seq_get(args, 0)
-183            ),
-184        }
-185
-186        FUNCTION_PARSERS = {
-187            **parser.Parser.FUNCTION_PARSERS,
-188            "ARRAY": lambda self: self.expression(exp.Array, expressions=[self._parse_statement()]),
-189        }
-190        FUNCTION_PARSERS.pop("TRIM")
-191
-192        NO_PAREN_FUNCTIONS = {
-193            **parser.Parser.NO_PAREN_FUNCTIONS,
-194            TokenType.CURRENT_DATETIME: exp.CurrentDatetime,
-195        }
-196
-197        NESTED_TYPE_TOKENS = {
-198            *parser.Parser.NESTED_TYPE_TOKENS,
-199            TokenType.TABLE,
-200        }
-201
-202        ID_VAR_TOKENS = {
-203            *parser.Parser.ID_VAR_TOKENS,
-204            TokenType.VALUES,
-205        }
-206
-207        PROPERTY_PARSERS = {
-208            **parser.Parser.PROPERTY_PARSERS,
-209            "NOT DETERMINISTIC": lambda self: self.expression(
-210                exp.StabilityProperty, this=exp.Literal.string("VOLATILE")
-211            ),
-212            "OPTIONS": lambda self: self._parse_with_property(),
-213        }
-214
-215        CONSTRAINT_PARSERS = {
-216            **parser.Parser.CONSTRAINT_PARSERS,
-217            "OPTIONS": lambda self: exp.Properties(expressions=self._parse_with_property()),
-218        }
-219
-220        def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]:
-221            this = super()._parse_table_part(schema=schema)
-222
-223            # https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#table_names
-224            if isinstance(this, exp.Identifier):
-225                table_name = this.name
-226                while self._match(TokenType.DASH, advance=False) and self._next:
-227                    self._advance(2)
-228                    table_name += f"-{self._prev.text}"
-229
-230                this = exp.Identifier(this=table_name, quoted=this.args.get("quoted"))
-231
-232            return this
-233
-234        def _parse_table_parts(self, schema: bool = False) -> exp.Table:
-235            table = super()._parse_table_parts(schema=schema)
-236            if isinstance(table.this, exp.Identifier) and "." in table.name:
-237                catalog, db, this, *rest = (
-238                    t.cast(t.Optional[exp.Expression], exp.to_identifier(x))
-239                    for x in split_num_words(table.name, ".", 3)
-240                )
-241
-242                if rest and this:
-243                    this = exp.Dot.build(t.cast(t.List[exp.Expression], [this, *rest]))
-244
-245                table = exp.Table(this=this, db=db, catalog=catalog)
-246
-247            return table
+            
151    class Parser(parser.Parser):
+152        PREFIXED_PIVOT_COLUMNS = True
+153
+154        LOG_BASE_FIRST = False
+155        LOG_DEFAULTS_TO_LN = True
+156
+157        FUNCTIONS = {
+158            **parser.Parser.FUNCTIONS,
+159            "DATE_TRUNC": lambda args: exp.DateTrunc(
+160                unit=exp.Literal.string(str(seq_get(args, 1))),
+161                this=seq_get(args, 0),
+162            ),
+163            "DATE_ADD": parse_date_delta_with_interval(exp.DateAdd),
+164            "DATETIME_ADD": parse_date_delta_with_interval(exp.DatetimeAdd),
+165            "DIV": lambda args: exp.IntDiv(this=seq_get(args, 0), expression=seq_get(args, 1)),
+166            "REGEXP_CONTAINS": exp.RegexpLike.from_arg_list,
+167            "REGEXP_EXTRACT": lambda args: exp.RegexpExtract(
+168                this=seq_get(args, 0),
+169                expression=seq_get(args, 1),
+170                position=seq_get(args, 2),
+171                occurrence=seq_get(args, 3),
+172                group=exp.Literal.number(1)
+173                if re.compile(str(seq_get(args, 1))).groups == 1
+174                else None,
+175            ),
+176            "TIME_ADD": parse_date_delta_with_interval(exp.TimeAdd),
+177            "TIMESTAMP_ADD": parse_date_delta_with_interval(exp.TimestampAdd),
+178            "DATE_SUB": parse_date_delta_with_interval(exp.DateSub),
+179            "DATETIME_SUB": parse_date_delta_with_interval(exp.DatetimeSub),
+180            "TIME_SUB": parse_date_delta_with_interval(exp.TimeSub),
+181            "TIMESTAMP_SUB": parse_date_delta_with_interval(exp.TimestampSub),
+182            "PARSE_TIMESTAMP": lambda args: exp.StrToTime(
+183                this=seq_get(args, 1), format=seq_get(args, 0)
+184            ),
+185        }
+186
+187        FUNCTION_PARSERS = {
+188            **parser.Parser.FUNCTION_PARSERS,
+189            "ARRAY": lambda self: self.expression(exp.Array, expressions=[self._parse_statement()]),
+190        }
+191        FUNCTION_PARSERS.pop("TRIM")
+192
+193        NO_PAREN_FUNCTIONS = {
+194            **parser.Parser.NO_PAREN_FUNCTIONS,
+195            TokenType.CURRENT_DATETIME: exp.CurrentDatetime,
+196        }
+197
+198        NESTED_TYPE_TOKENS = {
+199            *parser.Parser.NESTED_TYPE_TOKENS,
+200            TokenType.TABLE,
+201        }
+202
+203        ID_VAR_TOKENS = {
+204            *parser.Parser.ID_VAR_TOKENS,
+205            TokenType.VALUES,
+206        }
+207
+208        PROPERTY_PARSERS = {
+209            **parser.Parser.PROPERTY_PARSERS,
+210            "NOT DETERMINISTIC": lambda self: self.expression(
+211                exp.StabilityProperty, this=exp.Literal.string("VOLATILE")
+212            ),
+213            "OPTIONS": lambda self: self._parse_with_property(),
+214        }
+215
+216        CONSTRAINT_PARSERS = {
+217            **parser.Parser.CONSTRAINT_PARSERS,
+218            "OPTIONS": lambda self: exp.Properties(expressions=self._parse_with_property()),
+219        }
+220
+221        def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]:
+222            this = super()._parse_table_part(schema=schema)
+223
+224            # https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical#table_names
+225            if isinstance(this, exp.Identifier):
+226                table_name = this.name
+227                while self._match(TokenType.DASH, advance=False) and self._next:
+228                    self._advance(2)
+229                    table_name += f"-{self._prev.text}"
+230
+231                this = exp.Identifier(this=table_name, quoted=this.args.get("quoted"))
+232
+233            return this
+234
+235        def _parse_table_parts(self, schema: bool = False) -> exp.Table:
+236            table = super()._parse_table_parts(schema=schema)
+237            if isinstance(table.this, exp.Identifier) and "." in table.name:
+238                catalog, db, this, *rest = (
+239                    t.cast(t.Optional[exp.Expression], exp.to_identifier(x))
+240                    for x in split_num_words(table.name, ".", 3)
+241                )
+242
+243                if rest and this:
+244                    this = exp.Dot.build(t.cast(t.List[exp.Expression], [this, *rest]))
+245
+246                table = exp.Table(this=this, db=db, catalog=catalog)
+247
+248            return table
 
@@ -929,7 +936,7 @@ a parsed syntax tree.

  • error_level: the desired error level. -Default: ErrorLevel.RAISE
  • +Default: ErrorLevel.IMMEDIATE
  • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
  • @@ -975,118 +982,120 @@ Default: "nulls_are_small"
-
249    class Generator(generator.Generator):
-250        EXPLICIT_UNION = True
-251        INTERVAL_ALLOWS_PLURAL_FORM = False
-252        JOIN_HINTS = False
-253        TABLE_HINTS = False
-254        LIMIT_FETCH = "LIMIT"
-255        RENAME_TABLE_WITH_DB = False
-256
-257        TRANSFORMS = {
-258            **generator.Generator.TRANSFORMS,
-259            exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"),
-260            exp.ArraySize: rename_func("ARRAY_LENGTH"),
-261            exp.AtTimeZone: lambda self, e: self.func(
-262                "TIMESTAMP", self.func("DATETIME", e.this, e.args.get("zone"))
-263            ),
-264            exp.Cast: transforms.preprocess([transforms.remove_precision_parameterized_types]),
-265            exp.DateAdd: _date_add_sql("DATE", "ADD"),
-266            exp.DateSub: _date_add_sql("DATE", "SUB"),
-267            exp.DatetimeAdd: _date_add_sql("DATETIME", "ADD"),
-268            exp.DatetimeSub: _date_add_sql("DATETIME", "SUB"),
-269            exp.DateDiff: lambda self, e: f"DATE_DIFF({self.sql(e, 'this')}, {self.sql(e, 'expression')}, {self.sql(e.args.get('unit', 'DAY'))})",
-270            exp.DateStrToDate: datestrtodate_sql,
-271            exp.DateTrunc: lambda self, e: self.func("DATE_TRUNC", e.this, e.text("unit")),
-272            exp.GroupConcat: rename_func("STRING_AGG"),
-273            exp.ILike: no_ilike_sql,
-274            exp.IntDiv: rename_func("DIV"),
-275            exp.Max: max_or_greatest,
-276            exp.Min: min_or_least,
-277            exp.Select: transforms.preprocess(
-278                [_unqualify_unnest, transforms.eliminate_distinct_on]
-279            ),
-280            exp.StrToTime: lambda self, e: f"PARSE_TIMESTAMP({self.format_time(e)}, {self.sql(e, 'this')})",
-281            exp.TimeAdd: _date_add_sql("TIME", "ADD"),
-282            exp.TimeSub: _date_add_sql("TIME", "SUB"),
-283            exp.TimestampAdd: _date_add_sql("TIMESTAMP", "ADD"),
-284            exp.TimestampSub: _date_add_sql("TIMESTAMP", "SUB"),
-285            exp.TimeStrToTime: timestrtotime_sql,
-286            exp.TryCast: lambda self, e: f"SAFE_CAST({self.sql(e, 'this')} AS {self.sql(e, 'to')})",
-287            exp.TsOrDsToDate: ts_or_ds_to_date_sql("bigquery"),
-288            exp.TsOrDsAdd: _date_add_sql("DATE", "ADD"),
-289            exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}",
-290            exp.VariancePop: rename_func("VAR_POP"),
-291            exp.Values: _derived_table_values_to_unnest,
-292            exp.ReturnsProperty: _returnsproperty_sql,
-293            exp.Create: _create_sql,
-294            exp.Trim: lambda self, e: self.func(f"TRIM", e.this, e.expression),
-295            exp.StabilityProperty: lambda self, e: f"DETERMINISTIC"
-296            if e.name == "IMMUTABLE"
-297            else "NOT DETERMINISTIC",
-298            exp.RegexpLike: rename_func("REGEXP_CONTAINS"),
-299        }
-300
-301        TYPE_MAPPING = {
-302            **generator.Generator.TYPE_MAPPING,
-303            exp.DataType.Type.BIGDECIMAL: "BIGNUMERIC",
-304            exp.DataType.Type.BIGINT: "INT64",
-305            exp.DataType.Type.BINARY: "BYTES",
-306            exp.DataType.Type.BOOLEAN: "BOOL",
-307            exp.DataType.Type.CHAR: "STRING",
-308            exp.DataType.Type.DECIMAL: "NUMERIC",
-309            exp.DataType.Type.DOUBLE: "FLOAT64",
-310            exp.DataType.Type.FLOAT: "FLOAT64",
-311            exp.DataType.Type.INT: "INT64",
-312            exp.DataType.Type.NCHAR: "STRING",
-313            exp.DataType.Type.NVARCHAR: "STRING",
-314            exp.DataType.Type.SMALLINT: "INT64",
-315            exp.DataType.Type.TEXT: "STRING",
-316            exp.DataType.Type.TIMESTAMP: "DATETIME",
-317            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
-318            exp.DataType.Type.TINYINT: "INT64",
-319            exp.DataType.Type.VARBINARY: "BYTES",
-320            exp.DataType.Type.VARCHAR: "STRING",
-321            exp.DataType.Type.VARIANT: "ANY TYPE",
-322        }
-323
-324        PROPERTIES_LOCATION = {
-325            **generator.Generator.PROPERTIES_LOCATION,
-326            exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA,
-327            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
-328        }
-329
-330        def array_sql(self, expression: exp.Array) -> str:
-331            first_arg = seq_get(expression.expressions, 0)
-332            if isinstance(first_arg, exp.Subqueryable):
-333                return f"ARRAY{self.wrap(self.sql(first_arg))}"
-334
-335            return inline_array_sql(self, expression)
-336
-337        def transaction_sql(self, *_) -> str:
-338            return "BEGIN TRANSACTION"
+            
250    class Generator(generator.Generator):
+251        EXPLICIT_UNION = True
+252        INTERVAL_ALLOWS_PLURAL_FORM = False
+253        JOIN_HINTS = False
+254        TABLE_HINTS = False
+255        LIMIT_FETCH = "LIMIT"
+256        RENAME_TABLE_WITH_DB = False
+257
+258        TRANSFORMS = {
+259            **generator.Generator.TRANSFORMS,
+260            exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"),
+261            exp.ArraySize: rename_func("ARRAY_LENGTH"),
+262            exp.AtTimeZone: lambda self, e: self.func(
+263                "TIMESTAMP", self.func("DATETIME", e.this, e.args.get("zone"))
+264            ),
+265            exp.Cast: transforms.preprocess([transforms.remove_precision_parameterized_types]),
+266            exp.DateAdd: _date_add_sql("DATE", "ADD"),
+267            exp.DateSub: _date_add_sql("DATE", "SUB"),
+268            exp.DatetimeAdd: _date_add_sql("DATETIME", "ADD"),
+269            exp.DatetimeSub: _date_add_sql("DATETIME", "SUB"),
+270            exp.DateDiff: lambda self, e: f"DATE_DIFF({self.sql(e, 'this')}, {self.sql(e, 'expression')}, {self.sql(e.args.get('unit', 'DAY'))})",
+271            exp.DateStrToDate: datestrtodate_sql,
+272            exp.DateTrunc: lambda self, e: self.func("DATE_TRUNC", e.this, e.text("unit")),
+273            exp.GroupConcat: rename_func("STRING_AGG"),
+274            exp.ILike: no_ilike_sql,
+275            exp.IntDiv: rename_func("DIV"),
+276            exp.Max: max_or_greatest,
+277            exp.Min: min_or_least,
+278            exp.Select: transforms.preprocess(
+279                [_unqualify_unnest, transforms.eliminate_distinct_on]
+280            ),
+281            exp.StrToTime: lambda self, e: f"PARSE_TIMESTAMP({self.format_time(e)}, {self.sql(e, 'this')})",
+282            exp.TimeAdd: _date_add_sql("TIME", "ADD"),
+283            exp.TimeSub: _date_add_sql("TIME", "SUB"),
+284            exp.TimestampAdd: _date_add_sql("TIMESTAMP", "ADD"),
+285            exp.TimestampSub: _date_add_sql("TIMESTAMP", "SUB"),
+286            exp.TimeStrToTime: timestrtotime_sql,
+287            exp.TryCast: lambda self, e: f"SAFE_CAST({self.sql(e, 'this')} AS {self.sql(e, 'to')})",
+288            exp.TsOrDsToDate: ts_or_ds_to_date_sql("bigquery"),
+289            exp.TsOrDsAdd: _date_add_sql("DATE", "ADD"),
+290            exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}",
+291            exp.VariancePop: rename_func("VAR_POP"),
+292            exp.Values: _derived_table_values_to_unnest,
+293            exp.ReturnsProperty: _returnsproperty_sql,
+294            exp.Create: _create_sql,
+295            exp.Trim: lambda self, e: self.func(f"TRIM", e.this, e.expression),
+296            exp.StabilityProperty: lambda self, e: f"DETERMINISTIC"
+297            if e.name == "IMMUTABLE"
+298            else "NOT DETERMINISTIC",
+299            exp.RegexpLike: rename_func("REGEXP_CONTAINS"),
+300        }
+301
+302        TYPE_MAPPING = {
+303            **generator.Generator.TYPE_MAPPING,
+304            exp.DataType.Type.BIGDECIMAL: "BIGNUMERIC",
+305            exp.DataType.Type.BIGINT: "INT64",
+306            exp.DataType.Type.BINARY: "BYTES",
+307            exp.DataType.Type.BOOLEAN: "BOOL",
+308            exp.DataType.Type.CHAR: "STRING",
+309            exp.DataType.Type.DECIMAL: "NUMERIC",
+310            exp.DataType.Type.DOUBLE: "FLOAT64",
+311            exp.DataType.Type.FLOAT: "FLOAT64",
+312            exp.DataType.Type.INT: "INT64",
+313            exp.DataType.Type.NCHAR: "STRING",
+314            exp.DataType.Type.NVARCHAR: "STRING",
+315            exp.DataType.Type.SMALLINT: "INT64",
+316            exp.DataType.Type.TEXT: "STRING",
+317            exp.DataType.Type.TIMESTAMP: "DATETIME",
+318            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
+319            exp.DataType.Type.TINYINT: "INT64",
+320            exp.DataType.Type.VARBINARY: "BYTES",
+321            exp.DataType.Type.VARCHAR: "STRING",
+322            exp.DataType.Type.VARIANT: "ANY TYPE",
+323        }
+324
+325        PROPERTIES_LOCATION = {
+326            **generator.Generator.PROPERTIES_LOCATION,
+327            exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA,
+328            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
+329        }
+330
+331        RESERVED_KEYWORDS = {*generator.Generator.RESERVED_KEYWORDS, "hash"}
+332
+333        def array_sql(self, expression: exp.Array) -> str:
+334            first_arg = seq_get(expression.expressions, 0)
+335            if isinstance(first_arg, exp.Subqueryable):
+336                return f"ARRAY{self.wrap(self.sql(first_arg))}"
+337
+338            return inline_array_sql(self, expression)
 339
-340        def commit_sql(self, *_) -> str:
-341            return "COMMIT TRANSACTION"
+340        def transaction_sql(self, *_) -> str:
+341            return "BEGIN TRANSACTION"
 342
-343        def rollback_sql(self, *_) -> str:
-344            return "ROLLBACK TRANSACTION"
+343        def commit_sql(self, *_) -> str:
+344            return "COMMIT TRANSACTION"
 345
-346        def in_unnest_op(self, expression: exp.Unnest) -> str:
-347            return self.sql(expression)
+346        def rollback_sql(self, *_) -> str:
+347            return "ROLLBACK TRANSACTION"
 348
-349        def except_op(self, expression: exp.Except) -> str:
-350            if not expression.args.get("distinct", False):
-351                self.unsupported("EXCEPT without DISTINCT is not supported in BigQuery")
-352            return f"EXCEPT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}"
-353
-354        def intersect_op(self, expression: exp.Intersect) -> str:
-355            if not expression.args.get("distinct", False):
-356                self.unsupported("INTERSECT without DISTINCT is not supported in BigQuery")
-357            return f"INTERSECT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}"
-358
-359        def with_properties(self, properties: exp.Properties) -> str:
-360            return self.properties(properties, prefix=self.seg("OPTIONS"))
+349        def in_unnest_op(self, expression: exp.Unnest) -> str:
+350            return self.sql(expression)
+351
+352        def except_op(self, expression: exp.Except) -> str:
+353            if not expression.args.get("distinct", False):
+354                self.unsupported("EXCEPT without DISTINCT is not supported in BigQuery")
+355            return f"EXCEPT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}"
+356
+357        def intersect_op(self, expression: exp.Intersect) -> str:
+358            if not expression.args.get("distinct", False):
+359                self.unsupported("INTERSECT without DISTINCT is not supported in BigQuery")
+360            return f"INTERSECT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}"
+361
+362        def with_properties(self, properties: exp.Properties) -> str:
+363            return self.properties(properties, prefix=self.seg("OPTIONS"))
 
@@ -1122,6 +1131,8 @@ represents a python time format and the output the target time format Default: "upper"
  • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
  • +
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
  • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1153,12 +1164,12 @@ Default: True
  • -
    330        def array_sql(self, expression: exp.Array) -> str:
    -331            first_arg = seq_get(expression.expressions, 0)
    -332            if isinstance(first_arg, exp.Subqueryable):
    -333                return f"ARRAY{self.wrap(self.sql(first_arg))}"
    -334
    -335            return inline_array_sql(self, expression)
    +            
    333        def array_sql(self, expression: exp.Array) -> str:
    +334            first_arg = seq_get(expression.expressions, 0)
    +335            if isinstance(first_arg, exp.Subqueryable):
    +336                return f"ARRAY{self.wrap(self.sql(first_arg))}"
    +337
    +338            return inline_array_sql(self, expression)
     
    @@ -1176,8 +1187,8 @@ Default: True
    -
    337        def transaction_sql(self, *_) -> str:
    -338            return "BEGIN TRANSACTION"
    +            
    340        def transaction_sql(self, *_) -> str:
    +341            return "BEGIN TRANSACTION"
     
    @@ -1195,8 +1206,8 @@ Default: True
    -
    340        def commit_sql(self, *_) -> str:
    -341            return "COMMIT TRANSACTION"
    +            
    343        def commit_sql(self, *_) -> str:
    +344            return "COMMIT TRANSACTION"
     
    @@ -1214,8 +1225,8 @@ Default: True
    -
    343        def rollback_sql(self, *_) -> str:
    -344            return "ROLLBACK TRANSACTION"
    +            
    346        def rollback_sql(self, *_) -> str:
    +347            return "ROLLBACK TRANSACTION"
     
    @@ -1233,8 +1244,8 @@ Default: True
    -
    346        def in_unnest_op(self, expression: exp.Unnest) -> str:
    -347            return self.sql(expression)
    +            
    349        def in_unnest_op(self, expression: exp.Unnest) -> str:
    +350            return self.sql(expression)
     
    @@ -1252,10 +1263,10 @@ Default: True
    -
    349        def except_op(self, expression: exp.Except) -> str:
    -350            if not expression.args.get("distinct", False):
    -351                self.unsupported("EXCEPT without DISTINCT is not supported in BigQuery")
    -352            return f"EXCEPT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}"
    +            
    352        def except_op(self, expression: exp.Except) -> str:
    +353            if not expression.args.get("distinct", False):
    +354                self.unsupported("EXCEPT without DISTINCT is not supported in BigQuery")
    +355            return f"EXCEPT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}"
     
    @@ -1273,10 +1284,10 @@ Default: True
    -
    354        def intersect_op(self, expression: exp.Intersect) -> str:
    -355            if not expression.args.get("distinct", False):
    -356                self.unsupported("INTERSECT without DISTINCT is not supported in BigQuery")
    -357            return f"INTERSECT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}"
    +            
    357        def intersect_op(self, expression: exp.Intersect) -> str:
    +358            if not expression.args.get("distinct", False):
    +359                self.unsupported("INTERSECT without DISTINCT is not supported in BigQuery")
    +360            return f"INTERSECT{' DISTINCT' if expression.args.get('distinct') else ' ALL'}"
     
    @@ -1294,8 +1305,8 @@ Default: True
    -
    359        def with_properties(self, properties: exp.Properties) -> str:
    -360            return self.properties(properties, prefix=self.seg("OPTIONS"))
    +            
    362        def with_properties(self, properties: exp.Properties) -> str:
    +363            return self.properties(properties, prefix=self.seg("OPTIONS"))
     
    @@ -1442,7 +1453,6 @@ Default: True
    check_sql
    foreignkey_sql
    primarykey_sql
    -
    unique_sql
    if_sql
    matchagainst_sql
    jsonkeyvalue_sql
    @@ -1531,6 +1541,9 @@ Default: True
    when_sql
    merge_sql
    tochar_sql
    +
    dictproperty_sql
    +
    dictrange_sql
    +
    dictsubproperty_sql
    diff --git a/docs/sqlglot/dialects/clickhouse.html b/docs/sqlglot/dialects/clickhouse.html index 3140f45..2fc171e 100644 --- a/docs/sqlglot/dialects/clickhouse.html +++ b/docs/sqlglot/dialects/clickhouse.html @@ -118,77 +118,77 @@ 27 class Tokenizer(tokens.Tokenizer): 28 COMMENTS = ["--", "#", "#!", ("/*", "*/")] 29 IDENTIFIERS = ['"', "`"] - 30 BIT_STRINGS = [("0b", "")] - 31 HEX_STRINGS = [("0x", ""), ("0X", "")] - 32 - 33 KEYWORDS = { - 34 **tokens.Tokenizer.KEYWORDS, - 35 "ASOF": TokenType.ASOF, + 30 STRING_ESCAPES = ["'", "\\"] + 31 BIT_STRINGS = [("0b", "")] + 32 HEX_STRINGS = [("0x", ""), ("0X", "")] + 33 + 34 KEYWORDS = { + 35 **tokens.Tokenizer.KEYWORDS, 36 "ATTACH": TokenType.COMMAND, 37 "DATETIME64": TokenType.DATETIME64, - 38 "FINAL": TokenType.FINAL, - 39 "FLOAT32": TokenType.FLOAT, - 40 "FLOAT64": TokenType.DOUBLE, - 41 "GLOBAL": TokenType.GLOBAL, - 42 "INT128": TokenType.INT128, - 43 "INT16": TokenType.SMALLINT, - 44 "INT256": TokenType.INT256, - 45 "INT32": TokenType.INT, - 46 "INT64": TokenType.BIGINT, - 47 "INT8": TokenType.TINYINT, - 48 "MAP": TokenType.MAP, - 49 "TUPLE": TokenType.STRUCT, - 50 "UINT128": TokenType.UINT128, - 51 "UINT16": TokenType.USMALLINT, - 52 "UINT256": TokenType.UINT256, - 53 "UINT32": TokenType.UINT, - 54 "UINT64": TokenType.UBIGINT, - 55 "UINT8": TokenType.UTINYINT, - 56 } - 57 - 58 class Parser(parser.Parser): - 59 FUNCTIONS = { - 60 **parser.Parser.FUNCTIONS, - 61 "ANY": exp.AnyValue.from_arg_list, - 62 "MAP": parse_var_map, - 63 "MATCH": exp.RegexpLike.from_arg_list, - 64 "UNIQ": exp.ApproxDistinct.from_arg_list, - 65 } - 66 - 67 FUNCTIONS_WITH_ALIASED_ARGS = {*parser.Parser.FUNCTIONS_WITH_ALIASED_ARGS, "TUPLE"} - 68 - 69 FUNCTION_PARSERS = { - 70 **parser.Parser.FUNCTION_PARSERS, - 71 "QUANTILE": lambda self: self._parse_quantile(), - 72 } - 73 - 74 FUNCTION_PARSERS.pop("MATCH") - 75 - 76 NO_PAREN_FUNCTION_PARSERS = parser.Parser.NO_PAREN_FUNCTION_PARSERS.copy() - 77 NO_PAREN_FUNCTION_PARSERS.pop(TokenType.ANY) - 78 - 79 RANGE_PARSERS = { - 80 **parser.Parser.RANGE_PARSERS, - 81 TokenType.GLOBAL: lambda self, this: self._match(TokenType.IN) - 82 and self._parse_in(this, is_global=True), - 83 } - 84 - 85 # The PLACEHOLDER entry is popped because 1) it doesn't affect Clickhouse (it corresponds to - 86 # the postgres-specific JSONBContains parser) and 2) it makes parsing the ternary op simpler. - 87 COLUMN_OPERATORS = parser.Parser.COLUMN_OPERATORS.copy() - 88 COLUMN_OPERATORS.pop(TokenType.PLACEHOLDER) - 89 - 90 JOIN_KINDS = { - 91 *parser.Parser.JOIN_KINDS, - 92 TokenType.ANY, - 93 TokenType.ASOF, - 94 TokenType.ANTI, - 95 TokenType.SEMI, - 96 } - 97 - 98 TABLE_ALIAS_TOKENS = {*parser.Parser.TABLE_ALIAS_TOKENS} - { - 99 TokenType.ANY, -100 TokenType.ASOF, + 38 "DICTIONARY": TokenType.DICTIONARY, + 39 "FINAL": TokenType.FINAL, + 40 "FLOAT32": TokenType.FLOAT, + 41 "FLOAT64": TokenType.DOUBLE, + 42 "GLOBAL": TokenType.GLOBAL, + 43 "INT128": TokenType.INT128, + 44 "INT16": TokenType.SMALLINT, + 45 "INT256": TokenType.INT256, + 46 "INT32": TokenType.INT, + 47 "INT64": TokenType.BIGINT, + 48 "INT8": TokenType.TINYINT, + 49 "MAP": TokenType.MAP, + 50 "TUPLE": TokenType.STRUCT, + 51 "UINT128": TokenType.UINT128, + 52 "UINT16": TokenType.USMALLINT, + 53 "UINT256": TokenType.UINT256, + 54 "UINT32": TokenType.UINT, + 55 "UINT64": TokenType.UBIGINT, + 56 "UINT8": TokenType.UTINYINT, + 57 } + 58 + 59 class Parser(parser.Parser): + 60 FUNCTIONS = { + 61 **parser.Parser.FUNCTIONS, + 62 "ANY": exp.AnyValue.from_arg_list, + 63 "MAP": parse_var_map, + 64 "MATCH": exp.RegexpLike.from_arg_list, + 65 "UNIQ": exp.ApproxDistinct.from_arg_list, + 66 } + 67 + 68 FUNCTIONS_WITH_ALIASED_ARGS = {*parser.Parser.FUNCTIONS_WITH_ALIASED_ARGS, "TUPLE"} + 69 + 70 FUNCTION_PARSERS = { + 71 **parser.Parser.FUNCTION_PARSERS, + 72 "QUANTILE": lambda self: self._parse_quantile(), + 73 } + 74 + 75 FUNCTION_PARSERS.pop("MATCH") + 76 + 77 NO_PAREN_FUNCTION_PARSERS = parser.Parser.NO_PAREN_FUNCTION_PARSERS.copy() + 78 NO_PAREN_FUNCTION_PARSERS.pop(TokenType.ANY) + 79 + 80 RANGE_PARSERS = { + 81 **parser.Parser.RANGE_PARSERS, + 82 TokenType.GLOBAL: lambda self, this: self._match(TokenType.IN) + 83 and self._parse_in(this, is_global=True), + 84 } + 85 + 86 # The PLACEHOLDER entry is popped because 1) it doesn't affect Clickhouse (it corresponds to + 87 # the postgres-specific JSONBContains parser) and 2) it makes parsing the ternary op simpler. + 88 COLUMN_OPERATORS = parser.Parser.COLUMN_OPERATORS.copy() + 89 COLUMN_OPERATORS.pop(TokenType.PLACEHOLDER) + 90 + 91 JOIN_KINDS = { + 92 *parser.Parser.JOIN_KINDS, + 93 TokenType.ANY, + 94 TokenType.ASOF, + 95 TokenType.ANTI, + 96 TokenType.SEMI, + 97 } + 98 + 99 TABLE_ALIAS_TOKENS = {*parser.Parser.TABLE_ALIAS_TOKENS} - { +100 TokenType.ANY, 101 TokenType.SEMI, 102 TokenType.ANTI, 103 TokenType.SETTINGS, @@ -239,181 +239,186 @@ 148 149 return self.expression(exp.Placeholder, this=this, kind=kind) 150 -151 def _parse_in( -152 self, this: t.Optional[exp.Expression], is_global: bool = False -153 ) -> exp.Expression: -154 this = super()._parse_in(this) -155 this.set("is_global", is_global) -156 return this -157 -158 def _parse_table( -159 self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None -160 ) -> t.Optional[exp.Expression]: -161 this = super()._parse_table(schema=schema, alias_tokens=alias_tokens) -162 -163 if self._match(TokenType.FINAL): -164 this = self.expression(exp.Final, this=this) +151 def _parse_in(self, this: t.Optional[exp.Expression], is_global: bool = False) -> exp.In: +152 this = super()._parse_in(this) +153 this.set("is_global", is_global) +154 return this +155 +156 def _parse_table( +157 self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None +158 ) -> t.Optional[exp.Expression]: +159 this = super()._parse_table(schema=schema, alias_tokens=alias_tokens) +160 +161 if self._match(TokenType.FINAL): +162 this = self.expression(exp.Final, this=this) +163 +164 return this 165 -166 return this -167 -168 def _parse_position(self, haystack_first: bool = False) -> exp.Expression: -169 return super()._parse_position(haystack_first=True) -170 -171 # https://clickhouse.com/docs/en/sql-reference/statements/select/with/ -172 def _parse_cte(self) -> exp.Expression: -173 index = self._index -174 try: -175 # WITH <identifier> AS <subquery expression> -176 return super()._parse_cte() -177 except ParseError: -178 # WITH <expression> AS <identifier> -179 self._retreat(index) -180 statement = self._parse_statement() -181 -182 if statement and isinstance(statement.this, exp.Alias): -183 self.raise_error("Expected CTE to have alias") +166 def _parse_position(self, haystack_first: bool = False) -> exp.Expression: +167 return super()._parse_position(haystack_first=True) +168 +169 # https://clickhouse.com/docs/en/sql-reference/statements/select/with/ +170 def _parse_cte(self) -> exp.Expression: +171 index = self._index +172 try: +173 # WITH <identifier> AS <subquery expression> +174 return super()._parse_cte() +175 except ParseError: +176 # WITH <expression> AS <identifier> +177 self._retreat(index) +178 statement = self._parse_statement() +179 +180 if statement and isinstance(statement.this, exp.Alias): +181 self.raise_error("Expected CTE to have alias") +182 +183 return self.expression(exp.CTE, this=statement, alias=statement and statement.this) 184 -185 return self.expression(exp.CTE, this=statement, alias=statement and statement.this) -186 -187 def _parse_join_side_and_kind( -188 self, -189 ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]: -190 is_global = self._match(TokenType.GLOBAL) and self._prev -191 kind_pre = self._match_set(self.JOIN_KINDS, advance=False) and self._prev -192 if kind_pre: -193 kind = self._match_set(self.JOIN_KINDS) and self._prev -194 side = self._match_set(self.JOIN_SIDES) and self._prev -195 return is_global, side, kind -196 return ( -197 is_global, -198 self._match_set(self.JOIN_SIDES) and self._prev, -199 self._match_set(self.JOIN_KINDS) and self._prev, -200 ) -201 -202 def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]: -203 join = super()._parse_join(skip_join_token) -204 -205 if join: -206 join.set("global", join.args.pop("natural", None)) -207 return join -208 -209 def _parse_function( -210 self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False -211 ) -> t.Optional[exp.Expression]: -212 func = super()._parse_function(functions, anonymous) -213 -214 if isinstance(func, exp.Anonymous): -215 params = self._parse_func_params(func) -216 -217 if params: -218 return self.expression( -219 exp.ParameterizedAgg, -220 this=func.this, -221 expressions=func.expressions, -222 params=params, -223 ) +185 def _parse_join_parts( +186 self, +187 ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]: +188 is_global = self._match(TokenType.GLOBAL) and self._prev +189 kind_pre = self._match_set(self.JOIN_KINDS, advance=False) and self._prev +190 if kind_pre: +191 kind = self._match_set(self.JOIN_KINDS) and self._prev +192 side = self._match_set(self.JOIN_SIDES) and self._prev +193 return is_global, side, kind +194 return ( +195 is_global, +196 self._match_set(self.JOIN_SIDES) and self._prev, +197 self._match_set(self.JOIN_KINDS) and self._prev, +198 ) +199 +200 def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]: +201 join = super()._parse_join(skip_join_token) +202 +203 if join: +204 join.set("global", join.args.pop("method", None)) +205 return join +206 +207 def _parse_function( +208 self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False +209 ) -> t.Optional[exp.Expression]: +210 func = super()._parse_function(functions, anonymous) +211 +212 if isinstance(func, exp.Anonymous): +213 params = self._parse_func_params(func) +214 +215 if params: +216 return self.expression( +217 exp.ParameterizedAgg, +218 this=func.this, +219 expressions=func.expressions, +220 params=params, +221 ) +222 +223 return func 224 -225 return func -226 -227 def _parse_func_params( -228 self, this: t.Optional[exp.Func] = None -229 ) -> t.Optional[t.List[t.Optional[exp.Expression]]]: -230 if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN): -231 return self._parse_csv(self._parse_lambda) -232 if self._match(TokenType.L_PAREN): -233 params = self._parse_csv(self._parse_lambda) -234 self._match_r_paren(this) -235 return params -236 return None -237 -238 def _parse_quantile(self) -> exp.Quantile: -239 this = self._parse_lambda() -240 params = self._parse_func_params() -241 if params: -242 return self.expression(exp.Quantile, this=params[0], quantile=this) -243 return self.expression(exp.Quantile, this=this, quantile=exp.Literal.number(0.5)) -244 -245 def _parse_wrapped_id_vars( -246 self, optional: bool = False -247 ) -> t.List[t.Optional[exp.Expression]]: -248 return super()._parse_wrapped_id_vars(optional=True) -249 -250 class Generator(generator.Generator): -251 STRUCT_DELIMITER = ("(", ")") -252 -253 TYPE_MAPPING = { -254 **generator.Generator.TYPE_MAPPING, -255 exp.DataType.Type.ARRAY: "Array", -256 exp.DataType.Type.BIGINT: "Int64", -257 exp.DataType.Type.DATETIME64: "DateTime64", -258 exp.DataType.Type.DOUBLE: "Float64", -259 exp.DataType.Type.FLOAT: "Float32", -260 exp.DataType.Type.INT: "Int32", -261 exp.DataType.Type.INT128: "Int128", -262 exp.DataType.Type.INT256: "Int256", -263 exp.DataType.Type.MAP: "Map", -264 exp.DataType.Type.NULLABLE: "Nullable", -265 exp.DataType.Type.SMALLINT: "Int16", -266 exp.DataType.Type.STRUCT: "Tuple", -267 exp.DataType.Type.TINYINT: "Int8", -268 exp.DataType.Type.UBIGINT: "UInt64", -269 exp.DataType.Type.UINT: "UInt32", -270 exp.DataType.Type.UINT128: "UInt128", -271 exp.DataType.Type.UINT256: "UInt256", -272 exp.DataType.Type.USMALLINT: "UInt16", -273 exp.DataType.Type.UTINYINT: "UInt8", -274 } -275 -276 TRANSFORMS = { -277 **generator.Generator.TRANSFORMS, -278 exp.AnyValue: rename_func("any"), -279 exp.ApproxDistinct: rename_func("uniq"), -280 exp.Array: inline_array_sql, -281 exp.CastToStrType: rename_func("CAST"), -282 exp.Final: lambda self, e: f"{self.sql(e, 'this')} FINAL", -283 exp.Map: lambda self, e: _lower_func(var_map_sql(self, e)), -284 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", -285 exp.Pivot: no_pivot_sql, -286 exp.Quantile: lambda self, e: self.func("quantile", e.args.get("quantile")) -287 + f"({self.sql(e, 'this')})", -288 exp.RegexpLike: lambda self, e: f"match({self.format_args(e.this, e.expression)})", -289 exp.StrPosition: lambda self, e: f"position({self.format_args(e.this, e.args.get('substr'), e.args.get('position'))})", -290 exp.VarMap: lambda self, e: _lower_func(var_map_sql(self, e)), -291 } -292 -293 PROPERTIES_LOCATION = { -294 **generator.Generator.PROPERTIES_LOCATION, -295 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -296 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, -297 } -298 -299 JOIN_HINTS = False -300 TABLE_HINTS = False -301 EXPLICIT_UNION = True -302 GROUPINGS_SEP = "" +225 def _parse_func_params( +226 self, this: t.Optional[exp.Func] = None +227 ) -> t.Optional[t.List[t.Optional[exp.Expression]]]: +228 if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN): +229 return self._parse_csv(self._parse_lambda) +230 if self._match(TokenType.L_PAREN): +231 params = self._parse_csv(self._parse_lambda) +232 self._match_r_paren(this) +233 return params +234 return None +235 +236 def _parse_quantile(self) -> exp.Quantile: +237 this = self._parse_lambda() +238 params = self._parse_func_params() +239 if params: +240 return self.expression(exp.Quantile, this=params[0], quantile=this) +241 return self.expression(exp.Quantile, this=this, quantile=exp.Literal.number(0.5)) +242 +243 def _parse_wrapped_id_vars( +244 self, optional: bool = False +245 ) -> t.List[t.Optional[exp.Expression]]: +246 return super()._parse_wrapped_id_vars(optional=True) +247 +248 def _parse_primary_key( +249 self, wrapped_optional: bool = False, in_props: bool = False +250 ) -> exp.Expression: +251 return super()._parse_primary_key( +252 wrapped_optional=wrapped_optional or in_props, in_props=in_props +253 ) +254 +255 class Generator(generator.Generator): +256 STRUCT_DELIMITER = ("(", ")") +257 +258 TYPE_MAPPING = { +259 **generator.Generator.TYPE_MAPPING, +260 exp.DataType.Type.ARRAY: "Array", +261 exp.DataType.Type.BIGINT: "Int64", +262 exp.DataType.Type.DATETIME64: "DateTime64", +263 exp.DataType.Type.DOUBLE: "Float64", +264 exp.DataType.Type.FLOAT: "Float32", +265 exp.DataType.Type.INT: "Int32", +266 exp.DataType.Type.INT128: "Int128", +267 exp.DataType.Type.INT256: "Int256", +268 exp.DataType.Type.MAP: "Map", +269 exp.DataType.Type.NULLABLE: "Nullable", +270 exp.DataType.Type.SMALLINT: "Int16", +271 exp.DataType.Type.STRUCT: "Tuple", +272 exp.DataType.Type.TINYINT: "Int8", +273 exp.DataType.Type.UBIGINT: "UInt64", +274 exp.DataType.Type.UINT: "UInt32", +275 exp.DataType.Type.UINT128: "UInt128", +276 exp.DataType.Type.UINT256: "UInt256", +277 exp.DataType.Type.USMALLINT: "UInt16", +278 exp.DataType.Type.UTINYINT: "UInt8", +279 } +280 +281 TRANSFORMS = { +282 **generator.Generator.TRANSFORMS, +283 exp.AnyValue: rename_func("any"), +284 exp.ApproxDistinct: rename_func("uniq"), +285 exp.Array: inline_array_sql, +286 exp.CastToStrType: rename_func("CAST"), +287 exp.Final: lambda self, e: f"{self.sql(e, 'this')} FINAL", +288 exp.Map: lambda self, e: _lower_func(var_map_sql(self, e)), +289 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", +290 exp.Pivot: no_pivot_sql, +291 exp.Quantile: lambda self, e: self.func("quantile", e.args.get("quantile")) +292 + f"({self.sql(e, 'this')})", +293 exp.RegexpLike: lambda self, e: f"match({self.format_args(e.this, e.expression)})", +294 exp.StrPosition: lambda self, e: f"position({self.format_args(e.this, e.args.get('substr'), e.args.get('position'))})", +295 exp.VarMap: lambda self, e: _lower_func(var_map_sql(self, e)), +296 } +297 +298 PROPERTIES_LOCATION = { +299 **generator.Generator.PROPERTIES_LOCATION, +300 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +301 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, +302 } 303 -304 def cte_sql(self, expression: exp.CTE) -> str: -305 if isinstance(expression.this, exp.Alias): -306 return self.sql(expression, "this") -307 -308 return super().cte_sql(expression) -309 -310 def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]: -311 return super().after_limit_modifiers(expression) + [ -312 self.seg("SETTINGS ") + self.expressions(expression, key="settings", flat=True) -313 if expression.args.get("settings") -314 else "", -315 self.seg("FORMAT ") + self.sql(expression, "format") -316 if expression.args.get("format") -317 else "", -318 ] -319 -320 def parameterizedagg_sql(self, expression: exp.Anonymous) -> str: -321 params = self.expressions(expression, "params", flat=True) -322 return self.func(expression.name, *expression.expressions) + f"({params})" -323 -324 def placeholder_sql(self, expression: exp.Placeholder) -> str: -325 return f"{{{expression.name}: {self.sql(expression, 'kind')}}}" +304 JOIN_HINTS = False +305 TABLE_HINTS = False +306 EXPLICIT_UNION = True +307 GROUPINGS_SEP = "" +308 +309 def cte_sql(self, expression: exp.CTE) -> str: +310 if isinstance(expression.this, exp.Alias): +311 return self.sql(expression, "this") +312 +313 return super().cte_sql(expression) +314 +315 def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]: +316 return super().after_limit_modifiers(expression) + [ +317 self.seg("SETTINGS ") + self.expressions(expression, key="settings", flat=True) +318 if expression.args.get("settings") +319 else "", +320 self.seg("FORMAT ") + self.sql(expression, "format") +321 if expression.args.get("format") +322 else "", +323 ] +324 +325 def parameterizedagg_sql(self, expression: exp.Anonymous) -> str: +326 params = self.expressions(expression, "params", flat=True) +327 return self.func(expression.name, *expression.expressions) + f"({params})" +328 +329 def placeholder_sql(self, expression: exp.Placeholder) -> str: +330 return f"{{{expression.name}: {self.sql(expression, 'kind')}}}"
    @@ -436,77 +441,77 @@ 28 class Tokenizer(tokens.Tokenizer): 29 COMMENTS = ["--", "#", "#!", ("/*", "*/")] 30 IDENTIFIERS = ['"', "`"] - 31 BIT_STRINGS = [("0b", "")] - 32 HEX_STRINGS = [("0x", ""), ("0X", "")] - 33 - 34 KEYWORDS = { - 35 **tokens.Tokenizer.KEYWORDS, - 36 "ASOF": TokenType.ASOF, + 31 STRING_ESCAPES = ["'", "\\"] + 32 BIT_STRINGS = [("0b", "")] + 33 HEX_STRINGS = [("0x", ""), ("0X", "")] + 34 + 35 KEYWORDS = { + 36 **tokens.Tokenizer.KEYWORDS, 37 "ATTACH": TokenType.COMMAND, 38 "DATETIME64": TokenType.DATETIME64, - 39 "FINAL": TokenType.FINAL, - 40 "FLOAT32": TokenType.FLOAT, - 41 "FLOAT64": TokenType.DOUBLE, - 42 "GLOBAL": TokenType.GLOBAL, - 43 "INT128": TokenType.INT128, - 44 "INT16": TokenType.SMALLINT, - 45 "INT256": TokenType.INT256, - 46 "INT32": TokenType.INT, - 47 "INT64": TokenType.BIGINT, - 48 "INT8": TokenType.TINYINT, - 49 "MAP": TokenType.MAP, - 50 "TUPLE": TokenType.STRUCT, - 51 "UINT128": TokenType.UINT128, - 52 "UINT16": TokenType.USMALLINT, - 53 "UINT256": TokenType.UINT256, - 54 "UINT32": TokenType.UINT, - 55 "UINT64": TokenType.UBIGINT, - 56 "UINT8": TokenType.UTINYINT, - 57 } - 58 - 59 class Parser(parser.Parser): - 60 FUNCTIONS = { - 61 **parser.Parser.FUNCTIONS, - 62 "ANY": exp.AnyValue.from_arg_list, - 63 "MAP": parse_var_map, - 64 "MATCH": exp.RegexpLike.from_arg_list, - 65 "UNIQ": exp.ApproxDistinct.from_arg_list, - 66 } - 67 - 68 FUNCTIONS_WITH_ALIASED_ARGS = {*parser.Parser.FUNCTIONS_WITH_ALIASED_ARGS, "TUPLE"} - 69 - 70 FUNCTION_PARSERS = { - 71 **parser.Parser.FUNCTION_PARSERS, - 72 "QUANTILE": lambda self: self._parse_quantile(), - 73 } - 74 - 75 FUNCTION_PARSERS.pop("MATCH") - 76 - 77 NO_PAREN_FUNCTION_PARSERS = parser.Parser.NO_PAREN_FUNCTION_PARSERS.copy() - 78 NO_PAREN_FUNCTION_PARSERS.pop(TokenType.ANY) - 79 - 80 RANGE_PARSERS = { - 81 **parser.Parser.RANGE_PARSERS, - 82 TokenType.GLOBAL: lambda self, this: self._match(TokenType.IN) - 83 and self._parse_in(this, is_global=True), - 84 } - 85 - 86 # The PLACEHOLDER entry is popped because 1) it doesn't affect Clickhouse (it corresponds to - 87 # the postgres-specific JSONBContains parser) and 2) it makes parsing the ternary op simpler. - 88 COLUMN_OPERATORS = parser.Parser.COLUMN_OPERATORS.copy() - 89 COLUMN_OPERATORS.pop(TokenType.PLACEHOLDER) - 90 - 91 JOIN_KINDS = { - 92 *parser.Parser.JOIN_KINDS, - 93 TokenType.ANY, - 94 TokenType.ASOF, - 95 TokenType.ANTI, - 96 TokenType.SEMI, - 97 } - 98 - 99 TABLE_ALIAS_TOKENS = {*parser.Parser.TABLE_ALIAS_TOKENS} - { -100 TokenType.ANY, -101 TokenType.ASOF, + 39 "DICTIONARY": TokenType.DICTIONARY, + 40 "FINAL": TokenType.FINAL, + 41 "FLOAT32": TokenType.FLOAT, + 42 "FLOAT64": TokenType.DOUBLE, + 43 "GLOBAL": TokenType.GLOBAL, + 44 "INT128": TokenType.INT128, + 45 "INT16": TokenType.SMALLINT, + 46 "INT256": TokenType.INT256, + 47 "INT32": TokenType.INT, + 48 "INT64": TokenType.BIGINT, + 49 "INT8": TokenType.TINYINT, + 50 "MAP": TokenType.MAP, + 51 "TUPLE": TokenType.STRUCT, + 52 "UINT128": TokenType.UINT128, + 53 "UINT16": TokenType.USMALLINT, + 54 "UINT256": TokenType.UINT256, + 55 "UINT32": TokenType.UINT, + 56 "UINT64": TokenType.UBIGINT, + 57 "UINT8": TokenType.UTINYINT, + 58 } + 59 + 60 class Parser(parser.Parser): + 61 FUNCTIONS = { + 62 **parser.Parser.FUNCTIONS, + 63 "ANY": exp.AnyValue.from_arg_list, + 64 "MAP": parse_var_map, + 65 "MATCH": exp.RegexpLike.from_arg_list, + 66 "UNIQ": exp.ApproxDistinct.from_arg_list, + 67 } + 68 + 69 FUNCTIONS_WITH_ALIASED_ARGS = {*parser.Parser.FUNCTIONS_WITH_ALIASED_ARGS, "TUPLE"} + 70 + 71 FUNCTION_PARSERS = { + 72 **parser.Parser.FUNCTION_PARSERS, + 73 "QUANTILE": lambda self: self._parse_quantile(), + 74 } + 75 + 76 FUNCTION_PARSERS.pop("MATCH") + 77 + 78 NO_PAREN_FUNCTION_PARSERS = parser.Parser.NO_PAREN_FUNCTION_PARSERS.copy() + 79 NO_PAREN_FUNCTION_PARSERS.pop(TokenType.ANY) + 80 + 81 RANGE_PARSERS = { + 82 **parser.Parser.RANGE_PARSERS, + 83 TokenType.GLOBAL: lambda self, this: self._match(TokenType.IN) + 84 and self._parse_in(this, is_global=True), + 85 } + 86 + 87 # The PLACEHOLDER entry is popped because 1) it doesn't affect Clickhouse (it corresponds to + 88 # the postgres-specific JSONBContains parser) and 2) it makes parsing the ternary op simpler. + 89 COLUMN_OPERATORS = parser.Parser.COLUMN_OPERATORS.copy() + 90 COLUMN_OPERATORS.pop(TokenType.PLACEHOLDER) + 91 + 92 JOIN_KINDS = { + 93 *parser.Parser.JOIN_KINDS, + 94 TokenType.ANY, + 95 TokenType.ASOF, + 96 TokenType.ANTI, + 97 TokenType.SEMI, + 98 } + 99 +100 TABLE_ALIAS_TOKENS = {*parser.Parser.TABLE_ALIAS_TOKENS} - { +101 TokenType.ANY, 102 TokenType.SEMI, 103 TokenType.ANTI, 104 TokenType.SETTINGS, @@ -557,181 +562,186 @@ 149 150 return self.expression(exp.Placeholder, this=this, kind=kind) 151 -152 def _parse_in( -153 self, this: t.Optional[exp.Expression], is_global: bool = False -154 ) -> exp.Expression: -155 this = super()._parse_in(this) -156 this.set("is_global", is_global) -157 return this -158 -159 def _parse_table( -160 self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None -161 ) -> t.Optional[exp.Expression]: -162 this = super()._parse_table(schema=schema, alias_tokens=alias_tokens) -163 -164 if self._match(TokenType.FINAL): -165 this = self.expression(exp.Final, this=this) +152 def _parse_in(self, this: t.Optional[exp.Expression], is_global: bool = False) -> exp.In: +153 this = super()._parse_in(this) +154 this.set("is_global", is_global) +155 return this +156 +157 def _parse_table( +158 self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None +159 ) -> t.Optional[exp.Expression]: +160 this = super()._parse_table(schema=schema, alias_tokens=alias_tokens) +161 +162 if self._match(TokenType.FINAL): +163 this = self.expression(exp.Final, this=this) +164 +165 return this 166 -167 return this -168 -169 def _parse_position(self, haystack_first: bool = False) -> exp.Expression: -170 return super()._parse_position(haystack_first=True) -171 -172 # https://clickhouse.com/docs/en/sql-reference/statements/select/with/ -173 def _parse_cte(self) -> exp.Expression: -174 index = self._index -175 try: -176 # WITH <identifier> AS <subquery expression> -177 return super()._parse_cte() -178 except ParseError: -179 # WITH <expression> AS <identifier> -180 self._retreat(index) -181 statement = self._parse_statement() -182 -183 if statement and isinstance(statement.this, exp.Alias): -184 self.raise_error("Expected CTE to have alias") +167 def _parse_position(self, haystack_first: bool = False) -> exp.Expression: +168 return super()._parse_position(haystack_first=True) +169 +170 # https://clickhouse.com/docs/en/sql-reference/statements/select/with/ +171 def _parse_cte(self) -> exp.Expression: +172 index = self._index +173 try: +174 # WITH <identifier> AS <subquery expression> +175 return super()._parse_cte() +176 except ParseError: +177 # WITH <expression> AS <identifier> +178 self._retreat(index) +179 statement = self._parse_statement() +180 +181 if statement and isinstance(statement.this, exp.Alias): +182 self.raise_error("Expected CTE to have alias") +183 +184 return self.expression(exp.CTE, this=statement, alias=statement and statement.this) 185 -186 return self.expression(exp.CTE, this=statement, alias=statement and statement.this) -187 -188 def _parse_join_side_and_kind( -189 self, -190 ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]: -191 is_global = self._match(TokenType.GLOBAL) and self._prev -192 kind_pre = self._match_set(self.JOIN_KINDS, advance=False) and self._prev -193 if kind_pre: -194 kind = self._match_set(self.JOIN_KINDS) and self._prev -195 side = self._match_set(self.JOIN_SIDES) and self._prev -196 return is_global, side, kind -197 return ( -198 is_global, -199 self._match_set(self.JOIN_SIDES) and self._prev, -200 self._match_set(self.JOIN_KINDS) and self._prev, -201 ) -202 -203 def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]: -204 join = super()._parse_join(skip_join_token) -205 -206 if join: -207 join.set("global", join.args.pop("natural", None)) -208 return join -209 -210 def _parse_function( -211 self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False -212 ) -> t.Optional[exp.Expression]: -213 func = super()._parse_function(functions, anonymous) -214 -215 if isinstance(func, exp.Anonymous): -216 params = self._parse_func_params(func) -217 -218 if params: -219 return self.expression( -220 exp.ParameterizedAgg, -221 this=func.this, -222 expressions=func.expressions, -223 params=params, -224 ) +186 def _parse_join_parts( +187 self, +188 ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]: +189 is_global = self._match(TokenType.GLOBAL) and self._prev +190 kind_pre = self._match_set(self.JOIN_KINDS, advance=False) and self._prev +191 if kind_pre: +192 kind = self._match_set(self.JOIN_KINDS) and self._prev +193 side = self._match_set(self.JOIN_SIDES) and self._prev +194 return is_global, side, kind +195 return ( +196 is_global, +197 self._match_set(self.JOIN_SIDES) and self._prev, +198 self._match_set(self.JOIN_KINDS) and self._prev, +199 ) +200 +201 def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]: +202 join = super()._parse_join(skip_join_token) +203 +204 if join: +205 join.set("global", join.args.pop("method", None)) +206 return join +207 +208 def _parse_function( +209 self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False +210 ) -> t.Optional[exp.Expression]: +211 func = super()._parse_function(functions, anonymous) +212 +213 if isinstance(func, exp.Anonymous): +214 params = self._parse_func_params(func) +215 +216 if params: +217 return self.expression( +218 exp.ParameterizedAgg, +219 this=func.this, +220 expressions=func.expressions, +221 params=params, +222 ) +223 +224 return func 225 -226 return func -227 -228 def _parse_func_params( -229 self, this: t.Optional[exp.Func] = None -230 ) -> t.Optional[t.List[t.Optional[exp.Expression]]]: -231 if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN): -232 return self._parse_csv(self._parse_lambda) -233 if self._match(TokenType.L_PAREN): -234 params = self._parse_csv(self._parse_lambda) -235 self._match_r_paren(this) -236 return params -237 return None -238 -239 def _parse_quantile(self) -> exp.Quantile: -240 this = self._parse_lambda() -241 params = self._parse_func_params() -242 if params: -243 return self.expression(exp.Quantile, this=params[0], quantile=this) -244 return self.expression(exp.Quantile, this=this, quantile=exp.Literal.number(0.5)) -245 -246 def _parse_wrapped_id_vars( -247 self, optional: bool = False -248 ) -> t.List[t.Optional[exp.Expression]]: -249 return super()._parse_wrapped_id_vars(optional=True) -250 -251 class Generator(generator.Generator): -252 STRUCT_DELIMITER = ("(", ")") -253 -254 TYPE_MAPPING = { -255 **generator.Generator.TYPE_MAPPING, -256 exp.DataType.Type.ARRAY: "Array", -257 exp.DataType.Type.BIGINT: "Int64", -258 exp.DataType.Type.DATETIME64: "DateTime64", -259 exp.DataType.Type.DOUBLE: "Float64", -260 exp.DataType.Type.FLOAT: "Float32", -261 exp.DataType.Type.INT: "Int32", -262 exp.DataType.Type.INT128: "Int128", -263 exp.DataType.Type.INT256: "Int256", -264 exp.DataType.Type.MAP: "Map", -265 exp.DataType.Type.NULLABLE: "Nullable", -266 exp.DataType.Type.SMALLINT: "Int16", -267 exp.DataType.Type.STRUCT: "Tuple", -268 exp.DataType.Type.TINYINT: "Int8", -269 exp.DataType.Type.UBIGINT: "UInt64", -270 exp.DataType.Type.UINT: "UInt32", -271 exp.DataType.Type.UINT128: "UInt128", -272 exp.DataType.Type.UINT256: "UInt256", -273 exp.DataType.Type.USMALLINT: "UInt16", -274 exp.DataType.Type.UTINYINT: "UInt8", -275 } -276 -277 TRANSFORMS = { -278 **generator.Generator.TRANSFORMS, -279 exp.AnyValue: rename_func("any"), -280 exp.ApproxDistinct: rename_func("uniq"), -281 exp.Array: inline_array_sql, -282 exp.CastToStrType: rename_func("CAST"), -283 exp.Final: lambda self, e: f"{self.sql(e, 'this')} FINAL", -284 exp.Map: lambda self, e: _lower_func(var_map_sql(self, e)), -285 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", -286 exp.Pivot: no_pivot_sql, -287 exp.Quantile: lambda self, e: self.func("quantile", e.args.get("quantile")) -288 + f"({self.sql(e, 'this')})", -289 exp.RegexpLike: lambda self, e: f"match({self.format_args(e.this, e.expression)})", -290 exp.StrPosition: lambda self, e: f"position({self.format_args(e.this, e.args.get('substr'), e.args.get('position'))})", -291 exp.VarMap: lambda self, e: _lower_func(var_map_sql(self, e)), -292 } -293 -294 PROPERTIES_LOCATION = { -295 **generator.Generator.PROPERTIES_LOCATION, -296 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -297 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, -298 } -299 -300 JOIN_HINTS = False -301 TABLE_HINTS = False -302 EXPLICIT_UNION = True -303 GROUPINGS_SEP = "" +226 def _parse_func_params( +227 self, this: t.Optional[exp.Func] = None +228 ) -> t.Optional[t.List[t.Optional[exp.Expression]]]: +229 if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN): +230 return self._parse_csv(self._parse_lambda) +231 if self._match(TokenType.L_PAREN): +232 params = self._parse_csv(self._parse_lambda) +233 self._match_r_paren(this) +234 return params +235 return None +236 +237 def _parse_quantile(self) -> exp.Quantile: +238 this = self._parse_lambda() +239 params = self._parse_func_params() +240 if params: +241 return self.expression(exp.Quantile, this=params[0], quantile=this) +242 return self.expression(exp.Quantile, this=this, quantile=exp.Literal.number(0.5)) +243 +244 def _parse_wrapped_id_vars( +245 self, optional: bool = False +246 ) -> t.List[t.Optional[exp.Expression]]: +247 return super()._parse_wrapped_id_vars(optional=True) +248 +249 def _parse_primary_key( +250 self, wrapped_optional: bool = False, in_props: bool = False +251 ) -> exp.Expression: +252 return super()._parse_primary_key( +253 wrapped_optional=wrapped_optional or in_props, in_props=in_props +254 ) +255 +256 class Generator(generator.Generator): +257 STRUCT_DELIMITER = ("(", ")") +258 +259 TYPE_MAPPING = { +260 **generator.Generator.TYPE_MAPPING, +261 exp.DataType.Type.ARRAY: "Array", +262 exp.DataType.Type.BIGINT: "Int64", +263 exp.DataType.Type.DATETIME64: "DateTime64", +264 exp.DataType.Type.DOUBLE: "Float64", +265 exp.DataType.Type.FLOAT: "Float32", +266 exp.DataType.Type.INT: "Int32", +267 exp.DataType.Type.INT128: "Int128", +268 exp.DataType.Type.INT256: "Int256", +269 exp.DataType.Type.MAP: "Map", +270 exp.DataType.Type.NULLABLE: "Nullable", +271 exp.DataType.Type.SMALLINT: "Int16", +272 exp.DataType.Type.STRUCT: "Tuple", +273 exp.DataType.Type.TINYINT: "Int8", +274 exp.DataType.Type.UBIGINT: "UInt64", +275 exp.DataType.Type.UINT: "UInt32", +276 exp.DataType.Type.UINT128: "UInt128", +277 exp.DataType.Type.UINT256: "UInt256", +278 exp.DataType.Type.USMALLINT: "UInt16", +279 exp.DataType.Type.UTINYINT: "UInt8", +280 } +281 +282 TRANSFORMS = { +283 **generator.Generator.TRANSFORMS, +284 exp.AnyValue: rename_func("any"), +285 exp.ApproxDistinct: rename_func("uniq"), +286 exp.Array: inline_array_sql, +287 exp.CastToStrType: rename_func("CAST"), +288 exp.Final: lambda self, e: f"{self.sql(e, 'this')} FINAL", +289 exp.Map: lambda self, e: _lower_func(var_map_sql(self, e)), +290 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", +291 exp.Pivot: no_pivot_sql, +292 exp.Quantile: lambda self, e: self.func("quantile", e.args.get("quantile")) +293 + f"({self.sql(e, 'this')})", +294 exp.RegexpLike: lambda self, e: f"match({self.format_args(e.this, e.expression)})", +295 exp.StrPosition: lambda self, e: f"position({self.format_args(e.this, e.args.get('substr'), e.args.get('position'))})", +296 exp.VarMap: lambda self, e: _lower_func(var_map_sql(self, e)), +297 } +298 +299 PROPERTIES_LOCATION = { +300 **generator.Generator.PROPERTIES_LOCATION, +301 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +302 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, +303 } 304 -305 def cte_sql(self, expression: exp.CTE) -> str: -306 if isinstance(expression.this, exp.Alias): -307 return self.sql(expression, "this") -308 -309 return super().cte_sql(expression) -310 -311 def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]: -312 return super().after_limit_modifiers(expression) + [ -313 self.seg("SETTINGS ") + self.expressions(expression, key="settings", flat=True) -314 if expression.args.get("settings") -315 else "", -316 self.seg("FORMAT ") + self.sql(expression, "format") -317 if expression.args.get("format") -318 else "", -319 ] -320 -321 def parameterizedagg_sql(self, expression: exp.Anonymous) -> str: -322 params = self.expressions(expression, "params", flat=True) -323 return self.func(expression.name, *expression.expressions) + f"({params})" -324 -325 def placeholder_sql(self, expression: exp.Placeholder) -> str: -326 return f"{{{expression.name}: {self.sql(expression, 'kind')}}}" +305 JOIN_HINTS = False +306 TABLE_HINTS = False +307 EXPLICIT_UNION = True +308 GROUPINGS_SEP = "" +309 +310 def cte_sql(self, expression: exp.CTE) -> str: +311 if isinstance(expression.this, exp.Alias): +312 return self.sql(expression, "this") +313 +314 return super().cte_sql(expression) +315 +316 def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]: +317 return super().after_limit_modifiers(expression) + [ +318 self.seg("SETTINGS ") + self.expressions(expression, key="settings", flat=True) +319 if expression.args.get("settings") +320 else "", +321 self.seg("FORMAT ") + self.sql(expression, "format") +322 if expression.args.get("format") +323 else "", +324 ] +325 +326 def parameterizedagg_sql(self, expression: exp.Anonymous) -> str: +327 params = self.expressions(expression, "params", flat=True) +328 return self.func(expression.name, *expression.expressions) + f"({params})" +329 +330 def placeholder_sql(self, expression: exp.Placeholder) -> str: +331 return f"{{{expression.name}: {self.sql(expression, 'kind')}}}"
    @@ -769,33 +779,34 @@
    28    class Tokenizer(tokens.Tokenizer):
     29        COMMENTS = ["--", "#", "#!", ("/*", "*/")]
     30        IDENTIFIERS = ['"', "`"]
    -31        BIT_STRINGS = [("0b", "")]
    -32        HEX_STRINGS = [("0x", ""), ("0X", "")]
    -33
    -34        KEYWORDS = {
    -35            **tokens.Tokenizer.KEYWORDS,
    -36            "ASOF": TokenType.ASOF,
    +31        STRING_ESCAPES = ["'", "\\"]
    +32        BIT_STRINGS = [("0b", "")]
    +33        HEX_STRINGS = [("0x", ""), ("0X", "")]
    +34
    +35        KEYWORDS = {
    +36            **tokens.Tokenizer.KEYWORDS,
     37            "ATTACH": TokenType.COMMAND,
     38            "DATETIME64": TokenType.DATETIME64,
    -39            "FINAL": TokenType.FINAL,
    -40            "FLOAT32": TokenType.FLOAT,
    -41            "FLOAT64": TokenType.DOUBLE,
    -42            "GLOBAL": TokenType.GLOBAL,
    -43            "INT128": TokenType.INT128,
    -44            "INT16": TokenType.SMALLINT,
    -45            "INT256": TokenType.INT256,
    -46            "INT32": TokenType.INT,
    -47            "INT64": TokenType.BIGINT,
    -48            "INT8": TokenType.TINYINT,
    -49            "MAP": TokenType.MAP,
    -50            "TUPLE": TokenType.STRUCT,
    -51            "UINT128": TokenType.UINT128,
    -52            "UINT16": TokenType.USMALLINT,
    -53            "UINT256": TokenType.UINT256,
    -54            "UINT32": TokenType.UINT,
    -55            "UINT64": TokenType.UBIGINT,
    -56            "UINT8": TokenType.UTINYINT,
    -57        }
    +39            "DICTIONARY": TokenType.DICTIONARY,
    +40            "FINAL": TokenType.FINAL,
    +41            "FLOAT32": TokenType.FLOAT,
    +42            "FLOAT64": TokenType.DOUBLE,
    +43            "GLOBAL": TokenType.GLOBAL,
    +44            "INT128": TokenType.INT128,
    +45            "INT16": TokenType.SMALLINT,
    +46            "INT256": TokenType.INT256,
    +47            "INT32": TokenType.INT,
    +48            "INT64": TokenType.BIGINT,
    +49            "INT8": TokenType.TINYINT,
    +50            "MAP": TokenType.MAP,
    +51            "TUPLE": TokenType.STRUCT,
    +52            "UINT128": TokenType.UINT128,
    +53            "UINT16": TokenType.USMALLINT,
    +54            "UINT256": TokenType.UINT256,
    +55            "UINT32": TokenType.UINT,
    +56            "UINT64": TokenType.UBIGINT,
    +57            "UINT8": TokenType.UTINYINT,
    +58        }
     
    @@ -823,49 +834,48 @@
    -
     59    class Parser(parser.Parser):
    - 60        FUNCTIONS = {
    - 61            **parser.Parser.FUNCTIONS,
    - 62            "ANY": exp.AnyValue.from_arg_list,
    - 63            "MAP": parse_var_map,
    - 64            "MATCH": exp.RegexpLike.from_arg_list,
    - 65            "UNIQ": exp.ApproxDistinct.from_arg_list,
    - 66        }
    - 67
    - 68        FUNCTIONS_WITH_ALIASED_ARGS = {*parser.Parser.FUNCTIONS_WITH_ALIASED_ARGS, "TUPLE"}
    - 69
    - 70        FUNCTION_PARSERS = {
    - 71            **parser.Parser.FUNCTION_PARSERS,
    - 72            "QUANTILE": lambda self: self._parse_quantile(),
    - 73        }
    - 74
    - 75        FUNCTION_PARSERS.pop("MATCH")
    - 76
    - 77        NO_PAREN_FUNCTION_PARSERS = parser.Parser.NO_PAREN_FUNCTION_PARSERS.copy()
    - 78        NO_PAREN_FUNCTION_PARSERS.pop(TokenType.ANY)
    - 79
    - 80        RANGE_PARSERS = {
    - 81            **parser.Parser.RANGE_PARSERS,
    - 82            TokenType.GLOBAL: lambda self, this: self._match(TokenType.IN)
    - 83            and self._parse_in(this, is_global=True),
    - 84        }
    - 85
    - 86        # The PLACEHOLDER entry is popped because 1) it doesn't affect Clickhouse (it corresponds to
    - 87        # the postgres-specific JSONBContains parser) and 2) it makes parsing the ternary op simpler.
    - 88        COLUMN_OPERATORS = parser.Parser.COLUMN_OPERATORS.copy()
    - 89        COLUMN_OPERATORS.pop(TokenType.PLACEHOLDER)
    - 90
    - 91        JOIN_KINDS = {
    - 92            *parser.Parser.JOIN_KINDS,
    - 93            TokenType.ANY,
    - 94            TokenType.ASOF,
    - 95            TokenType.ANTI,
    - 96            TokenType.SEMI,
    - 97        }
    - 98
    - 99        TABLE_ALIAS_TOKENS = {*parser.Parser.TABLE_ALIAS_TOKENS} - {
    -100            TokenType.ANY,
    -101            TokenType.ASOF,
    +            
     60    class Parser(parser.Parser):
    + 61        FUNCTIONS = {
    + 62            **parser.Parser.FUNCTIONS,
    + 63            "ANY": exp.AnyValue.from_arg_list,
    + 64            "MAP": parse_var_map,
    + 65            "MATCH": exp.RegexpLike.from_arg_list,
    + 66            "UNIQ": exp.ApproxDistinct.from_arg_list,
    + 67        }
    + 68
    + 69        FUNCTIONS_WITH_ALIASED_ARGS = {*parser.Parser.FUNCTIONS_WITH_ALIASED_ARGS, "TUPLE"}
    + 70
    + 71        FUNCTION_PARSERS = {
    + 72            **parser.Parser.FUNCTION_PARSERS,
    + 73            "QUANTILE": lambda self: self._parse_quantile(),
    + 74        }
    + 75
    + 76        FUNCTION_PARSERS.pop("MATCH")
    + 77
    + 78        NO_PAREN_FUNCTION_PARSERS = parser.Parser.NO_PAREN_FUNCTION_PARSERS.copy()
    + 79        NO_PAREN_FUNCTION_PARSERS.pop(TokenType.ANY)
    + 80
    + 81        RANGE_PARSERS = {
    + 82            **parser.Parser.RANGE_PARSERS,
    + 83            TokenType.GLOBAL: lambda self, this: self._match(TokenType.IN)
    + 84            and self._parse_in(this, is_global=True),
    + 85        }
    + 86
    + 87        # The PLACEHOLDER entry is popped because 1) it doesn't affect Clickhouse (it corresponds to
    + 88        # the postgres-specific JSONBContains parser) and 2) it makes parsing the ternary op simpler.
    + 89        COLUMN_OPERATORS = parser.Parser.COLUMN_OPERATORS.copy()
    + 90        COLUMN_OPERATORS.pop(TokenType.PLACEHOLDER)
    + 91
    + 92        JOIN_KINDS = {
    + 93            *parser.Parser.JOIN_KINDS,
    + 94            TokenType.ANY,
    + 95            TokenType.ASOF,
    + 96            TokenType.ANTI,
    + 97            TokenType.SEMI,
    + 98        }
    + 99
    +100        TABLE_ALIAS_TOKENS = {*parser.Parser.TABLE_ALIAS_TOKENS} - {
    +101            TokenType.ANY,
     102            TokenType.SEMI,
     103            TokenType.ANTI,
     104            TokenType.SETTINGS,
    @@ -916,104 +926,109 @@
     149
     150            return self.expression(exp.Placeholder, this=this, kind=kind)
     151
    -152        def _parse_in(
    -153            self, this: t.Optional[exp.Expression], is_global: bool = False
    -154        ) -> exp.Expression:
    -155            this = super()._parse_in(this)
    -156            this.set("is_global", is_global)
    -157            return this
    -158
    -159        def _parse_table(
    -160            self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None
    -161        ) -> t.Optional[exp.Expression]:
    -162            this = super()._parse_table(schema=schema, alias_tokens=alias_tokens)
    -163
    -164            if self._match(TokenType.FINAL):
    -165                this = self.expression(exp.Final, this=this)
    +152        def _parse_in(self, this: t.Optional[exp.Expression], is_global: bool = False) -> exp.In:
    +153            this = super()._parse_in(this)
    +154            this.set("is_global", is_global)
    +155            return this
    +156
    +157        def _parse_table(
    +158            self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None
    +159        ) -> t.Optional[exp.Expression]:
    +160            this = super()._parse_table(schema=schema, alias_tokens=alias_tokens)
    +161
    +162            if self._match(TokenType.FINAL):
    +163                this = self.expression(exp.Final, this=this)
    +164
    +165            return this
     166
    -167            return this
    -168
    -169        def _parse_position(self, haystack_first: bool = False) -> exp.Expression:
    -170            return super()._parse_position(haystack_first=True)
    -171
    -172        # https://clickhouse.com/docs/en/sql-reference/statements/select/with/
    -173        def _parse_cte(self) -> exp.Expression:
    -174            index = self._index
    -175            try:
    -176                # WITH <identifier> AS <subquery expression>
    -177                return super()._parse_cte()
    -178            except ParseError:
    -179                # WITH <expression> AS <identifier>
    -180                self._retreat(index)
    -181                statement = self._parse_statement()
    -182
    -183                if statement and isinstance(statement.this, exp.Alias):
    -184                    self.raise_error("Expected CTE to have alias")
    +167        def _parse_position(self, haystack_first: bool = False) -> exp.Expression:
    +168            return super()._parse_position(haystack_first=True)
    +169
    +170        # https://clickhouse.com/docs/en/sql-reference/statements/select/with/
    +171        def _parse_cte(self) -> exp.Expression:
    +172            index = self._index
    +173            try:
    +174                # WITH <identifier> AS <subquery expression>
    +175                return super()._parse_cte()
    +176            except ParseError:
    +177                # WITH <expression> AS <identifier>
    +178                self._retreat(index)
    +179                statement = self._parse_statement()
    +180
    +181                if statement and isinstance(statement.this, exp.Alias):
    +182                    self.raise_error("Expected CTE to have alias")
    +183
    +184                return self.expression(exp.CTE, this=statement, alias=statement and statement.this)
     185
    -186                return self.expression(exp.CTE, this=statement, alias=statement and statement.this)
    -187
    -188        def _parse_join_side_and_kind(
    -189            self,
    -190        ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]:
    -191            is_global = self._match(TokenType.GLOBAL) and self._prev
    -192            kind_pre = self._match_set(self.JOIN_KINDS, advance=False) and self._prev
    -193            if kind_pre:
    -194                kind = self._match_set(self.JOIN_KINDS) and self._prev
    -195                side = self._match_set(self.JOIN_SIDES) and self._prev
    -196                return is_global, side, kind
    -197            return (
    -198                is_global,
    -199                self._match_set(self.JOIN_SIDES) and self._prev,
    -200                self._match_set(self.JOIN_KINDS) and self._prev,
    -201            )
    -202
    -203        def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]:
    -204            join = super()._parse_join(skip_join_token)
    -205
    -206            if join:
    -207                join.set("global", join.args.pop("natural", None))
    -208            return join
    -209
    -210        def _parse_function(
    -211            self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False
    -212        ) -> t.Optional[exp.Expression]:
    -213            func = super()._parse_function(functions, anonymous)
    -214
    -215            if isinstance(func, exp.Anonymous):
    -216                params = self._parse_func_params(func)
    -217
    -218                if params:
    -219                    return self.expression(
    -220                        exp.ParameterizedAgg,
    -221                        this=func.this,
    -222                        expressions=func.expressions,
    -223                        params=params,
    -224                    )
    +186        def _parse_join_parts(
    +187            self,
    +188        ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]:
    +189            is_global = self._match(TokenType.GLOBAL) and self._prev
    +190            kind_pre = self._match_set(self.JOIN_KINDS, advance=False) and self._prev
    +191            if kind_pre:
    +192                kind = self._match_set(self.JOIN_KINDS) and self._prev
    +193                side = self._match_set(self.JOIN_SIDES) and self._prev
    +194                return is_global, side, kind
    +195            return (
    +196                is_global,
    +197                self._match_set(self.JOIN_SIDES) and self._prev,
    +198                self._match_set(self.JOIN_KINDS) and self._prev,
    +199            )
    +200
    +201        def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]:
    +202            join = super()._parse_join(skip_join_token)
    +203
    +204            if join:
    +205                join.set("global", join.args.pop("method", None))
    +206            return join
    +207
    +208        def _parse_function(
    +209            self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False
    +210        ) -> t.Optional[exp.Expression]:
    +211            func = super()._parse_function(functions, anonymous)
    +212
    +213            if isinstance(func, exp.Anonymous):
    +214                params = self._parse_func_params(func)
    +215
    +216                if params:
    +217                    return self.expression(
    +218                        exp.ParameterizedAgg,
    +219                        this=func.this,
    +220                        expressions=func.expressions,
    +221                        params=params,
    +222                    )
    +223
    +224            return func
     225
    -226            return func
    -227
    -228        def _parse_func_params(
    -229            self, this: t.Optional[exp.Func] = None
    -230        ) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
    -231            if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN):
    -232                return self._parse_csv(self._parse_lambda)
    -233            if self._match(TokenType.L_PAREN):
    -234                params = self._parse_csv(self._parse_lambda)
    -235                self._match_r_paren(this)
    -236                return params
    -237            return None
    -238
    -239        def _parse_quantile(self) -> exp.Quantile:
    -240            this = self._parse_lambda()
    -241            params = self._parse_func_params()
    -242            if params:
    -243                return self.expression(exp.Quantile, this=params[0], quantile=this)
    -244            return self.expression(exp.Quantile, this=this, quantile=exp.Literal.number(0.5))
    -245
    -246        def _parse_wrapped_id_vars(
    -247            self, optional: bool = False
    -248        ) -> t.List[t.Optional[exp.Expression]]:
    -249            return super()._parse_wrapped_id_vars(optional=True)
    +226        def _parse_func_params(
    +227            self, this: t.Optional[exp.Func] = None
    +228        ) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
    +229            if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN):
    +230                return self._parse_csv(self._parse_lambda)
    +231            if self._match(TokenType.L_PAREN):
    +232                params = self._parse_csv(self._parse_lambda)
    +233                self._match_r_paren(this)
    +234                return params
    +235            return None
    +236
    +237        def _parse_quantile(self) -> exp.Quantile:
    +238            this = self._parse_lambda()
    +239            params = self._parse_func_params()
    +240            if params:
    +241                return self.expression(exp.Quantile, this=params[0], quantile=this)
    +242            return self.expression(exp.Quantile, this=this, quantile=exp.Literal.number(0.5))
    +243
    +244        def _parse_wrapped_id_vars(
    +245            self, optional: bool = False
    +246        ) -> t.List[t.Optional[exp.Expression]]:
    +247            return super()._parse_wrapped_id_vars(optional=True)
    +248
    +249        def _parse_primary_key(
    +250            self, wrapped_optional: bool = False, in_props: bool = False
    +251        ) -> exp.Expression:
    +252            return super()._parse_primary_key(
    +253                wrapped_optional=wrapped_optional or in_props, in_props=in_props
    +254            )
     
    @@ -1024,7 +1039,7 @@ a parsed syntax tree.

    • error_level: the desired error level. -Default: ErrorLevel.RAISE
    • +Default: ErrorLevel.IMMEDIATE
    • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
    • @@ -1070,82 +1085,82 @@ Default: "nulls_are_small"
    -
    251    class Generator(generator.Generator):
    -252        STRUCT_DELIMITER = ("(", ")")
    -253
    -254        TYPE_MAPPING = {
    -255            **generator.Generator.TYPE_MAPPING,
    -256            exp.DataType.Type.ARRAY: "Array",
    -257            exp.DataType.Type.BIGINT: "Int64",
    -258            exp.DataType.Type.DATETIME64: "DateTime64",
    -259            exp.DataType.Type.DOUBLE: "Float64",
    -260            exp.DataType.Type.FLOAT: "Float32",
    -261            exp.DataType.Type.INT: "Int32",
    -262            exp.DataType.Type.INT128: "Int128",
    -263            exp.DataType.Type.INT256: "Int256",
    -264            exp.DataType.Type.MAP: "Map",
    -265            exp.DataType.Type.NULLABLE: "Nullable",
    -266            exp.DataType.Type.SMALLINT: "Int16",
    -267            exp.DataType.Type.STRUCT: "Tuple",
    -268            exp.DataType.Type.TINYINT: "Int8",
    -269            exp.DataType.Type.UBIGINT: "UInt64",
    -270            exp.DataType.Type.UINT: "UInt32",
    -271            exp.DataType.Type.UINT128: "UInt128",
    -272            exp.DataType.Type.UINT256: "UInt256",
    -273            exp.DataType.Type.USMALLINT: "UInt16",
    -274            exp.DataType.Type.UTINYINT: "UInt8",
    -275        }
    -276
    -277        TRANSFORMS = {
    -278            **generator.Generator.TRANSFORMS,
    -279            exp.AnyValue: rename_func("any"),
    -280            exp.ApproxDistinct: rename_func("uniq"),
    -281            exp.Array: inline_array_sql,
    -282            exp.CastToStrType: rename_func("CAST"),
    -283            exp.Final: lambda self, e: f"{self.sql(e, 'this')} FINAL",
    -284            exp.Map: lambda self, e: _lower_func(var_map_sql(self, e)),
    -285            exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}",
    -286            exp.Pivot: no_pivot_sql,
    -287            exp.Quantile: lambda self, e: self.func("quantile", e.args.get("quantile"))
    -288            + f"({self.sql(e, 'this')})",
    -289            exp.RegexpLike: lambda self, e: f"match({self.format_args(e.this, e.expression)})",
    -290            exp.StrPosition: lambda self, e: f"position({self.format_args(e.this, e.args.get('substr'), e.args.get('position'))})",
    -291            exp.VarMap: lambda self, e: _lower_func(var_map_sql(self, e)),
    -292        }
    -293
    -294        PROPERTIES_LOCATION = {
    -295            **generator.Generator.PROPERTIES_LOCATION,
    -296            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    -297            exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA,
    -298        }
    -299
    -300        JOIN_HINTS = False
    -301        TABLE_HINTS = False
    -302        EXPLICIT_UNION = True
    -303        GROUPINGS_SEP = ""
    +            
    256    class Generator(generator.Generator):
    +257        STRUCT_DELIMITER = ("(", ")")
    +258
    +259        TYPE_MAPPING = {
    +260            **generator.Generator.TYPE_MAPPING,
    +261            exp.DataType.Type.ARRAY: "Array",
    +262            exp.DataType.Type.BIGINT: "Int64",
    +263            exp.DataType.Type.DATETIME64: "DateTime64",
    +264            exp.DataType.Type.DOUBLE: "Float64",
    +265            exp.DataType.Type.FLOAT: "Float32",
    +266            exp.DataType.Type.INT: "Int32",
    +267            exp.DataType.Type.INT128: "Int128",
    +268            exp.DataType.Type.INT256: "Int256",
    +269            exp.DataType.Type.MAP: "Map",
    +270            exp.DataType.Type.NULLABLE: "Nullable",
    +271            exp.DataType.Type.SMALLINT: "Int16",
    +272            exp.DataType.Type.STRUCT: "Tuple",
    +273            exp.DataType.Type.TINYINT: "Int8",
    +274            exp.DataType.Type.UBIGINT: "UInt64",
    +275            exp.DataType.Type.UINT: "UInt32",
    +276            exp.DataType.Type.UINT128: "UInt128",
    +277            exp.DataType.Type.UINT256: "UInt256",
    +278            exp.DataType.Type.USMALLINT: "UInt16",
    +279            exp.DataType.Type.UTINYINT: "UInt8",
    +280        }
    +281
    +282        TRANSFORMS = {
    +283            **generator.Generator.TRANSFORMS,
    +284            exp.AnyValue: rename_func("any"),
    +285            exp.ApproxDistinct: rename_func("uniq"),
    +286            exp.Array: inline_array_sql,
    +287            exp.CastToStrType: rename_func("CAST"),
    +288            exp.Final: lambda self, e: f"{self.sql(e, 'this')} FINAL",
    +289            exp.Map: lambda self, e: _lower_func(var_map_sql(self, e)),
    +290            exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}",
    +291            exp.Pivot: no_pivot_sql,
    +292            exp.Quantile: lambda self, e: self.func("quantile", e.args.get("quantile"))
    +293            + f"({self.sql(e, 'this')})",
    +294            exp.RegexpLike: lambda self, e: f"match({self.format_args(e.this, e.expression)})",
    +295            exp.StrPosition: lambda self, e: f"position({self.format_args(e.this, e.args.get('substr'), e.args.get('position'))})",
    +296            exp.VarMap: lambda self, e: _lower_func(var_map_sql(self, e)),
    +297        }
    +298
    +299        PROPERTIES_LOCATION = {
    +300            **generator.Generator.PROPERTIES_LOCATION,
    +301            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    +302            exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA,
    +303        }
     304
    -305        def cte_sql(self, expression: exp.CTE) -> str:
    -306            if isinstance(expression.this, exp.Alias):
    -307                return self.sql(expression, "this")
    -308
    -309            return super().cte_sql(expression)
    -310
    -311        def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]:
    -312            return super().after_limit_modifiers(expression) + [
    -313                self.seg("SETTINGS ") + self.expressions(expression, key="settings", flat=True)
    -314                if expression.args.get("settings")
    -315                else "",
    -316                self.seg("FORMAT ") + self.sql(expression, "format")
    -317                if expression.args.get("format")
    -318                else "",
    -319            ]
    -320
    -321        def parameterizedagg_sql(self, expression: exp.Anonymous) -> str:
    -322            params = self.expressions(expression, "params", flat=True)
    -323            return self.func(expression.name, *expression.expressions) + f"({params})"
    -324
    -325        def placeholder_sql(self, expression: exp.Placeholder) -> str:
    -326            return f"{{{expression.name}: {self.sql(expression, 'kind')}}}"
    +305        JOIN_HINTS = False
    +306        TABLE_HINTS = False
    +307        EXPLICIT_UNION = True
    +308        GROUPINGS_SEP = ""
    +309
    +310        def cte_sql(self, expression: exp.CTE) -> str:
    +311            if isinstance(expression.this, exp.Alias):
    +312                return self.sql(expression, "this")
    +313
    +314            return super().cte_sql(expression)
    +315
    +316        def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]:
    +317            return super().after_limit_modifiers(expression) + [
    +318                self.seg("SETTINGS ") + self.expressions(expression, key="settings", flat=True)
    +319                if expression.args.get("settings")
    +320                else "",
    +321                self.seg("FORMAT ") + self.sql(expression, "format")
    +322                if expression.args.get("format")
    +323                else "",
    +324            ]
    +325
    +326        def parameterizedagg_sql(self, expression: exp.Anonymous) -> str:
    +327            params = self.expressions(expression, "params", flat=True)
    +328            return self.func(expression.name, *expression.expressions) + f"({params})"
    +329
    +330        def placeholder_sql(self, expression: exp.Placeholder) -> str:
    +331            return f"{{{expression.name}: {self.sql(expression, 'kind')}}}"
     
    @@ -1181,6 +1196,8 @@ represents a python time format and the output the target time format Default: "upper"
  • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
  • +
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
  • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1212,11 +1229,11 @@ Default: True
  • -
    305        def cte_sql(self, expression: exp.CTE) -> str:
    -306            if isinstance(expression.this, exp.Alias):
    -307                return self.sql(expression, "this")
    -308
    -309            return super().cte_sql(expression)
    +            
    310        def cte_sql(self, expression: exp.CTE) -> str:
    +311            if isinstance(expression.this, exp.Alias):
    +312                return self.sql(expression, "this")
    +313
    +314            return super().cte_sql(expression)
     
    @@ -1234,15 +1251,15 @@ Default: True
    -
    311        def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]:
    -312            return super().after_limit_modifiers(expression) + [
    -313                self.seg("SETTINGS ") + self.expressions(expression, key="settings", flat=True)
    -314                if expression.args.get("settings")
    -315                else "",
    -316                self.seg("FORMAT ") + self.sql(expression, "format")
    -317                if expression.args.get("format")
    -318                else "",
    -319            ]
    +            
    316        def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]:
    +317            return super().after_limit_modifiers(expression) + [
    +318                self.seg("SETTINGS ") + self.expressions(expression, key="settings", flat=True)
    +319                if expression.args.get("settings")
    +320                else "",
    +321                self.seg("FORMAT ") + self.sql(expression, "format")
    +322                if expression.args.get("format")
    +323                else "",
    +324            ]
     
    @@ -1260,9 +1277,9 @@ Default: True
    -
    321        def parameterizedagg_sql(self, expression: exp.Anonymous) -> str:
    -322            params = self.expressions(expression, "params", flat=True)
    -323            return self.func(expression.name, *expression.expressions) + f"({params})"
    +            
    326        def parameterizedagg_sql(self, expression: exp.Anonymous) -> str:
    +327            params = self.expressions(expression, "params", flat=True)
    +328            return self.func(expression.name, *expression.expressions) + f"({params})"
     
    @@ -1280,8 +1297,8 @@ Default: True
    -
    325        def placeholder_sql(self, expression: exp.Placeholder) -> str:
    -326            return f"{{{expression.name}: {self.sql(expression, 'kind')}}}"
    +            
    330        def placeholder_sql(self, expression: exp.Placeholder) -> str:
    +331            return f"{{{expression.name}: {self.sql(expression, 'kind')}}}"
     
    @@ -1428,7 +1445,6 @@ Default: True
    check_sql
    foreignkey_sql
    primarykey_sql
    -
    unique_sql
    if_sql
    matchagainst_sql
    jsonkeyvalue_sql
    @@ -1521,6 +1537,9 @@ Default: True
    when_sql
    merge_sql
    tochar_sql
    +
    dictproperty_sql
    +
    dictrange_sql
    +
    dictsubproperty_sql
    diff --git a/docs/sqlglot/dialects/databricks.html b/docs/sqlglot/dialects/databricks.html index 7f7af69..c97eb16 100644 --- a/docs/sqlglot/dialects/databricks.html +++ b/docs/sqlglot/dialects/databricks.html @@ -239,7 +239,7 @@ a parsed syntax tree.

    • error_level: the desired error level. -Default: ErrorLevel.RAISE
    • +Default: ErrorLevel.IMMEDIATE
    • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
    • @@ -336,6 +336,8 @@ represents a python time format and the output the target time format Default: "upper"
    • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
    • +
    • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
    • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
    • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -495,7 +497,6 @@ Default: True
    • check_sql
      foreignkey_sql
      primarykey_sql
      -
      unique_sql
      if_sql
      matchagainst_sql
      jsonkeyvalue_sql
      @@ -587,6 +588,9 @@ Default: True
      when_sql
      merge_sql
      tochar_sql
      +
      dictproperty_sql
      +
      dictrange_sql
      +
      dictsubproperty_sql
    sqlglot.dialects.spark.Spark.Generator
    diff --git a/docs/sqlglot/dialects/dialect.html b/docs/sqlglot/dialects/dialect.html index 70906dc..2c86235 100644 --- a/docs/sqlglot/dialects/dialect.html +++ b/docs/sqlglot/dialects/dialect.html @@ -210,6 +210,12 @@
  • strposition_to_locate_sql
  • +
  • + left_to_substring_sql +
  • +
  • + right_to_substring_sql +
  • timestrtotime_sql
  • @@ -277,535 +283,565 @@ 15 from sqlglot._typing import E 16 17 - 18class Dialects(str, Enum): - 19 DIALECT = "" - 20 - 21 BIGQUERY = "bigquery" - 22 CLICKHOUSE = "clickhouse" - 23 DUCKDB = "duckdb" - 24 HIVE = "hive" - 25 MYSQL = "mysql" - 26 ORACLE = "oracle" - 27 POSTGRES = "postgres" - 28 PRESTO = "presto" - 29 REDSHIFT = "redshift" - 30 SNOWFLAKE = "snowflake" - 31 SPARK = "spark" - 32 SPARK2 = "spark2" - 33 SQLITE = "sqlite" - 34 STARROCKS = "starrocks" - 35 TABLEAU = "tableau" - 36 TRINO = "trino" - 37 TSQL = "tsql" - 38 DATABRICKS = "databricks" - 39 DRILL = "drill" - 40 TERADATA = "teradata" - 41 - 42 - 43class _Dialect(type): - 44 classes: t.Dict[str, t.Type[Dialect]] = {} - 45 - 46 def __eq__(cls, other: t.Any) -> bool: - 47 if cls is other: - 48 return True - 49 if isinstance(other, str): - 50 return cls is cls.get(other) - 51 if isinstance(other, Dialect): - 52 return cls is type(other) - 53 - 54 return False - 55 - 56 def __hash__(cls) -> int: - 57 return hash(cls.__name__.lower()) + 18# Only Snowflake is currently known to resolve unquoted identifiers as uppercase. + 19# https://docs.snowflake.com/en/sql-reference/identifiers-syntax + 20RESOLVES_IDENTIFIERS_AS_UPPERCASE = {"snowflake"} + 21 + 22 + 23class Dialects(str, Enum): + 24 DIALECT = "" + 25 + 26 BIGQUERY = "bigquery" + 27 CLICKHOUSE = "clickhouse" + 28 DUCKDB = "duckdb" + 29 HIVE = "hive" + 30 MYSQL = "mysql" + 31 ORACLE = "oracle" + 32 POSTGRES = "postgres" + 33 PRESTO = "presto" + 34 REDSHIFT = "redshift" + 35 SNOWFLAKE = "snowflake" + 36 SPARK = "spark" + 37 SPARK2 = "spark2" + 38 SQLITE = "sqlite" + 39 STARROCKS = "starrocks" + 40 TABLEAU = "tableau" + 41 TRINO = "trino" + 42 TSQL = "tsql" + 43 DATABRICKS = "databricks" + 44 DRILL = "drill" + 45 TERADATA = "teradata" + 46 + 47 + 48class _Dialect(type): + 49 classes: t.Dict[str, t.Type[Dialect]] = {} + 50 + 51 def __eq__(cls, other: t.Any) -> bool: + 52 if cls is other: + 53 return True + 54 if isinstance(other, str): + 55 return cls is cls.get(other) + 56 if isinstance(other, Dialect): + 57 return cls is type(other) 58 - 59 @classmethod - 60 def __getitem__(cls, key: str) -> t.Type[Dialect]: - 61 return cls.classes[key] - 62 - 63 @classmethod - 64 def get( - 65 cls, key: str, default: t.Optional[t.Type[Dialect]] = None - 66 ) -> t.Optional[t.Type[Dialect]]: - 67 return cls.classes.get(key, default) - 68 - 69 def __new__(cls, clsname, bases, attrs): - 70 klass = super().__new__(cls, clsname, bases, attrs) - 71 enum = Dialects.__members__.get(clsname.upper()) - 72 cls.classes[enum.value if enum is not None else clsname.lower()] = klass + 59 return False + 60 + 61 def __hash__(cls) -> int: + 62 return hash(cls.__name__.lower()) + 63 + 64 @classmethod + 65 def __getitem__(cls, key: str) -> t.Type[Dialect]: + 66 return cls.classes[key] + 67 + 68 @classmethod + 69 def get( + 70 cls, key: str, default: t.Optional[t.Type[Dialect]] = None + 71 ) -> t.Optional[t.Type[Dialect]]: + 72 return cls.classes.get(key, default) 73 - 74 klass.time_trie = new_trie(klass.time_mapping) - 75 klass.inverse_time_mapping = {v: k for k, v in klass.time_mapping.items()} - 76 klass.inverse_time_trie = new_trie(klass.inverse_time_mapping) - 77 - 78 klass.tokenizer_class = getattr(klass, "Tokenizer", Tokenizer) - 79 klass.parser_class = getattr(klass, "Parser", Parser) - 80 klass.generator_class = getattr(klass, "Generator", Generator) - 81 - 82 klass.quote_start, klass.quote_end = list(klass.tokenizer_class._QUOTES.items())[0] - 83 klass.identifier_start, klass.identifier_end = list( - 84 klass.tokenizer_class._IDENTIFIERS.items() - 85 )[0] + 74 def __new__(cls, clsname, bases, attrs): + 75 klass = super().__new__(cls, clsname, bases, attrs) + 76 enum = Dialects.__members__.get(clsname.upper()) + 77 cls.classes[enum.value if enum is not None else clsname.lower()] = klass + 78 + 79 klass.time_trie = new_trie(klass.time_mapping) + 80 klass.inverse_time_mapping = {v: k for k, v in klass.time_mapping.items()} + 81 klass.inverse_time_trie = new_trie(klass.inverse_time_mapping) + 82 + 83 klass.tokenizer_class = getattr(klass, "Tokenizer", Tokenizer) + 84 klass.parser_class = getattr(klass, "Parser", Parser) + 85 klass.generator_class = getattr(klass, "Generator", Generator) 86 - 87 def get_start_end(token_type: TokenType) -> t.Tuple[t.Optional[str], t.Optional[str]]: - 88 return next( - 89 ( - 90 (s, e) - 91 for s, (e, t) in klass.tokenizer_class._FORMAT_STRINGS.items() - 92 if t == token_type - 93 ), - 94 (None, None), - 95 ) - 96 - 97 klass.bit_start, klass.bit_end = get_start_end(TokenType.BIT_STRING) - 98 klass.hex_start, klass.hex_end = get_start_end(TokenType.HEX_STRING) - 99 klass.byte_start, klass.byte_end = get_start_end(TokenType.BYTE_STRING) -100 klass.raw_start, klass.raw_end = get_start_end(TokenType.RAW_STRING) + 87 klass.quote_start, klass.quote_end = list(klass.tokenizer_class._QUOTES.items())[0] + 88 klass.identifier_start, klass.identifier_end = list( + 89 klass.tokenizer_class._IDENTIFIERS.items() + 90 )[0] + 91 + 92 def get_start_end(token_type: TokenType) -> t.Tuple[t.Optional[str], t.Optional[str]]: + 93 return next( + 94 ( + 95 (s, e) + 96 for s, (e, t) in klass.tokenizer_class._FORMAT_STRINGS.items() + 97 if t == token_type + 98 ), + 99 (None, None), +100 ) 101 -102 return klass -103 -104 -105class Dialect(metaclass=_Dialect): -106 index_offset = 0 -107 unnest_column_only = False -108 alias_post_tablesample = False -109 normalize_functions: t.Optional[str] = "upper" -110 null_ordering = "nulls_are_small" -111 -112 date_format = "'%Y-%m-%d'" -113 dateint_format = "'%Y%m%d'" -114 time_format = "'%Y-%m-%d %H:%M:%S'" -115 time_mapping: t.Dict[str, str] = {} -116 -117 # autofilled -118 quote_start = None -119 quote_end = None -120 identifier_start = None -121 identifier_end = None -122 -123 time_trie = None -124 inverse_time_mapping = None -125 inverse_time_trie = None -126 tokenizer_class = None -127 parser_class = None -128 generator_class = None -129 -130 def __eq__(self, other: t.Any) -> bool: -131 return type(self) == other +102 klass.bit_start, klass.bit_end = get_start_end(TokenType.BIT_STRING) +103 klass.hex_start, klass.hex_end = get_start_end(TokenType.HEX_STRING) +104 klass.byte_start, klass.byte_end = get_start_end(TokenType.BYTE_STRING) +105 klass.raw_start, klass.raw_end = get_start_end(TokenType.RAW_STRING) +106 +107 klass.tokenizer_class.identifiers_can_start_with_digit = ( +108 klass.identifiers_can_start_with_digit +109 ) +110 +111 return klass +112 +113 +114class Dialect(metaclass=_Dialect): +115 index_offset = 0 +116 unnest_column_only = False +117 alias_post_tablesample = False +118 identifiers_can_start_with_digit = False +119 normalize_functions: t.Optional[str] = "upper" +120 null_ordering = "nulls_are_small" +121 +122 date_format = "'%Y-%m-%d'" +123 dateint_format = "'%Y%m%d'" +124 time_format = "'%Y-%m-%d %H:%M:%S'" +125 time_mapping: t.Dict[str, str] = {} +126 +127 # autofilled +128 quote_start = None +129 quote_end = None +130 identifier_start = None +131 identifier_end = None 132 -133 def __hash__(self) -> int: -134 return hash(type(self)) -135 -136 @classmethod -137 def get_or_raise(cls, dialect: DialectType) -> t.Type[Dialect]: -138 if not dialect: -139 return cls -140 if isinstance(dialect, _Dialect): -141 return dialect -142 if isinstance(dialect, Dialect): -143 return dialect.__class__ -144 -145 result = cls.get(dialect) -146 if not result: -147 raise ValueError(f"Unknown dialect '{dialect}'") -148 -149 return result -150 -151 @classmethod -152 def format_time( -153 cls, expression: t.Optional[str | exp.Expression] -154 ) -> t.Optional[exp.Expression]: -155 if isinstance(expression, str): -156 return exp.Literal.string( -157 format_time( -158 expression[1:-1], # the time formats are quoted -159 cls.time_mapping, -160 cls.time_trie, -161 ) -162 ) -163 if expression and expression.is_string: -164 return exp.Literal.string( -165 format_time( -166 expression.this, -167 cls.time_mapping, -168 cls.time_trie, -169 ) -170 ) -171 return expression -172 -173 def parse(self, sql: str, **opts) -> t.List[t.Optional[exp.Expression]]: -174 return self.parser(**opts).parse(self.tokenize(sql), sql) -175 -176 def parse_into( -177 self, expression_type: exp.IntoType, sql: str, **opts -178 ) -> t.List[t.Optional[exp.Expression]]: -179 return self.parser(**opts).parse_into(expression_type, self.tokenize(sql), sql) -180 -181 def generate(self, expression: t.Optional[exp.Expression], **opts) -> str: -182 return self.generator(**opts).generate(expression) -183 -184 def transpile(self, sql: str, **opts) -> t.List[str]: -185 return [self.generate(expression, **opts) for expression in self.parse(sql)] -186 -187 def tokenize(self, sql: str) -> t.List[Token]: -188 return self.tokenizer.tokenize(sql) -189 -190 @property -191 def tokenizer(self) -> Tokenizer: -192 if not hasattr(self, "_tokenizer"): -193 self._tokenizer = self.tokenizer_class() # type: ignore -194 return self._tokenizer -195 -196 def parser(self, **opts) -> Parser: -197 return self.parser_class( # type: ignore -198 **{ -199 "index_offset": self.index_offset, -200 "unnest_column_only": self.unnest_column_only, -201 "alias_post_tablesample": self.alias_post_tablesample, -202 "null_ordering": self.null_ordering, -203 **opts, -204 }, -205 ) -206 -207 def generator(self, **opts) -> Generator: -208 return self.generator_class( # type: ignore -209 **{ -210 "quote_start": self.quote_start, -211 "quote_end": self.quote_end, -212 "bit_start": self.bit_start, -213 "bit_end": self.bit_end, -214 "hex_start": self.hex_start, -215 "hex_end": self.hex_end, -216 "byte_start": self.byte_start, -217 "byte_end": self.byte_end, -218 "raw_start": self.raw_start, -219 "raw_end": self.raw_end, -220 "identifier_start": self.identifier_start, -221 "identifier_end": self.identifier_end, -222 "string_escape": self.tokenizer_class.STRING_ESCAPES[0], -223 "identifier_escape": self.tokenizer_class.IDENTIFIER_ESCAPES[0], -224 "index_offset": self.index_offset, -225 "time_mapping": self.inverse_time_mapping, -226 "time_trie": self.inverse_time_trie, -227 "unnest_column_only": self.unnest_column_only, -228 "alias_post_tablesample": self.alias_post_tablesample, -229 "normalize_functions": self.normalize_functions, -230 "null_ordering": self.null_ordering, -231 **opts, -232 } -233 ) -234 -235 -236DialectType = t.Union[str, Dialect, t.Type[Dialect], None] -237 -238 -239def rename_func(name: str) -> t.Callable[[Generator, exp.Expression], str]: -240 return lambda self, expression: self.func(name, *flatten(expression.args.values())) -241 -242 -243def approx_count_distinct_sql(self: Generator, expression: exp.ApproxDistinct) -> str: -244 if expression.args.get("accuracy"): -245 self.unsupported("APPROX_COUNT_DISTINCT does not support accuracy") -246 return self.func("APPROX_COUNT_DISTINCT", expression.this) -247 +133 time_trie = None +134 inverse_time_mapping = None +135 inverse_time_trie = None +136 tokenizer_class = None +137 parser_class = None +138 generator_class = None +139 +140 def __eq__(self, other: t.Any) -> bool: +141 return type(self) == other +142 +143 def __hash__(self) -> int: +144 return hash(type(self)) +145 +146 @classmethod +147 def get_or_raise(cls, dialect: DialectType) -> t.Type[Dialect]: +148 if not dialect: +149 return cls +150 if isinstance(dialect, _Dialect): +151 return dialect +152 if isinstance(dialect, Dialect): +153 return dialect.__class__ +154 +155 result = cls.get(dialect) +156 if not result: +157 raise ValueError(f"Unknown dialect '{dialect}'") +158 +159 return result +160 +161 @classmethod +162 def format_time( +163 cls, expression: t.Optional[str | exp.Expression] +164 ) -> t.Optional[exp.Expression]: +165 if isinstance(expression, str): +166 return exp.Literal.string( +167 format_time( +168 expression[1:-1], # the time formats are quoted +169 cls.time_mapping, +170 cls.time_trie, +171 ) +172 ) +173 if expression and expression.is_string: +174 return exp.Literal.string( +175 format_time( +176 expression.this, +177 cls.time_mapping, +178 cls.time_trie, +179 ) +180 ) +181 return expression +182 +183 def parse(self, sql: str, **opts) -> t.List[t.Optional[exp.Expression]]: +184 return self.parser(**opts).parse(self.tokenize(sql), sql) +185 +186 def parse_into( +187 self, expression_type: exp.IntoType, sql: str, **opts +188 ) -> t.List[t.Optional[exp.Expression]]: +189 return self.parser(**opts).parse_into(expression_type, self.tokenize(sql), sql) +190 +191 def generate(self, expression: t.Optional[exp.Expression], **opts) -> str: +192 return self.generator(**opts).generate(expression) +193 +194 def transpile(self, sql: str, **opts) -> t.List[str]: +195 return [self.generate(expression, **opts) for expression in self.parse(sql)] +196 +197 def tokenize(self, sql: str) -> t.List[Token]: +198 return self.tokenizer.tokenize(sql) +199 +200 @property +201 def tokenizer(self) -> Tokenizer: +202 if not hasattr(self, "_tokenizer"): +203 self._tokenizer = self.tokenizer_class() # type: ignore +204 return self._tokenizer +205 +206 def parser(self, **opts) -> Parser: +207 return self.parser_class( # type: ignore +208 **{ +209 "index_offset": self.index_offset, +210 "unnest_column_only": self.unnest_column_only, +211 "alias_post_tablesample": self.alias_post_tablesample, +212 "null_ordering": self.null_ordering, +213 **opts, +214 }, +215 ) +216 +217 def generator(self, **opts) -> Generator: +218 return self.generator_class( # type: ignore +219 **{ +220 "quote_start": self.quote_start, +221 "quote_end": self.quote_end, +222 "bit_start": self.bit_start, +223 "bit_end": self.bit_end, +224 "hex_start": self.hex_start, +225 "hex_end": self.hex_end, +226 "byte_start": self.byte_start, +227 "byte_end": self.byte_end, +228 "raw_start": self.raw_start, +229 "raw_end": self.raw_end, +230 "identifier_start": self.identifier_start, +231 "identifier_end": self.identifier_end, +232 "string_escape": self.tokenizer_class.STRING_ESCAPES[0], +233 "identifier_escape": self.tokenizer_class.IDENTIFIER_ESCAPES[0], +234 "index_offset": self.index_offset, +235 "time_mapping": self.inverse_time_mapping, +236 "time_trie": self.inverse_time_trie, +237 "unnest_column_only": self.unnest_column_only, +238 "alias_post_tablesample": self.alias_post_tablesample, +239 "identifiers_can_start_with_digit": self.identifiers_can_start_with_digit, +240 "normalize_functions": self.normalize_functions, +241 "null_ordering": self.null_ordering, +242 **opts, +243 } +244 ) +245 +246 +247DialectType = t.Union[str, Dialect, t.Type[Dialect], None] 248 -249def if_sql(self: Generator, expression: exp.If) -> str: -250 return self.func( -251 "IF", expression.this, expression.args.get("true"), expression.args.get("false") -252 ) +249 +250def rename_func(name: str) -> t.Callable[[Generator, exp.Expression], str]: +251 return lambda self, expression: self.func(name, *flatten(expression.args.values())) +252 253 -254 -255def arrow_json_extract_sql(self: Generator, expression: exp.JSONExtract | exp.JSONBExtract) -> str: -256 return self.binary(expression, "->") -257 +254def approx_count_distinct_sql(self: Generator, expression: exp.ApproxDistinct) -> str: +255 if expression.args.get("accuracy"): +256 self.unsupported("APPROX_COUNT_DISTINCT does not support accuracy") +257 return self.func("APPROX_COUNT_DISTINCT", expression.this) 258 -259def arrow_json_extract_scalar_sql( -260 self: Generator, expression: exp.JSONExtractScalar | exp.JSONBExtractScalar -261) -> str: -262 return self.binary(expression, "->>") -263 +259 +260def if_sql(self: Generator, expression: exp.If) -> str: +261 return self.func( +262 "IF", expression.this, expression.args.get("true"), expression.args.get("false") +263 ) 264 -265def inline_array_sql(self: Generator, expression: exp.Array) -> str: -266 return f"[{self.expressions(expression)}]" -267 +265 +266def arrow_json_extract_sql(self: Generator, expression: exp.JSONExtract | exp.JSONBExtract) -> str: +267 return self.binary(expression, "->") 268 -269def no_ilike_sql(self: Generator, expression: exp.ILike) -> str: -270 return self.like_sql( -271 exp.Like( -272 this=exp.Lower(this=expression.this), -273 expression=expression.args["expression"], -274 ) -275 ) -276 -277 -278def no_paren_current_date_sql(self: Generator, expression: exp.CurrentDate) -> str: -279 zone = self.sql(expression, "this") -280 return f"CURRENT_DATE AT TIME ZONE {zone}" if zone else "CURRENT_DATE" -281 -282 -283def no_recursive_cte_sql(self: Generator, expression: exp.With) -> str: -284 if expression.args.get("recursive"): -285 self.unsupported("Recursive CTEs are unsupported") -286 expression.args["recursive"] = False -287 return self.with_sql(expression) +269 +270def arrow_json_extract_scalar_sql( +271 self: Generator, expression: exp.JSONExtractScalar | exp.JSONBExtractScalar +272) -> str: +273 return self.binary(expression, "->>") +274 +275 +276def inline_array_sql(self: Generator, expression: exp.Array) -> str: +277 return f"[{self.expressions(expression)}]" +278 +279 +280def no_ilike_sql(self: Generator, expression: exp.ILike) -> str: +281 return self.like_sql( +282 exp.Like( +283 this=exp.Lower(this=expression.this), +284 expression=expression.args["expression"], +285 ) +286 ) +287 288 -289 -290def no_safe_divide_sql(self: Generator, expression: exp.SafeDivide) -> str: -291 n = self.sql(expression, "this") -292 d = self.sql(expression, "expression") -293 return f"IF({d} <> 0, {n} / {d}, NULL)" -294 -295 -296def no_tablesample_sql(self: Generator, expression: exp.TableSample) -> str: -297 self.unsupported("TABLESAMPLE unsupported") -298 return self.sql(expression.this) +289def no_paren_current_date_sql(self: Generator, expression: exp.CurrentDate) -> str: +290 zone = self.sql(expression, "this") +291 return f"CURRENT_DATE AT TIME ZONE {zone}" if zone else "CURRENT_DATE" +292 +293 +294def no_recursive_cte_sql(self: Generator, expression: exp.With) -> str: +295 if expression.args.get("recursive"): +296 self.unsupported("Recursive CTEs are unsupported") +297 expression.args["recursive"] = False +298 return self.with_sql(expression) 299 300 -301def no_pivot_sql(self: Generator, expression: exp.Pivot) -> str: -302 self.unsupported("PIVOT unsupported") -303 return "" -304 +301def no_safe_divide_sql(self: Generator, expression: exp.SafeDivide) -> str: +302 n = self.sql(expression, "this") +303 d = self.sql(expression, "expression") +304 return f"IF({d} <> 0, {n} / {d}, NULL)" 305 -306def no_trycast_sql(self: Generator, expression: exp.TryCast) -> str: -307 return self.cast_sql(expression) -308 -309 -310def no_properties_sql(self: Generator, expression: exp.Properties) -> str: -311 self.unsupported("Properties unsupported") -312 return "" -313 -314 -315def no_comment_column_constraint_sql( -316 self: Generator, expression: exp.CommentColumnConstraint -317) -> str: -318 self.unsupported("CommentColumnConstraint unsupported") -319 return "" +306 +307def no_tablesample_sql(self: Generator, expression: exp.TableSample) -> str: +308 self.unsupported("TABLESAMPLE unsupported") +309 return self.sql(expression.this) +310 +311 +312def no_pivot_sql(self: Generator, expression: exp.Pivot) -> str: +313 self.unsupported("PIVOT unsupported") +314 return "" +315 +316 +317def no_trycast_sql(self: Generator, expression: exp.TryCast) -> str: +318 return self.cast_sql(expression) +319 320 -321 -322def str_position_sql(self: Generator, expression: exp.StrPosition) -> str: -323 this = self.sql(expression, "this") -324 substr = self.sql(expression, "substr") -325 position = self.sql(expression, "position") -326 if position: -327 return f"STRPOS(SUBSTR({this}, {position}), {substr}) + {position} - 1" -328 return f"STRPOS({this}, {substr})" -329 -330 -331def struct_extract_sql(self: Generator, expression: exp.StructExtract) -> str: -332 this = self.sql(expression, "this") -333 struct_key = self.sql(exp.Identifier(this=expression.expression, quoted=True)) -334 return f"{this}.{struct_key}" -335 -336 -337def var_map_sql( -338 self: Generator, expression: exp.Map | exp.VarMap, map_func_name: str = "MAP" -339) -> str: -340 keys = expression.args["keys"] -341 values = expression.args["values"] -342 -343 if not isinstance(keys, exp.Array) or not isinstance(values, exp.Array): -344 self.unsupported("Cannot convert array columns into map.") -345 return self.func(map_func_name, keys, values) +321def no_properties_sql(self: Generator, expression: exp.Properties) -> str: +322 self.unsupported("Properties unsupported") +323 return "" +324 +325 +326def no_comment_column_constraint_sql( +327 self: Generator, expression: exp.CommentColumnConstraint +328) -> str: +329 self.unsupported("CommentColumnConstraint unsupported") +330 return "" +331 +332 +333def str_position_sql(self: Generator, expression: exp.StrPosition) -> str: +334 this = self.sql(expression, "this") +335 substr = self.sql(expression, "substr") +336 position = self.sql(expression, "position") +337 if position: +338 return f"STRPOS(SUBSTR({this}, {position}), {substr}) + {position} - 1" +339 return f"STRPOS({this}, {substr})" +340 +341 +342def struct_extract_sql(self: Generator, expression: exp.StructExtract) -> str: +343 this = self.sql(expression, "this") +344 struct_key = self.sql(exp.Identifier(this=expression.expression, quoted=True)) +345 return f"{this}.{struct_key}" 346 -347 args = [] -348 for key, value in zip(keys.expressions, values.expressions): -349 args.append(self.sql(key)) -350 args.append(self.sql(value)) -351 return self.func(map_func_name, *args) -352 +347 +348def var_map_sql( +349 self: Generator, expression: exp.Map | exp.VarMap, map_func_name: str = "MAP" +350) -> str: +351 keys = expression.args["keys"] +352 values = expression.args["values"] 353 -354def format_time_lambda( -355 exp_class: t.Type[E], dialect: str, default: t.Optional[bool | str] = None -356) -> t.Callable[[t.List], E]: -357 """Helper used for time expressions. -358 -359 Args: -360 exp_class: the expression class to instantiate. -361 dialect: target sql dialect. -362 default: the default format, True being time. +354 if not isinstance(keys, exp.Array) or not isinstance(values, exp.Array): +355 self.unsupported("Cannot convert array columns into map.") +356 return self.func(map_func_name, keys, values) +357 +358 args = [] +359 for key, value in zip(keys.expressions, values.expressions): +360 args.append(self.sql(key)) +361 args.append(self.sql(value)) +362 return self.func(map_func_name, *args) 363 -364 Returns: -365 A callable that can be used to return the appropriately formatted time expression. -366 """ -367 -368 def _format_time(args: t.List): -369 return exp_class( -370 this=seq_get(args, 0), -371 format=Dialect[dialect].format_time( -372 seq_get(args, 1) -373 or (Dialect[dialect].time_format if default is True else default or None) -374 ), -375 ) -376 -377 return _format_time +364 +365def format_time_lambda( +366 exp_class: t.Type[E], dialect: str, default: t.Optional[bool | str] = None +367) -> t.Callable[[t.List], E]: +368 """Helper used for time expressions. +369 +370 Args: +371 exp_class: the expression class to instantiate. +372 dialect: target sql dialect. +373 default: the default format, True being time. +374 +375 Returns: +376 A callable that can be used to return the appropriately formatted time expression. +377 """ 378 -379 -380def create_with_partitions_sql(self: Generator, expression: exp.Create) -> str: -381 """ -382 In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the -383 PARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding -384 columns are removed from the create statement. -385 """ -386 has_schema = isinstance(expression.this, exp.Schema) -387 is_partitionable = expression.args.get("kind") in ("TABLE", "VIEW") -388 -389 if has_schema and is_partitionable: -390 expression = expression.copy() -391 prop = expression.find(exp.PartitionedByProperty) -392 if prop and prop.this and not isinstance(prop.this, exp.Schema): -393 schema = expression.this -394 columns = {v.name.upper() for v in prop.this.expressions} -395 partitions = [col for col in schema.expressions if col.name.upper() in columns] -396 schema.set("expressions", [e for e in schema.expressions if e not in partitions]) -397 prop.replace(exp.PartitionedByProperty(this=exp.Schema(expressions=partitions))) -398 expression.set("this", schema) +379 def _format_time(args: t.List): +380 return exp_class( +381 this=seq_get(args, 0), +382 format=Dialect[dialect].format_time( +383 seq_get(args, 1) +384 or (Dialect[dialect].time_format if default is True else default or None) +385 ), +386 ) +387 +388 return _format_time +389 +390 +391def create_with_partitions_sql(self: Generator, expression: exp.Create) -> str: +392 """ +393 In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the +394 PARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding +395 columns are removed from the create statement. +396 """ +397 has_schema = isinstance(expression.this, exp.Schema) +398 is_partitionable = expression.args.get("kind") in ("TABLE", "VIEW") 399 -400 return self.create_sql(expression) -401 -402 -403def parse_date_delta( -404 exp_class: t.Type[E], unit_mapping: t.Optional[t.Dict[str, str]] = None -405) -> t.Callable[[t.List], E]: -406 def inner_func(args: t.List) -> E: -407 unit_based = len(args) == 3 -408 this = args[2] if unit_based else seq_get(args, 0) -409 unit = args[0] if unit_based else exp.Literal.string("DAY") -410 unit = exp.var(unit_mapping.get(unit.name.lower(), unit.name)) if unit_mapping else unit -411 return exp_class(this=this, expression=seq_get(args, 1), unit=unit) +400 if has_schema and is_partitionable: +401 expression = expression.copy() +402 prop = expression.find(exp.PartitionedByProperty) +403 if prop and prop.this and not isinstance(prop.this, exp.Schema): +404 schema = expression.this +405 columns = {v.name.upper() for v in prop.this.expressions} +406 partitions = [col for col in schema.expressions if col.name.upper() in columns] +407 schema.set("expressions", [e for e in schema.expressions if e not in partitions]) +408 prop.replace(exp.PartitionedByProperty(this=exp.Schema(expressions=partitions))) +409 expression.set("this", schema) +410 +411 return self.create_sql(expression) 412 -413 return inner_func -414 -415 -416def parse_date_delta_with_interval( -417 expression_class: t.Type[E], -418) -> t.Callable[[t.List], t.Optional[E]]: -419 def func(args: t.List) -> t.Optional[E]: -420 if len(args) < 2: -421 return None -422 -423 interval = args[1] -424 expression = interval.this -425 if expression and expression.is_string: -426 expression = exp.Literal.number(expression.this) -427 -428 return expression_class( -429 this=args[0], -430 expression=expression, -431 unit=exp.Literal.string(interval.text("unit")), -432 ) +413 +414def parse_date_delta( +415 exp_class: t.Type[E], unit_mapping: t.Optional[t.Dict[str, str]] = None +416) -> t.Callable[[t.List], E]: +417 def inner_func(args: t.List) -> E: +418 unit_based = len(args) == 3 +419 this = args[2] if unit_based else seq_get(args, 0) +420 unit = args[0] if unit_based else exp.Literal.string("DAY") +421 unit = exp.var(unit_mapping.get(unit.name.lower(), unit.name)) if unit_mapping else unit +422 return exp_class(this=this, expression=seq_get(args, 1), unit=unit) +423 +424 return inner_func +425 +426 +427def parse_date_delta_with_interval( +428 expression_class: t.Type[E], +429) -> t.Callable[[t.List], t.Optional[E]]: +430 def func(args: t.List) -> t.Optional[E]: +431 if len(args) < 2: +432 return None 433 -434 return func -435 -436 -437def date_trunc_to_time(args: t.List) -> exp.DateTrunc | exp.TimestampTrunc: -438 unit = seq_get(args, 0) -439 this = seq_get(args, 1) -440 -441 if isinstance(this, exp.Cast) and this.is_type(exp.DataType.Type.DATE): -442 return exp.DateTrunc(unit=unit, this=this) -443 return exp.TimestampTrunc(this=this, unit=unit) +434 interval = args[1] +435 expression = interval.this +436 if expression and expression.is_string: +437 expression = exp.Literal.number(expression.this) +438 +439 return expression_class( +440 this=args[0], +441 expression=expression, +442 unit=exp.Literal.string(interval.text("unit")), +443 ) 444 -445 -446def timestamptrunc_sql(self: Generator, expression: exp.TimestampTrunc) -> str: -447 return self.func( -448 "DATE_TRUNC", exp.Literal.string(expression.text("unit") or "day"), expression.this -449 ) -450 +445 return func +446 +447 +448def date_trunc_to_time(args: t.List) -> exp.DateTrunc | exp.TimestampTrunc: +449 unit = seq_get(args, 0) +450 this = seq_get(args, 1) 451 -452def locate_to_strposition(args: t.List) -> exp.Expression: -453 return exp.StrPosition( -454 this=seq_get(args, 1), -455 substr=seq_get(args, 0), -456 position=seq_get(args, 2), -457 ) -458 -459 -460def strposition_to_locate_sql(self: Generator, expression: exp.StrPosition) -> str: -461 return self.func( -462 "LOCATE", expression.args.get("substr"), expression.this, expression.args.get("position") -463 ) -464 -465 -466def timestrtotime_sql(self: Generator, expression: exp.TimeStrToTime) -> str: -467 return f"CAST({self.sql(expression, 'this')} AS TIMESTAMP)" -468 +452 if isinstance(this, exp.Cast) and this.is_type("date"): +453 return exp.DateTrunc(unit=unit, this=this) +454 return exp.TimestampTrunc(this=this, unit=unit) +455 +456 +457def timestamptrunc_sql(self: Generator, expression: exp.TimestampTrunc) -> str: +458 return self.func( +459 "DATE_TRUNC", exp.Literal.string(expression.text("unit") or "day"), expression.this +460 ) +461 +462 +463def locate_to_strposition(args: t.List) -> exp.Expression: +464 return exp.StrPosition( +465 this=seq_get(args, 1), +466 substr=seq_get(args, 0), +467 position=seq_get(args, 2), +468 ) 469 -470def datestrtodate_sql(self: Generator, expression: exp.DateStrToDate) -> str: -471 return f"CAST({self.sql(expression, 'this')} AS DATE)" -472 -473 -474def min_or_least(self: Generator, expression: exp.Min) -> str: -475 name = "LEAST" if expression.expressions else "MIN" -476 return rename_func(name)(self, expression) -477 -478 -479def max_or_greatest(self: Generator, expression: exp.Max) -> str: -480 name = "GREATEST" if expression.expressions else "MAX" -481 return rename_func(name)(self, expression) -482 -483 -484def count_if_to_sum(self: Generator, expression: exp.CountIf) -> str: -485 cond = expression.this -486 -487 if isinstance(expression.this, exp.Distinct): -488 cond = expression.this.expressions[0] -489 self.unsupported("DISTINCT is not supported when converting COUNT_IF to SUM") -490 -491 return self.func("sum", exp.func("if", cond, 1, 0)) -492 -493 -494def trim_sql(self: Generator, expression: exp.Trim) -> str: -495 target = self.sql(expression, "this") -496 trim_type = self.sql(expression, "position") -497 remove_chars = self.sql(expression, "expression") -498 collation = self.sql(expression, "collation") +470 +471def strposition_to_locate_sql(self: Generator, expression: exp.StrPosition) -> str: +472 return self.func( +473 "LOCATE", expression.args.get("substr"), expression.this, expression.args.get("position") +474 ) +475 +476 +477def left_to_substring_sql(self: Generator, expression: exp.Left) -> str: +478 expression = expression.copy() +479 return self.sql( +480 exp.Substring( +481 this=expression.this, start=exp.Literal.number(1), length=expression.expression +482 ) +483 ) +484 +485 +486def right_to_substring_sql(self: Generator, expression: exp.Left) -> str: +487 expression = expression.copy() +488 return self.sql( +489 exp.Substring( +490 this=expression.this, +491 start=exp.Length(this=expression.this) - exp.paren(expression.expression - 1), +492 ) +493 ) +494 +495 +496def timestrtotime_sql(self: Generator, expression: exp.TimeStrToTime) -> str: +497 return f"CAST({self.sql(expression, 'this')} AS TIMESTAMP)" +498 499 -500 # Use TRIM/LTRIM/RTRIM syntax if the expression isn't database-specific -501 if not remove_chars and not collation: -502 return self.trim_sql(expression) +500def datestrtodate_sql(self: Generator, expression: exp.DateStrToDate) -> str: +501 return f"CAST({self.sql(expression, 'this')} AS DATE)" +502 503 -504 trim_type = f"{trim_type} " if trim_type else "" -505 remove_chars = f"{remove_chars} " if remove_chars else "" -506 from_part = "FROM " if trim_type or remove_chars else "" -507 collation = f" COLLATE {collation}" if collation else "" -508 return f"TRIM({trim_type}{remove_chars}{from_part}{target}{collation})" -509 -510 -511def str_to_time_sql(self: Generator, expression: exp.Expression) -> str: -512 return self.func("STRPTIME", expression.this, self.format_time(expression)) +504def min_or_least(self: Generator, expression: exp.Min) -> str: +505 name = "LEAST" if expression.expressions else "MIN" +506 return rename_func(name)(self, expression) +507 +508 +509def max_or_greatest(self: Generator, expression: exp.Max) -> str: +510 name = "GREATEST" if expression.expressions else "MAX" +511 return rename_func(name)(self, expression) +512 513 -514 -515def ts_or_ds_to_date_sql(dialect: str) -> t.Callable: -516 def _ts_or_ds_to_date_sql(self: Generator, expression: exp.TsOrDsToDate) -> str: -517 _dialect = Dialect.get_or_raise(dialect) -518 time_format = self.format_time(expression) -519 if time_format and time_format not in (_dialect.time_format, _dialect.date_format): -520 return f"CAST({str_to_time_sql(self, expression)} AS DATE)" -521 return f"CAST({self.sql(expression, 'this')} AS DATE)" +514def count_if_to_sum(self: Generator, expression: exp.CountIf) -> str: +515 cond = expression.this +516 +517 if isinstance(expression.this, exp.Distinct): +518 cond = expression.this.expressions[0] +519 self.unsupported("DISTINCT is not supported when converting COUNT_IF to SUM") +520 +521 return self.func("sum", exp.func("if", cond, 1, 0)) 522 -523 return _ts_or_ds_to_date_sql -524 -525 -526# Spark, DuckDB use (almost) the same naming scheme for the output columns of the PIVOT operator -527def pivot_column_names(aggregations: t.List[exp.Expression], dialect: DialectType) -> t.List[str]: -528 names = [] -529 for agg in aggregations: -530 if isinstance(agg, exp.Alias): -531 names.append(agg.alias) -532 else: -533 """ -534 This case corresponds to aggregations without aliases being used as suffixes -535 (e.g. col_avg(foo)). We need to unquote identifiers because they're going to -536 be quoted in the base parser's `_parse_pivot` method, due to `to_identifier`. -537 Otherwise, we'd end up with `col_avg(`foo`)` (notice the double quotes). -538 """ -539 agg_all_unquoted = agg.transform( -540 lambda node: exp.Identifier(this=node.name, quoted=False) -541 if isinstance(node, exp.Identifier) -542 else node -543 ) -544 names.append(agg_all_unquoted.sql(dialect=dialect, normalize_functions="lower")) -545 -546 return names +523 +524def trim_sql(self: Generator, expression: exp.Trim) -> str: +525 target = self.sql(expression, "this") +526 trim_type = self.sql(expression, "position") +527 remove_chars = self.sql(expression, "expression") +528 collation = self.sql(expression, "collation") +529 +530 # Use TRIM/LTRIM/RTRIM syntax if the expression isn't database-specific +531 if not remove_chars and not collation: +532 return self.trim_sql(expression) +533 +534 trim_type = f"{trim_type} " if trim_type else "" +535 remove_chars = f"{remove_chars} " if remove_chars else "" +536 from_part = "FROM " if trim_type or remove_chars else "" +537 collation = f" COLLATE {collation}" if collation else "" +538 return f"TRIM({trim_type}{remove_chars}{from_part}{target}{collation})" +539 +540 +541def str_to_time_sql(self: Generator, expression: exp.Expression) -> str: +542 return self.func("STRPTIME", expression.this, self.format_time(expression)) +543 +544 +545def ts_or_ds_to_date_sql(dialect: str) -> t.Callable: +546 def _ts_or_ds_to_date_sql(self: Generator, expression: exp.TsOrDsToDate) -> str: +547 _dialect = Dialect.get_or_raise(dialect) +548 time_format = self.format_time(expression) +549 if time_format and time_format not in (_dialect.time_format, _dialect.date_format): +550 return f"CAST({str_to_time_sql(self, expression)} AS DATE)" +551 return f"CAST({self.sql(expression, 'this')} AS DATE)" +552 +553 return _ts_or_ds_to_date_sql +554 +555 +556# Spark, DuckDB use (almost) the same naming scheme for the output columns of the PIVOT operator +557def pivot_column_names(aggregations: t.List[exp.Expression], dialect: DialectType) -> t.List[str]: +558 names = [] +559 for agg in aggregations: +560 if isinstance(agg, exp.Alias): +561 names.append(agg.alias) +562 else: +563 """ +564 This case corresponds to aggregations without aliases being used as suffixes +565 (e.g. col_avg(foo)). We need to unquote identifiers because they're going to +566 be quoted in the base parser's `_parse_pivot` method, due to `to_identifier`. +567 Otherwise, we'd end up with `col_avg(`foo`)` (notice the double quotes). +568 """ +569 agg_all_unquoted = agg.transform( +570 lambda node: exp.Identifier(this=node.name, quoted=False) +571 if isinstance(node, exp.Identifier) +572 else node +573 ) +574 names.append(agg_all_unquoted.sql(dialect=dialect, normalize_functions="lower")) +575 +576 return names
    @@ -821,29 +857,29 @@
    -
    19class Dialects(str, Enum):
    -20    DIALECT = ""
    -21
    -22    BIGQUERY = "bigquery"
    -23    CLICKHOUSE = "clickhouse"
    -24    DUCKDB = "duckdb"
    -25    HIVE = "hive"
    -26    MYSQL = "mysql"
    -27    ORACLE = "oracle"
    -28    POSTGRES = "postgres"
    -29    PRESTO = "presto"
    -30    REDSHIFT = "redshift"
    -31    SNOWFLAKE = "snowflake"
    -32    SPARK = "spark"
    -33    SPARK2 = "spark2"
    -34    SQLITE = "sqlite"
    -35    STARROCKS = "starrocks"
    -36    TABLEAU = "tableau"
    -37    TRINO = "trino"
    -38    TSQL = "tsql"
    -39    DATABRICKS = "databricks"
    -40    DRILL = "drill"
    -41    TERADATA = "teradata"
    +            
    24class Dialects(str, Enum):
    +25    DIALECT = ""
    +26
    +27    BIGQUERY = "bigquery"
    +28    CLICKHOUSE = "clickhouse"
    +29    DUCKDB = "duckdb"
    +30    HIVE = "hive"
    +31    MYSQL = "mysql"
    +32    ORACLE = "oracle"
    +33    POSTGRES = "postgres"
    +34    PRESTO = "presto"
    +35    REDSHIFT = "redshift"
    +36    SNOWFLAKE = "snowflake"
    +37    SPARK = "spark"
    +38    SPARK2 = "spark2"
    +39    SQLITE = "sqlite"
    +40    STARROCKS = "starrocks"
    +41    TABLEAU = "tableau"
    +42    TRINO = "trino"
    +43    TSQL = "tsql"
    +44    DATABRICKS = "databricks"
    +45    DRILL = "drill"
    +46    TERADATA = "teradata"
     
    @@ -1175,135 +1211,137 @@
    -
    106class Dialect(metaclass=_Dialect):
    -107    index_offset = 0
    -108    unnest_column_only = False
    -109    alias_post_tablesample = False
    -110    normalize_functions: t.Optional[str] = "upper"
    -111    null_ordering = "nulls_are_small"
    -112
    -113    date_format = "'%Y-%m-%d'"
    -114    dateint_format = "'%Y%m%d'"
    -115    time_format = "'%Y-%m-%d %H:%M:%S'"
    -116    time_mapping: t.Dict[str, str] = {}
    -117
    -118    # autofilled
    -119    quote_start = None
    -120    quote_end = None
    -121    identifier_start = None
    -122    identifier_end = None
    -123
    -124    time_trie = None
    -125    inverse_time_mapping = None
    -126    inverse_time_trie = None
    -127    tokenizer_class = None
    -128    parser_class = None
    -129    generator_class = None
    -130
    -131    def __eq__(self, other: t.Any) -> bool:
    -132        return type(self) == other
    +            
    115class Dialect(metaclass=_Dialect):
    +116    index_offset = 0
    +117    unnest_column_only = False
    +118    alias_post_tablesample = False
    +119    identifiers_can_start_with_digit = False
    +120    normalize_functions: t.Optional[str] = "upper"
    +121    null_ordering = "nulls_are_small"
    +122
    +123    date_format = "'%Y-%m-%d'"
    +124    dateint_format = "'%Y%m%d'"
    +125    time_format = "'%Y-%m-%d %H:%M:%S'"
    +126    time_mapping: t.Dict[str, str] = {}
    +127
    +128    # autofilled
    +129    quote_start = None
    +130    quote_end = None
    +131    identifier_start = None
    +132    identifier_end = None
     133
    -134    def __hash__(self) -> int:
    -135        return hash(type(self))
    -136
    -137    @classmethod
    -138    def get_or_raise(cls, dialect: DialectType) -> t.Type[Dialect]:
    -139        if not dialect:
    -140            return cls
    -141        if isinstance(dialect, _Dialect):
    -142            return dialect
    -143        if isinstance(dialect, Dialect):
    -144            return dialect.__class__
    -145
    -146        result = cls.get(dialect)
    -147        if not result:
    -148            raise ValueError(f"Unknown dialect '{dialect}'")
    -149
    -150        return result
    -151
    -152    @classmethod
    -153    def format_time(
    -154        cls, expression: t.Optional[str | exp.Expression]
    -155    ) -> t.Optional[exp.Expression]:
    -156        if isinstance(expression, str):
    -157            return exp.Literal.string(
    -158                format_time(
    -159                    expression[1:-1],  # the time formats are quoted
    -160                    cls.time_mapping,
    -161                    cls.time_trie,
    -162                )
    -163            )
    -164        if expression and expression.is_string:
    -165            return exp.Literal.string(
    -166                format_time(
    -167                    expression.this,
    -168                    cls.time_mapping,
    -169                    cls.time_trie,
    -170                )
    -171            )
    -172        return expression
    -173
    -174    def parse(self, sql: str, **opts) -> t.List[t.Optional[exp.Expression]]:
    -175        return self.parser(**opts).parse(self.tokenize(sql), sql)
    -176
    -177    def parse_into(
    -178        self, expression_type: exp.IntoType, sql: str, **opts
    -179    ) -> t.List[t.Optional[exp.Expression]]:
    -180        return self.parser(**opts).parse_into(expression_type, self.tokenize(sql), sql)
    -181
    -182    def generate(self, expression: t.Optional[exp.Expression], **opts) -> str:
    -183        return self.generator(**opts).generate(expression)
    -184
    -185    def transpile(self, sql: str, **opts) -> t.List[str]:
    -186        return [self.generate(expression, **opts) for expression in self.parse(sql)]
    -187
    -188    def tokenize(self, sql: str) -> t.List[Token]:
    -189        return self.tokenizer.tokenize(sql)
    -190
    -191    @property
    -192    def tokenizer(self) -> Tokenizer:
    -193        if not hasattr(self, "_tokenizer"):
    -194            self._tokenizer = self.tokenizer_class()  # type: ignore
    -195        return self._tokenizer
    -196
    -197    def parser(self, **opts) -> Parser:
    -198        return self.parser_class(  # type: ignore
    -199            **{
    -200                "index_offset": self.index_offset,
    -201                "unnest_column_only": self.unnest_column_only,
    -202                "alias_post_tablesample": self.alias_post_tablesample,
    -203                "null_ordering": self.null_ordering,
    -204                **opts,
    -205            },
    -206        )
    -207
    -208    def generator(self, **opts) -> Generator:
    -209        return self.generator_class(  # type: ignore
    -210            **{
    -211                "quote_start": self.quote_start,
    -212                "quote_end": self.quote_end,
    -213                "bit_start": self.bit_start,
    -214                "bit_end": self.bit_end,
    -215                "hex_start": self.hex_start,
    -216                "hex_end": self.hex_end,
    -217                "byte_start": self.byte_start,
    -218                "byte_end": self.byte_end,
    -219                "raw_start": self.raw_start,
    -220                "raw_end": self.raw_end,
    -221                "identifier_start": self.identifier_start,
    -222                "identifier_end": self.identifier_end,
    -223                "string_escape": self.tokenizer_class.STRING_ESCAPES[0],
    -224                "identifier_escape": self.tokenizer_class.IDENTIFIER_ESCAPES[0],
    -225                "index_offset": self.index_offset,
    -226                "time_mapping": self.inverse_time_mapping,
    -227                "time_trie": self.inverse_time_trie,
    -228                "unnest_column_only": self.unnest_column_only,
    -229                "alias_post_tablesample": self.alias_post_tablesample,
    -230                "normalize_functions": self.normalize_functions,
    -231                "null_ordering": self.null_ordering,
    -232                **opts,
    -233            }
    -234        )
    +134    time_trie = None
    +135    inverse_time_mapping = None
    +136    inverse_time_trie = None
    +137    tokenizer_class = None
    +138    parser_class = None
    +139    generator_class = None
    +140
    +141    def __eq__(self, other: t.Any) -> bool:
    +142        return type(self) == other
    +143
    +144    def __hash__(self) -> int:
    +145        return hash(type(self))
    +146
    +147    @classmethod
    +148    def get_or_raise(cls, dialect: DialectType) -> t.Type[Dialect]:
    +149        if not dialect:
    +150            return cls
    +151        if isinstance(dialect, _Dialect):
    +152            return dialect
    +153        if isinstance(dialect, Dialect):
    +154            return dialect.__class__
    +155
    +156        result = cls.get(dialect)
    +157        if not result:
    +158            raise ValueError(f"Unknown dialect '{dialect}'")
    +159
    +160        return result
    +161
    +162    @classmethod
    +163    def format_time(
    +164        cls, expression: t.Optional[str | exp.Expression]
    +165    ) -> t.Optional[exp.Expression]:
    +166        if isinstance(expression, str):
    +167            return exp.Literal.string(
    +168                format_time(
    +169                    expression[1:-1],  # the time formats are quoted
    +170                    cls.time_mapping,
    +171                    cls.time_trie,
    +172                )
    +173            )
    +174        if expression and expression.is_string:
    +175            return exp.Literal.string(
    +176                format_time(
    +177                    expression.this,
    +178                    cls.time_mapping,
    +179                    cls.time_trie,
    +180                )
    +181            )
    +182        return expression
    +183
    +184    def parse(self, sql: str, **opts) -> t.List[t.Optional[exp.Expression]]:
    +185        return self.parser(**opts).parse(self.tokenize(sql), sql)
    +186
    +187    def parse_into(
    +188        self, expression_type: exp.IntoType, sql: str, **opts
    +189    ) -> t.List[t.Optional[exp.Expression]]:
    +190        return self.parser(**opts).parse_into(expression_type, self.tokenize(sql), sql)
    +191
    +192    def generate(self, expression: t.Optional[exp.Expression], **opts) -> str:
    +193        return self.generator(**opts).generate(expression)
    +194
    +195    def transpile(self, sql: str, **opts) -> t.List[str]:
    +196        return [self.generate(expression, **opts) for expression in self.parse(sql)]
    +197
    +198    def tokenize(self, sql: str) -> t.List[Token]:
    +199        return self.tokenizer.tokenize(sql)
    +200
    +201    @property
    +202    def tokenizer(self) -> Tokenizer:
    +203        if not hasattr(self, "_tokenizer"):
    +204            self._tokenizer = self.tokenizer_class()  # type: ignore
    +205        return self._tokenizer
    +206
    +207    def parser(self, **opts) -> Parser:
    +208        return self.parser_class(  # type: ignore
    +209            **{
    +210                "index_offset": self.index_offset,
    +211                "unnest_column_only": self.unnest_column_only,
    +212                "alias_post_tablesample": self.alias_post_tablesample,
    +213                "null_ordering": self.null_ordering,
    +214                **opts,
    +215            },
    +216        )
    +217
    +218    def generator(self, **opts) -> Generator:
    +219        return self.generator_class(  # type: ignore
    +220            **{
    +221                "quote_start": self.quote_start,
    +222                "quote_end": self.quote_end,
    +223                "bit_start": self.bit_start,
    +224                "bit_end": self.bit_end,
    +225                "hex_start": self.hex_start,
    +226                "hex_end": self.hex_end,
    +227                "byte_start": self.byte_start,
    +228                "byte_end": self.byte_end,
    +229                "raw_start": self.raw_start,
    +230                "raw_end": self.raw_end,
    +231                "identifier_start": self.identifier_start,
    +232                "identifier_end": self.identifier_end,
    +233                "string_escape": self.tokenizer_class.STRING_ESCAPES[0],
    +234                "identifier_escape": self.tokenizer_class.IDENTIFIER_ESCAPES[0],
    +235                "index_offset": self.index_offset,
    +236                "time_mapping": self.inverse_time_mapping,
    +237                "time_trie": self.inverse_time_trie,
    +238                "unnest_column_only": self.unnest_column_only,
    +239                "alias_post_tablesample": self.alias_post_tablesample,
    +240                "identifiers_can_start_with_digit": self.identifiers_can_start_with_digit,
    +241                "normalize_functions": self.normalize_functions,
    +242                "null_ordering": self.null_ordering,
    +243                **opts,
    +244            }
    +245        )
     
    @@ -1321,20 +1359,20 @@
    -
    137    @classmethod
    -138    def get_or_raise(cls, dialect: DialectType) -> t.Type[Dialect]:
    -139        if not dialect:
    -140            return cls
    -141        if isinstance(dialect, _Dialect):
    -142            return dialect
    -143        if isinstance(dialect, Dialect):
    -144            return dialect.__class__
    -145
    -146        result = cls.get(dialect)
    -147        if not result:
    -148            raise ValueError(f"Unknown dialect '{dialect}'")
    -149
    -150        return result
    +            
    147    @classmethod
    +148    def get_or_raise(cls, dialect: DialectType) -> t.Type[Dialect]:
    +149        if not dialect:
    +150            return cls
    +151        if isinstance(dialect, _Dialect):
    +152            return dialect
    +153        if isinstance(dialect, Dialect):
    +154            return dialect.__class__
    +155
    +156        result = cls.get(dialect)
    +157        if not result:
    +158            raise ValueError(f"Unknown dialect '{dialect}'")
    +159
    +160        return result
     
    @@ -1353,27 +1391,27 @@
    -
    152    @classmethod
    -153    def format_time(
    -154        cls, expression: t.Optional[str | exp.Expression]
    -155    ) -> t.Optional[exp.Expression]:
    -156        if isinstance(expression, str):
    -157            return exp.Literal.string(
    -158                format_time(
    -159                    expression[1:-1],  # the time formats are quoted
    -160                    cls.time_mapping,
    -161                    cls.time_trie,
    -162                )
    -163            )
    -164        if expression and expression.is_string:
    -165            return exp.Literal.string(
    -166                format_time(
    -167                    expression.this,
    -168                    cls.time_mapping,
    -169                    cls.time_trie,
    -170                )
    -171            )
    -172        return expression
    +            
    162    @classmethod
    +163    def format_time(
    +164        cls, expression: t.Optional[str | exp.Expression]
    +165    ) -> t.Optional[exp.Expression]:
    +166        if isinstance(expression, str):
    +167            return exp.Literal.string(
    +168                format_time(
    +169                    expression[1:-1],  # the time formats are quoted
    +170                    cls.time_mapping,
    +171                    cls.time_trie,
    +172                )
    +173            )
    +174        if expression and expression.is_string:
    +175            return exp.Literal.string(
    +176                format_time(
    +177                    expression.this,
    +178                    cls.time_mapping,
    +179                    cls.time_trie,
    +180                )
    +181            )
    +182        return expression
     
    @@ -1391,8 +1429,8 @@
    -
    174    def parse(self, sql: str, **opts) -> t.List[t.Optional[exp.Expression]]:
    -175        return self.parser(**opts).parse(self.tokenize(sql), sql)
    +            
    184    def parse(self, sql: str, **opts) -> t.List[t.Optional[exp.Expression]]:
    +185        return self.parser(**opts).parse(self.tokenize(sql), sql)
     
    @@ -1410,10 +1448,10 @@
    -
    177    def parse_into(
    -178        self, expression_type: exp.IntoType, sql: str, **opts
    -179    ) -> t.List[t.Optional[exp.Expression]]:
    -180        return self.parser(**opts).parse_into(expression_type, self.tokenize(sql), sql)
    +            
    187    def parse_into(
    +188        self, expression_type: exp.IntoType, sql: str, **opts
    +189    ) -> t.List[t.Optional[exp.Expression]]:
    +190        return self.parser(**opts).parse_into(expression_type, self.tokenize(sql), sql)
     
    @@ -1431,8 +1469,8 @@
    -
    182    def generate(self, expression: t.Optional[exp.Expression], **opts) -> str:
    -183        return self.generator(**opts).generate(expression)
    +            
    192    def generate(self, expression: t.Optional[exp.Expression], **opts) -> str:
    +193        return self.generator(**opts).generate(expression)
     
    @@ -1450,8 +1488,8 @@
    -
    185    def transpile(self, sql: str, **opts) -> t.List[str]:
    -186        return [self.generate(expression, **opts) for expression in self.parse(sql)]
    +            
    195    def transpile(self, sql: str, **opts) -> t.List[str]:
    +196        return [self.generate(expression, **opts) for expression in self.parse(sql)]
     
    @@ -1469,8 +1507,8 @@
    -
    188    def tokenize(self, sql: str) -> t.List[Token]:
    -189        return self.tokenizer.tokenize(sql)
    +            
    198    def tokenize(self, sql: str) -> t.List[Token]:
    +199        return self.tokenizer.tokenize(sql)
     
    @@ -1488,16 +1526,16 @@
    -
    197    def parser(self, **opts) -> Parser:
    -198        return self.parser_class(  # type: ignore
    -199            **{
    -200                "index_offset": self.index_offset,
    -201                "unnest_column_only": self.unnest_column_only,
    -202                "alias_post_tablesample": self.alias_post_tablesample,
    -203                "null_ordering": self.null_ordering,
    -204                **opts,
    -205            },
    -206        )
    +            
    207    def parser(self, **opts) -> Parser:
    +208        return self.parser_class(  # type: ignore
    +209            **{
    +210                "index_offset": self.index_offset,
    +211                "unnest_column_only": self.unnest_column_only,
    +212                "alias_post_tablesample": self.alias_post_tablesample,
    +213                "null_ordering": self.null_ordering,
    +214                **opts,
    +215            },
    +216        )
     
    @@ -1515,33 +1553,34 @@
    -
    208    def generator(self, **opts) -> Generator:
    -209        return self.generator_class(  # type: ignore
    -210            **{
    -211                "quote_start": self.quote_start,
    -212                "quote_end": self.quote_end,
    -213                "bit_start": self.bit_start,
    -214                "bit_end": self.bit_end,
    -215                "hex_start": self.hex_start,
    -216                "hex_end": self.hex_end,
    -217                "byte_start": self.byte_start,
    -218                "byte_end": self.byte_end,
    -219                "raw_start": self.raw_start,
    -220                "raw_end": self.raw_end,
    -221                "identifier_start": self.identifier_start,
    -222                "identifier_end": self.identifier_end,
    -223                "string_escape": self.tokenizer_class.STRING_ESCAPES[0],
    -224                "identifier_escape": self.tokenizer_class.IDENTIFIER_ESCAPES[0],
    -225                "index_offset": self.index_offset,
    -226                "time_mapping": self.inverse_time_mapping,
    -227                "time_trie": self.inverse_time_trie,
    -228                "unnest_column_only": self.unnest_column_only,
    -229                "alias_post_tablesample": self.alias_post_tablesample,
    -230                "normalize_functions": self.normalize_functions,
    -231                "null_ordering": self.null_ordering,
    -232                **opts,
    -233            }
    -234        )
    +            
    218    def generator(self, **opts) -> Generator:
    +219        return self.generator_class(  # type: ignore
    +220            **{
    +221                "quote_start": self.quote_start,
    +222                "quote_end": self.quote_end,
    +223                "bit_start": self.bit_start,
    +224                "bit_end": self.bit_end,
    +225                "hex_start": self.hex_start,
    +226                "hex_end": self.hex_end,
    +227                "byte_start": self.byte_start,
    +228                "byte_end": self.byte_end,
    +229                "raw_start": self.raw_start,
    +230                "raw_end": self.raw_end,
    +231                "identifier_start": self.identifier_start,
    +232                "identifier_end": self.identifier_end,
    +233                "string_escape": self.tokenizer_class.STRING_ESCAPES[0],
    +234                "identifier_escape": self.tokenizer_class.IDENTIFIER_ESCAPES[0],
    +235                "index_offset": self.index_offset,
    +236                "time_mapping": self.inverse_time_mapping,
    +237                "time_trie": self.inverse_time_trie,
    +238                "unnest_column_only": self.unnest_column_only,
    +239                "alias_post_tablesample": self.alias_post_tablesample,
    +240                "identifiers_can_start_with_digit": self.identifiers_can_start_with_digit,
    +241                "normalize_functions": self.normalize_functions,
    +242                "null_ordering": self.null_ordering,
    +243                **opts,
    +244            }
    +245        )
     
    @@ -1560,8 +1599,8 @@
    -
    240def rename_func(name: str) -> t.Callable[[Generator, exp.Expression], str]:
    -241    return lambda self, expression: self.func(name, *flatten(expression.args.values()))
    +            
    251def rename_func(name: str) -> t.Callable[[Generator, exp.Expression], str]:
    +252    return lambda self, expression: self.func(name, *flatten(expression.args.values()))
     
    @@ -1579,10 +1618,10 @@
    -
    244def approx_count_distinct_sql(self: Generator, expression: exp.ApproxDistinct) -> str:
    -245    if expression.args.get("accuracy"):
    -246        self.unsupported("APPROX_COUNT_DISTINCT does not support accuracy")
    -247    return self.func("APPROX_COUNT_DISTINCT", expression.this)
    +            
    255def approx_count_distinct_sql(self: Generator, expression: exp.ApproxDistinct) -> str:
    +256    if expression.args.get("accuracy"):
    +257        self.unsupported("APPROX_COUNT_DISTINCT does not support accuracy")
    +258    return self.func("APPROX_COUNT_DISTINCT", expression.this)
     
    @@ -1600,10 +1639,10 @@
    -
    250def if_sql(self: Generator, expression: exp.If) -> str:
    -251    return self.func(
    -252        "IF", expression.this, expression.args.get("true"), expression.args.get("false")
    -253    )
    +            
    261def if_sql(self: Generator, expression: exp.If) -> str:
    +262    return self.func(
    +263        "IF", expression.this, expression.args.get("true"), expression.args.get("false")
    +264    )
     
    @@ -1621,8 +1660,8 @@
    -
    256def arrow_json_extract_sql(self: Generator, expression: exp.JSONExtract | exp.JSONBExtract) -> str:
    -257    return self.binary(expression, "->")
    +            
    267def arrow_json_extract_sql(self: Generator, expression: exp.JSONExtract | exp.JSONBExtract) -> str:
    +268    return self.binary(expression, "->")
     
    @@ -1640,10 +1679,10 @@
    -
    260def arrow_json_extract_scalar_sql(
    -261    self: Generator, expression: exp.JSONExtractScalar | exp.JSONBExtractScalar
    -262) -> str:
    -263    return self.binary(expression, "->>")
    +            
    271def arrow_json_extract_scalar_sql(
    +272    self: Generator, expression: exp.JSONExtractScalar | exp.JSONBExtractScalar
    +273) -> str:
    +274    return self.binary(expression, "->>")
     
    @@ -1661,8 +1700,8 @@
    -
    266def inline_array_sql(self: Generator, expression: exp.Array) -> str:
    -267    return f"[{self.expressions(expression)}]"
    +            
    277def inline_array_sql(self: Generator, expression: exp.Array) -> str:
    +278    return f"[{self.expressions(expression)}]"
     
    @@ -1680,13 +1719,13 @@
    -
    270def no_ilike_sql(self: Generator, expression: exp.ILike) -> str:
    -271    return self.like_sql(
    -272        exp.Like(
    -273            this=exp.Lower(this=expression.this),
    -274            expression=expression.args["expression"],
    -275        )
    -276    )
    +            
    281def no_ilike_sql(self: Generator, expression: exp.ILike) -> str:
    +282    return self.like_sql(
    +283        exp.Like(
    +284            this=exp.Lower(this=expression.this),
    +285            expression=expression.args["expression"],
    +286        )
    +287    )
     
    @@ -1704,9 +1743,9 @@
    -
    279def no_paren_current_date_sql(self: Generator, expression: exp.CurrentDate) -> str:
    -280    zone = self.sql(expression, "this")
    -281    return f"CURRENT_DATE AT TIME ZONE {zone}" if zone else "CURRENT_DATE"
    +            
    290def no_paren_current_date_sql(self: Generator, expression: exp.CurrentDate) -> str:
    +291    zone = self.sql(expression, "this")
    +292    return f"CURRENT_DATE AT TIME ZONE {zone}" if zone else "CURRENT_DATE"
     
    @@ -1724,11 +1763,11 @@
    -
    284def no_recursive_cte_sql(self: Generator, expression: exp.With) -> str:
    -285    if expression.args.get("recursive"):
    -286        self.unsupported("Recursive CTEs are unsupported")
    -287        expression.args["recursive"] = False
    -288    return self.with_sql(expression)
    +            
    295def no_recursive_cte_sql(self: Generator, expression: exp.With) -> str:
    +296    if expression.args.get("recursive"):
    +297        self.unsupported("Recursive CTEs are unsupported")
    +298        expression.args["recursive"] = False
    +299    return self.with_sql(expression)
     
    @@ -1746,10 +1785,10 @@
    -
    291def no_safe_divide_sql(self: Generator, expression: exp.SafeDivide) -> str:
    -292    n = self.sql(expression, "this")
    -293    d = self.sql(expression, "expression")
    -294    return f"IF({d} <> 0, {n} / {d}, NULL)"
    +            
    302def no_safe_divide_sql(self: Generator, expression: exp.SafeDivide) -> str:
    +303    n = self.sql(expression, "this")
    +304    d = self.sql(expression, "expression")
    +305    return f"IF({d} <> 0, {n} / {d}, NULL)"
     
    @@ -1767,9 +1806,9 @@
    -
    297def no_tablesample_sql(self: Generator, expression: exp.TableSample) -> str:
    -298    self.unsupported("TABLESAMPLE unsupported")
    -299    return self.sql(expression.this)
    +            
    308def no_tablesample_sql(self: Generator, expression: exp.TableSample) -> str:
    +309    self.unsupported("TABLESAMPLE unsupported")
    +310    return self.sql(expression.this)
     
    @@ -1787,9 +1826,9 @@
    -
    302def no_pivot_sql(self: Generator, expression: exp.Pivot) -> str:
    -303    self.unsupported("PIVOT unsupported")
    -304    return ""
    +            
    313def no_pivot_sql(self: Generator, expression: exp.Pivot) -> str:
    +314    self.unsupported("PIVOT unsupported")
    +315    return ""
     
    @@ -1807,8 +1846,8 @@
    -
    307def no_trycast_sql(self: Generator, expression: exp.TryCast) -> str:
    -308    return self.cast_sql(expression)
    +            
    318def no_trycast_sql(self: Generator, expression: exp.TryCast) -> str:
    +319    return self.cast_sql(expression)
     
    @@ -1826,9 +1865,9 @@
    -
    311def no_properties_sql(self: Generator, expression: exp.Properties) -> str:
    -312    self.unsupported("Properties unsupported")
    -313    return ""
    +            
    322def no_properties_sql(self: Generator, expression: exp.Properties) -> str:
    +323    self.unsupported("Properties unsupported")
    +324    return ""
     
    @@ -1846,11 +1885,11 @@
    -
    316def no_comment_column_constraint_sql(
    -317    self: Generator, expression: exp.CommentColumnConstraint
    -318) -> str:
    -319    self.unsupported("CommentColumnConstraint unsupported")
    -320    return ""
    +            
    327def no_comment_column_constraint_sql(
    +328    self: Generator, expression: exp.CommentColumnConstraint
    +329) -> str:
    +330    self.unsupported("CommentColumnConstraint unsupported")
    +331    return ""
     
    @@ -1868,13 +1907,13 @@
    -
    323def str_position_sql(self: Generator, expression: exp.StrPosition) -> str:
    -324    this = self.sql(expression, "this")
    -325    substr = self.sql(expression, "substr")
    -326    position = self.sql(expression, "position")
    -327    if position:
    -328        return f"STRPOS(SUBSTR({this}, {position}), {substr}) + {position} - 1"
    -329    return f"STRPOS({this}, {substr})"
    +            
    334def str_position_sql(self: Generator, expression: exp.StrPosition) -> str:
    +335    this = self.sql(expression, "this")
    +336    substr = self.sql(expression, "substr")
    +337    position = self.sql(expression, "position")
    +338    if position:
    +339        return f"STRPOS(SUBSTR({this}, {position}), {substr}) + {position} - 1"
    +340    return f"STRPOS({this}, {substr})"
     
    @@ -1892,10 +1931,10 @@
    -
    332def struct_extract_sql(self: Generator, expression: exp.StructExtract) -> str:
    -333    this = self.sql(expression, "this")
    -334    struct_key = self.sql(exp.Identifier(this=expression.expression, quoted=True))
    -335    return f"{this}.{struct_key}"
    +            
    343def struct_extract_sql(self: Generator, expression: exp.StructExtract) -> str:
    +344    this = self.sql(expression, "this")
    +345    struct_key = self.sql(exp.Identifier(this=expression.expression, quoted=True))
    +346    return f"{this}.{struct_key}"
     
    @@ -1913,21 +1952,21 @@
    -
    338def var_map_sql(
    -339    self: Generator, expression: exp.Map | exp.VarMap, map_func_name: str = "MAP"
    -340) -> str:
    -341    keys = expression.args["keys"]
    -342    values = expression.args["values"]
    -343
    -344    if not isinstance(keys, exp.Array) or not isinstance(values, exp.Array):
    -345        self.unsupported("Cannot convert array columns into map.")
    -346        return self.func(map_func_name, keys, values)
    -347
    -348    args = []
    -349    for key, value in zip(keys.expressions, values.expressions):
    -350        args.append(self.sql(key))
    -351        args.append(self.sql(value))
    -352    return self.func(map_func_name, *args)
    +            
    349def var_map_sql(
    +350    self: Generator, expression: exp.Map | exp.VarMap, map_func_name: str = "MAP"
    +351) -> str:
    +352    keys = expression.args["keys"]
    +353    values = expression.args["values"]
    +354
    +355    if not isinstance(keys, exp.Array) or not isinstance(values, exp.Array):
    +356        self.unsupported("Cannot convert array columns into map.")
    +357        return self.func(map_func_name, keys, values)
    +358
    +359    args = []
    +360    for key, value in zip(keys.expressions, values.expressions):
    +361        args.append(self.sql(key))
    +362        args.append(self.sql(value))
    +363    return self.func(map_func_name, *args)
     
    @@ -1945,30 +1984,30 @@
    -
    355def format_time_lambda(
    -356    exp_class: t.Type[E], dialect: str, default: t.Optional[bool | str] = None
    -357) -> t.Callable[[t.List], E]:
    -358    """Helper used for time expressions.
    -359
    -360    Args:
    -361        exp_class: the expression class to instantiate.
    -362        dialect: target sql dialect.
    -363        default: the default format, True being time.
    -364
    -365    Returns:
    -366        A callable that can be used to return the appropriately formatted time expression.
    -367    """
    -368
    -369    def _format_time(args: t.List):
    -370        return exp_class(
    -371            this=seq_get(args, 0),
    -372            format=Dialect[dialect].format_time(
    -373                seq_get(args, 1)
    -374                or (Dialect[dialect].time_format if default is True else default or None)
    -375            ),
    -376        )
    -377
    -378    return _format_time
    +            
    366def format_time_lambda(
    +367    exp_class: t.Type[E], dialect: str, default: t.Optional[bool | str] = None
    +368) -> t.Callable[[t.List], E]:
    +369    """Helper used for time expressions.
    +370
    +371    Args:
    +372        exp_class: the expression class to instantiate.
    +373        dialect: target sql dialect.
    +374        default: the default format, True being time.
    +375
    +376    Returns:
    +377        A callable that can be used to return the appropriately formatted time expression.
    +378    """
    +379
    +380    def _format_time(args: t.List):
    +381        return exp_class(
    +382            this=seq_get(args, 0),
    +383            format=Dialect[dialect].format_time(
    +384                seq_get(args, 1)
    +385                or (Dialect[dialect].time_format if default is True else default or None)
    +386            ),
    +387        )
    +388
    +389    return _format_time
     
    @@ -2002,27 +2041,27 @@
    -
    381def create_with_partitions_sql(self: Generator, expression: exp.Create) -> str:
    -382    """
    -383    In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the
    -384    PARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding
    -385    columns are removed from the create statement.
    -386    """
    -387    has_schema = isinstance(expression.this, exp.Schema)
    -388    is_partitionable = expression.args.get("kind") in ("TABLE", "VIEW")
    -389
    -390    if has_schema and is_partitionable:
    -391        expression = expression.copy()
    -392        prop = expression.find(exp.PartitionedByProperty)
    -393        if prop and prop.this and not isinstance(prop.this, exp.Schema):
    -394            schema = expression.this
    -395            columns = {v.name.upper() for v in prop.this.expressions}
    -396            partitions = [col for col in schema.expressions if col.name.upper() in columns]
    -397            schema.set("expressions", [e for e in schema.expressions if e not in partitions])
    -398            prop.replace(exp.PartitionedByProperty(this=exp.Schema(expressions=partitions)))
    -399            expression.set("this", schema)
    +            
    392def create_with_partitions_sql(self: Generator, expression: exp.Create) -> str:
    +393    """
    +394    In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the
    +395    PARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding
    +396    columns are removed from the create statement.
    +397    """
    +398    has_schema = isinstance(expression.this, exp.Schema)
    +399    is_partitionable = expression.args.get("kind") in ("TABLE", "VIEW")
     400
    -401    return self.create_sql(expression)
    +401    if has_schema and is_partitionable:
    +402        expression = expression.copy()
    +403        prop = expression.find(exp.PartitionedByProperty)
    +404        if prop and prop.this and not isinstance(prop.this, exp.Schema):
    +405            schema = expression.this
    +406            columns = {v.name.upper() for v in prop.this.expressions}
    +407            partitions = [col for col in schema.expressions if col.name.upper() in columns]
    +408            schema.set("expressions", [e for e in schema.expressions if e not in partitions])
    +409            prop.replace(exp.PartitionedByProperty(this=exp.Schema(expressions=partitions)))
    +410            expression.set("this", schema)
    +411
    +412    return self.create_sql(expression)
     
    @@ -2044,17 +2083,17 @@ columns are removed from the create statement.

    -
    404def parse_date_delta(
    -405    exp_class: t.Type[E], unit_mapping: t.Optional[t.Dict[str, str]] = None
    -406) -> t.Callable[[t.List], E]:
    -407    def inner_func(args: t.List) -> E:
    -408        unit_based = len(args) == 3
    -409        this = args[2] if unit_based else seq_get(args, 0)
    -410        unit = args[0] if unit_based else exp.Literal.string("DAY")
    -411        unit = exp.var(unit_mapping.get(unit.name.lower(), unit.name)) if unit_mapping else unit
    -412        return exp_class(this=this, expression=seq_get(args, 1), unit=unit)
    -413
    -414    return inner_func
    +            
    415def parse_date_delta(
    +416    exp_class: t.Type[E], unit_mapping: t.Optional[t.Dict[str, str]] = None
    +417) -> t.Callable[[t.List], E]:
    +418    def inner_func(args: t.List) -> E:
    +419        unit_based = len(args) == 3
    +420        this = args[2] if unit_based else seq_get(args, 0)
    +421        unit = args[0] if unit_based else exp.Literal.string("DAY")
    +422        unit = exp.var(unit_mapping.get(unit.name.lower(), unit.name)) if unit_mapping else unit
    +423        return exp_class(this=this, expression=seq_get(args, 1), unit=unit)
    +424
    +425    return inner_func
     
    @@ -2072,25 +2111,25 @@ columns are removed from the create statement.

    -
    417def parse_date_delta_with_interval(
    -418    expression_class: t.Type[E],
    -419) -> t.Callable[[t.List], t.Optional[E]]:
    -420    def func(args: t.List) -> t.Optional[E]:
    -421        if len(args) < 2:
    -422            return None
    -423
    -424        interval = args[1]
    -425        expression = interval.this
    -426        if expression and expression.is_string:
    -427            expression = exp.Literal.number(expression.this)
    -428
    -429        return expression_class(
    -430            this=args[0],
    -431            expression=expression,
    -432            unit=exp.Literal.string(interval.text("unit")),
    -433        )
    +            
    428def parse_date_delta_with_interval(
    +429    expression_class: t.Type[E],
    +430) -> t.Callable[[t.List], t.Optional[E]]:
    +431    def func(args: t.List) -> t.Optional[E]:
    +432        if len(args) < 2:
    +433            return None
     434
    -435    return func
    +435        interval = args[1]
    +436        expression = interval.this
    +437        if expression and expression.is_string:
    +438            expression = exp.Literal.number(expression.this)
    +439
    +440        return expression_class(
    +441            this=args[0],
    +442            expression=expression,
    +443            unit=exp.Literal.string(interval.text("unit")),
    +444        )
    +445
    +446    return func
     
    @@ -2108,13 +2147,13 @@ columns are removed from the create statement.

    -
    438def date_trunc_to_time(args: t.List) -> exp.DateTrunc | exp.TimestampTrunc:
    -439    unit = seq_get(args, 0)
    -440    this = seq_get(args, 1)
    -441
    -442    if isinstance(this, exp.Cast) and this.is_type(exp.DataType.Type.DATE):
    -443        return exp.DateTrunc(unit=unit, this=this)
    -444    return exp.TimestampTrunc(this=this, unit=unit)
    +            
    449def date_trunc_to_time(args: t.List) -> exp.DateTrunc | exp.TimestampTrunc:
    +450    unit = seq_get(args, 0)
    +451    this = seq_get(args, 1)
    +452
    +453    if isinstance(this, exp.Cast) and this.is_type("date"):
    +454        return exp.DateTrunc(unit=unit, this=this)
    +455    return exp.TimestampTrunc(this=this, unit=unit)
     
    @@ -2132,10 +2171,10 @@ columns are removed from the create statement.

    -
    447def timestamptrunc_sql(self: Generator, expression: exp.TimestampTrunc) -> str:
    -448    return self.func(
    -449        "DATE_TRUNC", exp.Literal.string(expression.text("unit") or "day"), expression.this
    -450    )
    +            
    458def timestamptrunc_sql(self: Generator, expression: exp.TimestampTrunc) -> str:
    +459    return self.func(
    +460        "DATE_TRUNC", exp.Literal.string(expression.text("unit") or "day"), expression.this
    +461    )
     
    @@ -2153,12 +2192,12 @@ columns are removed from the create statement.

    -
    453def locate_to_strposition(args: t.List) -> exp.Expression:
    -454    return exp.StrPosition(
    -455        this=seq_get(args, 1),
    -456        substr=seq_get(args, 0),
    -457        position=seq_get(args, 2),
    -458    )
    +            
    464def locate_to_strposition(args: t.List) -> exp.Expression:
    +465    return exp.StrPosition(
    +466        this=seq_get(args, 1),
    +467        substr=seq_get(args, 0),
    +468        position=seq_get(args, 2),
    +469    )
     
    @@ -2176,10 +2215,59 @@ columns are removed from the create statement.

    -
    461def strposition_to_locate_sql(self: Generator, expression: exp.StrPosition) -> str:
    -462    return self.func(
    -463        "LOCATE", expression.args.get("substr"), expression.this, expression.args.get("position")
    -464    )
    +            
    472def strposition_to_locate_sql(self: Generator, expression: exp.StrPosition) -> str:
    +473    return self.func(
    +474        "LOCATE", expression.args.get("substr"), expression.this, expression.args.get("position")
    +475    )
    +
    + + + + + +
    + +
    + + def + left_to_substring_sql( self: sqlglot.generator.Generator, expression: sqlglot.expressions.Left) -> str: + + + +
    + +
    478def left_to_substring_sql(self: Generator, expression: exp.Left) -> str:
    +479    expression = expression.copy()
    +480    return self.sql(
    +481        exp.Substring(
    +482            this=expression.this, start=exp.Literal.number(1), length=expression.expression
    +483        )
    +484    )
    +
    + + + + +
    +
    + +
    + + def + right_to_substring_sql( self: sqlglot.generator.Generator, expression: sqlglot.expressions.Left) -> str: + + + +
    + +
    487def right_to_substring_sql(self: Generator, expression: exp.Left) -> str:
    +488    expression = expression.copy()
    +489    return self.sql(
    +490        exp.Substring(
    +491            this=expression.this,
    +492            start=exp.Length(this=expression.this) - exp.paren(expression.expression - 1),
    +493        )
    +494    )
     
    @@ -2197,8 +2285,8 @@ columns are removed from the create statement.

    -
    467def timestrtotime_sql(self: Generator, expression: exp.TimeStrToTime) -> str:
    -468    return f"CAST({self.sql(expression, 'this')} AS TIMESTAMP)"
    +            
    497def timestrtotime_sql(self: Generator, expression: exp.TimeStrToTime) -> str:
    +498    return f"CAST({self.sql(expression, 'this')} AS TIMESTAMP)"
     
    @@ -2216,8 +2304,8 @@ columns are removed from the create statement.

    -
    471def datestrtodate_sql(self: Generator, expression: exp.DateStrToDate) -> str:
    -472    return f"CAST({self.sql(expression, 'this')} AS DATE)"
    +            
    501def datestrtodate_sql(self: Generator, expression: exp.DateStrToDate) -> str:
    +502    return f"CAST({self.sql(expression, 'this')} AS DATE)"
     
    @@ -2235,9 +2323,9 @@ columns are removed from the create statement.

    -
    475def min_or_least(self: Generator, expression: exp.Min) -> str:
    -476    name = "LEAST" if expression.expressions else "MIN"
    -477    return rename_func(name)(self, expression)
    +            
    505def min_or_least(self: Generator, expression: exp.Min) -> str:
    +506    name = "LEAST" if expression.expressions else "MIN"
    +507    return rename_func(name)(self, expression)
     
    @@ -2255,9 +2343,9 @@ columns are removed from the create statement.

    -
    480def max_or_greatest(self: Generator, expression: exp.Max) -> str:
    -481    name = "GREATEST" if expression.expressions else "MAX"
    -482    return rename_func(name)(self, expression)
    +            
    510def max_or_greatest(self: Generator, expression: exp.Max) -> str:
    +511    name = "GREATEST" if expression.expressions else "MAX"
    +512    return rename_func(name)(self, expression)
     
    @@ -2275,14 +2363,14 @@ columns are removed from the create statement.

    -
    485def count_if_to_sum(self: Generator, expression: exp.CountIf) -> str:
    -486    cond = expression.this
    -487
    -488    if isinstance(expression.this, exp.Distinct):
    -489        cond = expression.this.expressions[0]
    -490        self.unsupported("DISTINCT is not supported when converting COUNT_IF to SUM")
    -491
    -492    return self.func("sum", exp.func("if", cond, 1, 0))
    +            
    515def count_if_to_sum(self: Generator, expression: exp.CountIf) -> str:
    +516    cond = expression.this
    +517
    +518    if isinstance(expression.this, exp.Distinct):
    +519        cond = expression.this.expressions[0]
    +520        self.unsupported("DISTINCT is not supported when converting COUNT_IF to SUM")
    +521
    +522    return self.func("sum", exp.func("if", cond, 1, 0))
     
    @@ -2300,21 +2388,21 @@ columns are removed from the create statement.

    -
    495def trim_sql(self: Generator, expression: exp.Trim) -> str:
    -496    target = self.sql(expression, "this")
    -497    trim_type = self.sql(expression, "position")
    -498    remove_chars = self.sql(expression, "expression")
    -499    collation = self.sql(expression, "collation")
    -500
    -501    # Use TRIM/LTRIM/RTRIM syntax if the expression isn't database-specific
    -502    if not remove_chars and not collation:
    -503        return self.trim_sql(expression)
    -504
    -505    trim_type = f"{trim_type} " if trim_type else ""
    -506    remove_chars = f"{remove_chars} " if remove_chars else ""
    -507    from_part = "FROM " if trim_type or remove_chars else ""
    -508    collation = f" COLLATE {collation}" if collation else ""
    -509    return f"TRIM({trim_type}{remove_chars}{from_part}{target}{collation})"
    +            
    525def trim_sql(self: Generator, expression: exp.Trim) -> str:
    +526    target = self.sql(expression, "this")
    +527    trim_type = self.sql(expression, "position")
    +528    remove_chars = self.sql(expression, "expression")
    +529    collation = self.sql(expression, "collation")
    +530
    +531    # Use TRIM/LTRIM/RTRIM syntax if the expression isn't database-specific
    +532    if not remove_chars and not collation:
    +533        return self.trim_sql(expression)
    +534
    +535    trim_type = f"{trim_type} " if trim_type else ""
    +536    remove_chars = f"{remove_chars} " if remove_chars else ""
    +537    from_part = "FROM " if trim_type or remove_chars else ""
    +538    collation = f" COLLATE {collation}" if collation else ""
    +539    return f"TRIM({trim_type}{remove_chars}{from_part}{target}{collation})"
     
    @@ -2332,8 +2420,8 @@ columns are removed from the create statement.

    -
    512def str_to_time_sql(self: Generator, expression: exp.Expression) -> str:
    -513    return self.func("STRPTIME", expression.this, self.format_time(expression))
    +            
    542def str_to_time_sql(self: Generator, expression: exp.Expression) -> str:
    +543    return self.func("STRPTIME", expression.this, self.format_time(expression))
     
    @@ -2351,15 +2439,15 @@ columns are removed from the create statement.

    -
    516def ts_or_ds_to_date_sql(dialect: str) -> t.Callable:
    -517    def _ts_or_ds_to_date_sql(self: Generator, expression: exp.TsOrDsToDate) -> str:
    -518        _dialect = Dialect.get_or_raise(dialect)
    -519        time_format = self.format_time(expression)
    -520        if time_format and time_format not in (_dialect.time_format, _dialect.date_format):
    -521            return f"CAST({str_to_time_sql(self, expression)} AS DATE)"
    -522        return f"CAST({self.sql(expression, 'this')} AS DATE)"
    -523
    -524    return _ts_or_ds_to_date_sql
    +            
    546def ts_or_ds_to_date_sql(dialect: str) -> t.Callable:
    +547    def _ts_or_ds_to_date_sql(self: Generator, expression: exp.TsOrDsToDate) -> str:
    +548        _dialect = Dialect.get_or_raise(dialect)
    +549        time_format = self.format_time(expression)
    +550        if time_format and time_format not in (_dialect.time_format, _dialect.date_format):
    +551            return f"CAST({str_to_time_sql(self, expression)} AS DATE)"
    +552        return f"CAST({self.sql(expression, 'this')} AS DATE)"
    +553
    +554    return _ts_or_ds_to_date_sql
     
    @@ -2377,26 +2465,26 @@ columns are removed from the create statement.

    -
    528def pivot_column_names(aggregations: t.List[exp.Expression], dialect: DialectType) -> t.List[str]:
    -529    names = []
    -530    for agg in aggregations:
    -531        if isinstance(agg, exp.Alias):
    -532            names.append(agg.alias)
    -533        else:
    -534            """
    -535            This case corresponds to aggregations without aliases being used as suffixes
    -536            (e.g. col_avg(foo)). We need to unquote identifiers because they're going to
    -537            be quoted in the base parser's `_parse_pivot` method, due to `to_identifier`.
    -538            Otherwise, we'd end up with `col_avg(`foo`)` (notice the double quotes).
    -539            """
    -540            agg_all_unquoted = agg.transform(
    -541                lambda node: exp.Identifier(this=node.name, quoted=False)
    -542                if isinstance(node, exp.Identifier)
    -543                else node
    -544            )
    -545            names.append(agg_all_unquoted.sql(dialect=dialect, normalize_functions="lower"))
    -546
    -547    return names
    +            
    558def pivot_column_names(aggregations: t.List[exp.Expression], dialect: DialectType) -> t.List[str]:
    +559    names = []
    +560    for agg in aggregations:
    +561        if isinstance(agg, exp.Alias):
    +562            names.append(agg.alias)
    +563        else:
    +564            """
    +565            This case corresponds to aggregations without aliases being used as suffixes
    +566            (e.g. col_avg(foo)). We need to unquote identifiers because they're going to
    +567            be quoted in the base parser's `_parse_pivot` method, due to `to_identifier`.
    +568            Otherwise, we'd end up with `col_avg(`foo`)` (notice the double quotes).
    +569            """
    +570            agg_all_unquoted = agg.transform(
    +571                lambda node: exp.Identifier(this=node.name, quoted=False)
    +572                if isinstance(node, exp.Identifier)
    +573                else node
    +574            )
    +575            names.append(agg_all_unquoted.sql(dialect=dialect, normalize_functions="lower"))
    +576
    +577    return names
     
    diff --git a/docs/sqlglot/dialects/drill.html b/docs/sqlglot/dialects/drill.html index 0a21288..342c5f1 100644 --- a/docs/sqlglot/dialects/drill.html +++ b/docs/sqlglot/dialects/drill.html @@ -460,7 +460,7 @@ a parsed syntax tree.

    • error_level: the desired error level. -Default: ErrorLevel.RAISE
    • +Default: ErrorLevel.IMMEDIATE
    • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
    • @@ -599,6 +599,8 @@ represents a python time format and the output the target time format Default: "upper"
    • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
    • +
    • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
    • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
    • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -780,7 +782,6 @@ Default: True
    • check_sql
      foreignkey_sql
      primarykey_sql
      -
      unique_sql
      if_sql
      matchagainst_sql
      jsonkeyvalue_sql
      @@ -873,6 +874,9 @@ Default: True
      when_sql
      merge_sql
      tochar_sql
      +
      dictproperty_sql
      +
      dictrange_sql
      +
      dictsubproperty_sql
    diff --git a/docs/sqlglot/dialects/duckdb.html b/docs/sqlglot/dialects/duckdb.html index cb8325d..0d39ff9 100644 --- a/docs/sqlglot/dialects/duckdb.html +++ b/docs/sqlglot/dialects/duckdb.html @@ -113,223 +113,226 @@
    31 return f"CAST({this} AS DATE) + {self.sql(exp.Interval(this=expression.expression, unit=unit))}" 32 33 - 34def _date_add_sql(self: generator.Generator, expression: exp.DateAdd) -> str: + 34def _date_delta_sql(self: generator.Generator, expression: exp.DateAdd | exp.DateSub) -> str: 35 this = self.sql(expression, "this") 36 unit = self.sql(expression, "unit").strip("'") or "DAY" - 37 return f"{this} + {self.sql(exp.Interval(this=expression.expression, unit=unit))}" - 38 + 37 op = "+" if isinstance(expression, exp.DateAdd) else "-" + 38 return f"{this} {op} {self.sql(exp.Interval(this=expression.expression, unit=unit))}" 39 - 40def _array_sort_sql(self: generator.Generator, expression: exp.ArraySort) -> str: - 41 if expression.expression: - 42 self.unsupported("DUCKDB ARRAY_SORT does not support a comparator") - 43 return f"ARRAY_SORT({self.sql(expression, 'this')})" - 44 + 40 + 41def _array_sort_sql(self: generator.Generator, expression: exp.ArraySort) -> str: + 42 if expression.expression: + 43 self.unsupported("DUCKDB ARRAY_SORT does not support a comparator") + 44 return f"ARRAY_SORT({self.sql(expression, 'this')})" 45 - 46def _sort_array_sql(self: generator.Generator, expression: exp.SortArray) -> str: - 47 this = self.sql(expression, "this") - 48 if expression.args.get("asc") == exp.false(): - 49 return f"ARRAY_REVERSE_SORT({this})" - 50 return f"ARRAY_SORT({this})" - 51 + 46 + 47def _sort_array_sql(self: generator.Generator, expression: exp.SortArray) -> str: + 48 this = self.sql(expression, "this") + 49 if expression.args.get("asc") == exp.false(): + 50 return f"ARRAY_REVERSE_SORT({this})" + 51 return f"ARRAY_SORT({this})" 52 - 53def _sort_array_reverse(args: t.List) -> exp.Expression: - 54 return exp.SortArray(this=seq_get(args, 0), asc=exp.false()) - 55 + 53 + 54def _sort_array_reverse(args: t.List) -> exp.Expression: + 55 return exp.SortArray(this=seq_get(args, 0), asc=exp.false()) 56 - 57def _parse_date_diff(args: t.List) -> exp.Expression: - 58 return exp.DateDiff( - 59 this=seq_get(args, 2), - 60 expression=seq_get(args, 1), - 61 unit=seq_get(args, 0), - 62 ) - 63 + 57 + 58def _parse_date_diff(args: t.List) -> exp.Expression: + 59 return exp.DateDiff( + 60 this=seq_get(args, 2), + 61 expression=seq_get(args, 1), + 62 unit=seq_get(args, 0), + 63 ) 64 - 65def _struct_sql(self: generator.Generator, expression: exp.Struct) -> str: - 66 args = [ - 67 f"'{e.name or e.this.name}': {self.sql(e, 'expression')}" for e in expression.expressions - 68 ] - 69 return f"{{{', '.join(args)}}}" - 70 + 65 + 66def _struct_sql(self: generator.Generator, expression: exp.Struct) -> str: + 67 args = [ + 68 f"'{e.name or e.this.name}': {self.sql(e, 'expression')}" for e in expression.expressions + 69 ] + 70 return f"{{{', '.join(args)}}}" 71 - 72def _datatype_sql(self: generator.Generator, expression: exp.DataType) -> str: - 73 if expression.this == exp.DataType.Type.ARRAY: - 74 return f"{self.expressions(expression, flat=True)}[]" - 75 return self.datatype_sql(expression) - 76 + 72 + 73def _datatype_sql(self: generator.Generator, expression: exp.DataType) -> str: + 74 if expression.is_type("array"): + 75 return f"{self.expressions(expression, flat=True)}[]" + 76 return self.datatype_sql(expression) 77 - 78def _regexp_extract_sql(self: generator.Generator, expression: exp.RegexpExtract) -> str: - 79 bad_args = list(filter(expression.args.get, ("position", "occurrence"))) - 80 if bad_args: - 81 self.unsupported(f"REGEXP_EXTRACT does not support arg(s) {bad_args}") - 82 - 83 return self.func( - 84 "REGEXP_EXTRACT", - 85 expression.args.get("this"), - 86 expression.args.get("expression"), - 87 expression.args.get("group"), - 88 ) - 89 + 78 + 79def _regexp_extract_sql(self: generator.Generator, expression: exp.RegexpExtract) -> str: + 80 bad_args = list(filter(expression.args.get, ("position", "occurrence"))) + 81 if bad_args: + 82 self.unsupported(f"REGEXP_EXTRACT does not support arg(s) {bad_args}") + 83 + 84 return self.func( + 85 "REGEXP_EXTRACT", + 86 expression.args.get("this"), + 87 expression.args.get("expression"), + 88 expression.args.get("group"), + 89 ) 90 - 91class DuckDB(Dialect): - 92 null_ordering = "nulls_are_last" - 93 - 94 class Tokenizer(tokens.Tokenizer): - 95 KEYWORDS = { - 96 **tokens.Tokenizer.KEYWORDS, - 97 "~": TokenType.RLIKE, - 98 ":=": TokenType.EQ, - 99 "//": TokenType.DIV, -100 "ATTACH": TokenType.COMMAND, -101 "BINARY": TokenType.VARBINARY, -102 "BPCHAR": TokenType.TEXT, -103 "BITSTRING": TokenType.BIT, -104 "CHAR": TokenType.TEXT, -105 "CHARACTER VARYING": TokenType.TEXT, -106 "EXCLUDE": TokenType.EXCEPT, -107 "INT1": TokenType.TINYINT, -108 "LOGICAL": TokenType.BOOLEAN, -109 "NUMERIC": TokenType.DOUBLE, -110 "SIGNED": TokenType.INT, -111 "STRING": TokenType.VARCHAR, -112 "UBIGINT": TokenType.UBIGINT, -113 "UINTEGER": TokenType.UINT, -114 "USMALLINT": TokenType.USMALLINT, -115 "UTINYINT": TokenType.UTINYINT, -116 } -117 -118 class Parser(parser.Parser): -119 FUNCTIONS = { -120 **parser.Parser.FUNCTIONS, -121 "ARRAY_LENGTH": exp.ArraySize.from_arg_list, -122 "ARRAY_SORT": exp.SortArray.from_arg_list, -123 "ARRAY_REVERSE_SORT": _sort_array_reverse, -124 "DATEDIFF": _parse_date_diff, -125 "DATE_DIFF": _parse_date_diff, -126 "EPOCH": exp.TimeToUnix.from_arg_list, -127 "EPOCH_MS": lambda args: exp.UnixToTime( -128 this=exp.Div( -129 this=seq_get(args, 0), -130 expression=exp.Literal.number(1000), -131 ) -132 ), -133 "LIST_REVERSE_SORT": _sort_array_reverse, -134 "LIST_SORT": exp.SortArray.from_arg_list, -135 "LIST_VALUE": exp.Array.from_arg_list, -136 "REGEXP_MATCHES": exp.RegexpLike.from_arg_list, -137 "STRFTIME": format_time_lambda(exp.TimeToStr, "duckdb"), -138 "STRING_SPLIT": exp.Split.from_arg_list, -139 "STRING_SPLIT_REGEX": exp.RegexpSplit.from_arg_list, -140 "STRING_TO_ARRAY": exp.Split.from_arg_list, -141 "STRPTIME": format_time_lambda(exp.StrToTime, "duckdb"), -142 "STRUCT_PACK": exp.Struct.from_arg_list, -143 "STR_SPLIT": exp.Split.from_arg_list, -144 "STR_SPLIT_REGEX": exp.RegexpSplit.from_arg_list, -145 "TO_TIMESTAMP": exp.UnixToTime.from_arg_list, -146 "UNNEST": exp.Explode.from_arg_list, -147 } -148 -149 TYPE_TOKENS = { -150 *parser.Parser.TYPE_TOKENS, -151 TokenType.UBIGINT, -152 TokenType.UINT, -153 TokenType.USMALLINT, -154 TokenType.UTINYINT, -155 } -156 -157 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: -158 if len(aggregations) == 1: -159 return super()._pivot_column_names(aggregations) -160 return pivot_column_names(aggregations, dialect="duckdb") -161 -162 class Generator(generator.Generator): -163 JOIN_HINTS = False -164 TABLE_HINTS = False -165 LIMIT_FETCH = "LIMIT" -166 STRUCT_DELIMITER = ("(", ")") -167 RENAME_TABLE_WITH_DB = False -168 -169 TRANSFORMS = { -170 **generator.Generator.TRANSFORMS, -171 exp.ApproxDistinct: approx_count_distinct_sql, -172 exp.Array: lambda self, e: self.func("ARRAY", e.expressions[0]) -173 if isinstance(seq_get(e.expressions, 0), exp.Select) -174 else rename_func("LIST_VALUE")(self, e), -175 exp.ArraySize: rename_func("ARRAY_LENGTH"), -176 exp.ArraySort: _array_sort_sql, -177 exp.ArraySum: rename_func("LIST_SUM"), -178 exp.CommentColumnConstraint: no_comment_column_constraint_sql, -179 exp.CurrentDate: lambda self, e: "CURRENT_DATE", -180 exp.CurrentTime: lambda self, e: "CURRENT_TIME", -181 exp.CurrentTimestamp: lambda self, e: "CURRENT_TIMESTAMP", -182 exp.DayOfMonth: rename_func("DAYOFMONTH"), -183 exp.DayOfWeek: rename_func("DAYOFWEEK"), -184 exp.DayOfYear: rename_func("DAYOFYEAR"), -185 exp.DataType: _datatype_sql, -186 exp.DateAdd: _date_add_sql, -187 exp.DateDiff: lambda self, e: self.func( -188 "DATE_DIFF", f"'{e.args.get('unit', 'day')}'", e.expression, e.this -189 ), -190 exp.DateStrToDate: datestrtodate_sql, -191 exp.DateToDi: lambda self, e: f"CAST(STRFTIME({self.sql(e, 'this')}, {DuckDB.dateint_format}) AS INT)", -192 exp.DiToDate: lambda self, e: f"CAST(STRPTIME(CAST({self.sql(e, 'this')} AS TEXT), {DuckDB.dateint_format}) AS DATE)", -193 exp.Explode: rename_func("UNNEST"), -194 exp.IntDiv: lambda self, e: self.binary(e, "//"), -195 exp.JSONExtract: arrow_json_extract_sql, -196 exp.JSONExtractScalar: arrow_json_extract_scalar_sql, -197 exp.JSONBExtract: arrow_json_extract_sql, -198 exp.JSONBExtractScalar: arrow_json_extract_scalar_sql, -199 exp.LogicalOr: rename_func("BOOL_OR"), -200 exp.LogicalAnd: rename_func("BOOL_AND"), -201 exp.Properties: no_properties_sql, -202 exp.RegexpExtract: _regexp_extract_sql, -203 exp.RegexpLike: rename_func("REGEXP_MATCHES"), -204 exp.RegexpSplit: rename_func("STR_SPLIT_REGEX"), -205 exp.SafeDivide: no_safe_divide_sql, -206 exp.Split: rename_func("STR_SPLIT"), -207 exp.SortArray: _sort_array_sql, -208 exp.StrPosition: str_position_sql, -209 exp.StrToDate: lambda self, e: f"CAST({str_to_time_sql(self, e)} AS DATE)", -210 exp.StrToTime: str_to_time_sql, -211 exp.StrToUnix: lambda self, e: f"EPOCH(STRPTIME({self.sql(e, 'this')}, {self.format_time(e)}))", -212 exp.Struct: _struct_sql, -213 exp.TimestampTrunc: timestamptrunc_sql, -214 exp.TimeStrToDate: lambda self, e: f"CAST({self.sql(e, 'this')} AS DATE)", -215 exp.TimeStrToTime: timestrtotime_sql, -216 exp.TimeStrToUnix: lambda self, e: f"EPOCH(CAST({self.sql(e, 'this')} AS TIMESTAMP))", -217 exp.TimeToStr: lambda self, e: f"STRFTIME({self.sql(e, 'this')}, {self.format_time(e)})", -218 exp.TimeToUnix: rename_func("EPOCH"), -219 exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS TEXT), '-', ''), 1, 8) AS INT)", -220 exp.TsOrDsAdd: _ts_or_ds_add_sql, -221 exp.TsOrDsToDate: ts_or_ds_to_date_sql("duckdb"), -222 exp.UnixToStr: lambda self, e: f"STRFTIME(TO_TIMESTAMP({self.sql(e, 'this')}), {self.format_time(e)})", -223 exp.UnixToTime: rename_func("TO_TIMESTAMP"), -224 exp.UnixToTimeStr: lambda self, e: f"CAST(TO_TIMESTAMP({self.sql(e, 'this')}) AS TEXT)", -225 exp.WeekOfYear: rename_func("WEEKOFYEAR"), -226 } -227 -228 TYPE_MAPPING = { -229 **generator.Generator.TYPE_MAPPING, -230 exp.DataType.Type.BINARY: "BLOB", -231 exp.DataType.Type.CHAR: "TEXT", -232 exp.DataType.Type.FLOAT: "REAL", -233 exp.DataType.Type.NCHAR: "TEXT", -234 exp.DataType.Type.NVARCHAR: "TEXT", -235 exp.DataType.Type.UINT: "UINTEGER", -236 exp.DataType.Type.VARBINARY: "BLOB", -237 exp.DataType.Type.VARCHAR: "TEXT", -238 } -239 -240 STAR_MAPPING = {**generator.Generator.STAR_MAPPING, "except": "EXCLUDE"} -241 -242 PROPERTIES_LOCATION = { -243 **generator.Generator.PROPERTIES_LOCATION, -244 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -245 } -246 -247 def tablesample_sql( -248 self, expression: exp.TableSample, seed_prefix: str = "SEED", sep: str = " AS " -249 ) -> str: -250 return super().tablesample_sql(expression, seed_prefix="REPEATABLE", sep=sep) + 91 + 92class DuckDB(Dialect): + 93 null_ordering = "nulls_are_last" + 94 + 95 class Tokenizer(tokens.Tokenizer): + 96 KEYWORDS = { + 97 **tokens.Tokenizer.KEYWORDS, + 98 "~": TokenType.RLIKE, + 99 ":=": TokenType.EQ, +100 "//": TokenType.DIV, +101 "ATTACH": TokenType.COMMAND, +102 "BINARY": TokenType.VARBINARY, +103 "BPCHAR": TokenType.TEXT, +104 "BITSTRING": TokenType.BIT, +105 "CHAR": TokenType.TEXT, +106 "CHARACTER VARYING": TokenType.TEXT, +107 "EXCLUDE": TokenType.EXCEPT, +108 "INT1": TokenType.TINYINT, +109 "LOGICAL": TokenType.BOOLEAN, +110 "NUMERIC": TokenType.DOUBLE, +111 "PIVOT_WIDER": TokenType.PIVOT, +112 "SIGNED": TokenType.INT, +113 "STRING": TokenType.VARCHAR, +114 "UBIGINT": TokenType.UBIGINT, +115 "UINTEGER": TokenType.UINT, +116 "USMALLINT": TokenType.USMALLINT, +117 "UTINYINT": TokenType.UTINYINT, +118 } +119 +120 class Parser(parser.Parser): +121 FUNCTIONS = { +122 **parser.Parser.FUNCTIONS, +123 "ARRAY_LENGTH": exp.ArraySize.from_arg_list, +124 "ARRAY_SORT": exp.SortArray.from_arg_list, +125 "ARRAY_REVERSE_SORT": _sort_array_reverse, +126 "DATEDIFF": _parse_date_diff, +127 "DATE_DIFF": _parse_date_diff, +128 "EPOCH": exp.TimeToUnix.from_arg_list, +129 "EPOCH_MS": lambda args: exp.UnixToTime( +130 this=exp.Div( +131 this=seq_get(args, 0), +132 expression=exp.Literal.number(1000), +133 ) +134 ), +135 "LIST_REVERSE_SORT": _sort_array_reverse, +136 "LIST_SORT": exp.SortArray.from_arg_list, +137 "LIST_VALUE": exp.Array.from_arg_list, +138 "REGEXP_MATCHES": exp.RegexpLike.from_arg_list, +139 "STRFTIME": format_time_lambda(exp.TimeToStr, "duckdb"), +140 "STRING_SPLIT": exp.Split.from_arg_list, +141 "STRING_SPLIT_REGEX": exp.RegexpSplit.from_arg_list, +142 "STRING_TO_ARRAY": exp.Split.from_arg_list, +143 "STRPTIME": format_time_lambda(exp.StrToTime, "duckdb"), +144 "STRUCT_PACK": exp.Struct.from_arg_list, +145 "STR_SPLIT": exp.Split.from_arg_list, +146 "STR_SPLIT_REGEX": exp.RegexpSplit.from_arg_list, +147 "TO_TIMESTAMP": exp.UnixToTime.from_arg_list, +148 "UNNEST": exp.Explode.from_arg_list, +149 } +150 +151 TYPE_TOKENS = { +152 *parser.Parser.TYPE_TOKENS, +153 TokenType.UBIGINT, +154 TokenType.UINT, +155 TokenType.USMALLINT, +156 TokenType.UTINYINT, +157 } +158 +159 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: +160 if len(aggregations) == 1: +161 return super()._pivot_column_names(aggregations) +162 return pivot_column_names(aggregations, dialect="duckdb") +163 +164 class Generator(generator.Generator): +165 JOIN_HINTS = False +166 TABLE_HINTS = False +167 LIMIT_FETCH = "LIMIT" +168 STRUCT_DELIMITER = ("(", ")") +169 RENAME_TABLE_WITH_DB = False +170 +171 TRANSFORMS = { +172 **generator.Generator.TRANSFORMS, +173 exp.ApproxDistinct: approx_count_distinct_sql, +174 exp.Array: lambda self, e: self.func("ARRAY", e.expressions[0]) +175 if isinstance(seq_get(e.expressions, 0), exp.Select) +176 else rename_func("LIST_VALUE")(self, e), +177 exp.ArraySize: rename_func("ARRAY_LENGTH"), +178 exp.ArraySort: _array_sort_sql, +179 exp.ArraySum: rename_func("LIST_SUM"), +180 exp.CommentColumnConstraint: no_comment_column_constraint_sql, +181 exp.CurrentDate: lambda self, e: "CURRENT_DATE", +182 exp.CurrentTime: lambda self, e: "CURRENT_TIME", +183 exp.CurrentTimestamp: lambda self, e: "CURRENT_TIMESTAMP", +184 exp.DayOfMonth: rename_func("DAYOFMONTH"), +185 exp.DayOfWeek: rename_func("DAYOFWEEK"), +186 exp.DayOfYear: rename_func("DAYOFYEAR"), +187 exp.DataType: _datatype_sql, +188 exp.DateAdd: _date_delta_sql, +189 exp.DateSub: _date_delta_sql, +190 exp.DateDiff: lambda self, e: self.func( +191 "DATE_DIFF", f"'{e.args.get('unit', 'day')}'", e.expression, e.this +192 ), +193 exp.DateStrToDate: datestrtodate_sql, +194 exp.DateToDi: lambda self, e: f"CAST(STRFTIME({self.sql(e, 'this')}, {DuckDB.dateint_format}) AS INT)", +195 exp.DiToDate: lambda self, e: f"CAST(STRPTIME(CAST({self.sql(e, 'this')} AS TEXT), {DuckDB.dateint_format}) AS DATE)", +196 exp.Explode: rename_func("UNNEST"), +197 exp.IntDiv: lambda self, e: self.binary(e, "//"), +198 exp.JSONExtract: arrow_json_extract_sql, +199 exp.JSONExtractScalar: arrow_json_extract_scalar_sql, +200 exp.JSONBExtract: arrow_json_extract_sql, +201 exp.JSONBExtractScalar: arrow_json_extract_scalar_sql, +202 exp.LogicalOr: rename_func("BOOL_OR"), +203 exp.LogicalAnd: rename_func("BOOL_AND"), +204 exp.Properties: no_properties_sql, +205 exp.RegexpExtract: _regexp_extract_sql, +206 exp.RegexpLike: rename_func("REGEXP_MATCHES"), +207 exp.RegexpSplit: rename_func("STR_SPLIT_REGEX"), +208 exp.SafeDivide: no_safe_divide_sql, +209 exp.Split: rename_func("STR_SPLIT"), +210 exp.SortArray: _sort_array_sql, +211 exp.StrPosition: str_position_sql, +212 exp.StrToDate: lambda self, e: f"CAST({str_to_time_sql(self, e)} AS DATE)", +213 exp.StrToTime: str_to_time_sql, +214 exp.StrToUnix: lambda self, e: f"EPOCH(STRPTIME({self.sql(e, 'this')}, {self.format_time(e)}))", +215 exp.Struct: _struct_sql, +216 exp.TimestampTrunc: timestamptrunc_sql, +217 exp.TimeStrToDate: lambda self, e: f"CAST({self.sql(e, 'this')} AS DATE)", +218 exp.TimeStrToTime: timestrtotime_sql, +219 exp.TimeStrToUnix: lambda self, e: f"EPOCH(CAST({self.sql(e, 'this')} AS TIMESTAMP))", +220 exp.TimeToStr: lambda self, e: f"STRFTIME({self.sql(e, 'this')}, {self.format_time(e)})", +221 exp.TimeToUnix: rename_func("EPOCH"), +222 exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS TEXT), '-', ''), 1, 8) AS INT)", +223 exp.TsOrDsAdd: _ts_or_ds_add_sql, +224 exp.TsOrDsToDate: ts_or_ds_to_date_sql("duckdb"), +225 exp.UnixToStr: lambda self, e: f"STRFTIME(TO_TIMESTAMP({self.sql(e, 'this')}), {self.format_time(e)})", +226 exp.UnixToTime: rename_func("TO_TIMESTAMP"), +227 exp.UnixToTimeStr: lambda self, e: f"CAST(TO_TIMESTAMP({self.sql(e, 'this')}) AS TEXT)", +228 exp.WeekOfYear: rename_func("WEEKOFYEAR"), +229 } +230 +231 TYPE_MAPPING = { +232 **generator.Generator.TYPE_MAPPING, +233 exp.DataType.Type.BINARY: "BLOB", +234 exp.DataType.Type.CHAR: "TEXT", +235 exp.DataType.Type.FLOAT: "REAL", +236 exp.DataType.Type.NCHAR: "TEXT", +237 exp.DataType.Type.NVARCHAR: "TEXT", +238 exp.DataType.Type.UINT: "UINTEGER", +239 exp.DataType.Type.VARBINARY: "BLOB", +240 exp.DataType.Type.VARCHAR: "TEXT", +241 } +242 +243 STAR_MAPPING = {**generator.Generator.STAR_MAPPING, "except": "EXCLUDE"} +244 +245 PROPERTIES_LOCATION = { +246 **generator.Generator.PROPERTIES_LOCATION, +247 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +248 } +249 +250 def tablesample_sql( +251 self, expression: exp.TableSample, seed_prefix: str = "SEED", sep: str = " AS " +252 ) -> str: +253 return super().tablesample_sql(expression, seed_prefix="REPEATABLE", sep=sep)
    @@ -345,166 +348,168 @@ -
     92class DuckDB(Dialect):
    - 93    null_ordering = "nulls_are_last"
    - 94
    - 95    class Tokenizer(tokens.Tokenizer):
    - 96        KEYWORDS = {
    - 97            **tokens.Tokenizer.KEYWORDS,
    - 98            "~": TokenType.RLIKE,
    - 99            ":=": TokenType.EQ,
    -100            "//": TokenType.DIV,
    -101            "ATTACH": TokenType.COMMAND,
    -102            "BINARY": TokenType.VARBINARY,
    -103            "BPCHAR": TokenType.TEXT,
    -104            "BITSTRING": TokenType.BIT,
    -105            "CHAR": TokenType.TEXT,
    -106            "CHARACTER VARYING": TokenType.TEXT,
    -107            "EXCLUDE": TokenType.EXCEPT,
    -108            "INT1": TokenType.TINYINT,
    -109            "LOGICAL": TokenType.BOOLEAN,
    -110            "NUMERIC": TokenType.DOUBLE,
    -111            "SIGNED": TokenType.INT,
    -112            "STRING": TokenType.VARCHAR,
    -113            "UBIGINT": TokenType.UBIGINT,
    -114            "UINTEGER": TokenType.UINT,
    -115            "USMALLINT": TokenType.USMALLINT,
    -116            "UTINYINT": TokenType.UTINYINT,
    -117        }
    -118
    -119    class Parser(parser.Parser):
    -120        FUNCTIONS = {
    -121            **parser.Parser.FUNCTIONS,
    -122            "ARRAY_LENGTH": exp.ArraySize.from_arg_list,
    -123            "ARRAY_SORT": exp.SortArray.from_arg_list,
    -124            "ARRAY_REVERSE_SORT": _sort_array_reverse,
    -125            "DATEDIFF": _parse_date_diff,
    -126            "DATE_DIFF": _parse_date_diff,
    -127            "EPOCH": exp.TimeToUnix.from_arg_list,
    -128            "EPOCH_MS": lambda args: exp.UnixToTime(
    -129                this=exp.Div(
    -130                    this=seq_get(args, 0),
    -131                    expression=exp.Literal.number(1000),
    -132                )
    -133            ),
    -134            "LIST_REVERSE_SORT": _sort_array_reverse,
    -135            "LIST_SORT": exp.SortArray.from_arg_list,
    -136            "LIST_VALUE": exp.Array.from_arg_list,
    -137            "REGEXP_MATCHES": exp.RegexpLike.from_arg_list,
    -138            "STRFTIME": format_time_lambda(exp.TimeToStr, "duckdb"),
    -139            "STRING_SPLIT": exp.Split.from_arg_list,
    -140            "STRING_SPLIT_REGEX": exp.RegexpSplit.from_arg_list,
    -141            "STRING_TO_ARRAY": exp.Split.from_arg_list,
    -142            "STRPTIME": format_time_lambda(exp.StrToTime, "duckdb"),
    -143            "STRUCT_PACK": exp.Struct.from_arg_list,
    -144            "STR_SPLIT": exp.Split.from_arg_list,
    -145            "STR_SPLIT_REGEX": exp.RegexpSplit.from_arg_list,
    -146            "TO_TIMESTAMP": exp.UnixToTime.from_arg_list,
    -147            "UNNEST": exp.Explode.from_arg_list,
    -148        }
    -149
    -150        TYPE_TOKENS = {
    -151            *parser.Parser.TYPE_TOKENS,
    -152            TokenType.UBIGINT,
    -153            TokenType.UINT,
    -154            TokenType.USMALLINT,
    -155            TokenType.UTINYINT,
    -156        }
    -157
    -158        def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]:
    -159            if len(aggregations) == 1:
    -160                return super()._pivot_column_names(aggregations)
    -161            return pivot_column_names(aggregations, dialect="duckdb")
    -162
    -163    class Generator(generator.Generator):
    -164        JOIN_HINTS = False
    -165        TABLE_HINTS = False
    -166        LIMIT_FETCH = "LIMIT"
    -167        STRUCT_DELIMITER = ("(", ")")
    -168        RENAME_TABLE_WITH_DB = False
    -169
    -170        TRANSFORMS = {
    -171            **generator.Generator.TRANSFORMS,
    -172            exp.ApproxDistinct: approx_count_distinct_sql,
    -173            exp.Array: lambda self, e: self.func("ARRAY", e.expressions[0])
    -174            if isinstance(seq_get(e.expressions, 0), exp.Select)
    -175            else rename_func("LIST_VALUE")(self, e),
    -176            exp.ArraySize: rename_func("ARRAY_LENGTH"),
    -177            exp.ArraySort: _array_sort_sql,
    -178            exp.ArraySum: rename_func("LIST_SUM"),
    -179            exp.CommentColumnConstraint: no_comment_column_constraint_sql,
    -180            exp.CurrentDate: lambda self, e: "CURRENT_DATE",
    -181            exp.CurrentTime: lambda self, e: "CURRENT_TIME",
    -182            exp.CurrentTimestamp: lambda self, e: "CURRENT_TIMESTAMP",
    -183            exp.DayOfMonth: rename_func("DAYOFMONTH"),
    -184            exp.DayOfWeek: rename_func("DAYOFWEEK"),
    -185            exp.DayOfYear: rename_func("DAYOFYEAR"),
    -186            exp.DataType: _datatype_sql,
    -187            exp.DateAdd: _date_add_sql,
    -188            exp.DateDiff: lambda self, e: self.func(
    -189                "DATE_DIFF", f"'{e.args.get('unit', 'day')}'", e.expression, e.this
    -190            ),
    -191            exp.DateStrToDate: datestrtodate_sql,
    -192            exp.DateToDi: lambda self, e: f"CAST(STRFTIME({self.sql(e, 'this')}, {DuckDB.dateint_format}) AS INT)",
    -193            exp.DiToDate: lambda self, e: f"CAST(STRPTIME(CAST({self.sql(e, 'this')} AS TEXT), {DuckDB.dateint_format}) AS DATE)",
    -194            exp.Explode: rename_func("UNNEST"),
    -195            exp.IntDiv: lambda self, e: self.binary(e, "//"),
    -196            exp.JSONExtract: arrow_json_extract_sql,
    -197            exp.JSONExtractScalar: arrow_json_extract_scalar_sql,
    -198            exp.JSONBExtract: arrow_json_extract_sql,
    -199            exp.JSONBExtractScalar: arrow_json_extract_scalar_sql,
    -200            exp.LogicalOr: rename_func("BOOL_OR"),
    -201            exp.LogicalAnd: rename_func("BOOL_AND"),
    -202            exp.Properties: no_properties_sql,
    -203            exp.RegexpExtract: _regexp_extract_sql,
    -204            exp.RegexpLike: rename_func("REGEXP_MATCHES"),
    -205            exp.RegexpSplit: rename_func("STR_SPLIT_REGEX"),
    -206            exp.SafeDivide: no_safe_divide_sql,
    -207            exp.Split: rename_func("STR_SPLIT"),
    -208            exp.SortArray: _sort_array_sql,
    -209            exp.StrPosition: str_position_sql,
    -210            exp.StrToDate: lambda self, e: f"CAST({str_to_time_sql(self, e)} AS DATE)",
    -211            exp.StrToTime: str_to_time_sql,
    -212            exp.StrToUnix: lambda self, e: f"EPOCH(STRPTIME({self.sql(e, 'this')}, {self.format_time(e)}))",
    -213            exp.Struct: _struct_sql,
    -214            exp.TimestampTrunc: timestamptrunc_sql,
    -215            exp.TimeStrToDate: lambda self, e: f"CAST({self.sql(e, 'this')} AS DATE)",
    -216            exp.TimeStrToTime: timestrtotime_sql,
    -217            exp.TimeStrToUnix: lambda self, e: f"EPOCH(CAST({self.sql(e, 'this')} AS TIMESTAMP))",
    -218            exp.TimeToStr: lambda self, e: f"STRFTIME({self.sql(e, 'this')}, {self.format_time(e)})",
    -219            exp.TimeToUnix: rename_func("EPOCH"),
    -220            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS TEXT), '-', ''), 1, 8) AS INT)",
    -221            exp.TsOrDsAdd: _ts_or_ds_add_sql,
    -222            exp.TsOrDsToDate: ts_or_ds_to_date_sql("duckdb"),
    -223            exp.UnixToStr: lambda self, e: f"STRFTIME(TO_TIMESTAMP({self.sql(e, 'this')}), {self.format_time(e)})",
    -224            exp.UnixToTime: rename_func("TO_TIMESTAMP"),
    -225            exp.UnixToTimeStr: lambda self, e: f"CAST(TO_TIMESTAMP({self.sql(e, 'this')}) AS TEXT)",
    -226            exp.WeekOfYear: rename_func("WEEKOFYEAR"),
    -227        }
    -228
    -229        TYPE_MAPPING = {
    -230            **generator.Generator.TYPE_MAPPING,
    -231            exp.DataType.Type.BINARY: "BLOB",
    -232            exp.DataType.Type.CHAR: "TEXT",
    -233            exp.DataType.Type.FLOAT: "REAL",
    -234            exp.DataType.Type.NCHAR: "TEXT",
    -235            exp.DataType.Type.NVARCHAR: "TEXT",
    -236            exp.DataType.Type.UINT: "UINTEGER",
    -237            exp.DataType.Type.VARBINARY: "BLOB",
    -238            exp.DataType.Type.VARCHAR: "TEXT",
    -239        }
    -240
    -241        STAR_MAPPING = {**generator.Generator.STAR_MAPPING, "except": "EXCLUDE"}
    -242
    -243        PROPERTIES_LOCATION = {
    -244            **generator.Generator.PROPERTIES_LOCATION,
    -245            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    -246        }
    -247
    -248        def tablesample_sql(
    -249            self, expression: exp.TableSample, seed_prefix: str = "SEED", sep: str = " AS "
    -250        ) -> str:
    -251            return super().tablesample_sql(expression, seed_prefix="REPEATABLE", sep=sep)
    +            
     93class DuckDB(Dialect):
    + 94    null_ordering = "nulls_are_last"
    + 95
    + 96    class Tokenizer(tokens.Tokenizer):
    + 97        KEYWORDS = {
    + 98            **tokens.Tokenizer.KEYWORDS,
    + 99            "~": TokenType.RLIKE,
    +100            ":=": TokenType.EQ,
    +101            "//": TokenType.DIV,
    +102            "ATTACH": TokenType.COMMAND,
    +103            "BINARY": TokenType.VARBINARY,
    +104            "BPCHAR": TokenType.TEXT,
    +105            "BITSTRING": TokenType.BIT,
    +106            "CHAR": TokenType.TEXT,
    +107            "CHARACTER VARYING": TokenType.TEXT,
    +108            "EXCLUDE": TokenType.EXCEPT,
    +109            "INT1": TokenType.TINYINT,
    +110            "LOGICAL": TokenType.BOOLEAN,
    +111            "NUMERIC": TokenType.DOUBLE,
    +112            "PIVOT_WIDER": TokenType.PIVOT,
    +113            "SIGNED": TokenType.INT,
    +114            "STRING": TokenType.VARCHAR,
    +115            "UBIGINT": TokenType.UBIGINT,
    +116            "UINTEGER": TokenType.UINT,
    +117            "USMALLINT": TokenType.USMALLINT,
    +118            "UTINYINT": TokenType.UTINYINT,
    +119        }
    +120
    +121    class Parser(parser.Parser):
    +122        FUNCTIONS = {
    +123            **parser.Parser.FUNCTIONS,
    +124            "ARRAY_LENGTH": exp.ArraySize.from_arg_list,
    +125            "ARRAY_SORT": exp.SortArray.from_arg_list,
    +126            "ARRAY_REVERSE_SORT": _sort_array_reverse,
    +127            "DATEDIFF": _parse_date_diff,
    +128            "DATE_DIFF": _parse_date_diff,
    +129            "EPOCH": exp.TimeToUnix.from_arg_list,
    +130            "EPOCH_MS": lambda args: exp.UnixToTime(
    +131                this=exp.Div(
    +132                    this=seq_get(args, 0),
    +133                    expression=exp.Literal.number(1000),
    +134                )
    +135            ),
    +136            "LIST_REVERSE_SORT": _sort_array_reverse,
    +137            "LIST_SORT": exp.SortArray.from_arg_list,
    +138            "LIST_VALUE": exp.Array.from_arg_list,
    +139            "REGEXP_MATCHES": exp.RegexpLike.from_arg_list,
    +140            "STRFTIME": format_time_lambda(exp.TimeToStr, "duckdb"),
    +141            "STRING_SPLIT": exp.Split.from_arg_list,
    +142            "STRING_SPLIT_REGEX": exp.RegexpSplit.from_arg_list,
    +143            "STRING_TO_ARRAY": exp.Split.from_arg_list,
    +144            "STRPTIME": format_time_lambda(exp.StrToTime, "duckdb"),
    +145            "STRUCT_PACK": exp.Struct.from_arg_list,
    +146            "STR_SPLIT": exp.Split.from_arg_list,
    +147            "STR_SPLIT_REGEX": exp.RegexpSplit.from_arg_list,
    +148            "TO_TIMESTAMP": exp.UnixToTime.from_arg_list,
    +149            "UNNEST": exp.Explode.from_arg_list,
    +150        }
    +151
    +152        TYPE_TOKENS = {
    +153            *parser.Parser.TYPE_TOKENS,
    +154            TokenType.UBIGINT,
    +155            TokenType.UINT,
    +156            TokenType.USMALLINT,
    +157            TokenType.UTINYINT,
    +158        }
    +159
    +160        def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]:
    +161            if len(aggregations) == 1:
    +162                return super()._pivot_column_names(aggregations)
    +163            return pivot_column_names(aggregations, dialect="duckdb")
    +164
    +165    class Generator(generator.Generator):
    +166        JOIN_HINTS = False
    +167        TABLE_HINTS = False
    +168        LIMIT_FETCH = "LIMIT"
    +169        STRUCT_DELIMITER = ("(", ")")
    +170        RENAME_TABLE_WITH_DB = False
    +171
    +172        TRANSFORMS = {
    +173            **generator.Generator.TRANSFORMS,
    +174            exp.ApproxDistinct: approx_count_distinct_sql,
    +175            exp.Array: lambda self, e: self.func("ARRAY", e.expressions[0])
    +176            if isinstance(seq_get(e.expressions, 0), exp.Select)
    +177            else rename_func("LIST_VALUE")(self, e),
    +178            exp.ArraySize: rename_func("ARRAY_LENGTH"),
    +179            exp.ArraySort: _array_sort_sql,
    +180            exp.ArraySum: rename_func("LIST_SUM"),
    +181            exp.CommentColumnConstraint: no_comment_column_constraint_sql,
    +182            exp.CurrentDate: lambda self, e: "CURRENT_DATE",
    +183            exp.CurrentTime: lambda self, e: "CURRENT_TIME",
    +184            exp.CurrentTimestamp: lambda self, e: "CURRENT_TIMESTAMP",
    +185            exp.DayOfMonth: rename_func("DAYOFMONTH"),
    +186            exp.DayOfWeek: rename_func("DAYOFWEEK"),
    +187            exp.DayOfYear: rename_func("DAYOFYEAR"),
    +188            exp.DataType: _datatype_sql,
    +189            exp.DateAdd: _date_delta_sql,
    +190            exp.DateSub: _date_delta_sql,
    +191            exp.DateDiff: lambda self, e: self.func(
    +192                "DATE_DIFF", f"'{e.args.get('unit', 'day')}'", e.expression, e.this
    +193            ),
    +194            exp.DateStrToDate: datestrtodate_sql,
    +195            exp.DateToDi: lambda self, e: f"CAST(STRFTIME({self.sql(e, 'this')}, {DuckDB.dateint_format}) AS INT)",
    +196            exp.DiToDate: lambda self, e: f"CAST(STRPTIME(CAST({self.sql(e, 'this')} AS TEXT), {DuckDB.dateint_format}) AS DATE)",
    +197            exp.Explode: rename_func("UNNEST"),
    +198            exp.IntDiv: lambda self, e: self.binary(e, "//"),
    +199            exp.JSONExtract: arrow_json_extract_sql,
    +200            exp.JSONExtractScalar: arrow_json_extract_scalar_sql,
    +201            exp.JSONBExtract: arrow_json_extract_sql,
    +202            exp.JSONBExtractScalar: arrow_json_extract_scalar_sql,
    +203            exp.LogicalOr: rename_func("BOOL_OR"),
    +204            exp.LogicalAnd: rename_func("BOOL_AND"),
    +205            exp.Properties: no_properties_sql,
    +206            exp.RegexpExtract: _regexp_extract_sql,
    +207            exp.RegexpLike: rename_func("REGEXP_MATCHES"),
    +208            exp.RegexpSplit: rename_func("STR_SPLIT_REGEX"),
    +209            exp.SafeDivide: no_safe_divide_sql,
    +210            exp.Split: rename_func("STR_SPLIT"),
    +211            exp.SortArray: _sort_array_sql,
    +212            exp.StrPosition: str_position_sql,
    +213            exp.StrToDate: lambda self, e: f"CAST({str_to_time_sql(self, e)} AS DATE)",
    +214            exp.StrToTime: str_to_time_sql,
    +215            exp.StrToUnix: lambda self, e: f"EPOCH(STRPTIME({self.sql(e, 'this')}, {self.format_time(e)}))",
    +216            exp.Struct: _struct_sql,
    +217            exp.TimestampTrunc: timestamptrunc_sql,
    +218            exp.TimeStrToDate: lambda self, e: f"CAST({self.sql(e, 'this')} AS DATE)",
    +219            exp.TimeStrToTime: timestrtotime_sql,
    +220            exp.TimeStrToUnix: lambda self, e: f"EPOCH(CAST({self.sql(e, 'this')} AS TIMESTAMP))",
    +221            exp.TimeToStr: lambda self, e: f"STRFTIME({self.sql(e, 'this')}, {self.format_time(e)})",
    +222            exp.TimeToUnix: rename_func("EPOCH"),
    +223            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS TEXT), '-', ''), 1, 8) AS INT)",
    +224            exp.TsOrDsAdd: _ts_or_ds_add_sql,
    +225            exp.TsOrDsToDate: ts_or_ds_to_date_sql("duckdb"),
    +226            exp.UnixToStr: lambda self, e: f"STRFTIME(TO_TIMESTAMP({self.sql(e, 'this')}), {self.format_time(e)})",
    +227            exp.UnixToTime: rename_func("TO_TIMESTAMP"),
    +228            exp.UnixToTimeStr: lambda self, e: f"CAST(TO_TIMESTAMP({self.sql(e, 'this')}) AS TEXT)",
    +229            exp.WeekOfYear: rename_func("WEEKOFYEAR"),
    +230        }
    +231
    +232        TYPE_MAPPING = {
    +233            **generator.Generator.TYPE_MAPPING,
    +234            exp.DataType.Type.BINARY: "BLOB",
    +235            exp.DataType.Type.CHAR: "TEXT",
    +236            exp.DataType.Type.FLOAT: "REAL",
    +237            exp.DataType.Type.NCHAR: "TEXT",
    +238            exp.DataType.Type.NVARCHAR: "TEXT",
    +239            exp.DataType.Type.UINT: "UINTEGER",
    +240            exp.DataType.Type.VARBINARY: "BLOB",
    +241            exp.DataType.Type.VARCHAR: "TEXT",
    +242        }
    +243
    +244        STAR_MAPPING = {**generator.Generator.STAR_MAPPING, "except": "EXCLUDE"}
    +245
    +246        PROPERTIES_LOCATION = {
    +247            **generator.Generator.PROPERTIES_LOCATION,
    +248            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    +249        }
    +250
    +251        def tablesample_sql(
    +252            self, expression: exp.TableSample, seed_prefix: str = "SEED", sep: str = " AS "
    +253        ) -> str:
    +254            return super().tablesample_sql(expression, seed_prefix="REPEATABLE", sep=sep)
     
    @@ -539,29 +544,30 @@
    -
     95    class Tokenizer(tokens.Tokenizer):
    - 96        KEYWORDS = {
    - 97            **tokens.Tokenizer.KEYWORDS,
    - 98            "~": TokenType.RLIKE,
    - 99            ":=": TokenType.EQ,
    -100            "//": TokenType.DIV,
    -101            "ATTACH": TokenType.COMMAND,
    -102            "BINARY": TokenType.VARBINARY,
    -103            "BPCHAR": TokenType.TEXT,
    -104            "BITSTRING": TokenType.BIT,
    -105            "CHAR": TokenType.TEXT,
    -106            "CHARACTER VARYING": TokenType.TEXT,
    -107            "EXCLUDE": TokenType.EXCEPT,
    -108            "INT1": TokenType.TINYINT,
    -109            "LOGICAL": TokenType.BOOLEAN,
    -110            "NUMERIC": TokenType.DOUBLE,
    -111            "SIGNED": TokenType.INT,
    -112            "STRING": TokenType.VARCHAR,
    -113            "UBIGINT": TokenType.UBIGINT,
    -114            "UINTEGER": TokenType.UINT,
    -115            "USMALLINT": TokenType.USMALLINT,
    -116            "UTINYINT": TokenType.UTINYINT,
    -117        }
    +            
     96    class Tokenizer(tokens.Tokenizer):
    + 97        KEYWORDS = {
    + 98            **tokens.Tokenizer.KEYWORDS,
    + 99            "~": TokenType.RLIKE,
    +100            ":=": TokenType.EQ,
    +101            "//": TokenType.DIV,
    +102            "ATTACH": TokenType.COMMAND,
    +103            "BINARY": TokenType.VARBINARY,
    +104            "BPCHAR": TokenType.TEXT,
    +105            "BITSTRING": TokenType.BIT,
    +106            "CHAR": TokenType.TEXT,
    +107            "CHARACTER VARYING": TokenType.TEXT,
    +108            "EXCLUDE": TokenType.EXCEPT,
    +109            "INT1": TokenType.TINYINT,
    +110            "LOGICAL": TokenType.BOOLEAN,
    +111            "NUMERIC": TokenType.DOUBLE,
    +112            "PIVOT_WIDER": TokenType.PIVOT,
    +113            "SIGNED": TokenType.INT,
    +114            "STRING": TokenType.VARCHAR,
    +115            "UBIGINT": TokenType.UBIGINT,
    +116            "UINTEGER": TokenType.UINT,
    +117            "USMALLINT": TokenType.USMALLINT,
    +118            "UTINYINT": TokenType.UTINYINT,
    +119        }
     
    @@ -589,49 +595,49 @@
    -
    119    class Parser(parser.Parser):
    -120        FUNCTIONS = {
    -121            **parser.Parser.FUNCTIONS,
    -122            "ARRAY_LENGTH": exp.ArraySize.from_arg_list,
    -123            "ARRAY_SORT": exp.SortArray.from_arg_list,
    -124            "ARRAY_REVERSE_SORT": _sort_array_reverse,
    -125            "DATEDIFF": _parse_date_diff,
    -126            "DATE_DIFF": _parse_date_diff,
    -127            "EPOCH": exp.TimeToUnix.from_arg_list,
    -128            "EPOCH_MS": lambda args: exp.UnixToTime(
    -129                this=exp.Div(
    -130                    this=seq_get(args, 0),
    -131                    expression=exp.Literal.number(1000),
    -132                )
    -133            ),
    -134            "LIST_REVERSE_SORT": _sort_array_reverse,
    -135            "LIST_SORT": exp.SortArray.from_arg_list,
    -136            "LIST_VALUE": exp.Array.from_arg_list,
    -137            "REGEXP_MATCHES": exp.RegexpLike.from_arg_list,
    -138            "STRFTIME": format_time_lambda(exp.TimeToStr, "duckdb"),
    -139            "STRING_SPLIT": exp.Split.from_arg_list,
    -140            "STRING_SPLIT_REGEX": exp.RegexpSplit.from_arg_list,
    -141            "STRING_TO_ARRAY": exp.Split.from_arg_list,
    -142            "STRPTIME": format_time_lambda(exp.StrToTime, "duckdb"),
    -143            "STRUCT_PACK": exp.Struct.from_arg_list,
    -144            "STR_SPLIT": exp.Split.from_arg_list,
    -145            "STR_SPLIT_REGEX": exp.RegexpSplit.from_arg_list,
    -146            "TO_TIMESTAMP": exp.UnixToTime.from_arg_list,
    -147            "UNNEST": exp.Explode.from_arg_list,
    -148        }
    -149
    -150        TYPE_TOKENS = {
    -151            *parser.Parser.TYPE_TOKENS,
    -152            TokenType.UBIGINT,
    -153            TokenType.UINT,
    -154            TokenType.USMALLINT,
    -155            TokenType.UTINYINT,
    -156        }
    -157
    -158        def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]:
    -159            if len(aggregations) == 1:
    -160                return super()._pivot_column_names(aggregations)
    -161            return pivot_column_names(aggregations, dialect="duckdb")
    +            
    121    class Parser(parser.Parser):
    +122        FUNCTIONS = {
    +123            **parser.Parser.FUNCTIONS,
    +124            "ARRAY_LENGTH": exp.ArraySize.from_arg_list,
    +125            "ARRAY_SORT": exp.SortArray.from_arg_list,
    +126            "ARRAY_REVERSE_SORT": _sort_array_reverse,
    +127            "DATEDIFF": _parse_date_diff,
    +128            "DATE_DIFF": _parse_date_diff,
    +129            "EPOCH": exp.TimeToUnix.from_arg_list,
    +130            "EPOCH_MS": lambda args: exp.UnixToTime(
    +131                this=exp.Div(
    +132                    this=seq_get(args, 0),
    +133                    expression=exp.Literal.number(1000),
    +134                )
    +135            ),
    +136            "LIST_REVERSE_SORT": _sort_array_reverse,
    +137            "LIST_SORT": exp.SortArray.from_arg_list,
    +138            "LIST_VALUE": exp.Array.from_arg_list,
    +139            "REGEXP_MATCHES": exp.RegexpLike.from_arg_list,
    +140            "STRFTIME": format_time_lambda(exp.TimeToStr, "duckdb"),
    +141            "STRING_SPLIT": exp.Split.from_arg_list,
    +142            "STRING_SPLIT_REGEX": exp.RegexpSplit.from_arg_list,
    +143            "STRING_TO_ARRAY": exp.Split.from_arg_list,
    +144            "STRPTIME": format_time_lambda(exp.StrToTime, "duckdb"),
    +145            "STRUCT_PACK": exp.Struct.from_arg_list,
    +146            "STR_SPLIT": exp.Split.from_arg_list,
    +147            "STR_SPLIT_REGEX": exp.RegexpSplit.from_arg_list,
    +148            "TO_TIMESTAMP": exp.UnixToTime.from_arg_list,
    +149            "UNNEST": exp.Explode.from_arg_list,
    +150        }
    +151
    +152        TYPE_TOKENS = {
    +153            *parser.Parser.TYPE_TOKENS,
    +154            TokenType.UBIGINT,
    +155            TokenType.UINT,
    +156            TokenType.USMALLINT,
    +157            TokenType.UTINYINT,
    +158        }
    +159
    +160        def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]:
    +161            if len(aggregations) == 1:
    +162                return super()._pivot_column_names(aggregations)
    +163            return pivot_column_names(aggregations, dialect="duckdb")
     
    @@ -642,7 +648,7 @@ a parsed syntax tree.

    • error_level: the desired error level. -Default: ErrorLevel.RAISE
    • +Default: ErrorLevel.IMMEDIATE
    • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
    • @@ -688,95 +694,96 @@ Default: "nulls_are_small"
    -
    163    class Generator(generator.Generator):
    -164        JOIN_HINTS = False
    -165        TABLE_HINTS = False
    -166        LIMIT_FETCH = "LIMIT"
    -167        STRUCT_DELIMITER = ("(", ")")
    -168        RENAME_TABLE_WITH_DB = False
    -169
    -170        TRANSFORMS = {
    -171            **generator.Generator.TRANSFORMS,
    -172            exp.ApproxDistinct: approx_count_distinct_sql,
    -173            exp.Array: lambda self, e: self.func("ARRAY", e.expressions[0])
    -174            if isinstance(seq_get(e.expressions, 0), exp.Select)
    -175            else rename_func("LIST_VALUE")(self, e),
    -176            exp.ArraySize: rename_func("ARRAY_LENGTH"),
    -177            exp.ArraySort: _array_sort_sql,
    -178            exp.ArraySum: rename_func("LIST_SUM"),
    -179            exp.CommentColumnConstraint: no_comment_column_constraint_sql,
    -180            exp.CurrentDate: lambda self, e: "CURRENT_DATE",
    -181            exp.CurrentTime: lambda self, e: "CURRENT_TIME",
    -182            exp.CurrentTimestamp: lambda self, e: "CURRENT_TIMESTAMP",
    -183            exp.DayOfMonth: rename_func("DAYOFMONTH"),
    -184            exp.DayOfWeek: rename_func("DAYOFWEEK"),
    -185            exp.DayOfYear: rename_func("DAYOFYEAR"),
    -186            exp.DataType: _datatype_sql,
    -187            exp.DateAdd: _date_add_sql,
    -188            exp.DateDiff: lambda self, e: self.func(
    -189                "DATE_DIFF", f"'{e.args.get('unit', 'day')}'", e.expression, e.this
    -190            ),
    -191            exp.DateStrToDate: datestrtodate_sql,
    -192            exp.DateToDi: lambda self, e: f"CAST(STRFTIME({self.sql(e, 'this')}, {DuckDB.dateint_format}) AS INT)",
    -193            exp.DiToDate: lambda self, e: f"CAST(STRPTIME(CAST({self.sql(e, 'this')} AS TEXT), {DuckDB.dateint_format}) AS DATE)",
    -194            exp.Explode: rename_func("UNNEST"),
    -195            exp.IntDiv: lambda self, e: self.binary(e, "//"),
    -196            exp.JSONExtract: arrow_json_extract_sql,
    -197            exp.JSONExtractScalar: arrow_json_extract_scalar_sql,
    -198            exp.JSONBExtract: arrow_json_extract_sql,
    -199            exp.JSONBExtractScalar: arrow_json_extract_scalar_sql,
    -200            exp.LogicalOr: rename_func("BOOL_OR"),
    -201            exp.LogicalAnd: rename_func("BOOL_AND"),
    -202            exp.Properties: no_properties_sql,
    -203            exp.RegexpExtract: _regexp_extract_sql,
    -204            exp.RegexpLike: rename_func("REGEXP_MATCHES"),
    -205            exp.RegexpSplit: rename_func("STR_SPLIT_REGEX"),
    -206            exp.SafeDivide: no_safe_divide_sql,
    -207            exp.Split: rename_func("STR_SPLIT"),
    -208            exp.SortArray: _sort_array_sql,
    -209            exp.StrPosition: str_position_sql,
    -210            exp.StrToDate: lambda self, e: f"CAST({str_to_time_sql(self, e)} AS DATE)",
    -211            exp.StrToTime: str_to_time_sql,
    -212            exp.StrToUnix: lambda self, e: f"EPOCH(STRPTIME({self.sql(e, 'this')}, {self.format_time(e)}))",
    -213            exp.Struct: _struct_sql,
    -214            exp.TimestampTrunc: timestamptrunc_sql,
    -215            exp.TimeStrToDate: lambda self, e: f"CAST({self.sql(e, 'this')} AS DATE)",
    -216            exp.TimeStrToTime: timestrtotime_sql,
    -217            exp.TimeStrToUnix: lambda self, e: f"EPOCH(CAST({self.sql(e, 'this')} AS TIMESTAMP))",
    -218            exp.TimeToStr: lambda self, e: f"STRFTIME({self.sql(e, 'this')}, {self.format_time(e)})",
    -219            exp.TimeToUnix: rename_func("EPOCH"),
    -220            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS TEXT), '-', ''), 1, 8) AS INT)",
    -221            exp.TsOrDsAdd: _ts_or_ds_add_sql,
    -222            exp.TsOrDsToDate: ts_or_ds_to_date_sql("duckdb"),
    -223            exp.UnixToStr: lambda self, e: f"STRFTIME(TO_TIMESTAMP({self.sql(e, 'this')}), {self.format_time(e)})",
    -224            exp.UnixToTime: rename_func("TO_TIMESTAMP"),
    -225            exp.UnixToTimeStr: lambda self, e: f"CAST(TO_TIMESTAMP({self.sql(e, 'this')}) AS TEXT)",
    -226            exp.WeekOfYear: rename_func("WEEKOFYEAR"),
    -227        }
    -228
    -229        TYPE_MAPPING = {
    -230            **generator.Generator.TYPE_MAPPING,
    -231            exp.DataType.Type.BINARY: "BLOB",
    -232            exp.DataType.Type.CHAR: "TEXT",
    -233            exp.DataType.Type.FLOAT: "REAL",
    -234            exp.DataType.Type.NCHAR: "TEXT",
    -235            exp.DataType.Type.NVARCHAR: "TEXT",
    -236            exp.DataType.Type.UINT: "UINTEGER",
    -237            exp.DataType.Type.VARBINARY: "BLOB",
    -238            exp.DataType.Type.VARCHAR: "TEXT",
    -239        }
    -240
    -241        STAR_MAPPING = {**generator.Generator.STAR_MAPPING, "except": "EXCLUDE"}
    -242
    -243        PROPERTIES_LOCATION = {
    -244            **generator.Generator.PROPERTIES_LOCATION,
    -245            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    -246        }
    -247
    -248        def tablesample_sql(
    -249            self, expression: exp.TableSample, seed_prefix: str = "SEED", sep: str = " AS "
    -250        ) -> str:
    -251            return super().tablesample_sql(expression, seed_prefix="REPEATABLE", sep=sep)
    +            
    165    class Generator(generator.Generator):
    +166        JOIN_HINTS = False
    +167        TABLE_HINTS = False
    +168        LIMIT_FETCH = "LIMIT"
    +169        STRUCT_DELIMITER = ("(", ")")
    +170        RENAME_TABLE_WITH_DB = False
    +171
    +172        TRANSFORMS = {
    +173            **generator.Generator.TRANSFORMS,
    +174            exp.ApproxDistinct: approx_count_distinct_sql,
    +175            exp.Array: lambda self, e: self.func("ARRAY", e.expressions[0])
    +176            if isinstance(seq_get(e.expressions, 0), exp.Select)
    +177            else rename_func("LIST_VALUE")(self, e),
    +178            exp.ArraySize: rename_func("ARRAY_LENGTH"),
    +179            exp.ArraySort: _array_sort_sql,
    +180            exp.ArraySum: rename_func("LIST_SUM"),
    +181            exp.CommentColumnConstraint: no_comment_column_constraint_sql,
    +182            exp.CurrentDate: lambda self, e: "CURRENT_DATE",
    +183            exp.CurrentTime: lambda self, e: "CURRENT_TIME",
    +184            exp.CurrentTimestamp: lambda self, e: "CURRENT_TIMESTAMP",
    +185            exp.DayOfMonth: rename_func("DAYOFMONTH"),
    +186            exp.DayOfWeek: rename_func("DAYOFWEEK"),
    +187            exp.DayOfYear: rename_func("DAYOFYEAR"),
    +188            exp.DataType: _datatype_sql,
    +189            exp.DateAdd: _date_delta_sql,
    +190            exp.DateSub: _date_delta_sql,
    +191            exp.DateDiff: lambda self, e: self.func(
    +192                "DATE_DIFF", f"'{e.args.get('unit', 'day')}'", e.expression, e.this
    +193            ),
    +194            exp.DateStrToDate: datestrtodate_sql,
    +195            exp.DateToDi: lambda self, e: f"CAST(STRFTIME({self.sql(e, 'this')}, {DuckDB.dateint_format}) AS INT)",
    +196            exp.DiToDate: lambda self, e: f"CAST(STRPTIME(CAST({self.sql(e, 'this')} AS TEXT), {DuckDB.dateint_format}) AS DATE)",
    +197            exp.Explode: rename_func("UNNEST"),
    +198            exp.IntDiv: lambda self, e: self.binary(e, "//"),
    +199            exp.JSONExtract: arrow_json_extract_sql,
    +200            exp.JSONExtractScalar: arrow_json_extract_scalar_sql,
    +201            exp.JSONBExtract: arrow_json_extract_sql,
    +202            exp.JSONBExtractScalar: arrow_json_extract_scalar_sql,
    +203            exp.LogicalOr: rename_func("BOOL_OR"),
    +204            exp.LogicalAnd: rename_func("BOOL_AND"),
    +205            exp.Properties: no_properties_sql,
    +206            exp.RegexpExtract: _regexp_extract_sql,
    +207            exp.RegexpLike: rename_func("REGEXP_MATCHES"),
    +208            exp.RegexpSplit: rename_func("STR_SPLIT_REGEX"),
    +209            exp.SafeDivide: no_safe_divide_sql,
    +210            exp.Split: rename_func("STR_SPLIT"),
    +211            exp.SortArray: _sort_array_sql,
    +212            exp.StrPosition: str_position_sql,
    +213            exp.StrToDate: lambda self, e: f"CAST({str_to_time_sql(self, e)} AS DATE)",
    +214            exp.StrToTime: str_to_time_sql,
    +215            exp.StrToUnix: lambda self, e: f"EPOCH(STRPTIME({self.sql(e, 'this')}, {self.format_time(e)}))",
    +216            exp.Struct: _struct_sql,
    +217            exp.TimestampTrunc: timestamptrunc_sql,
    +218            exp.TimeStrToDate: lambda self, e: f"CAST({self.sql(e, 'this')} AS DATE)",
    +219            exp.TimeStrToTime: timestrtotime_sql,
    +220            exp.TimeStrToUnix: lambda self, e: f"EPOCH(CAST({self.sql(e, 'this')} AS TIMESTAMP))",
    +221            exp.TimeToStr: lambda self, e: f"STRFTIME({self.sql(e, 'this')}, {self.format_time(e)})",
    +222            exp.TimeToUnix: rename_func("EPOCH"),
    +223            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS TEXT), '-', ''), 1, 8) AS INT)",
    +224            exp.TsOrDsAdd: _ts_or_ds_add_sql,
    +225            exp.TsOrDsToDate: ts_or_ds_to_date_sql("duckdb"),
    +226            exp.UnixToStr: lambda self, e: f"STRFTIME(TO_TIMESTAMP({self.sql(e, 'this')}), {self.format_time(e)})",
    +227            exp.UnixToTime: rename_func("TO_TIMESTAMP"),
    +228            exp.UnixToTimeStr: lambda self, e: f"CAST(TO_TIMESTAMP({self.sql(e, 'this')}) AS TEXT)",
    +229            exp.WeekOfYear: rename_func("WEEKOFYEAR"),
    +230        }
    +231
    +232        TYPE_MAPPING = {
    +233            **generator.Generator.TYPE_MAPPING,
    +234            exp.DataType.Type.BINARY: "BLOB",
    +235            exp.DataType.Type.CHAR: "TEXT",
    +236            exp.DataType.Type.FLOAT: "REAL",
    +237            exp.DataType.Type.NCHAR: "TEXT",
    +238            exp.DataType.Type.NVARCHAR: "TEXT",
    +239            exp.DataType.Type.UINT: "UINTEGER",
    +240            exp.DataType.Type.VARBINARY: "BLOB",
    +241            exp.DataType.Type.VARCHAR: "TEXT",
    +242        }
    +243
    +244        STAR_MAPPING = {**generator.Generator.STAR_MAPPING, "except": "EXCLUDE"}
    +245
    +246        PROPERTIES_LOCATION = {
    +247            **generator.Generator.PROPERTIES_LOCATION,
    +248            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    +249        }
    +250
    +251        def tablesample_sql(
    +252            self, expression: exp.TableSample, seed_prefix: str = "SEED", sep: str = " AS "
    +253        ) -> str:
    +254            return super().tablesample_sql(expression, seed_prefix="REPEATABLE", sep=sep)
     
    @@ -812,6 +819,8 @@ represents a python time format and the output the target time format Default: "upper"
  • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
  • +
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
  • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -843,10 +852,10 @@ Default: True
  • -
    248        def tablesample_sql(
    -249            self, expression: exp.TableSample, seed_prefix: str = "SEED", sep: str = " AS "
    -250        ) -> str:
    -251            return super().tablesample_sql(expression, seed_prefix="REPEATABLE", sep=sep)
    +            
    251        def tablesample_sql(
    +252            self, expression: exp.TableSample, seed_prefix: str = "SEED", sep: str = " AS "
    +253        ) -> str:
    +254            return super().tablesample_sql(expression, seed_prefix="REPEATABLE", sep=sep)
     
    @@ -995,7 +1004,6 @@ Default: True
    check_sql
    foreignkey_sql
    primarykey_sql
    -
    unique_sql
    if_sql
    matchagainst_sql
    jsonkeyvalue_sql
    @@ -1088,6 +1096,9 @@ Default: True
    when_sql
    merge_sql
    tochar_sql
    +
    dictproperty_sql
    +
    dictrange_sql
    +
    dictsubproperty_sql
    diff --git a/docs/sqlglot/dialects/hive.html b/docs/sqlglot/dialects/hive.html index ac9201b..cdfe847 100644 --- a/docs/sqlglot/dialects/hive.html +++ b/docs/sqlglot/dialects/hive.html @@ -100,397 +100,434 @@ 9 create_with_partitions_sql, 10 format_time_lambda, 11 if_sql, - 12 locate_to_strposition, - 13 max_or_greatest, - 14 min_or_least, - 15 no_ilike_sql, - 16 no_recursive_cte_sql, - 17 no_safe_divide_sql, - 18 no_trycast_sql, - 19 rename_func, - 20 strposition_to_locate_sql, - 21 struct_extract_sql, - 22 timestrtotime_sql, - 23 var_map_sql, - 24) - 25from sqlglot.helper import seq_get - 26from sqlglot.parser import parse_var_map - 27from sqlglot.tokens import TokenType - 28 - 29# (FuncType, Multiplier) - 30DATE_DELTA_INTERVAL = { - 31 "YEAR": ("ADD_MONTHS", 12), - 32 "MONTH": ("ADD_MONTHS", 1), - 33 "QUARTER": ("ADD_MONTHS", 3), - 34 "WEEK": ("DATE_ADD", 7), - 35 "DAY": ("DATE_ADD", 1), - 36} - 37 - 38TIME_DIFF_FACTOR = { - 39 "MILLISECOND": " * 1000", - 40 "SECOND": "", - 41 "MINUTE": " / 60", - 42 "HOUR": " / 3600", - 43} - 44 - 45DIFF_MONTH_SWITCH = ("YEAR", "QUARTER", "MONTH") + 12 left_to_substring_sql, + 13 locate_to_strposition, + 14 max_or_greatest, + 15 min_or_least, + 16 no_ilike_sql, + 17 no_recursive_cte_sql, + 18 no_safe_divide_sql, + 19 no_trycast_sql, + 20 rename_func, + 21 right_to_substring_sql, + 22 strposition_to_locate_sql, + 23 struct_extract_sql, + 24 timestrtotime_sql, + 25 var_map_sql, + 26) + 27from sqlglot.helper import seq_get + 28from sqlglot.parser import parse_var_map + 29from sqlglot.tokens import TokenType + 30 + 31# (FuncType, Multiplier) + 32DATE_DELTA_INTERVAL = { + 33 "YEAR": ("ADD_MONTHS", 12), + 34 "MONTH": ("ADD_MONTHS", 1), + 35 "QUARTER": ("ADD_MONTHS", 3), + 36 "WEEK": ("DATE_ADD", 7), + 37 "DAY": ("DATE_ADD", 1), + 38} + 39 + 40TIME_DIFF_FACTOR = { + 41 "MILLISECOND": " * 1000", + 42 "SECOND": "", + 43 "MINUTE": " / 60", + 44 "HOUR": " / 3600", + 45} 46 - 47 - 48def _add_date_sql(self: generator.Generator, expression: exp.DateAdd | exp.DateSub) -> str: - 49 unit = expression.text("unit").upper() - 50 func, multiplier = DATE_DELTA_INTERVAL.get(unit, ("DATE_ADD", 1)) - 51 - 52 if isinstance(expression, exp.DateSub): - 53 multiplier *= -1 - 54 - 55 if expression.expression.is_number: - 56 modified_increment = exp.Literal.number(int(expression.text("expression")) * multiplier) - 57 else: - 58 modified_increment = expression.expression - 59 if multiplier != 1: - 60 modified_increment = exp.Mul( # type: ignore - 61 this=modified_increment, expression=exp.Literal.number(multiplier) - 62 ) - 63 - 64 return self.func(func, expression.this, modified_increment) + 47DIFF_MONTH_SWITCH = ("YEAR", "QUARTER", "MONTH") + 48 + 49 + 50def _add_date_sql(self: generator.Generator, expression: exp.DateAdd | exp.DateSub) -> str: + 51 unit = expression.text("unit").upper() + 52 func, multiplier = DATE_DELTA_INTERVAL.get(unit, ("DATE_ADD", 1)) + 53 + 54 if isinstance(expression, exp.DateSub): + 55 multiplier *= -1 + 56 + 57 if expression.expression.is_number: + 58 modified_increment = exp.Literal.number(int(expression.text("expression")) * multiplier) + 59 else: + 60 modified_increment = expression.expression + 61 if multiplier != 1: + 62 modified_increment = exp.Mul( # type: ignore + 63 this=modified_increment, expression=exp.Literal.number(multiplier) + 64 ) 65 - 66 - 67def _date_diff_sql(self: generator.Generator, expression: exp.DateDiff) -> str: - 68 unit = expression.text("unit").upper() - 69 - 70 factor = TIME_DIFF_FACTOR.get(unit) - 71 if factor is not None: - 72 left = self.sql(expression, "this") - 73 right = self.sql(expression, "expression") - 74 sec_diff = f"UNIX_TIMESTAMP({left}) - UNIX_TIMESTAMP({right})" - 75 return f"({sec_diff}){factor}" if factor else sec_diff - 76 - 77 sql_func = "MONTHS_BETWEEN" if unit in DIFF_MONTH_SWITCH else "DATEDIFF" - 78 _, multiplier = DATE_DELTA_INTERVAL.get(unit, ("", 1)) - 79 multiplier_sql = f" / {multiplier}" if multiplier > 1 else "" - 80 diff_sql = f"{sql_func}({self.format_args(expression.this, expression.expression)})" - 81 return f"{diff_sql}{multiplier_sql}" - 82 - 83 - 84def _json_format_sql(self: generator.Generator, expression: exp.JSONFormat) -> str: - 85 this = expression.this - 86 - 87 if not this.type: - 88 from sqlglot.optimizer.annotate_types import annotate_types - 89 - 90 annotate_types(this) + 66 return self.func(func, expression.this, modified_increment) + 67 + 68 + 69def _date_diff_sql(self: generator.Generator, expression: exp.DateDiff) -> str: + 70 unit = expression.text("unit").upper() + 71 + 72 factor = TIME_DIFF_FACTOR.get(unit) + 73 if factor is not None: + 74 left = self.sql(expression, "this") + 75 right = self.sql(expression, "expression") + 76 sec_diff = f"UNIX_TIMESTAMP({left}) - UNIX_TIMESTAMP({right})" + 77 return f"({sec_diff}){factor}" if factor else sec_diff + 78 + 79 sql_func = "MONTHS_BETWEEN" if unit in DIFF_MONTH_SWITCH else "DATEDIFF" + 80 _, multiplier = DATE_DELTA_INTERVAL.get(unit, ("", 1)) + 81 multiplier_sql = f" / {multiplier}" if multiplier > 1 else "" + 82 diff_sql = f"{sql_func}({self.format_args(expression.this, expression.expression)})" + 83 return f"{diff_sql}{multiplier_sql}" + 84 + 85 + 86def _json_format_sql(self: generator.Generator, expression: exp.JSONFormat) -> str: + 87 this = expression.this + 88 + 89 if not this.type: + 90 from sqlglot.optimizer.annotate_types import annotate_types 91 - 92 if this.type.is_type(exp.DataType.Type.JSON): - 93 return self.sql(this) - 94 return self.func("TO_JSON", this, expression.args.get("options")) - 95 - 96 - 97def _array_sort_sql(self: generator.Generator, expression: exp.ArraySort) -> str: - 98 if expression.expression: - 99 self.unsupported("Hive SORT_ARRAY does not support a comparator") -100 return f"SORT_ARRAY({self.sql(expression, 'this')})" -101 -102 -103def _property_sql(self: generator.Generator, expression: exp.Property) -> str: -104 return f"'{expression.name}'={self.sql(expression, 'value')}" -105 -106 -107def _str_to_unix_sql(self: generator.Generator, expression: exp.StrToUnix) -> str: -108 return self.func("UNIX_TIMESTAMP", expression.this, _time_format(self, expression)) -109 -110 -111def _str_to_date_sql(self: generator.Generator, expression: exp.StrToDate) -> str: -112 this = self.sql(expression, "this") -113 time_format = self.format_time(expression) -114 if time_format not in (Hive.time_format, Hive.date_format): -115 this = f"FROM_UNIXTIME(UNIX_TIMESTAMP({this}, {time_format}))" -116 return f"CAST({this} AS DATE)" -117 -118 -119def _str_to_time_sql(self: generator.Generator, expression: exp.StrToTime) -> str: -120 this = self.sql(expression, "this") -121 time_format = self.format_time(expression) -122 if time_format not in (Hive.time_format, Hive.date_format): -123 this = f"FROM_UNIXTIME(UNIX_TIMESTAMP({this}, {time_format}))" -124 return f"CAST({this} AS TIMESTAMP)" -125 -126 -127def _time_format( -128 self: generator.Generator, expression: exp.UnixToStr | exp.StrToUnix -129) -> t.Optional[str]: -130 time_format = self.format_time(expression) -131 if time_format == Hive.time_format: -132 return None -133 return time_format -134 -135 -136def _time_to_str(self: generator.Generator, expression: exp.TimeToStr) -> str: -137 this = self.sql(expression, "this") -138 time_format = self.format_time(expression) -139 return f"DATE_FORMAT({this}, {time_format})" -140 -141 -142def _to_date_sql(self: generator.Generator, expression: exp.TsOrDsToDate) -> str: -143 this = self.sql(expression, "this") -144 time_format = self.format_time(expression) -145 if time_format and time_format not in (Hive.time_format, Hive.date_format): -146 return f"TO_DATE({this}, {time_format})" -147 return f"TO_DATE({this})" -148 -149 -150class Hive(Dialect): -151 alias_post_tablesample = True -152 -153 time_mapping = { -154 "y": "%Y", -155 "Y": "%Y", -156 "YYYY": "%Y", -157 "yyyy": "%Y", -158 "YY": "%y", -159 "yy": "%y", -160 "MMMM": "%B", -161 "MMM": "%b", -162 "MM": "%m", -163 "M": "%-m", -164 "dd": "%d", -165 "d": "%-d", -166 "HH": "%H", -167 "H": "%-H", -168 "hh": "%I", -169 "h": "%-I", -170 "mm": "%M", -171 "m": "%-M", -172 "ss": "%S", -173 "s": "%-S", -174 "SSSSSS": "%f", -175 "a": "%p", -176 "DD": "%j", -177 "D": "%-j", -178 "E": "%a", -179 "EE": "%a", -180 "EEE": "%a", -181 "EEEE": "%A", -182 } -183 -184 date_format = "'yyyy-MM-dd'" -185 dateint_format = "'yyyyMMdd'" -186 time_format = "'yyyy-MM-dd HH:mm:ss'" -187 -188 class Tokenizer(tokens.Tokenizer): -189 QUOTES = ["'", '"'] -190 IDENTIFIERS = ["`"] -191 STRING_ESCAPES = ["\\"] -192 ENCODE = "utf-8" -193 IDENTIFIER_CAN_START_WITH_DIGIT = True -194 -195 KEYWORDS = { -196 **tokens.Tokenizer.KEYWORDS, -197 "ADD ARCHIVE": TokenType.COMMAND, -198 "ADD ARCHIVES": TokenType.COMMAND, -199 "ADD FILE": TokenType.COMMAND, -200 "ADD FILES": TokenType.COMMAND, -201 "ADD JAR": TokenType.COMMAND, -202 "ADD JARS": TokenType.COMMAND, -203 "MSCK REPAIR": TokenType.COMMAND, -204 "WITH SERDEPROPERTIES": TokenType.SERDE_PROPERTIES, -205 } -206 -207 NUMERIC_LITERALS = { -208 "L": "BIGINT", -209 "S": "SMALLINT", -210 "Y": "TINYINT", -211 "D": "DOUBLE", -212 "F": "FLOAT", -213 "BD": "DECIMAL", -214 } -215 -216 class Parser(parser.Parser): -217 LOG_DEFAULTS_TO_LN = True -218 STRICT_CAST = False -219 -220 FUNCTIONS = { -221 **parser.Parser.FUNCTIONS, -222 "BASE64": exp.ToBase64.from_arg_list, -223 "COLLECT_LIST": exp.ArrayAgg.from_arg_list, -224 "DATE_ADD": lambda args: exp.TsOrDsAdd( -225 this=seq_get(args, 0), -226 expression=seq_get(args, 1), -227 unit=exp.Literal.string("DAY"), -228 ), -229 "DATEDIFF": lambda args: exp.DateDiff( -230 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -231 expression=exp.TsOrDsToDate(this=seq_get(args, 1)), -232 ), -233 "DATE_SUB": lambda args: exp.TsOrDsAdd( -234 this=seq_get(args, 0), -235 expression=exp.Mul( -236 this=seq_get(args, 1), -237 expression=exp.Literal.number(-1), -238 ), -239 unit=exp.Literal.string("DAY"), -240 ), -241 "DATE_FORMAT": lambda args: format_time_lambda(exp.TimeToStr, "hive")( -242 [ -243 exp.TimeStrToTime(this=seq_get(args, 0)), -244 seq_get(args, 1), -245 ] -246 ), -247 "DAY": lambda args: exp.Day(this=exp.TsOrDsToDate(this=seq_get(args, 0))), -248 "FROM_UNIXTIME": format_time_lambda(exp.UnixToStr, "hive", True), -249 "GET_JSON_OBJECT": exp.JSONExtractScalar.from_arg_list, -250 "LOCATE": locate_to_strposition, -251 "MAP": parse_var_map, -252 "MONTH": lambda args: exp.Month(this=exp.TsOrDsToDate.from_arg_list(args)), -253 "PERCENTILE": exp.Quantile.from_arg_list, -254 "PERCENTILE_APPROX": exp.ApproxQuantile.from_arg_list, -255 "COLLECT_SET": exp.SetAgg.from_arg_list, -256 "SIZE": exp.ArraySize.from_arg_list, -257 "SPLIT": exp.RegexpSplit.from_arg_list, -258 "TO_DATE": format_time_lambda(exp.TsOrDsToDate, "hive"), -259 "TO_JSON": exp.JSONFormat.from_arg_list, -260 "UNBASE64": exp.FromBase64.from_arg_list, -261 "UNIX_TIMESTAMP": format_time_lambda(exp.StrToUnix, "hive", True), -262 "YEAR": lambda args: exp.Year(this=exp.TsOrDsToDate.from_arg_list(args)), -263 } -264 -265 PROPERTY_PARSERS = { -266 **parser.Parser.PROPERTY_PARSERS, -267 "WITH SERDEPROPERTIES": lambda self: exp.SerdeProperties( -268 expressions=self._parse_wrapped_csv(self._parse_property) -269 ), -270 } -271 -272 QUERY_MODIFIER_PARSERS = { -273 **parser.Parser.QUERY_MODIFIER_PARSERS, -274 "distribute": lambda self: self._parse_sort(exp.Distribute, "DISTRIBUTE", "BY"), -275 "sort": lambda self: self._parse_sort(exp.Sort, "SORT", "BY"), -276 "cluster": lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"), -277 } -278 -279 class Generator(generator.Generator): -280 LIMIT_FETCH = "LIMIT" -281 TABLESAMPLE_WITH_METHOD = False -282 TABLESAMPLE_SIZE_IS_PERCENT = True -283 JOIN_HINTS = False -284 TABLE_HINTS = False -285 INDEX_ON = "ON TABLE" -286 -287 TYPE_MAPPING = { -288 **generator.Generator.TYPE_MAPPING, -289 exp.DataType.Type.TEXT: "STRING", -290 exp.DataType.Type.DATETIME: "TIMESTAMP", -291 exp.DataType.Type.VARBINARY: "BINARY", -292 exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP", -293 exp.DataType.Type.BIT: "BOOLEAN", -294 } -295 -296 TRANSFORMS = { -297 **generator.Generator.TRANSFORMS, -298 exp.Group: transforms.preprocess([transforms.unalias_group]), -299 exp.Select: transforms.preprocess( -300 [ -301 transforms.eliminate_qualify, -302 transforms.eliminate_distinct_on, -303 transforms.unnest_to_explode, -304 ] -305 ), -306 exp.Property: _property_sql, -307 exp.ApproxDistinct: approx_count_distinct_sql, -308 exp.ArrayConcat: rename_func("CONCAT"), -309 exp.ArrayJoin: lambda self, e: self.func("CONCAT_WS", e.expression, e.this), -310 exp.ArraySize: rename_func("SIZE"), -311 exp.ArraySort: _array_sort_sql, -312 exp.With: no_recursive_cte_sql, -313 exp.DateAdd: _add_date_sql, -314 exp.DateDiff: _date_diff_sql, -315 exp.DateStrToDate: rename_func("TO_DATE"), -316 exp.DateSub: _add_date_sql, -317 exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Hive.dateint_format}) AS INT)", -318 exp.DiToDate: lambda self, e: f"TO_DATE(CAST({self.sql(e, 'this')} AS STRING), {Hive.dateint_format})", -319 exp.FileFormatProperty: lambda self, e: f"STORED AS {self.sql(e, 'this') if isinstance(e.this, exp.InputOutputFormat) else e.name.upper()}", -320 exp.FromBase64: rename_func("UNBASE64"), -321 exp.If: if_sql, -322 exp.ILike: no_ilike_sql, -323 exp.JSONExtract: rename_func("GET_JSON_OBJECT"), -324 exp.JSONExtractScalar: rename_func("GET_JSON_OBJECT"), -325 exp.JSONFormat: _json_format_sql, -326 exp.Map: var_map_sql, -327 exp.Max: max_or_greatest, -328 exp.Min: min_or_least, -329 exp.VarMap: var_map_sql, -330 exp.Create: create_with_partitions_sql, -331 exp.Quantile: rename_func("PERCENTILE"), -332 exp.ApproxQuantile: rename_func("PERCENTILE_APPROX"), -333 exp.RegexpLike: lambda self, e: self.binary(e, "RLIKE"), -334 exp.RegexpSplit: rename_func("SPLIT"), -335 exp.SafeDivide: no_safe_divide_sql, -336 exp.SchemaCommentProperty: lambda self, e: self.naked_property(e), -337 exp.SetAgg: rename_func("COLLECT_SET"), -338 exp.Split: lambda self, e: f"SPLIT({self.sql(e, 'this')}, CONCAT('\\\\Q', {self.sql(e, 'expression')}))", -339 exp.StrPosition: strposition_to_locate_sql, -340 exp.StrToDate: _str_to_date_sql, -341 exp.StrToTime: _str_to_time_sql, -342 exp.StrToUnix: _str_to_unix_sql, -343 exp.StructExtract: struct_extract_sql, -344 exp.TimeStrToDate: rename_func("TO_DATE"), -345 exp.TimeStrToTime: timestrtotime_sql, -346 exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"), -347 exp.TimeToStr: _time_to_str, -348 exp.TimeToUnix: rename_func("UNIX_TIMESTAMP"), -349 exp.ToBase64: rename_func("BASE64"), -350 exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS STRING), '-', ''), 1, 8) AS INT)", -351 exp.TsOrDsAdd: lambda self, e: f"DATE_ADD({self.sql(e, 'this')}, {self.sql(e, 'expression')})", -352 exp.TsOrDsToDate: _to_date_sql, -353 exp.TryCast: no_trycast_sql, -354 exp.UnixToStr: lambda self, e: self.func( -355 "FROM_UNIXTIME", e.this, _time_format(self, e) -356 ), -357 exp.UnixToTime: rename_func("FROM_UNIXTIME"), -358 exp.UnixToTimeStr: rename_func("FROM_UNIXTIME"), -359 exp.PartitionedByProperty: lambda self, e: f"PARTITIONED BY {self.sql(e, 'this')}", -360 exp.RowFormatSerdeProperty: lambda self, e: f"ROW FORMAT SERDE {self.sql(e, 'this')}", -361 exp.SerdeProperties: lambda self, e: self.properties(e, prefix="WITH SERDEPROPERTIES"), -362 exp.NumberToStr: rename_func("FORMAT_NUMBER"), -363 exp.LastDateOfMonth: rename_func("LAST_DAY"), -364 exp.National: lambda self, e: self.national_sql(e, prefix=""), -365 } -366 -367 PROPERTIES_LOCATION = { -368 **generator.Generator.PROPERTIES_LOCATION, -369 exp.FileFormatProperty: exp.Properties.Location.POST_SCHEMA, -370 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, -371 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -372 } -373 -374 def arrayagg_sql(self, expression: exp.ArrayAgg) -> str: -375 return self.func( -376 "COLLECT_LIST", -377 expression.this.this if isinstance(expression.this, exp.Order) else expression.this, -378 ) -379 -380 def with_properties(self, properties: exp.Properties) -> str: -381 return self.properties( -382 properties, -383 prefix=self.seg("TBLPROPERTIES"), -384 ) -385 -386 def datatype_sql(self, expression: exp.DataType) -> str: -387 if ( -388 expression.this in (exp.DataType.Type.VARCHAR, exp.DataType.Type.NVARCHAR) -389 and not expression.expressions -390 ): -391 expression = exp.DataType.build("text") -392 elif expression.this in exp.DataType.TEMPORAL_TYPES: -393 expression = exp.DataType.build(expression.this) -394 -395 return super().datatype_sql(expression) -396 -397 def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]: -398 return super().after_having_modifiers(expression) + [ -399 self.sql(expression, "distribute"), -400 self.sql(expression, "sort"), -401 self.sql(expression, "cluster"), -402 ] + 92 annotate_types(this) + 93 + 94 if this.type.is_type("json"): + 95 return self.sql(this) + 96 return self.func("TO_JSON", this, expression.args.get("options")) + 97 + 98 + 99def _array_sort_sql(self: generator.Generator, expression: exp.ArraySort) -> str: +100 if expression.expression: +101 self.unsupported("Hive SORT_ARRAY does not support a comparator") +102 return f"SORT_ARRAY({self.sql(expression, 'this')})" +103 +104 +105def _property_sql(self: generator.Generator, expression: exp.Property) -> str: +106 return f"'{expression.name}'={self.sql(expression, 'value')}" +107 +108 +109def _str_to_unix_sql(self: generator.Generator, expression: exp.StrToUnix) -> str: +110 return self.func("UNIX_TIMESTAMP", expression.this, _time_format(self, expression)) +111 +112 +113def _str_to_date_sql(self: generator.Generator, expression: exp.StrToDate) -> str: +114 this = self.sql(expression, "this") +115 time_format = self.format_time(expression) +116 if time_format not in (Hive.time_format, Hive.date_format): +117 this = f"FROM_UNIXTIME(UNIX_TIMESTAMP({this}, {time_format}))" +118 return f"CAST({this} AS DATE)" +119 +120 +121def _str_to_time_sql(self: generator.Generator, expression: exp.StrToTime) -> str: +122 this = self.sql(expression, "this") +123 time_format = self.format_time(expression) +124 if time_format not in (Hive.time_format, Hive.date_format): +125 this = f"FROM_UNIXTIME(UNIX_TIMESTAMP({this}, {time_format}))" +126 return f"CAST({this} AS TIMESTAMP)" +127 +128 +129def _time_format( +130 self: generator.Generator, expression: exp.UnixToStr | exp.StrToUnix +131) -> t.Optional[str]: +132 time_format = self.format_time(expression) +133 if time_format == Hive.time_format: +134 return None +135 return time_format +136 +137 +138def _time_to_str(self: generator.Generator, expression: exp.TimeToStr) -> str: +139 this = self.sql(expression, "this") +140 time_format = self.format_time(expression) +141 return f"DATE_FORMAT({this}, {time_format})" +142 +143 +144def _to_date_sql(self: generator.Generator, expression: exp.TsOrDsToDate) -> str: +145 this = self.sql(expression, "this") +146 time_format = self.format_time(expression) +147 if time_format and time_format not in (Hive.time_format, Hive.date_format): +148 return f"TO_DATE({this}, {time_format})" +149 return f"TO_DATE({this})" +150 +151 +152class Hive(Dialect): +153 alias_post_tablesample = True +154 identifiers_can_start_with_digit = True +155 +156 time_mapping = { +157 "y": "%Y", +158 "Y": "%Y", +159 "YYYY": "%Y", +160 "yyyy": "%Y", +161 "YY": "%y", +162 "yy": "%y", +163 "MMMM": "%B", +164 "MMM": "%b", +165 "MM": "%m", +166 "M": "%-m", +167 "dd": "%d", +168 "d": "%-d", +169 "HH": "%H", +170 "H": "%-H", +171 "hh": "%I", +172 "h": "%-I", +173 "mm": "%M", +174 "m": "%-M", +175 "ss": "%S", +176 "s": "%-S", +177 "SSSSSS": "%f", +178 "a": "%p", +179 "DD": "%j", +180 "D": "%-j", +181 "E": "%a", +182 "EE": "%a", +183 "EEE": "%a", +184 "EEEE": "%A", +185 } +186 +187 date_format = "'yyyy-MM-dd'" +188 dateint_format = "'yyyyMMdd'" +189 time_format = "'yyyy-MM-dd HH:mm:ss'" +190 +191 class Tokenizer(tokens.Tokenizer): +192 QUOTES = ["'", '"'] +193 IDENTIFIERS = ["`"] +194 STRING_ESCAPES = ["\\"] +195 ENCODE = "utf-8" +196 +197 KEYWORDS = { +198 **tokens.Tokenizer.KEYWORDS, +199 "ADD ARCHIVE": TokenType.COMMAND, +200 "ADD ARCHIVES": TokenType.COMMAND, +201 "ADD FILE": TokenType.COMMAND, +202 "ADD FILES": TokenType.COMMAND, +203 "ADD JAR": TokenType.COMMAND, +204 "ADD JARS": TokenType.COMMAND, +205 "MSCK REPAIR": TokenType.COMMAND, +206 "WITH SERDEPROPERTIES": TokenType.SERDE_PROPERTIES, +207 } +208 +209 NUMERIC_LITERALS = { +210 "L": "BIGINT", +211 "S": "SMALLINT", +212 "Y": "TINYINT", +213 "D": "DOUBLE", +214 "F": "FLOAT", +215 "BD": "DECIMAL", +216 } +217 +218 class Parser(parser.Parser): +219 LOG_DEFAULTS_TO_LN = True +220 STRICT_CAST = False +221 +222 FUNCTIONS = { +223 **parser.Parser.FUNCTIONS, +224 "BASE64": exp.ToBase64.from_arg_list, +225 "COLLECT_LIST": exp.ArrayAgg.from_arg_list, +226 "DATE_ADD": lambda args: exp.TsOrDsAdd( +227 this=seq_get(args, 0), +228 expression=seq_get(args, 1), +229 unit=exp.Literal.string("DAY"), +230 ), +231 "DATEDIFF": lambda args: exp.DateDiff( +232 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +233 expression=exp.TsOrDsToDate(this=seq_get(args, 1)), +234 ), +235 "DATE_SUB": lambda args: exp.TsOrDsAdd( +236 this=seq_get(args, 0), +237 expression=exp.Mul( +238 this=seq_get(args, 1), +239 expression=exp.Literal.number(-1), +240 ), +241 unit=exp.Literal.string("DAY"), +242 ), +243 "DATE_FORMAT": lambda args: format_time_lambda(exp.TimeToStr, "hive")( +244 [ +245 exp.TimeStrToTime(this=seq_get(args, 0)), +246 seq_get(args, 1), +247 ] +248 ), +249 "DAY": lambda args: exp.Day(this=exp.TsOrDsToDate(this=seq_get(args, 0))), +250 "FROM_UNIXTIME": format_time_lambda(exp.UnixToStr, "hive", True), +251 "GET_JSON_OBJECT": exp.JSONExtractScalar.from_arg_list, +252 "LOCATE": locate_to_strposition, +253 "MAP": parse_var_map, +254 "MONTH": lambda args: exp.Month(this=exp.TsOrDsToDate.from_arg_list(args)), +255 "PERCENTILE": exp.Quantile.from_arg_list, +256 "PERCENTILE_APPROX": exp.ApproxQuantile.from_arg_list, +257 "COLLECT_SET": exp.SetAgg.from_arg_list, +258 "SIZE": exp.ArraySize.from_arg_list, +259 "SPLIT": exp.RegexpSplit.from_arg_list, +260 "TO_DATE": format_time_lambda(exp.TsOrDsToDate, "hive"), +261 "TO_JSON": exp.JSONFormat.from_arg_list, +262 "UNBASE64": exp.FromBase64.from_arg_list, +263 "UNIX_TIMESTAMP": format_time_lambda(exp.StrToUnix, "hive", True), +264 "YEAR": lambda args: exp.Year(this=exp.TsOrDsToDate.from_arg_list(args)), +265 } +266 +267 PROPERTY_PARSERS = { +268 **parser.Parser.PROPERTY_PARSERS, +269 "WITH SERDEPROPERTIES": lambda self: exp.SerdeProperties( +270 expressions=self._parse_wrapped_csv(self._parse_property) +271 ), +272 } +273 +274 QUERY_MODIFIER_PARSERS = { +275 **parser.Parser.QUERY_MODIFIER_PARSERS, +276 "distribute": lambda self: self._parse_sort(exp.Distribute, "DISTRIBUTE", "BY"), +277 "sort": lambda self: self._parse_sort(exp.Sort, "SORT", "BY"), +278 "cluster": lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"), +279 } +280 +281 def _parse_types( +282 self, check_func: bool = False, schema: bool = False +283 ) -> t.Optional[exp.Expression]: +284 """ +285 Spark (and most likely Hive) treats casts to CHAR(length) and VARCHAR(length) as casts to +286 STRING in all contexts except for schema definitions. For example, this is in Spark v3.4.0: +287 +288 spark-sql (default)> select cast(1234 as varchar(2)); +289 23/06/06 15:51:18 WARN CharVarcharUtils: The Spark cast operator does not support +290 char/varchar type and simply treats them as string type. Please use string type +291 directly to avoid confusion. Otherwise, you can set spark.sql.legacy.charVarcharAsString +292 to true, so that Spark treat them as string type as same as Spark 3.0 and earlier +293 +294 1234 +295 Time taken: 4.265 seconds, Fetched 1 row(s) +296 +297 This shows that Spark doesn't truncate the value into '12', which is inconsistent with +298 what other dialects (e.g. postgres) do, so we need to drop the length to transpile correctly. +299 +300 Reference: https://spark.apache.org/docs/latest/sql-ref-datatypes.html +301 """ +302 this = super()._parse_types(check_func=check_func, schema=schema) +303 +304 if this and not schema: +305 return this.transform( +306 lambda node: node.replace(exp.DataType.build("text")) +307 if isinstance(node, exp.DataType) and node.is_type("char", "varchar") +308 else node, +309 copy=False, +310 ) +311 +312 return this +313 +314 class Generator(generator.Generator): +315 LIMIT_FETCH = "LIMIT" +316 TABLESAMPLE_WITH_METHOD = False +317 TABLESAMPLE_SIZE_IS_PERCENT = True +318 JOIN_HINTS = False +319 TABLE_HINTS = False +320 INDEX_ON = "ON TABLE" +321 +322 TYPE_MAPPING = { +323 **generator.Generator.TYPE_MAPPING, +324 exp.DataType.Type.TEXT: "STRING", +325 exp.DataType.Type.DATETIME: "TIMESTAMP", +326 exp.DataType.Type.VARBINARY: "BINARY", +327 exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP", +328 exp.DataType.Type.BIT: "BOOLEAN", +329 } +330 +331 TRANSFORMS = { +332 **generator.Generator.TRANSFORMS, +333 exp.Group: transforms.preprocess([transforms.unalias_group]), +334 exp.Select: transforms.preprocess( +335 [ +336 transforms.eliminate_qualify, +337 transforms.eliminate_distinct_on, +338 transforms.unnest_to_explode, +339 ] +340 ), +341 exp.Property: _property_sql, +342 exp.ApproxDistinct: approx_count_distinct_sql, +343 exp.ArrayConcat: rename_func("CONCAT"), +344 exp.ArrayJoin: lambda self, e: self.func("CONCAT_WS", e.expression, e.this), +345 exp.ArraySize: rename_func("SIZE"), +346 exp.ArraySort: _array_sort_sql, +347 exp.With: no_recursive_cte_sql, +348 exp.DateAdd: _add_date_sql, +349 exp.DateDiff: _date_diff_sql, +350 exp.DateStrToDate: rename_func("TO_DATE"), +351 exp.DateSub: _add_date_sql, +352 exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Hive.dateint_format}) AS INT)", +353 exp.DiToDate: lambda self, e: f"TO_DATE(CAST({self.sql(e, 'this')} AS STRING), {Hive.dateint_format})", +354 exp.FileFormatProperty: lambda self, e: f"STORED AS {self.sql(e, 'this') if isinstance(e.this, exp.InputOutputFormat) else e.name.upper()}", +355 exp.FromBase64: rename_func("UNBASE64"), +356 exp.If: if_sql, +357 exp.ILike: no_ilike_sql, +358 exp.JSONExtract: rename_func("GET_JSON_OBJECT"), +359 exp.JSONExtractScalar: rename_func("GET_JSON_OBJECT"), +360 exp.JSONFormat: _json_format_sql, +361 exp.Left: left_to_substring_sql, +362 exp.Map: var_map_sql, +363 exp.Max: max_or_greatest, +364 exp.Min: min_or_least, +365 exp.VarMap: var_map_sql, +366 exp.Create: create_with_partitions_sql, +367 exp.Quantile: rename_func("PERCENTILE"), +368 exp.ApproxQuantile: rename_func("PERCENTILE_APPROX"), +369 exp.RegexpLike: lambda self, e: self.binary(e, "RLIKE"), +370 exp.RegexpSplit: rename_func("SPLIT"), +371 exp.Right: right_to_substring_sql, +372 exp.SafeDivide: no_safe_divide_sql, +373 exp.SchemaCommentProperty: lambda self, e: self.naked_property(e), +374 exp.SetAgg: rename_func("COLLECT_SET"), +375 exp.Split: lambda self, e: f"SPLIT({self.sql(e, 'this')}, CONCAT('\\\\Q', {self.sql(e, 'expression')}))", +376 exp.StrPosition: strposition_to_locate_sql, +377 exp.StrToDate: _str_to_date_sql, +378 exp.StrToTime: _str_to_time_sql, +379 exp.StrToUnix: _str_to_unix_sql, +380 exp.StructExtract: struct_extract_sql, +381 exp.TimeStrToDate: rename_func("TO_DATE"), +382 exp.TimeStrToTime: timestrtotime_sql, +383 exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"), +384 exp.TimeToStr: _time_to_str, +385 exp.TimeToUnix: rename_func("UNIX_TIMESTAMP"), +386 exp.ToBase64: rename_func("BASE64"), +387 exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS STRING), '-', ''), 1, 8) AS INT)", +388 exp.TsOrDsAdd: lambda self, e: f"DATE_ADD({self.sql(e, 'this')}, {self.sql(e, 'expression')})", +389 exp.TsOrDsToDate: _to_date_sql, +390 exp.TryCast: no_trycast_sql, +391 exp.UnixToStr: lambda self, e: self.func( +392 "FROM_UNIXTIME", e.this, _time_format(self, e) +393 ), +394 exp.UnixToTime: rename_func("FROM_UNIXTIME"), +395 exp.UnixToTimeStr: rename_func("FROM_UNIXTIME"), +396 exp.PartitionedByProperty: lambda self, e: f"PARTITIONED BY {self.sql(e, 'this')}", +397 exp.RowFormatSerdeProperty: lambda self, e: f"ROW FORMAT SERDE {self.sql(e, 'this')}", +398 exp.SerdeProperties: lambda self, e: self.properties(e, prefix="WITH SERDEPROPERTIES"), +399 exp.NumberToStr: rename_func("FORMAT_NUMBER"), +400 exp.LastDateOfMonth: rename_func("LAST_DAY"), +401 exp.National: lambda self, e: self.national_sql(e, prefix=""), +402 } +403 +404 PROPERTIES_LOCATION = { +405 **generator.Generator.PROPERTIES_LOCATION, +406 exp.FileFormatProperty: exp.Properties.Location.POST_SCHEMA, +407 exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA, +408 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +409 } +410 +411 def arrayagg_sql(self, expression: exp.ArrayAgg) -> str: +412 return self.func( +413 "COLLECT_LIST", +414 expression.this.this if isinstance(expression.this, exp.Order) else expression.this, +415 ) +416 +417 def with_properties(self, properties: exp.Properties) -> str: +418 return self.properties( +419 properties, +420 prefix=self.seg("TBLPROPERTIES"), +421 ) +422 +423 def datatype_sql(self, expression: exp.DataType) -> str: +424 if ( +425 expression.this in (exp.DataType.Type.VARCHAR, exp.DataType.Type.NVARCHAR) +426 and not expression.expressions +427 ): +428 expression = exp.DataType.build("text") +429 elif expression.this in exp.DataType.TEMPORAL_TYPES: +430 expression = exp.DataType.build(expression.this) +431 +432 return super().datatype_sql(expression) +433 +434 def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]: +435 return super().after_having_modifiers(expression) + [ +436 self.sql(expression, "distribute"), +437 self.sql(expression, "sort"), +438 self.sql(expression, "cluster"), +439 ] @@ -506,259 +543,294 @@ -
    151class Hive(Dialect):
    -152    alias_post_tablesample = True
    -153
    -154    time_mapping = {
    -155        "y": "%Y",
    -156        "Y": "%Y",
    -157        "YYYY": "%Y",
    -158        "yyyy": "%Y",
    -159        "YY": "%y",
    -160        "yy": "%y",
    -161        "MMMM": "%B",
    -162        "MMM": "%b",
    -163        "MM": "%m",
    -164        "M": "%-m",
    -165        "dd": "%d",
    -166        "d": "%-d",
    -167        "HH": "%H",
    -168        "H": "%-H",
    -169        "hh": "%I",
    -170        "h": "%-I",
    -171        "mm": "%M",
    -172        "m": "%-M",
    -173        "ss": "%S",
    -174        "s": "%-S",
    -175        "SSSSSS": "%f",
    -176        "a": "%p",
    -177        "DD": "%j",
    -178        "D": "%-j",
    -179        "E": "%a",
    -180        "EE": "%a",
    -181        "EEE": "%a",
    -182        "EEEE": "%A",
    -183    }
    -184
    -185    date_format = "'yyyy-MM-dd'"
    -186    dateint_format = "'yyyyMMdd'"
    -187    time_format = "'yyyy-MM-dd HH:mm:ss'"
    -188
    -189    class Tokenizer(tokens.Tokenizer):
    -190        QUOTES = ["'", '"']
    -191        IDENTIFIERS = ["`"]
    -192        STRING_ESCAPES = ["\\"]
    -193        ENCODE = "utf-8"
    -194        IDENTIFIER_CAN_START_WITH_DIGIT = True
    -195
    -196        KEYWORDS = {
    -197            **tokens.Tokenizer.KEYWORDS,
    -198            "ADD ARCHIVE": TokenType.COMMAND,
    -199            "ADD ARCHIVES": TokenType.COMMAND,
    -200            "ADD FILE": TokenType.COMMAND,
    -201            "ADD FILES": TokenType.COMMAND,
    -202            "ADD JAR": TokenType.COMMAND,
    -203            "ADD JARS": TokenType.COMMAND,
    -204            "MSCK REPAIR": TokenType.COMMAND,
    -205            "WITH SERDEPROPERTIES": TokenType.SERDE_PROPERTIES,
    -206        }
    -207
    -208        NUMERIC_LITERALS = {
    -209            "L": "BIGINT",
    -210            "S": "SMALLINT",
    -211            "Y": "TINYINT",
    -212            "D": "DOUBLE",
    -213            "F": "FLOAT",
    -214            "BD": "DECIMAL",
    -215        }
    -216
    -217    class Parser(parser.Parser):
    -218        LOG_DEFAULTS_TO_LN = True
    -219        STRICT_CAST = False
    -220
    -221        FUNCTIONS = {
    -222            **parser.Parser.FUNCTIONS,
    -223            "BASE64": exp.ToBase64.from_arg_list,
    -224            "COLLECT_LIST": exp.ArrayAgg.from_arg_list,
    -225            "DATE_ADD": lambda args: exp.TsOrDsAdd(
    -226                this=seq_get(args, 0),
    -227                expression=seq_get(args, 1),
    -228                unit=exp.Literal.string("DAY"),
    -229            ),
    -230            "DATEDIFF": lambda args: exp.DateDiff(
    -231                this=exp.TsOrDsToDate(this=seq_get(args, 0)),
    -232                expression=exp.TsOrDsToDate(this=seq_get(args, 1)),
    -233            ),
    -234            "DATE_SUB": lambda args: exp.TsOrDsAdd(
    -235                this=seq_get(args, 0),
    -236                expression=exp.Mul(
    -237                    this=seq_get(args, 1),
    -238                    expression=exp.Literal.number(-1),
    -239                ),
    -240                unit=exp.Literal.string("DAY"),
    -241            ),
    -242            "DATE_FORMAT": lambda args: format_time_lambda(exp.TimeToStr, "hive")(
    -243                [
    -244                    exp.TimeStrToTime(this=seq_get(args, 0)),
    -245                    seq_get(args, 1),
    -246                ]
    -247            ),
    -248            "DAY": lambda args: exp.Day(this=exp.TsOrDsToDate(this=seq_get(args, 0))),
    -249            "FROM_UNIXTIME": format_time_lambda(exp.UnixToStr, "hive", True),
    -250            "GET_JSON_OBJECT": exp.JSONExtractScalar.from_arg_list,
    -251            "LOCATE": locate_to_strposition,
    -252            "MAP": parse_var_map,
    -253            "MONTH": lambda args: exp.Month(this=exp.TsOrDsToDate.from_arg_list(args)),
    -254            "PERCENTILE": exp.Quantile.from_arg_list,
    -255            "PERCENTILE_APPROX": exp.ApproxQuantile.from_arg_list,
    -256            "COLLECT_SET": exp.SetAgg.from_arg_list,
    -257            "SIZE": exp.ArraySize.from_arg_list,
    -258            "SPLIT": exp.RegexpSplit.from_arg_list,
    -259            "TO_DATE": format_time_lambda(exp.TsOrDsToDate, "hive"),
    -260            "TO_JSON": exp.JSONFormat.from_arg_list,
    -261            "UNBASE64": exp.FromBase64.from_arg_list,
    -262            "UNIX_TIMESTAMP": format_time_lambda(exp.StrToUnix, "hive", True),
    -263            "YEAR": lambda args: exp.Year(this=exp.TsOrDsToDate.from_arg_list(args)),
    -264        }
    -265
    -266        PROPERTY_PARSERS = {
    -267            **parser.Parser.PROPERTY_PARSERS,
    -268            "WITH SERDEPROPERTIES": lambda self: exp.SerdeProperties(
    -269                expressions=self._parse_wrapped_csv(self._parse_property)
    -270            ),
    -271        }
    -272
    -273        QUERY_MODIFIER_PARSERS = {
    -274            **parser.Parser.QUERY_MODIFIER_PARSERS,
    -275            "distribute": lambda self: self._parse_sort(exp.Distribute, "DISTRIBUTE", "BY"),
    -276            "sort": lambda self: self._parse_sort(exp.Sort, "SORT", "BY"),
    -277            "cluster": lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"),
    -278        }
    -279
    -280    class Generator(generator.Generator):
    -281        LIMIT_FETCH = "LIMIT"
    -282        TABLESAMPLE_WITH_METHOD = False
    -283        TABLESAMPLE_SIZE_IS_PERCENT = True
    -284        JOIN_HINTS = False
    -285        TABLE_HINTS = False
    -286        INDEX_ON = "ON TABLE"
    -287
    -288        TYPE_MAPPING = {
    -289            **generator.Generator.TYPE_MAPPING,
    -290            exp.DataType.Type.TEXT: "STRING",
    -291            exp.DataType.Type.DATETIME: "TIMESTAMP",
    -292            exp.DataType.Type.VARBINARY: "BINARY",
    -293            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
    -294            exp.DataType.Type.BIT: "BOOLEAN",
    -295        }
    -296
    -297        TRANSFORMS = {
    -298            **generator.Generator.TRANSFORMS,
    -299            exp.Group: transforms.preprocess([transforms.unalias_group]),
    -300            exp.Select: transforms.preprocess(
    -301                [
    -302                    transforms.eliminate_qualify,
    -303                    transforms.eliminate_distinct_on,
    -304                    transforms.unnest_to_explode,
    -305                ]
    -306            ),
    -307            exp.Property: _property_sql,
    -308            exp.ApproxDistinct: approx_count_distinct_sql,
    -309            exp.ArrayConcat: rename_func("CONCAT"),
    -310            exp.ArrayJoin: lambda self, e: self.func("CONCAT_WS", e.expression, e.this),
    -311            exp.ArraySize: rename_func("SIZE"),
    -312            exp.ArraySort: _array_sort_sql,
    -313            exp.With: no_recursive_cte_sql,
    -314            exp.DateAdd: _add_date_sql,
    -315            exp.DateDiff: _date_diff_sql,
    -316            exp.DateStrToDate: rename_func("TO_DATE"),
    -317            exp.DateSub: _add_date_sql,
    -318            exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Hive.dateint_format}) AS INT)",
    -319            exp.DiToDate: lambda self, e: f"TO_DATE(CAST({self.sql(e, 'this')} AS STRING), {Hive.dateint_format})",
    -320            exp.FileFormatProperty: lambda self, e: f"STORED AS {self.sql(e, 'this') if isinstance(e.this, exp.InputOutputFormat) else e.name.upper()}",
    -321            exp.FromBase64: rename_func("UNBASE64"),
    -322            exp.If: if_sql,
    -323            exp.ILike: no_ilike_sql,
    -324            exp.JSONExtract: rename_func("GET_JSON_OBJECT"),
    -325            exp.JSONExtractScalar: rename_func("GET_JSON_OBJECT"),
    -326            exp.JSONFormat: _json_format_sql,
    -327            exp.Map: var_map_sql,
    -328            exp.Max: max_or_greatest,
    -329            exp.Min: min_or_least,
    -330            exp.VarMap: var_map_sql,
    -331            exp.Create: create_with_partitions_sql,
    -332            exp.Quantile: rename_func("PERCENTILE"),
    -333            exp.ApproxQuantile: rename_func("PERCENTILE_APPROX"),
    -334            exp.RegexpLike: lambda self, e: self.binary(e, "RLIKE"),
    -335            exp.RegexpSplit: rename_func("SPLIT"),
    -336            exp.SafeDivide: no_safe_divide_sql,
    -337            exp.SchemaCommentProperty: lambda self, e: self.naked_property(e),
    -338            exp.SetAgg: rename_func("COLLECT_SET"),
    -339            exp.Split: lambda self, e: f"SPLIT({self.sql(e, 'this')}, CONCAT('\\\\Q', {self.sql(e, 'expression')}))",
    -340            exp.StrPosition: strposition_to_locate_sql,
    -341            exp.StrToDate: _str_to_date_sql,
    -342            exp.StrToTime: _str_to_time_sql,
    -343            exp.StrToUnix: _str_to_unix_sql,
    -344            exp.StructExtract: struct_extract_sql,
    -345            exp.TimeStrToDate: rename_func("TO_DATE"),
    -346            exp.TimeStrToTime: timestrtotime_sql,
    -347            exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"),
    -348            exp.TimeToStr: _time_to_str,
    -349            exp.TimeToUnix: rename_func("UNIX_TIMESTAMP"),
    -350            exp.ToBase64: rename_func("BASE64"),
    -351            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS STRING), '-', ''), 1, 8) AS INT)",
    -352            exp.TsOrDsAdd: lambda self, e: f"DATE_ADD({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
    -353            exp.TsOrDsToDate: _to_date_sql,
    -354            exp.TryCast: no_trycast_sql,
    -355            exp.UnixToStr: lambda self, e: self.func(
    -356                "FROM_UNIXTIME", e.this, _time_format(self, e)
    -357            ),
    -358            exp.UnixToTime: rename_func("FROM_UNIXTIME"),
    -359            exp.UnixToTimeStr: rename_func("FROM_UNIXTIME"),
    -360            exp.PartitionedByProperty: lambda self, e: f"PARTITIONED BY {self.sql(e, 'this')}",
    -361            exp.RowFormatSerdeProperty: lambda self, e: f"ROW FORMAT SERDE {self.sql(e, 'this')}",
    -362            exp.SerdeProperties: lambda self, e: self.properties(e, prefix="WITH SERDEPROPERTIES"),
    -363            exp.NumberToStr: rename_func("FORMAT_NUMBER"),
    -364            exp.LastDateOfMonth: rename_func("LAST_DAY"),
    -365            exp.National: lambda self, e: self.national_sql(e, prefix=""),
    -366        }
    -367
    -368        PROPERTIES_LOCATION = {
    -369            **generator.Generator.PROPERTIES_LOCATION,
    -370            exp.FileFormatProperty: exp.Properties.Location.POST_SCHEMA,
    -371            exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA,
    -372            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    -373        }
    -374
    -375        def arrayagg_sql(self, expression: exp.ArrayAgg) -> str:
    -376            return self.func(
    -377                "COLLECT_LIST",
    -378                expression.this.this if isinstance(expression.this, exp.Order) else expression.this,
    -379            )
    -380
    -381        def with_properties(self, properties: exp.Properties) -> str:
    -382            return self.properties(
    -383                properties,
    -384                prefix=self.seg("TBLPROPERTIES"),
    -385            )
    -386
    -387        def datatype_sql(self, expression: exp.DataType) -> str:
    -388            if (
    -389                expression.this in (exp.DataType.Type.VARCHAR, exp.DataType.Type.NVARCHAR)
    -390                and not expression.expressions
    -391            ):
    -392                expression = exp.DataType.build("text")
    -393            elif expression.this in exp.DataType.TEMPORAL_TYPES:
    -394                expression = exp.DataType.build(expression.this)
    -395
    -396            return super().datatype_sql(expression)
    -397
    -398        def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]:
    -399            return super().after_having_modifiers(expression) + [
    -400                self.sql(expression, "distribute"),
    -401                self.sql(expression, "sort"),
    -402                self.sql(expression, "cluster"),
    -403            ]
    +            
    153class Hive(Dialect):
    +154    alias_post_tablesample = True
    +155    identifiers_can_start_with_digit = True
    +156
    +157    time_mapping = {
    +158        "y": "%Y",
    +159        "Y": "%Y",
    +160        "YYYY": "%Y",
    +161        "yyyy": "%Y",
    +162        "YY": "%y",
    +163        "yy": "%y",
    +164        "MMMM": "%B",
    +165        "MMM": "%b",
    +166        "MM": "%m",
    +167        "M": "%-m",
    +168        "dd": "%d",
    +169        "d": "%-d",
    +170        "HH": "%H",
    +171        "H": "%-H",
    +172        "hh": "%I",
    +173        "h": "%-I",
    +174        "mm": "%M",
    +175        "m": "%-M",
    +176        "ss": "%S",
    +177        "s": "%-S",
    +178        "SSSSSS": "%f",
    +179        "a": "%p",
    +180        "DD": "%j",
    +181        "D": "%-j",
    +182        "E": "%a",
    +183        "EE": "%a",
    +184        "EEE": "%a",
    +185        "EEEE": "%A",
    +186    }
    +187
    +188    date_format = "'yyyy-MM-dd'"
    +189    dateint_format = "'yyyyMMdd'"
    +190    time_format = "'yyyy-MM-dd HH:mm:ss'"
    +191
    +192    class Tokenizer(tokens.Tokenizer):
    +193        QUOTES = ["'", '"']
    +194        IDENTIFIERS = ["`"]
    +195        STRING_ESCAPES = ["\\"]
    +196        ENCODE = "utf-8"
    +197
    +198        KEYWORDS = {
    +199            **tokens.Tokenizer.KEYWORDS,
    +200            "ADD ARCHIVE": TokenType.COMMAND,
    +201            "ADD ARCHIVES": TokenType.COMMAND,
    +202            "ADD FILE": TokenType.COMMAND,
    +203            "ADD FILES": TokenType.COMMAND,
    +204            "ADD JAR": TokenType.COMMAND,
    +205            "ADD JARS": TokenType.COMMAND,
    +206            "MSCK REPAIR": TokenType.COMMAND,
    +207            "WITH SERDEPROPERTIES": TokenType.SERDE_PROPERTIES,
    +208        }
    +209
    +210        NUMERIC_LITERALS = {
    +211            "L": "BIGINT",
    +212            "S": "SMALLINT",
    +213            "Y": "TINYINT",
    +214            "D": "DOUBLE",
    +215            "F": "FLOAT",
    +216            "BD": "DECIMAL",
    +217        }
    +218
    +219    class Parser(parser.Parser):
    +220        LOG_DEFAULTS_TO_LN = True
    +221        STRICT_CAST = False
    +222
    +223        FUNCTIONS = {
    +224            **parser.Parser.FUNCTIONS,
    +225            "BASE64": exp.ToBase64.from_arg_list,
    +226            "COLLECT_LIST": exp.ArrayAgg.from_arg_list,
    +227            "DATE_ADD": lambda args: exp.TsOrDsAdd(
    +228                this=seq_get(args, 0),
    +229                expression=seq_get(args, 1),
    +230                unit=exp.Literal.string("DAY"),
    +231            ),
    +232            "DATEDIFF": lambda args: exp.DateDiff(
    +233                this=exp.TsOrDsToDate(this=seq_get(args, 0)),
    +234                expression=exp.TsOrDsToDate(this=seq_get(args, 1)),
    +235            ),
    +236            "DATE_SUB": lambda args: exp.TsOrDsAdd(
    +237                this=seq_get(args, 0),
    +238                expression=exp.Mul(
    +239                    this=seq_get(args, 1),
    +240                    expression=exp.Literal.number(-1),
    +241                ),
    +242                unit=exp.Literal.string("DAY"),
    +243            ),
    +244            "DATE_FORMAT": lambda args: format_time_lambda(exp.TimeToStr, "hive")(
    +245                [
    +246                    exp.TimeStrToTime(this=seq_get(args, 0)),
    +247                    seq_get(args, 1),
    +248                ]
    +249            ),
    +250            "DAY": lambda args: exp.Day(this=exp.TsOrDsToDate(this=seq_get(args, 0))),
    +251            "FROM_UNIXTIME": format_time_lambda(exp.UnixToStr, "hive", True),
    +252            "GET_JSON_OBJECT": exp.JSONExtractScalar.from_arg_list,
    +253            "LOCATE": locate_to_strposition,
    +254            "MAP": parse_var_map,
    +255            "MONTH": lambda args: exp.Month(this=exp.TsOrDsToDate.from_arg_list(args)),
    +256            "PERCENTILE": exp.Quantile.from_arg_list,
    +257            "PERCENTILE_APPROX": exp.ApproxQuantile.from_arg_list,
    +258            "COLLECT_SET": exp.SetAgg.from_arg_list,
    +259            "SIZE": exp.ArraySize.from_arg_list,
    +260            "SPLIT": exp.RegexpSplit.from_arg_list,
    +261            "TO_DATE": format_time_lambda(exp.TsOrDsToDate, "hive"),
    +262            "TO_JSON": exp.JSONFormat.from_arg_list,
    +263            "UNBASE64": exp.FromBase64.from_arg_list,
    +264            "UNIX_TIMESTAMP": format_time_lambda(exp.StrToUnix, "hive", True),
    +265            "YEAR": lambda args: exp.Year(this=exp.TsOrDsToDate.from_arg_list(args)),
    +266        }
    +267
    +268        PROPERTY_PARSERS = {
    +269            **parser.Parser.PROPERTY_PARSERS,
    +270            "WITH SERDEPROPERTIES": lambda self: exp.SerdeProperties(
    +271                expressions=self._parse_wrapped_csv(self._parse_property)
    +272            ),
    +273        }
    +274
    +275        QUERY_MODIFIER_PARSERS = {
    +276            **parser.Parser.QUERY_MODIFIER_PARSERS,
    +277            "distribute": lambda self: self._parse_sort(exp.Distribute, "DISTRIBUTE", "BY"),
    +278            "sort": lambda self: self._parse_sort(exp.Sort, "SORT", "BY"),
    +279            "cluster": lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"),
    +280        }
    +281
    +282        def _parse_types(
    +283            self, check_func: bool = False, schema: bool = False
    +284        ) -> t.Optional[exp.Expression]:
    +285            """
    +286            Spark (and most likely Hive) treats casts to CHAR(length) and VARCHAR(length) as casts to
    +287            STRING in all contexts except for schema definitions. For example, this is in Spark v3.4.0:
    +288
    +289                spark-sql (default)> select cast(1234 as varchar(2));
    +290                23/06/06 15:51:18 WARN CharVarcharUtils: The Spark cast operator does not support
    +291                char/varchar type and simply treats them as string type. Please use string type
    +292                directly to avoid confusion. Otherwise, you can set spark.sql.legacy.charVarcharAsString
    +293                to true, so that Spark treat them as string type as same as Spark 3.0 and earlier
    +294
    +295                1234
    +296                Time taken: 4.265 seconds, Fetched 1 row(s)
    +297
    +298            This shows that Spark doesn't truncate the value into '12', which is inconsistent with
    +299            what other dialects (e.g. postgres) do, so we need to drop the length to transpile correctly.
    +300
    +301            Reference: https://spark.apache.org/docs/latest/sql-ref-datatypes.html
    +302            """
    +303            this = super()._parse_types(check_func=check_func, schema=schema)
    +304
    +305            if this and not schema:
    +306                return this.transform(
    +307                    lambda node: node.replace(exp.DataType.build("text"))
    +308                    if isinstance(node, exp.DataType) and node.is_type("char", "varchar")
    +309                    else node,
    +310                    copy=False,
    +311                )
    +312
    +313            return this
    +314
    +315    class Generator(generator.Generator):
    +316        LIMIT_FETCH = "LIMIT"
    +317        TABLESAMPLE_WITH_METHOD = False
    +318        TABLESAMPLE_SIZE_IS_PERCENT = True
    +319        JOIN_HINTS = False
    +320        TABLE_HINTS = False
    +321        INDEX_ON = "ON TABLE"
    +322
    +323        TYPE_MAPPING = {
    +324            **generator.Generator.TYPE_MAPPING,
    +325            exp.DataType.Type.TEXT: "STRING",
    +326            exp.DataType.Type.DATETIME: "TIMESTAMP",
    +327            exp.DataType.Type.VARBINARY: "BINARY",
    +328            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
    +329            exp.DataType.Type.BIT: "BOOLEAN",
    +330        }
    +331
    +332        TRANSFORMS = {
    +333            **generator.Generator.TRANSFORMS,
    +334            exp.Group: transforms.preprocess([transforms.unalias_group]),
    +335            exp.Select: transforms.preprocess(
    +336                [
    +337                    transforms.eliminate_qualify,
    +338                    transforms.eliminate_distinct_on,
    +339                    transforms.unnest_to_explode,
    +340                ]
    +341            ),
    +342            exp.Property: _property_sql,
    +343            exp.ApproxDistinct: approx_count_distinct_sql,
    +344            exp.ArrayConcat: rename_func("CONCAT"),
    +345            exp.ArrayJoin: lambda self, e: self.func("CONCAT_WS", e.expression, e.this),
    +346            exp.ArraySize: rename_func("SIZE"),
    +347            exp.ArraySort: _array_sort_sql,
    +348            exp.With: no_recursive_cte_sql,
    +349            exp.DateAdd: _add_date_sql,
    +350            exp.DateDiff: _date_diff_sql,
    +351            exp.DateStrToDate: rename_func("TO_DATE"),
    +352            exp.DateSub: _add_date_sql,
    +353            exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Hive.dateint_format}) AS INT)",
    +354            exp.DiToDate: lambda self, e: f"TO_DATE(CAST({self.sql(e, 'this')} AS STRING), {Hive.dateint_format})",
    +355            exp.FileFormatProperty: lambda self, e: f"STORED AS {self.sql(e, 'this') if isinstance(e.this, exp.InputOutputFormat) else e.name.upper()}",
    +356            exp.FromBase64: rename_func("UNBASE64"),
    +357            exp.If: if_sql,
    +358            exp.ILike: no_ilike_sql,
    +359            exp.JSONExtract: rename_func("GET_JSON_OBJECT"),
    +360            exp.JSONExtractScalar: rename_func("GET_JSON_OBJECT"),
    +361            exp.JSONFormat: _json_format_sql,
    +362            exp.Left: left_to_substring_sql,
    +363            exp.Map: var_map_sql,
    +364            exp.Max: max_or_greatest,
    +365            exp.Min: min_or_least,
    +366            exp.VarMap: var_map_sql,
    +367            exp.Create: create_with_partitions_sql,
    +368            exp.Quantile: rename_func("PERCENTILE"),
    +369            exp.ApproxQuantile: rename_func("PERCENTILE_APPROX"),
    +370            exp.RegexpLike: lambda self, e: self.binary(e, "RLIKE"),
    +371            exp.RegexpSplit: rename_func("SPLIT"),
    +372            exp.Right: right_to_substring_sql,
    +373            exp.SafeDivide: no_safe_divide_sql,
    +374            exp.SchemaCommentProperty: lambda self, e: self.naked_property(e),
    +375            exp.SetAgg: rename_func("COLLECT_SET"),
    +376            exp.Split: lambda self, e: f"SPLIT({self.sql(e, 'this')}, CONCAT('\\\\Q', {self.sql(e, 'expression')}))",
    +377            exp.StrPosition: strposition_to_locate_sql,
    +378            exp.StrToDate: _str_to_date_sql,
    +379            exp.StrToTime: _str_to_time_sql,
    +380            exp.StrToUnix: _str_to_unix_sql,
    +381            exp.StructExtract: struct_extract_sql,
    +382            exp.TimeStrToDate: rename_func("TO_DATE"),
    +383            exp.TimeStrToTime: timestrtotime_sql,
    +384            exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"),
    +385            exp.TimeToStr: _time_to_str,
    +386            exp.TimeToUnix: rename_func("UNIX_TIMESTAMP"),
    +387            exp.ToBase64: rename_func("BASE64"),
    +388            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS STRING), '-', ''), 1, 8) AS INT)",
    +389            exp.TsOrDsAdd: lambda self, e: f"DATE_ADD({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
    +390            exp.TsOrDsToDate: _to_date_sql,
    +391            exp.TryCast: no_trycast_sql,
    +392            exp.UnixToStr: lambda self, e: self.func(
    +393                "FROM_UNIXTIME", e.this, _time_format(self, e)
    +394            ),
    +395            exp.UnixToTime: rename_func("FROM_UNIXTIME"),
    +396            exp.UnixToTimeStr: rename_func("FROM_UNIXTIME"),
    +397            exp.PartitionedByProperty: lambda self, e: f"PARTITIONED BY {self.sql(e, 'this')}",
    +398            exp.RowFormatSerdeProperty: lambda self, e: f"ROW FORMAT SERDE {self.sql(e, 'this')}",
    +399            exp.SerdeProperties: lambda self, e: self.properties(e, prefix="WITH SERDEPROPERTIES"),
    +400            exp.NumberToStr: rename_func("FORMAT_NUMBER"),
    +401            exp.LastDateOfMonth: rename_func("LAST_DAY"),
    +402            exp.National: lambda self, e: self.national_sql(e, prefix=""),
    +403        }
    +404
    +405        PROPERTIES_LOCATION = {
    +406            **generator.Generator.PROPERTIES_LOCATION,
    +407            exp.FileFormatProperty: exp.Properties.Location.POST_SCHEMA,
    +408            exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA,
    +409            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    +410        }
    +411
    +412        def arrayagg_sql(self, expression: exp.ArrayAgg) -> str:
    +413            return self.func(
    +414                "COLLECT_LIST",
    +415                expression.this.this if isinstance(expression.this, exp.Order) else expression.this,
    +416            )
    +417
    +418        def with_properties(self, properties: exp.Properties) -> str:
    +419            return self.properties(
    +420                properties,
    +421                prefix=self.seg("TBLPROPERTIES"),
    +422            )
    +423
    +424        def datatype_sql(self, expression: exp.DataType) -> str:
    +425            if (
    +426                expression.this in (exp.DataType.Type.VARCHAR, exp.DataType.Type.NVARCHAR)
    +427                and not expression.expressions
    +428            ):
    +429                expression = exp.DataType.build("text")
    +430            elif expression.this in exp.DataType.TEMPORAL_TYPES:
    +431                expression = exp.DataType.build(expression.this)
    +432
    +433            return super().datatype_sql(expression)
    +434
    +435        def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]:
    +436            return super().after_having_modifiers(expression) + [
    +437                self.sql(expression, "distribute"),
    +438                self.sql(expression, "sort"),
    +439                self.sql(expression, "cluster"),
    +440            ]
     
    @@ -793,33 +865,32 @@
    -
    189    class Tokenizer(tokens.Tokenizer):
    -190        QUOTES = ["'", '"']
    -191        IDENTIFIERS = ["`"]
    -192        STRING_ESCAPES = ["\\"]
    -193        ENCODE = "utf-8"
    -194        IDENTIFIER_CAN_START_WITH_DIGIT = True
    -195
    -196        KEYWORDS = {
    -197            **tokens.Tokenizer.KEYWORDS,
    -198            "ADD ARCHIVE": TokenType.COMMAND,
    -199            "ADD ARCHIVES": TokenType.COMMAND,
    -200            "ADD FILE": TokenType.COMMAND,
    -201            "ADD FILES": TokenType.COMMAND,
    -202            "ADD JAR": TokenType.COMMAND,
    -203            "ADD JARS": TokenType.COMMAND,
    -204            "MSCK REPAIR": TokenType.COMMAND,
    -205            "WITH SERDEPROPERTIES": TokenType.SERDE_PROPERTIES,
    -206        }
    -207
    -208        NUMERIC_LITERALS = {
    -209            "L": "BIGINT",
    -210            "S": "SMALLINT",
    -211            "Y": "TINYINT",
    -212            "D": "DOUBLE",
    -213            "F": "FLOAT",
    -214            "BD": "DECIMAL",
    -215        }
    +            
    192    class Tokenizer(tokens.Tokenizer):
    +193        QUOTES = ["'", '"']
    +194        IDENTIFIERS = ["`"]
    +195        STRING_ESCAPES = ["\\"]
    +196        ENCODE = "utf-8"
    +197
    +198        KEYWORDS = {
    +199            **tokens.Tokenizer.KEYWORDS,
    +200            "ADD ARCHIVE": TokenType.COMMAND,
    +201            "ADD ARCHIVES": TokenType.COMMAND,
    +202            "ADD FILE": TokenType.COMMAND,
    +203            "ADD FILES": TokenType.COMMAND,
    +204            "ADD JAR": TokenType.COMMAND,
    +205            "ADD JARS": TokenType.COMMAND,
    +206            "MSCK REPAIR": TokenType.COMMAND,
    +207            "WITH SERDEPROPERTIES": TokenType.SERDE_PROPERTIES,
    +208        }
    +209
    +210        NUMERIC_LITERALS = {
    +211            "L": "BIGINT",
    +212            "S": "SMALLINT",
    +213            "Y": "TINYINT",
    +214            "D": "DOUBLE",
    +215            "F": "FLOAT",
    +216            "BD": "DECIMAL",
    +217        }
     
    @@ -847,68 +918,101 @@
    -
    217    class Parser(parser.Parser):
    -218        LOG_DEFAULTS_TO_LN = True
    -219        STRICT_CAST = False
    -220
    -221        FUNCTIONS = {
    -222            **parser.Parser.FUNCTIONS,
    -223            "BASE64": exp.ToBase64.from_arg_list,
    -224            "COLLECT_LIST": exp.ArrayAgg.from_arg_list,
    -225            "DATE_ADD": lambda args: exp.TsOrDsAdd(
    -226                this=seq_get(args, 0),
    -227                expression=seq_get(args, 1),
    -228                unit=exp.Literal.string("DAY"),
    -229            ),
    -230            "DATEDIFF": lambda args: exp.DateDiff(
    -231                this=exp.TsOrDsToDate(this=seq_get(args, 0)),
    -232                expression=exp.TsOrDsToDate(this=seq_get(args, 1)),
    -233            ),
    -234            "DATE_SUB": lambda args: exp.TsOrDsAdd(
    -235                this=seq_get(args, 0),
    -236                expression=exp.Mul(
    -237                    this=seq_get(args, 1),
    -238                    expression=exp.Literal.number(-1),
    -239                ),
    -240                unit=exp.Literal.string("DAY"),
    -241            ),
    -242            "DATE_FORMAT": lambda args: format_time_lambda(exp.TimeToStr, "hive")(
    -243                [
    -244                    exp.TimeStrToTime(this=seq_get(args, 0)),
    -245                    seq_get(args, 1),
    -246                ]
    -247            ),
    -248            "DAY": lambda args: exp.Day(this=exp.TsOrDsToDate(this=seq_get(args, 0))),
    -249            "FROM_UNIXTIME": format_time_lambda(exp.UnixToStr, "hive", True),
    -250            "GET_JSON_OBJECT": exp.JSONExtractScalar.from_arg_list,
    -251            "LOCATE": locate_to_strposition,
    -252            "MAP": parse_var_map,
    -253            "MONTH": lambda args: exp.Month(this=exp.TsOrDsToDate.from_arg_list(args)),
    -254            "PERCENTILE": exp.Quantile.from_arg_list,
    -255            "PERCENTILE_APPROX": exp.ApproxQuantile.from_arg_list,
    -256            "COLLECT_SET": exp.SetAgg.from_arg_list,
    -257            "SIZE": exp.ArraySize.from_arg_list,
    -258            "SPLIT": exp.RegexpSplit.from_arg_list,
    -259            "TO_DATE": format_time_lambda(exp.TsOrDsToDate, "hive"),
    -260            "TO_JSON": exp.JSONFormat.from_arg_list,
    -261            "UNBASE64": exp.FromBase64.from_arg_list,
    -262            "UNIX_TIMESTAMP": format_time_lambda(exp.StrToUnix, "hive", True),
    -263            "YEAR": lambda args: exp.Year(this=exp.TsOrDsToDate.from_arg_list(args)),
    -264        }
    -265
    -266        PROPERTY_PARSERS = {
    -267            **parser.Parser.PROPERTY_PARSERS,
    -268            "WITH SERDEPROPERTIES": lambda self: exp.SerdeProperties(
    -269                expressions=self._parse_wrapped_csv(self._parse_property)
    -270            ),
    -271        }
    -272
    -273        QUERY_MODIFIER_PARSERS = {
    -274            **parser.Parser.QUERY_MODIFIER_PARSERS,
    -275            "distribute": lambda self: self._parse_sort(exp.Distribute, "DISTRIBUTE", "BY"),
    -276            "sort": lambda self: self._parse_sort(exp.Sort, "SORT", "BY"),
    -277            "cluster": lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"),
    -278        }
    +            
    219    class Parser(parser.Parser):
    +220        LOG_DEFAULTS_TO_LN = True
    +221        STRICT_CAST = False
    +222
    +223        FUNCTIONS = {
    +224            **parser.Parser.FUNCTIONS,
    +225            "BASE64": exp.ToBase64.from_arg_list,
    +226            "COLLECT_LIST": exp.ArrayAgg.from_arg_list,
    +227            "DATE_ADD": lambda args: exp.TsOrDsAdd(
    +228                this=seq_get(args, 0),
    +229                expression=seq_get(args, 1),
    +230                unit=exp.Literal.string("DAY"),
    +231            ),
    +232            "DATEDIFF": lambda args: exp.DateDiff(
    +233                this=exp.TsOrDsToDate(this=seq_get(args, 0)),
    +234                expression=exp.TsOrDsToDate(this=seq_get(args, 1)),
    +235            ),
    +236            "DATE_SUB": lambda args: exp.TsOrDsAdd(
    +237                this=seq_get(args, 0),
    +238                expression=exp.Mul(
    +239                    this=seq_get(args, 1),
    +240                    expression=exp.Literal.number(-1),
    +241                ),
    +242                unit=exp.Literal.string("DAY"),
    +243            ),
    +244            "DATE_FORMAT": lambda args: format_time_lambda(exp.TimeToStr, "hive")(
    +245                [
    +246                    exp.TimeStrToTime(this=seq_get(args, 0)),
    +247                    seq_get(args, 1),
    +248                ]
    +249            ),
    +250            "DAY": lambda args: exp.Day(this=exp.TsOrDsToDate(this=seq_get(args, 0))),
    +251            "FROM_UNIXTIME": format_time_lambda(exp.UnixToStr, "hive", True),
    +252            "GET_JSON_OBJECT": exp.JSONExtractScalar.from_arg_list,
    +253            "LOCATE": locate_to_strposition,
    +254            "MAP": parse_var_map,
    +255            "MONTH": lambda args: exp.Month(this=exp.TsOrDsToDate.from_arg_list(args)),
    +256            "PERCENTILE": exp.Quantile.from_arg_list,
    +257            "PERCENTILE_APPROX": exp.ApproxQuantile.from_arg_list,
    +258            "COLLECT_SET": exp.SetAgg.from_arg_list,
    +259            "SIZE": exp.ArraySize.from_arg_list,
    +260            "SPLIT": exp.RegexpSplit.from_arg_list,
    +261            "TO_DATE": format_time_lambda(exp.TsOrDsToDate, "hive"),
    +262            "TO_JSON": exp.JSONFormat.from_arg_list,
    +263            "UNBASE64": exp.FromBase64.from_arg_list,
    +264            "UNIX_TIMESTAMP": format_time_lambda(exp.StrToUnix, "hive", True),
    +265            "YEAR": lambda args: exp.Year(this=exp.TsOrDsToDate.from_arg_list(args)),
    +266        }
    +267
    +268        PROPERTY_PARSERS = {
    +269            **parser.Parser.PROPERTY_PARSERS,
    +270            "WITH SERDEPROPERTIES": lambda self: exp.SerdeProperties(
    +271                expressions=self._parse_wrapped_csv(self._parse_property)
    +272            ),
    +273        }
    +274
    +275        QUERY_MODIFIER_PARSERS = {
    +276            **parser.Parser.QUERY_MODIFIER_PARSERS,
    +277            "distribute": lambda self: self._parse_sort(exp.Distribute, "DISTRIBUTE", "BY"),
    +278            "sort": lambda self: self._parse_sort(exp.Sort, "SORT", "BY"),
    +279            "cluster": lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"),
    +280        }
    +281
    +282        def _parse_types(
    +283            self, check_func: bool = False, schema: bool = False
    +284        ) -> t.Optional[exp.Expression]:
    +285            """
    +286            Spark (and most likely Hive) treats casts to CHAR(length) and VARCHAR(length) as casts to
    +287            STRING in all contexts except for schema definitions. For example, this is in Spark v3.4.0:
    +288
    +289                spark-sql (default)> select cast(1234 as varchar(2));
    +290                23/06/06 15:51:18 WARN CharVarcharUtils: The Spark cast operator does not support
    +291                char/varchar type and simply treats them as string type. Please use string type
    +292                directly to avoid confusion. Otherwise, you can set spark.sql.legacy.charVarcharAsString
    +293                to true, so that Spark treat them as string type as same as Spark 3.0 and earlier
    +294
    +295                1234
    +296                Time taken: 4.265 seconds, Fetched 1 row(s)
    +297
    +298            This shows that Spark doesn't truncate the value into '12', which is inconsistent with
    +299            what other dialects (e.g. postgres) do, so we need to drop the length to transpile correctly.
    +300
    +301            Reference: https://spark.apache.org/docs/latest/sql-ref-datatypes.html
    +302            """
    +303            this = super()._parse_types(check_func=check_func, schema=schema)
    +304
    +305            if this and not schema:
    +306                return this.transform(
    +307                    lambda node: node.replace(exp.DataType.build("text"))
    +308                    if isinstance(node, exp.DataType) and node.is_type("char", "varchar")
    +309                    else node,
    +310                    copy=False,
    +311                )
    +312
    +313            return this
     
    @@ -919,7 +1023,7 @@ a parsed syntax tree.

    • error_level: the desired error level. -Default: ErrorLevel.RAISE
    • +Default: ErrorLevel.IMMEDIATE
    • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
    • @@ -965,130 +1069,132 @@ Default: "nulls_are_small"
    -
    280    class Generator(generator.Generator):
    -281        LIMIT_FETCH = "LIMIT"
    -282        TABLESAMPLE_WITH_METHOD = False
    -283        TABLESAMPLE_SIZE_IS_PERCENT = True
    -284        JOIN_HINTS = False
    -285        TABLE_HINTS = False
    -286        INDEX_ON = "ON TABLE"
    -287
    -288        TYPE_MAPPING = {
    -289            **generator.Generator.TYPE_MAPPING,
    -290            exp.DataType.Type.TEXT: "STRING",
    -291            exp.DataType.Type.DATETIME: "TIMESTAMP",
    -292            exp.DataType.Type.VARBINARY: "BINARY",
    -293            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
    -294            exp.DataType.Type.BIT: "BOOLEAN",
    -295        }
    -296
    -297        TRANSFORMS = {
    -298            **generator.Generator.TRANSFORMS,
    -299            exp.Group: transforms.preprocess([transforms.unalias_group]),
    -300            exp.Select: transforms.preprocess(
    -301                [
    -302                    transforms.eliminate_qualify,
    -303                    transforms.eliminate_distinct_on,
    -304                    transforms.unnest_to_explode,
    -305                ]
    -306            ),
    -307            exp.Property: _property_sql,
    -308            exp.ApproxDistinct: approx_count_distinct_sql,
    -309            exp.ArrayConcat: rename_func("CONCAT"),
    -310            exp.ArrayJoin: lambda self, e: self.func("CONCAT_WS", e.expression, e.this),
    -311            exp.ArraySize: rename_func("SIZE"),
    -312            exp.ArraySort: _array_sort_sql,
    -313            exp.With: no_recursive_cte_sql,
    -314            exp.DateAdd: _add_date_sql,
    -315            exp.DateDiff: _date_diff_sql,
    -316            exp.DateStrToDate: rename_func("TO_DATE"),
    -317            exp.DateSub: _add_date_sql,
    -318            exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Hive.dateint_format}) AS INT)",
    -319            exp.DiToDate: lambda self, e: f"TO_DATE(CAST({self.sql(e, 'this')} AS STRING), {Hive.dateint_format})",
    -320            exp.FileFormatProperty: lambda self, e: f"STORED AS {self.sql(e, 'this') if isinstance(e.this, exp.InputOutputFormat) else e.name.upper()}",
    -321            exp.FromBase64: rename_func("UNBASE64"),
    -322            exp.If: if_sql,
    -323            exp.ILike: no_ilike_sql,
    -324            exp.JSONExtract: rename_func("GET_JSON_OBJECT"),
    -325            exp.JSONExtractScalar: rename_func("GET_JSON_OBJECT"),
    -326            exp.JSONFormat: _json_format_sql,
    -327            exp.Map: var_map_sql,
    -328            exp.Max: max_or_greatest,
    -329            exp.Min: min_or_least,
    -330            exp.VarMap: var_map_sql,
    -331            exp.Create: create_with_partitions_sql,
    -332            exp.Quantile: rename_func("PERCENTILE"),
    -333            exp.ApproxQuantile: rename_func("PERCENTILE_APPROX"),
    -334            exp.RegexpLike: lambda self, e: self.binary(e, "RLIKE"),
    -335            exp.RegexpSplit: rename_func("SPLIT"),
    -336            exp.SafeDivide: no_safe_divide_sql,
    -337            exp.SchemaCommentProperty: lambda self, e: self.naked_property(e),
    -338            exp.SetAgg: rename_func("COLLECT_SET"),
    -339            exp.Split: lambda self, e: f"SPLIT({self.sql(e, 'this')}, CONCAT('\\\\Q', {self.sql(e, 'expression')}))",
    -340            exp.StrPosition: strposition_to_locate_sql,
    -341            exp.StrToDate: _str_to_date_sql,
    -342            exp.StrToTime: _str_to_time_sql,
    -343            exp.StrToUnix: _str_to_unix_sql,
    -344            exp.StructExtract: struct_extract_sql,
    -345            exp.TimeStrToDate: rename_func("TO_DATE"),
    -346            exp.TimeStrToTime: timestrtotime_sql,
    -347            exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"),
    -348            exp.TimeToStr: _time_to_str,
    -349            exp.TimeToUnix: rename_func("UNIX_TIMESTAMP"),
    -350            exp.ToBase64: rename_func("BASE64"),
    -351            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS STRING), '-', ''), 1, 8) AS INT)",
    -352            exp.TsOrDsAdd: lambda self, e: f"DATE_ADD({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
    -353            exp.TsOrDsToDate: _to_date_sql,
    -354            exp.TryCast: no_trycast_sql,
    -355            exp.UnixToStr: lambda self, e: self.func(
    -356                "FROM_UNIXTIME", e.this, _time_format(self, e)
    -357            ),
    -358            exp.UnixToTime: rename_func("FROM_UNIXTIME"),
    -359            exp.UnixToTimeStr: rename_func("FROM_UNIXTIME"),
    -360            exp.PartitionedByProperty: lambda self, e: f"PARTITIONED BY {self.sql(e, 'this')}",
    -361            exp.RowFormatSerdeProperty: lambda self, e: f"ROW FORMAT SERDE {self.sql(e, 'this')}",
    -362            exp.SerdeProperties: lambda self, e: self.properties(e, prefix="WITH SERDEPROPERTIES"),
    -363            exp.NumberToStr: rename_func("FORMAT_NUMBER"),
    -364            exp.LastDateOfMonth: rename_func("LAST_DAY"),
    -365            exp.National: lambda self, e: self.national_sql(e, prefix=""),
    -366        }
    -367
    -368        PROPERTIES_LOCATION = {
    -369            **generator.Generator.PROPERTIES_LOCATION,
    -370            exp.FileFormatProperty: exp.Properties.Location.POST_SCHEMA,
    -371            exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA,
    -372            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    -373        }
    -374
    -375        def arrayagg_sql(self, expression: exp.ArrayAgg) -> str:
    -376            return self.func(
    -377                "COLLECT_LIST",
    -378                expression.this.this if isinstance(expression.this, exp.Order) else expression.this,
    -379            )
    -380
    -381        def with_properties(self, properties: exp.Properties) -> str:
    -382            return self.properties(
    -383                properties,
    -384                prefix=self.seg("TBLPROPERTIES"),
    -385            )
    -386
    -387        def datatype_sql(self, expression: exp.DataType) -> str:
    -388            if (
    -389                expression.this in (exp.DataType.Type.VARCHAR, exp.DataType.Type.NVARCHAR)
    -390                and not expression.expressions
    -391            ):
    -392                expression = exp.DataType.build("text")
    -393            elif expression.this in exp.DataType.TEMPORAL_TYPES:
    -394                expression = exp.DataType.build(expression.this)
    -395
    -396            return super().datatype_sql(expression)
    -397
    -398        def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]:
    -399            return super().after_having_modifiers(expression) + [
    -400                self.sql(expression, "distribute"),
    -401                self.sql(expression, "sort"),
    -402                self.sql(expression, "cluster"),
    -403            ]
    +            
    315    class Generator(generator.Generator):
    +316        LIMIT_FETCH = "LIMIT"
    +317        TABLESAMPLE_WITH_METHOD = False
    +318        TABLESAMPLE_SIZE_IS_PERCENT = True
    +319        JOIN_HINTS = False
    +320        TABLE_HINTS = False
    +321        INDEX_ON = "ON TABLE"
    +322
    +323        TYPE_MAPPING = {
    +324            **generator.Generator.TYPE_MAPPING,
    +325            exp.DataType.Type.TEXT: "STRING",
    +326            exp.DataType.Type.DATETIME: "TIMESTAMP",
    +327            exp.DataType.Type.VARBINARY: "BINARY",
    +328            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
    +329            exp.DataType.Type.BIT: "BOOLEAN",
    +330        }
    +331
    +332        TRANSFORMS = {
    +333            **generator.Generator.TRANSFORMS,
    +334            exp.Group: transforms.preprocess([transforms.unalias_group]),
    +335            exp.Select: transforms.preprocess(
    +336                [
    +337                    transforms.eliminate_qualify,
    +338                    transforms.eliminate_distinct_on,
    +339                    transforms.unnest_to_explode,
    +340                ]
    +341            ),
    +342            exp.Property: _property_sql,
    +343            exp.ApproxDistinct: approx_count_distinct_sql,
    +344            exp.ArrayConcat: rename_func("CONCAT"),
    +345            exp.ArrayJoin: lambda self, e: self.func("CONCAT_WS", e.expression, e.this),
    +346            exp.ArraySize: rename_func("SIZE"),
    +347            exp.ArraySort: _array_sort_sql,
    +348            exp.With: no_recursive_cte_sql,
    +349            exp.DateAdd: _add_date_sql,
    +350            exp.DateDiff: _date_diff_sql,
    +351            exp.DateStrToDate: rename_func("TO_DATE"),
    +352            exp.DateSub: _add_date_sql,
    +353            exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Hive.dateint_format}) AS INT)",
    +354            exp.DiToDate: lambda self, e: f"TO_DATE(CAST({self.sql(e, 'this')} AS STRING), {Hive.dateint_format})",
    +355            exp.FileFormatProperty: lambda self, e: f"STORED AS {self.sql(e, 'this') if isinstance(e.this, exp.InputOutputFormat) else e.name.upper()}",
    +356            exp.FromBase64: rename_func("UNBASE64"),
    +357            exp.If: if_sql,
    +358            exp.ILike: no_ilike_sql,
    +359            exp.JSONExtract: rename_func("GET_JSON_OBJECT"),
    +360            exp.JSONExtractScalar: rename_func("GET_JSON_OBJECT"),
    +361            exp.JSONFormat: _json_format_sql,
    +362            exp.Left: left_to_substring_sql,
    +363            exp.Map: var_map_sql,
    +364            exp.Max: max_or_greatest,
    +365            exp.Min: min_or_least,
    +366            exp.VarMap: var_map_sql,
    +367            exp.Create: create_with_partitions_sql,
    +368            exp.Quantile: rename_func("PERCENTILE"),
    +369            exp.ApproxQuantile: rename_func("PERCENTILE_APPROX"),
    +370            exp.RegexpLike: lambda self, e: self.binary(e, "RLIKE"),
    +371            exp.RegexpSplit: rename_func("SPLIT"),
    +372            exp.Right: right_to_substring_sql,
    +373            exp.SafeDivide: no_safe_divide_sql,
    +374            exp.SchemaCommentProperty: lambda self, e: self.naked_property(e),
    +375            exp.SetAgg: rename_func("COLLECT_SET"),
    +376            exp.Split: lambda self, e: f"SPLIT({self.sql(e, 'this')}, CONCAT('\\\\Q', {self.sql(e, 'expression')}))",
    +377            exp.StrPosition: strposition_to_locate_sql,
    +378            exp.StrToDate: _str_to_date_sql,
    +379            exp.StrToTime: _str_to_time_sql,
    +380            exp.StrToUnix: _str_to_unix_sql,
    +381            exp.StructExtract: struct_extract_sql,
    +382            exp.TimeStrToDate: rename_func("TO_DATE"),
    +383            exp.TimeStrToTime: timestrtotime_sql,
    +384            exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"),
    +385            exp.TimeToStr: _time_to_str,
    +386            exp.TimeToUnix: rename_func("UNIX_TIMESTAMP"),
    +387            exp.ToBase64: rename_func("BASE64"),
    +388            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS STRING), '-', ''), 1, 8) AS INT)",
    +389            exp.TsOrDsAdd: lambda self, e: f"DATE_ADD({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
    +390            exp.TsOrDsToDate: _to_date_sql,
    +391            exp.TryCast: no_trycast_sql,
    +392            exp.UnixToStr: lambda self, e: self.func(
    +393                "FROM_UNIXTIME", e.this, _time_format(self, e)
    +394            ),
    +395            exp.UnixToTime: rename_func("FROM_UNIXTIME"),
    +396            exp.UnixToTimeStr: rename_func("FROM_UNIXTIME"),
    +397            exp.PartitionedByProperty: lambda self, e: f"PARTITIONED BY {self.sql(e, 'this')}",
    +398            exp.RowFormatSerdeProperty: lambda self, e: f"ROW FORMAT SERDE {self.sql(e, 'this')}",
    +399            exp.SerdeProperties: lambda self, e: self.properties(e, prefix="WITH SERDEPROPERTIES"),
    +400            exp.NumberToStr: rename_func("FORMAT_NUMBER"),
    +401            exp.LastDateOfMonth: rename_func("LAST_DAY"),
    +402            exp.National: lambda self, e: self.national_sql(e, prefix=""),
    +403        }
    +404
    +405        PROPERTIES_LOCATION = {
    +406            **generator.Generator.PROPERTIES_LOCATION,
    +407            exp.FileFormatProperty: exp.Properties.Location.POST_SCHEMA,
    +408            exp.PartitionedByProperty: exp.Properties.Location.POST_SCHEMA,
    +409            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
    +410        }
    +411
    +412        def arrayagg_sql(self, expression: exp.ArrayAgg) -> str:
    +413            return self.func(
    +414                "COLLECT_LIST",
    +415                expression.this.this if isinstance(expression.this, exp.Order) else expression.this,
    +416            )
    +417
    +418        def with_properties(self, properties: exp.Properties) -> str:
    +419            return self.properties(
    +420                properties,
    +421                prefix=self.seg("TBLPROPERTIES"),
    +422            )
    +423
    +424        def datatype_sql(self, expression: exp.DataType) -> str:
    +425            if (
    +426                expression.this in (exp.DataType.Type.VARCHAR, exp.DataType.Type.NVARCHAR)
    +427                and not expression.expressions
    +428            ):
    +429                expression = exp.DataType.build("text")
    +430            elif expression.this in exp.DataType.TEMPORAL_TYPES:
    +431                expression = exp.DataType.build(expression.this)
    +432
    +433            return super().datatype_sql(expression)
    +434
    +435        def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]:
    +436            return super().after_having_modifiers(expression) + [
    +437                self.sql(expression, "distribute"),
    +438                self.sql(expression, "sort"),
    +439                self.sql(expression, "cluster"),
    +440            ]
     
    @@ -1124,6 +1230,8 @@ represents a python time format and the output the target time format Default: "upper"
  • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
  • +
  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
  • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1155,11 +1263,11 @@ Default: True
  • -
    375        def arrayagg_sql(self, expression: exp.ArrayAgg) -> str:
    -376            return self.func(
    -377                "COLLECT_LIST",
    -378                expression.this.this if isinstance(expression.this, exp.Order) else expression.this,
    -379            )
    +            
    412        def arrayagg_sql(self, expression: exp.ArrayAgg) -> str:
    +413            return self.func(
    +414                "COLLECT_LIST",
    +415                expression.this.this if isinstance(expression.this, exp.Order) else expression.this,
    +416            )
     
    @@ -1177,11 +1285,11 @@ Default: True
    -
    381        def with_properties(self, properties: exp.Properties) -> str:
    -382            return self.properties(
    -383                properties,
    -384                prefix=self.seg("TBLPROPERTIES"),
    -385            )
    +            
    418        def with_properties(self, properties: exp.Properties) -> str:
    +419            return self.properties(
    +420                properties,
    +421                prefix=self.seg("TBLPROPERTIES"),
    +422            )
     
    @@ -1199,16 +1307,16 @@ Default: True
    -
    387        def datatype_sql(self, expression: exp.DataType) -> str:
    -388            if (
    -389                expression.this in (exp.DataType.Type.VARCHAR, exp.DataType.Type.NVARCHAR)
    -390                and not expression.expressions
    -391            ):
    -392                expression = exp.DataType.build("text")
    -393            elif expression.this in exp.DataType.TEMPORAL_TYPES:
    -394                expression = exp.DataType.build(expression.this)
    -395
    -396            return super().datatype_sql(expression)
    +            
    424        def datatype_sql(self, expression: exp.DataType) -> str:
    +425            if (
    +426                expression.this in (exp.DataType.Type.VARCHAR, exp.DataType.Type.NVARCHAR)
    +427                and not expression.expressions
    +428            ):
    +429                expression = exp.DataType.build("text")
    +430            elif expression.this in exp.DataType.TEMPORAL_TYPES:
    +431                expression = exp.DataType.build(expression.this)
    +432
    +433            return super().datatype_sql(expression)
     
    @@ -1226,12 +1334,12 @@ Default: True
    -
    398        def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]:
    -399            return super().after_having_modifiers(expression) + [
    -400                self.sql(expression, "distribute"),
    -401                self.sql(expression, "sort"),
    -402                self.sql(expression, "cluster"),
    -403            ]
    +            
    435        def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]:
    +436            return super().after_having_modifiers(expression) + [
    +437                self.sql(expression, "distribute"),
    +438                self.sql(expression, "sort"),
    +439                self.sql(expression, "cluster"),
    +440            ]
     
    @@ -1378,7 +1486,6 @@ Default: True
    check_sql
    foreignkey_sql
    primarykey_sql
    -
    unique_sql
    if_sql
    matchagainst_sql
    jsonkeyvalue_sql
    @@ -1471,6 +1578,9 @@ Default: True
    when_sql
    merge_sql
    tochar_sql
    +
    dictproperty_sql
    +
    dictrange_sql
    +
    dictsubproperty_sql
    diff --git a/docs/sqlglot/dialects/mysql.html b/docs/sqlglot/dialects/mysql.html index f0f4703..42f39e6 100644 --- a/docs/sqlglot/dialects/mysql.html +++ b/docs/sqlglot/dialects/mysql.html @@ -268,306 +268,303 @@ 186 "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "mysql"), 187 "DATE_SUB": parse_date_delta_with_interval(exp.DateSub), 188 "INSTR": lambda args: exp.StrPosition(substr=seq_get(args, 1), this=seq_get(args, 0)), -189 "LEFT": lambda args: exp.Substring( -190 this=seq_get(args, 0), start=exp.Literal.number(1), length=seq_get(args, 1) -191 ), -192 "LOCATE": locate_to_strposition, -193 "STR_TO_DATE": _str_to_date, -194 } -195 -196 FUNCTION_PARSERS = { -197 **parser.Parser.FUNCTION_PARSERS, -198 "GROUP_CONCAT": lambda self: self.expression( -199 exp.GroupConcat, -200 this=self._parse_lambda(), -201 separator=self._match(TokenType.SEPARATOR) and self._parse_field(), -202 ), -203 } -204 -205 STATEMENT_PARSERS = { -206 **parser.Parser.STATEMENT_PARSERS, -207 TokenType.SHOW: lambda self: self._parse_show(), -208 } -209 -210 SHOW_PARSERS = { -211 "BINARY LOGS": _show_parser("BINARY LOGS"), -212 "MASTER LOGS": _show_parser("BINARY LOGS"), -213 "BINLOG EVENTS": _show_parser("BINLOG EVENTS"), -214 "CHARACTER SET": _show_parser("CHARACTER SET"), -215 "CHARSET": _show_parser("CHARACTER SET"), -216 "COLLATION": _show_parser("COLLATION"), -217 "FULL COLUMNS": _show_parser("COLUMNS", target="FROM", full=True), -218 "COLUMNS": _show_parser("COLUMNS", target="FROM"), -219 "CREATE DATABASE": _show_parser("CREATE DATABASE", target=True), -220 "CREATE EVENT": _show_parser("CREATE EVENT", target=True), -221 "CREATE FUNCTION": _show_parser("CREATE FUNCTION", target=True), -222 "CREATE PROCEDURE": _show_parser("CREATE PROCEDURE", target=True), -223 "CREATE TABLE": _show_parser("CREATE TABLE", target=True), -224 "CREATE TRIGGER": _show_parser("CREATE TRIGGER", target=True), -225 "CREATE VIEW": _show_parser("CREATE VIEW", target=True), -226 "DATABASES": _show_parser("DATABASES"), -227 "ENGINE": _show_parser("ENGINE", target=True), -228 "STORAGE ENGINES": _show_parser("ENGINES"), -229 "ENGINES": _show_parser("ENGINES"), -230 "ERRORS": _show_parser("ERRORS"), -231 "EVENTS": _show_parser("EVENTS"), -232 "FUNCTION CODE": _show_parser("FUNCTION CODE", target=True), -233 "FUNCTION STATUS": _show_parser("FUNCTION STATUS"), -234 "GRANTS": _show_parser("GRANTS", target="FOR"), -235 "INDEX": _show_parser("INDEX", target="FROM"), -236 "MASTER STATUS": _show_parser("MASTER STATUS"), -237 "OPEN TABLES": _show_parser("OPEN TABLES"), -238 "PLUGINS": _show_parser("PLUGINS"), -239 "PROCEDURE CODE": _show_parser("PROCEDURE CODE", target=True), -240 "PROCEDURE STATUS": _show_parser("PROCEDURE STATUS"), -241 "PRIVILEGES": _show_parser("PRIVILEGES"), -242 "FULL PROCESSLIST": _show_parser("PROCESSLIST", full=True), -243 "PROCESSLIST": _show_parser("PROCESSLIST"), -244 "PROFILE": _show_parser("PROFILE"), -245 "PROFILES": _show_parser("PROFILES"), -246 "RELAYLOG EVENTS": _show_parser("RELAYLOG EVENTS"), -247 "REPLICAS": _show_parser("REPLICAS"), -248 "SLAVE HOSTS": _show_parser("REPLICAS"), -249 "REPLICA STATUS": _show_parser("REPLICA STATUS"), -250 "SLAVE STATUS": _show_parser("REPLICA STATUS"), -251 "GLOBAL STATUS": _show_parser("STATUS", global_=True), -252 "SESSION STATUS": _show_parser("STATUS"), -253 "STATUS": _show_parser("STATUS"), -254 "TABLE STATUS": _show_parser("TABLE STATUS"), -255 "FULL TABLES": _show_parser("TABLES", full=True), -256 "TABLES": _show_parser("TABLES"), -257 "TRIGGERS": _show_parser("TRIGGERS"), -258 "GLOBAL VARIABLES": _show_parser("VARIABLES", global_=True), -259 "SESSION VARIABLES": _show_parser("VARIABLES"), -260 "VARIABLES": _show_parser("VARIABLES"), -261 "WARNINGS": _show_parser("WARNINGS"), -262 } -263 -264 SET_PARSERS = { -265 **parser.Parser.SET_PARSERS, -266 "PERSIST": lambda self: self._parse_set_item_assignment("PERSIST"), -267 "PERSIST_ONLY": lambda self: self._parse_set_item_assignment("PERSIST_ONLY"), -268 "CHARACTER SET": lambda self: self._parse_set_item_charset("CHARACTER SET"), -269 "CHARSET": lambda self: self._parse_set_item_charset("CHARACTER SET"), -270 "NAMES": lambda self: self._parse_set_item_names(), -271 } -272 -273 PROFILE_TYPES = { -274 "ALL", -275 "BLOCK IO", -276 "CONTEXT SWITCHES", -277 "CPU", -278 "IPC", -279 "MEMORY", -280 "PAGE FAULTS", -281 "SOURCE", -282 "SWAPS", -283 } -284 -285 LOG_DEFAULTS_TO_LN = True -286 -287 def _parse_show_mysql( -288 self, -289 this: str, -290 target: bool | str = False, -291 full: t.Optional[bool] = None, -292 global_: t.Optional[bool] = None, -293 ) -> exp.Show: -294 if target: -295 if isinstance(target, str): -296 self._match_text_seq(target) -297 target_id = self._parse_id_var() -298 else: -299 target_id = None -300 -301 log = self._parse_string() if self._match_text_seq("IN") else None -302 -303 if this in {"BINLOG EVENTS", "RELAYLOG EVENTS"}: -304 position = self._parse_number() if self._match_text_seq("FROM") else None +189 "LOCATE": locate_to_strposition, +190 "STR_TO_DATE": _str_to_date, +191 } +192 +193 FUNCTION_PARSERS = { +194 **parser.Parser.FUNCTION_PARSERS, +195 "GROUP_CONCAT": lambda self: self.expression( +196 exp.GroupConcat, +197 this=self._parse_lambda(), +198 separator=self._match(TokenType.SEPARATOR) and self._parse_field(), +199 ), +200 } +201 +202 STATEMENT_PARSERS = { +203 **parser.Parser.STATEMENT_PARSERS, +204 TokenType.SHOW: lambda self: self._parse_show(), +205 } +206 +207 SHOW_PARSERS = { +208 "BINARY LOGS": _show_parser("BINARY LOGS"), +209 "MASTER LOGS": _show_parser("BINARY LOGS"), +210 "BINLOG EVENTS": _show_parser("BINLOG EVENTS"), +211 "CHARACTER SET": _show_parser("CHARACTER SET"), +212 "CHARSET": _show_parser("CHARACTER SET"), +213 "COLLATION": _show_parser("COLLATION"), +214 "FULL COLUMNS": _show_parser("COLUMNS", target="FROM", full=True), +215 "COLUMNS": _show_parser("COLUMNS", target="FROM"), +216 "CREATE DATABASE": _show_parser("CREATE DATABASE", target=True), +217 "CREATE EVENT": _show_parser("CREATE EVENT", target=True), +218 "CREATE FUNCTION": _show_parser("CREATE FUNCTION", target=True), +219 "CREATE PROCEDURE": _show_parser("CREATE PROCEDURE", target=True), +220 "CREATE TABLE": _show_parser("CREATE TABLE", target=True), +221 "CREATE TRIGGER": _show_parser("CREATE TRIGGER", target=True), +222 "CREATE VIEW": _show_parser("CREATE VIEW", target=True), +223 "DATABASES": _show_parser("DATABASES"), +224 "ENGINE": _show_parser("ENGINE", target=True), +225 "STORAGE ENGINES": _show_parser("ENGINES"), +226 "ENGINES": _show_parser("ENGINES"), +227 "ERRORS": _show_parser("ERRORS"), +228 "EVENTS": _show_parser("EVENTS"), +229 "FUNCTION CODE": _show_parser("FUNCTION CODE", target=True), +230 "FUNCTION STATUS": _show_parser("FUNCTION STATUS"), +231 "GRANTS": _show_parser("GRANTS", target="FOR"), +232 "INDEX": _show_parser("INDEX", target="FROM"), +233 "MASTER STATUS": _show_parser("MASTER STATUS"), +234 "OPEN TABLES": _show_parser("OPEN TABLES"), +235 "PLUGINS": _show_parser("PLUGINS"), +236 "PROCEDURE CODE": _show_parser("PROCEDURE CODE", target=True), +237 "PROCEDURE STATUS": _show_parser("PROCEDURE STATUS"), +238 "PRIVILEGES": _show_parser("PRIVILEGES"), +239 "FULL PROCESSLIST": _show_parser("PROCESSLIST", full=True), +240 "PROCESSLIST": _show_parser("PROCESSLIST"), +241 "PROFILE": _show_parser("PROFILE"), +242 "PROFILES": _show_parser("PROFILES"), +243 "RELAYLOG EVENTS": _show_parser("RELAYLOG EVENTS"), +244 "REPLICAS": _show_parser("REPLICAS"), +245 "SLAVE HOSTS": _show_parser("REPLICAS"), +246 "REPLICA STATUS": _show_parser("REPLICA STATUS"), +247 "SLAVE STATUS": _show_parser("REPLICA STATUS"), +248 "GLOBAL STATUS": _show_parser("STATUS", global_=True), +249 "SESSION STATUS": _show_parser("STATUS"), +250 "STATUS": _show_parser("STATUS"), +251 "TABLE STATUS": _show_parser("TABLE STATUS"), +252 "FULL TABLES": _show_parser("TABLES", full=True), +253 "TABLES": _show_parser("TABLES"), +254 "TRIGGERS": _show_parser("TRIGGERS"), +255 "GLOBAL VARIABLES": _show_parser("VARIABLES", global_=True), +256 "SESSION VARIABLES": _show_parser("VARIABLES"), +257 "VARIABLES": _show_parser("VARIABLES"), +258 "WARNINGS": _show_parser("WARNINGS"), +259 } +260 +261 SET_PARSERS = { +262 **parser.Parser.SET_PARSERS, +263 "PERSIST": lambda self: self._parse_set_item_assignment("PERSIST"), +264 "PERSIST_ONLY": lambda self: self._parse_set_item_assignment("PERSIST_ONLY"), +265 "CHARACTER SET": lambda self: self._parse_set_item_charset("CHARACTER SET"), +266 "CHARSET": lambda self: self._parse_set_item_charset("CHARACTER SET"), +267 "NAMES": lambda self: self._parse_set_item_names(), +268 } +269 +270 PROFILE_TYPES = { +271 "ALL", +272 "BLOCK IO", +273 "CONTEXT SWITCHES", +274 "CPU", +275 "IPC", +276 "MEMORY", +277 "PAGE FAULTS", +278 "SOURCE", +279 "SWAPS", +280 } +281 +282 LOG_DEFAULTS_TO_LN = True +283 +284 def _parse_show_mysql( +285 self, +286 this: str, +287 target: bool | str = False, +288 full: t.Optional[bool] = None, +289 global_: t.Optional[bool] = None, +290 ) -> exp.Show: +291 if target: +292 if isinstance(target, str): +293 self._match_text_seq(target) +294 target_id = self._parse_id_var() +295 else: +296 target_id = None +297 +298 log = self._parse_string() if self._match_text_seq("IN") else None +299 +300 if this in {"BINLOG EVENTS", "RELAYLOG EVENTS"}: +301 position = self._parse_number() if self._match_text_seq("FROM") else None +302 db = None +303 else: +304 position = None 305 db = None -306 else: -307 position = None -308 db = None -309 -310 if self._match(TokenType.FROM): -311 db = self._parse_id_var() -312 elif self._match(TokenType.DOT): -313 db = target_id -314 target_id = self._parse_id_var() -315 -316 channel = self._parse_id_var() if self._match_text_seq("FOR", "CHANNEL") else None +306 +307 if self._match(TokenType.FROM): +308 db = self._parse_id_var() +309 elif self._match(TokenType.DOT): +310 db = target_id +311 target_id = self._parse_id_var() +312 +313 channel = self._parse_id_var() if self._match_text_seq("FOR", "CHANNEL") else None +314 +315 like = self._parse_string() if self._match_text_seq("LIKE") else None +316 where = self._parse_where() 317 -318 like = self._parse_string() if self._match_text_seq("LIKE") else None -319 where = self._parse_where() -320 -321 if this == "PROFILE": -322 types = self._parse_csv(lambda: self._parse_var_from_options(self.PROFILE_TYPES)) -323 query = self._parse_number() if self._match_text_seq("FOR", "QUERY") else None -324 offset = self._parse_number() if self._match_text_seq("OFFSET") else None -325 limit = self._parse_number() if self._match_text_seq("LIMIT") else None -326 else: -327 types, query = None, None -328 offset, limit = self._parse_oldstyle_limit() +318 if this == "PROFILE": +319 types = self._parse_csv(lambda: self._parse_var_from_options(self.PROFILE_TYPES)) +320 query = self._parse_number() if self._match_text_seq("FOR", "QUERY") else None +321 offset = self._parse_number() if self._match_text_seq("OFFSET") else None +322 limit = self._parse_number() if self._match_text_seq("LIMIT") else None +323 else: +324 types, query = None, None +325 offset, limit = self._parse_oldstyle_limit() +326 +327 mutex = True if self._match_text_seq("MUTEX") else None +328 mutex = False if self._match_text_seq("STATUS") else mutex 329 -330 mutex = True if self._match_text_seq("MUTEX") else None -331 mutex = False if self._match_text_seq("STATUS") else mutex -332 -333 return self.expression( -334 exp.Show, -335 this=this, -336 target=target_id, -337 full=full, -338 log=log, -339 position=position, -340 db=db, -341 channel=channel, -342 like=like, -343 where=where, -344 types=types, -345 query=query, -346 offset=offset, -347 limit=limit, -348 mutex=mutex, -349 **{"global": global_}, # type: ignore -350 ) -351 -352 def _parse_oldstyle_limit( -353 self, -354 ) -> t.Tuple[t.Optional[exp.Expression], t.Optional[exp.Expression]]: -355 limit = None -356 offset = None -357 if self._match_text_seq("LIMIT"): -358 parts = self._parse_csv(self._parse_number) -359 if len(parts) == 1: -360 limit = parts[0] -361 elif len(parts) == 2: -362 limit = parts[1] -363 offset = parts[0] -364 -365 return offset, limit -366 -367 def _parse_set_item_charset(self, kind: str) -> exp.Expression: -368 this = self._parse_string() or self._parse_id_var() -369 return self.expression(exp.SetItem, this=this, kind=kind) -370 -371 def _parse_set_item_names(self) -> exp.Expression: -372 charset = self._parse_string() or self._parse_id_var() -373 if self._match_text_seq("COLLATE"): -374 collate = self._parse_string() or self._parse_id_var() -375 else: -376 collate = None -377 -378 return self.expression( -379 exp.SetItem, -380 this=charset, -381 collate=collate, -382 kind="NAMES", -383 ) -384 -385 class Generator(generator.Generator): -386 LOCKING_READS_SUPPORTED = True -387 NULL_ORDERING_SUPPORTED = False -388 JOIN_HINTS = False -389 TABLE_HINTS = False -390 -391 TRANSFORMS = { -392 **generator.Generator.TRANSFORMS, -393 exp.CurrentDate: no_paren_current_date_sql, -394 exp.DateDiff: lambda self, e: self.func("DATEDIFF", e.this, e.expression), -395 exp.DateAdd: _date_add_sql("ADD"), -396 exp.DateStrToDate: datestrtodate_sql, -397 exp.DateSub: _date_add_sql("SUB"), -398 exp.DateTrunc: _date_trunc_sql, -399 exp.DayOfMonth: rename_func("DAYOFMONTH"), -400 exp.DayOfWeek: rename_func("DAYOFWEEK"), -401 exp.DayOfYear: rename_func("DAYOFYEAR"), -402 exp.GroupConcat: lambda self, e: f"""GROUP_CONCAT({self.sql(e, "this")} SEPARATOR {self.sql(e, "separator") or "','"})""", -403 exp.ILike: no_ilike_sql, -404 exp.JSONExtractScalar: arrow_json_extract_scalar_sql, -405 exp.Max: max_or_greatest, -406 exp.Min: min_or_least, -407 exp.NullSafeEQ: lambda self, e: self.binary(e, "<=>"), -408 exp.NullSafeNEQ: lambda self, e: self.not_sql(self.binary(e, "<=>")), -409 exp.Pivot: no_pivot_sql, -410 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), -411 exp.StrPosition: strposition_to_locate_sql, -412 exp.StrToDate: _str_to_date_sql, -413 exp.StrToTime: _str_to_date_sql, -414 exp.TableSample: no_tablesample_sql, -415 exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"), -416 exp.TimeToStr: lambda self, e: self.func("DATE_FORMAT", e.this, self.format_time(e)), -417 exp.Trim: _trim_sql, -418 exp.TryCast: no_trycast_sql, -419 exp.WeekOfYear: rename_func("WEEKOFYEAR"), -420 } -421 -422 TYPE_MAPPING = generator.Generator.TYPE_MAPPING.copy() -423 TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMTEXT) -424 TYPE_MAPPING.pop(exp.DataType.Type.LONGTEXT) -425 TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMBLOB) -426 TYPE_MAPPING.pop(exp.DataType.Type.LONGBLOB) -427 -428 PROPERTIES_LOCATION = { -429 **generator.Generator.PROPERTIES_LOCATION, -430 exp.TransientProperty: exp.Properties.Location.UNSUPPORTED, -431 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -432 } -433 -434 LIMIT_FETCH = "LIMIT" -435 -436 def show_sql(self, expression: exp.Show) -> str: -437 this = f" {expression.name}" -438 full = " FULL" if expression.args.get("full") else "" -439 global_ = " GLOBAL" if expression.args.get("global") else "" -440 -441 target = self.sql(expression, "target") -442 target = f" {target}" if target else "" -443 if expression.name in {"COLUMNS", "INDEX"}: -444 target = f" FROM{target}" -445 elif expression.name == "GRANTS": -446 target = f" FOR{target}" -447 -448 db = self._prefixed_sql("FROM", expression, "db") +330 return self.expression( +331 exp.Show, +332 this=this, +333 target=target_id, +334 full=full, +335 log=log, +336 position=position, +337 db=db, +338 channel=channel, +339 like=like, +340 where=where, +341 types=types, +342 query=query, +343 offset=offset, +344 limit=limit, +345 mutex=mutex, +346 **{"global": global_}, # type: ignore +347 ) +348 +349 def _parse_oldstyle_limit( +350 self, +351 ) -> t.Tuple[t.Optional[exp.Expression], t.Optional[exp.Expression]]: +352 limit = None +353 offset = None +354 if self._match_text_seq("LIMIT"): +355 parts = self._parse_csv(self._parse_number) +356 if len(parts) == 1: +357 limit = parts[0] +358 elif len(parts) == 2: +359 limit = parts[1] +360 offset = parts[0] +361 +362 return offset, limit +363 +364 def _parse_set_item_charset(self, kind: str) -> exp.Expression: +365 this = self._parse_string() or self._parse_id_var() +366 return self.expression(exp.SetItem, this=this, kind=kind) +367 +368 def _parse_set_item_names(self) -> exp.Expression: +369 charset = self._parse_string() or self._parse_id_var() +370 if self._match_text_seq("COLLATE"): +371 collate = self._parse_string() or self._parse_id_var() +372 else: +373 collate = None +374 +375 return self.expression( +376 exp.SetItem, +377 this=charset, +378 collate=collate, +379 kind="NAMES", +380 ) +381 +382 class Generator(generator.Generator): +383 LOCKING_READS_SUPPORTED = True +384 NULL_ORDERING_SUPPORTED = False +385 JOIN_HINTS = False +386 TABLE_HINTS = False +387 +388 TRANSFORMS = { +389 **generator.Generator.TRANSFORMS, +390 exp.CurrentDate: no_paren_current_date_sql, +391 exp.DateDiff: lambda self, e: self.func("DATEDIFF", e.this, e.expression), +392 exp.DateAdd: _date_add_sql("ADD"), +393 exp.DateStrToDate: datestrtodate_sql, +394 exp.DateSub: _date_add_sql("SUB"), +395 exp.DateTrunc: _date_trunc_sql, +396 exp.DayOfMonth: rename_func("DAYOFMONTH"), +397 exp.DayOfWeek: rename_func("DAYOFWEEK"), +398 exp.DayOfYear: rename_func("DAYOFYEAR"), +399 exp.GroupConcat: lambda self, e: f"""GROUP_CONCAT({self.sql(e, "this")} SEPARATOR {self.sql(e, "separator") or "','"})""", +400 exp.ILike: no_ilike_sql, +401 exp.JSONExtractScalar: arrow_json_extract_scalar_sql, +402 exp.Max: max_or_greatest, +403 exp.Min: min_or_least, +404 exp.NullSafeEQ: lambda self, e: self.binary(e, "<=>"), +405 exp.NullSafeNEQ: lambda self, e: self.not_sql(self.binary(e, "<=>")), +406 exp.Pivot: no_pivot_sql, +407 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), +408 exp.StrPosition: strposition_to_locate_sql, +409 exp.StrToDate: _str_to_date_sql, +410 exp.StrToTime: _str_to_date_sql, +411 exp.TableSample: no_tablesample_sql, +412 exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"), +413 exp.TimeToStr: lambda self, e: self.func("DATE_FORMAT", e.this, self.format_time(e)), +414 exp.Trim: _trim_sql, +415 exp.TryCast: no_trycast_sql, +416 exp.WeekOfYear: rename_func("WEEKOFYEAR"), +417 } +418 +419 TYPE_MAPPING = generator.Generator.TYPE_MAPPING.copy() +420 TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMTEXT) +421 TYPE_MAPPING.pop(exp.DataType.Type.LONGTEXT) +422 TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMBLOB) +423 TYPE_MAPPING.pop(exp.DataType.Type.LONGBLOB) +424 +425 PROPERTIES_LOCATION = { +426 **generator.Generator.PROPERTIES_LOCATION, +427 exp.TransientProperty: exp.Properties.Location.UNSUPPORTED, +428 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +429 } +430 +431 LIMIT_FETCH = "LIMIT" +432 +433 def show_sql(self, expression: exp.Show) -> str: +434 this = f" {expression.name}" +435 full = " FULL" if expression.args.get("full") else "" +436 global_ = " GLOBAL" if expression.args.get("global") else "" +437 +438 target = self.sql(expression, "target") +439 target = f" {target}" if target else "" +440 if expression.name in {"COLUMNS", "INDEX"}: +441 target = f" FROM{target}" +442 elif expression.name == "GRANTS": +443 target = f" FOR{target}" +444 +445 db = self._prefixed_sql("FROM", expression, "db") +446 +447 like = self._prefixed_sql("LIKE", expression, "like") +448 where = self.sql(expression, "where") 449 -450 like = self._prefixed_sql("LIKE", expression, "like") -451 where = self.sql(expression, "where") -452 -453 types = self.expressions(expression, key="types") -454 types = f" {types}" if types else types -455 query = self._prefixed_sql("FOR QUERY", expression, "query") -456 -457 if expression.name == "PROFILE": -458 offset = self._prefixed_sql("OFFSET", expression, "offset") -459 limit = self._prefixed_sql("LIMIT", expression, "limit") -460 else: -461 offset = "" -462 limit = self._oldstyle_limit_sql(expression) +450 types = self.expressions(expression, key="types") +451 types = f" {types}" if types else types +452 query = self._prefixed_sql("FOR QUERY", expression, "query") +453 +454 if expression.name == "PROFILE": +455 offset = self._prefixed_sql("OFFSET", expression, "offset") +456 limit = self._prefixed_sql("LIMIT", expression, "limit") +457 else: +458 offset = "" +459 limit = self._oldstyle_limit_sql(expression) +460 +461 log = self._prefixed_sql("IN", expression, "log") +462 position = self._prefixed_sql("FROM", expression, "position") 463 -464 log = self._prefixed_sql("IN", expression, "log") -465 position = self._prefixed_sql("FROM", expression, "position") -466 -467 channel = self._prefixed_sql("FOR CHANNEL", expression, "channel") -468 -469 if expression.name == "ENGINE": -470 mutex_or_status = " MUTEX" if expression.args.get("mutex") else " STATUS" -471 else: -472 mutex_or_status = "" -473 -474 return f"SHOW{full}{global_}{this}{target}{types}{db}{query}{log}{position}{channel}{mutex_or_status}{like}{where}{offset}{limit}" -475 -476 def _prefixed_sql(self, prefix: str, expression: exp.Expression, arg: str) -> str: -477 sql = self.sql(expression, arg) -478 if not sql: -479 return "" -480 return f" {prefix} {sql}" -481 -482 def _oldstyle_limit_sql(self, expression: exp.Show) -> str: -483 limit = self.sql(expression, "limit") -484 offset = self.sql(expression, "offset") -485 if limit: -486 limit_offset = f"{offset}, {limit}" if offset else limit -487 return f" LIMIT {limit_offset}" -488 return "" +464 channel = self._prefixed_sql("FOR CHANNEL", expression, "channel") +465 +466 if expression.name == "ENGINE": +467 mutex_or_status = " MUTEX" if expression.args.get("mutex") else " STATUS" +468 else: +469 mutex_or_status = "" +470 +471 return f"SHOW{full}{global_}{this}{target}{types}{db}{query}{log}{position}{channel}{mutex_or_status}{like}{where}{offset}{limit}" +472 +473 def _prefixed_sql(self, prefix: str, expression: exp.Expression, arg: str) -> str: +474 sql = self.sql(expression, arg) +475 if not sql: +476 return "" +477 return f" {prefix} {sql}" +478 +479 def _oldstyle_limit_sql(self, expression: exp.Show) -> str: +480 limit = self.sql(expression, "limit") +481 offset = self.sql(expression, "offset") +482 if limit: +483 limit_offset = f"{offset}, {limit}" if offset else limit +484 return f" LIMIT {limit_offset}" +485 return "" @@ -676,306 +673,303 @@ 187 "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "mysql"), 188 "DATE_SUB": parse_date_delta_with_interval(exp.DateSub), 189 "INSTR": lambda args: exp.StrPosition(substr=seq_get(args, 1), this=seq_get(args, 0)), -190 "LEFT": lambda args: exp.Substring( -191 this=seq_get(args, 0), start=exp.Literal.number(1), length=seq_get(args, 1) -192 ), -193 "LOCATE": locate_to_strposition, -194 "STR_TO_DATE": _str_to_date, -195 } -196 -197 FUNCTION_PARSERS = { -198 **parser.Parser.FUNCTION_PARSERS, -199 "GROUP_CONCAT": lambda self: self.expression( -200 exp.GroupConcat, -201 this=self._parse_lambda(), -202 separator=self._match(TokenType.SEPARATOR) and self._parse_field(), -203 ), -204 } -205 -206 STATEMENT_PARSERS = { -207 **parser.Parser.STATEMENT_PARSERS, -208 TokenType.SHOW: lambda self: self._parse_show(), -209 } -210 -211 SHOW_PARSERS = { -212 "BINARY LOGS": _show_parser("BINARY LOGS"), -213 "MASTER LOGS": _show_parser("BINARY LOGS"), -214 "BINLOG EVENTS": _show_parser("BINLOG EVENTS"), -215 "CHARACTER SET": _show_parser("CHARACTER SET"), -216 "CHARSET": _show_parser("CHARACTER SET"), -217 "COLLATION": _show_parser("COLLATION"), -218 "FULL COLUMNS": _show_parser("COLUMNS", target="FROM", full=True), -219 "COLUMNS": _show_parser("COLUMNS", target="FROM"), -220 "CREATE DATABASE": _show_parser("CREATE DATABASE", target=True), -221 "CREATE EVENT": _show_parser("CREATE EVENT", target=True), -222 "CREATE FUNCTION": _show_parser("CREATE FUNCTION", target=True), -223 "CREATE PROCEDURE": _show_parser("CREATE PROCEDURE", target=True), -224 "CREATE TABLE": _show_parser("CREATE TABLE", target=True), -225 "CREATE TRIGGER": _show_parser("CREATE TRIGGER", target=True), -226 "CREATE VIEW": _show_parser("CREATE VIEW", target=True), -227 "DATABASES": _show_parser("DATABASES"), -228 "ENGINE": _show_parser("ENGINE", target=True), -229 "STORAGE ENGINES": _show_parser("ENGINES"), -230 "ENGINES": _show_parser("ENGINES"), -231 "ERRORS": _show_parser("ERRORS"), -232 "EVENTS": _show_parser("EVENTS"), -233 "FUNCTION CODE": _show_parser("FUNCTION CODE", target=True), -234 "FUNCTION STATUS": _show_parser("FUNCTION STATUS"), -235 "GRANTS": _show_parser("GRANTS", target="FOR"), -236 "INDEX": _show_parser("INDEX", target="FROM"), -237 "MASTER STATUS": _show_parser("MASTER STATUS"), -238 "OPEN TABLES": _show_parser("OPEN TABLES"), -239 "PLUGINS": _show_parser("PLUGINS"), -240 "PROCEDURE CODE": _show_parser("PROCEDURE CODE", target=True), -241 "PROCEDURE STATUS": _show_parser("PROCEDURE STATUS"), -242 "PRIVILEGES": _show_parser("PRIVILEGES"), -243 "FULL PROCESSLIST": _show_parser("PROCESSLIST", full=True), -244 "PROCESSLIST": _show_parser("PROCESSLIST"), -245 "PROFILE": _show_parser("PROFILE"), -246 "PROFILES": _show_parser("PROFILES"), -247 "RELAYLOG EVENTS": _show_parser("RELAYLOG EVENTS"), -248 "REPLICAS": _show_parser("REPLICAS"), -249 "SLAVE HOSTS": _show_parser("REPLICAS"), -250 "REPLICA STATUS": _show_parser("REPLICA STATUS"), -251 "SLAVE STATUS": _show_parser("REPLICA STATUS"), -252 "GLOBAL STATUS": _show_parser("STATUS", global_=True), -253 "SESSION STATUS": _show_parser("STATUS"), -254 "STATUS": _show_parser("STATUS"), -255 "TABLE STATUS": _show_parser("TABLE STATUS"), -256 "FULL TABLES": _show_parser("TABLES", full=True), -257 "TABLES": _show_parser("TABLES"), -258 "TRIGGERS": _show_parser("TRIGGERS"), -259 "GLOBAL VARIABLES": _show_parser("VARIABLES", global_=True), -260 "SESSION VARIABLES": _show_parser("VARIABLES"), -261 "VARIABLES": _show_parser("VARIABLES"), -262 "WARNINGS": _show_parser("WARNINGS"), -263 } -264 -265 SET_PARSERS = { -266 **parser.Parser.SET_PARSERS, -267 "PERSIST": lambda self: self._parse_set_item_assignment("PERSIST"), -268 "PERSIST_ONLY": lambda self: self._parse_set_item_assignment("PERSIST_ONLY"), -269 "CHARACTER SET": lambda self: self._parse_set_item_charset("CHARACTER SET"), -270 "CHARSET": lambda self: self._parse_set_item_charset("CHARACTER SET"), -271 "NAMES": lambda self: self._parse_set_item_names(), -272 } -273 -274 PROFILE_TYPES = { -275 "ALL", -276 "BLOCK IO", -277 "CONTEXT SWITCHES", -278 "CPU", -279 "IPC", -280 "MEMORY", -281 "PAGE FAULTS", -282 "SOURCE", -283 "SWAPS", -284 } -285 -286 LOG_DEFAULTS_TO_LN = True -287 -288 def _parse_show_mysql( -289 self, -290 this: str, -291 target: bool | str = False, -292 full: t.Optional[bool] = None, -293 global_: t.Optional[bool] = None, -294 ) -> exp.Show: -295 if target: -296 if isinstance(target, str): -297 self._match_text_seq(target) -298 target_id = self._parse_id_var() -299 else: -300 target_id = None -301 -302 log = self._parse_string() if self._match_text_seq("IN") else None -303 -304 if this in {"BINLOG EVENTS", "RELAYLOG EVENTS"}: -305 position = self._parse_number() if self._match_text_seq("FROM") else None +190 "LOCATE": locate_to_strposition, +191 "STR_TO_DATE": _str_to_date, +192 } +193 +194 FUNCTION_PARSERS = { +195 **parser.Parser.FUNCTION_PARSERS, +196 "GROUP_CONCAT": lambda self: self.expression( +197 exp.GroupConcat, +198 this=self._parse_lambda(), +199 separator=self._match(TokenType.SEPARATOR) and self._parse_field(), +200 ), +201 } +202 +203 STATEMENT_PARSERS = { +204 **parser.Parser.STATEMENT_PARSERS, +205 TokenType.SHOW: lambda self: self._parse_show(), +206 } +207 +208 SHOW_PARSERS = { +209 "BINARY LOGS": _show_parser("BINARY LOGS"), +210 "MASTER LOGS": _show_parser("BINARY LOGS"), +211 "BINLOG EVENTS": _show_parser("BINLOG EVENTS"), +212 "CHARACTER SET": _show_parser("CHARACTER SET"), +213 "CHARSET": _show_parser("CHARACTER SET"), +214 "COLLATION": _show_parser("COLLATION"), +215 "FULL COLUMNS": _show_parser("COLUMNS", target="FROM", full=True), +216 "COLUMNS": _show_parser("COLUMNS", target="FROM"), +217 "CREATE DATABASE": _show_parser("CREATE DATABASE", target=True), +218 "CREATE EVENT": _show_parser("CREATE EVENT", target=True), +219 "CREATE FUNCTION": _show_parser("CREATE FUNCTION", target=True), +220 "CREATE PROCEDURE": _show_parser("CREATE PROCEDURE", target=True), +221 "CREATE TABLE": _show_parser("CREATE TABLE", target=True), +222 "CREATE TRIGGER": _show_parser("CREATE TRIGGER", target=True), +223 "CREATE VIEW": _show_parser("CREATE VIEW", target=True), +224 "DATABASES": _show_parser("DATABASES"), +225 "ENGINE": _show_parser("ENGINE", target=True), +226 "STORAGE ENGINES": _show_parser("ENGINES"), +227 "ENGINES": _show_parser("ENGINES"), +228 "ERRORS": _show_parser("ERRORS"), +229 "EVENTS": _show_parser("EVENTS"), +230 "FUNCTION CODE": _show_parser("FUNCTION CODE", target=True), +231 "FUNCTION STATUS": _show_parser("FUNCTION STATUS"), +232 "GRANTS": _show_parser("GRANTS", target="FOR"), +233 "INDEX": _show_parser("INDEX", target="FROM"), +234 "MASTER STATUS": _show_parser("MASTER STATUS"), +235 "OPEN TABLES": _show_parser("OPEN TABLES"), +236 "PLUGINS": _show_parser("PLUGINS"), +237 "PROCEDURE CODE": _show_parser("PROCEDURE CODE", target=True), +238 "PROCEDURE STATUS": _show_parser("PROCEDURE STATUS"), +239 "PRIVILEGES": _show_parser("PRIVILEGES"), +240 "FULL PROCESSLIST": _show_parser("PROCESSLIST", full=True), +241 "PROCESSLIST": _show_parser("PROCESSLIST"), +242 "PROFILE": _show_parser("PROFILE"), +243 "PROFILES": _show_parser("PROFILES"), +244 "RELAYLOG EVENTS": _show_parser("RELAYLOG EVENTS"), +245 "REPLICAS": _show_parser("REPLICAS"), +246 "SLAVE HOSTS": _show_parser("REPLICAS"), +247 "REPLICA STATUS": _show_parser("REPLICA STATUS"), +248 "SLAVE STATUS": _show_parser("REPLICA STATUS"), +249 "GLOBAL STATUS": _show_parser("STATUS", global_=True), +250 "SESSION STATUS": _show_parser("STATUS"), +251 "STATUS": _show_parser("STATUS"), +252 "TABLE STATUS": _show_parser("TABLE STATUS"), +253 "FULL TABLES": _show_parser("TABLES", full=True), +254 "TABLES": _show_parser("TABLES"), +255 "TRIGGERS": _show_parser("TRIGGERS"), +256 "GLOBAL VARIABLES": _show_parser("VARIABLES", global_=True), +257 "SESSION VARIABLES": _show_parser("VARIABLES"), +258 "VARIABLES": _show_parser("VARIABLES"), +259 "WARNINGS": _show_parser("WARNINGS"), +260 } +261 +262 SET_PARSERS = { +263 **parser.Parser.SET_PARSERS, +264 "PERSIST": lambda self: self._parse_set_item_assignment("PERSIST"), +265 "PERSIST_ONLY": lambda self: self._parse_set_item_assignment("PERSIST_ONLY"), +266 "CHARACTER SET": lambda self: self._parse_set_item_charset("CHARACTER SET"), +267 "CHARSET": lambda self: self._parse_set_item_charset("CHARACTER SET"), +268 "NAMES": lambda self: self._parse_set_item_names(), +269 } +270 +271 PROFILE_TYPES = { +272 "ALL", +273 "BLOCK IO", +274 "CONTEXT SWITCHES", +275 "CPU", +276 "IPC", +277 "MEMORY", +278 "PAGE FAULTS", +279 "SOURCE", +280 "SWAPS", +281 } +282 +283 LOG_DEFAULTS_TO_LN = True +284 +285 def _parse_show_mysql( +286 self, +287 this: str, +288 target: bool | str = False, +289 full: t.Optional[bool] = None, +290 global_: t.Optional[bool] = None, +291 ) -> exp.Show: +292 if target: +293 if isinstance(target, str): +294 self._match_text_seq(target) +295 target_id = self._parse_id_var() +296 else: +297 target_id = None +298 +299 log = self._parse_string() if self._match_text_seq("IN") else None +300 +301 if this in {"BINLOG EVENTS", "RELAYLOG EVENTS"}: +302 position = self._parse_number() if self._match_text_seq("FROM") else None +303 db = None +304 else: +305 position = None 306 db = None -307 else: -308 position = None -309 db = None -310 -311 if self._match(TokenType.FROM): -312 db = self._parse_id_var() -313 elif self._match(TokenType.DOT): -314 db = target_id -315 target_id = self._parse_id_var() -316 -317 channel = self._parse_id_var() if self._match_text_seq("FOR", "CHANNEL") else None +307 +308 if self._match(TokenType.FROM): +309 db = self._parse_id_var() +310 elif self._match(TokenType.DOT): +311 db = target_id +312 target_id = self._parse_id_var() +313 +314 channel = self._parse_id_var() if self._match_text_seq("FOR", "CHANNEL") else None +315 +316 like = self._parse_string() if self._match_text_seq("LIKE") else None +317 where = self._parse_where() 318 -319 like = self._parse_string() if self._match_text_seq("LIKE") else None -320 where = self._parse_where() -321 -322 if this == "PROFILE": -323 types = self._parse_csv(lambda: self._parse_var_from_options(self.PROFILE_TYPES)) -324 query = self._parse_number() if self._match_text_seq("FOR", "QUERY") else None -325 offset = self._parse_number() if self._match_text_seq("OFFSET") else None -326 limit = self._parse_number() if self._match_text_seq("LIMIT") else None -327 else: -328 types, query = None, None -329 offset, limit = self._parse_oldstyle_limit() +319 if this == "PROFILE": +320 types = self._parse_csv(lambda: self._parse_var_from_options(self.PROFILE_TYPES)) +321 query = self._parse_number() if self._match_text_seq("FOR", "QUERY") else None +322 offset = self._parse_number() if self._match_text_seq("OFFSET") else None +323 limit = self._parse_number() if self._match_text_seq("LIMIT") else None +324 else: +325 types, query = None, None +326 offset, limit = self._parse_oldstyle_limit() +327 +328 mutex = True if self._match_text_seq("MUTEX") else None +329 mutex = False if self._match_text_seq("STATUS") else mutex 330 -331 mutex = True if self._match_text_seq("MUTEX") else None -332 mutex = False if self._match_text_seq("STATUS") else mutex -333 -334 return self.expression( -335 exp.Show, -336 this=this, -337 target=target_id, -338 full=full, -339 log=log, -340 position=position, -341 db=db, -342 channel=channel, -343 like=like, -344 where=where, -345 types=types, -346 query=query, -347 offset=offset, -348 limit=limit, -349 mutex=mutex, -350 **{"global": global_}, # type: ignore -351 ) -352 -353 def _parse_oldstyle_limit( -354 self, -355 ) -> t.Tuple[t.Optional[exp.Expression], t.Optional[exp.Expression]]: -356 limit = None -357 offset = None -358 if self._match_text_seq("LIMIT"): -359 parts = self._parse_csv(self._parse_number) -360 if len(parts) == 1: -361 limit = parts[0] -362 elif len(parts) == 2: -363 limit = parts[1] -364 offset = parts[0] -365 -366 return offset, limit -367 -368 def _parse_set_item_charset(self, kind: str) -> exp.Expression: -369 this = self._parse_string() or self._parse_id_var() -370 return self.expression(exp.SetItem, this=this, kind=kind) -371 -372 def _parse_set_item_names(self) -> exp.Expression: -373 charset = self._parse_string() or self._parse_id_var() -374 if self._match_text_seq("COLLATE"): -375 collate = self._parse_string() or self._parse_id_var() -376 else: -377 collate = None -378 -379 return self.expression( -380 exp.SetItem, -381 this=charset, -382 collate=collate, -383 kind="NAMES", -384 ) -385 -386 class Generator(generator.Generator): -387 LOCKING_READS_SUPPORTED = True -388 NULL_ORDERING_SUPPORTED = False -389 JOIN_HINTS = False -390 TABLE_HINTS = False -391 -392 TRANSFORMS = { -393 **generator.Generator.TRANSFORMS, -394 exp.CurrentDate: no_paren_current_date_sql, -395 exp.DateDiff: lambda self, e: self.func("DATEDIFF", e.this, e.expression), -396 exp.DateAdd: _date_add_sql("ADD"), -397 exp.DateStrToDate: datestrtodate_sql, -398 exp.DateSub: _date_add_sql("SUB"), -399 exp.DateTrunc: _date_trunc_sql, -400 exp.DayOfMonth: rename_func("DAYOFMONTH"), -401 exp.DayOfWeek: rename_func("DAYOFWEEK"), -402 exp.DayOfYear: rename_func("DAYOFYEAR"), -403 exp.GroupConcat: lambda self, e: f"""GROUP_CONCAT({self.sql(e, "this")} SEPARATOR {self.sql(e, "separator") or "','"})""", -404 exp.ILike: no_ilike_sql, -405 exp.JSONExtractScalar: arrow_json_extract_scalar_sql, -406 exp.Max: max_or_greatest, -407 exp.Min: min_or_least, -408 exp.NullSafeEQ: lambda self, e: self.binary(e, "<=>"), -409 exp.NullSafeNEQ: lambda self, e: self.not_sql(self.binary(e, "<=>")), -410 exp.Pivot: no_pivot_sql, -411 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), -412 exp.StrPosition: strposition_to_locate_sql, -413 exp.StrToDate: _str_to_date_sql, -414 exp.StrToTime: _str_to_date_sql, -415 exp.TableSample: no_tablesample_sql, -416 exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"), -417 exp.TimeToStr: lambda self, e: self.func("DATE_FORMAT", e.this, self.format_time(e)), -418 exp.Trim: _trim_sql, -419 exp.TryCast: no_trycast_sql, -420 exp.WeekOfYear: rename_func("WEEKOFYEAR"), -421 } -422 -423 TYPE_MAPPING = generator.Generator.TYPE_MAPPING.copy() -424 TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMTEXT) -425 TYPE_MAPPING.pop(exp.DataType.Type.LONGTEXT) -426 TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMBLOB) -427 TYPE_MAPPING.pop(exp.DataType.Type.LONGBLOB) -428 -429 PROPERTIES_LOCATION = { -430 **generator.Generator.PROPERTIES_LOCATION, -431 exp.TransientProperty: exp.Properties.Location.UNSUPPORTED, -432 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -433 } -434 -435 LIMIT_FETCH = "LIMIT" -436 -437 def show_sql(self, expression: exp.Show) -> str: -438 this = f" {expression.name}" -439 full = " FULL" if expression.args.get("full") else "" -440 global_ = " GLOBAL" if expression.args.get("global") else "" -441 -442 target = self.sql(expression, "target") -443 target = f" {target}" if target else "" -444 if expression.name in {"COLUMNS", "INDEX"}: -445 target = f" FROM{target}" -446 elif expression.name == "GRANTS": -447 target = f" FOR{target}" -448 -449 db = self._prefixed_sql("FROM", expression, "db") +331 return self.expression( +332 exp.Show, +333 this=this, +334 target=target_id, +335 full=full, +336 log=log, +337 position=position, +338 db=db, +339 channel=channel, +340 like=like, +341 where=where, +342 types=types, +343 query=query, +344 offset=offset, +345 limit=limit, +346 mutex=mutex, +347 **{"global": global_}, # type: ignore +348 ) +349 +350 def _parse_oldstyle_limit( +351 self, +352 ) -> t.Tuple[t.Optional[exp.Expression], t.Optional[exp.Expression]]: +353 limit = None +354 offset = None +355 if self._match_text_seq("LIMIT"): +356 parts = self._parse_csv(self._parse_number) +357 if len(parts) == 1: +358 limit = parts[0] +359 elif len(parts) == 2: +360 limit = parts[1] +361 offset = parts[0] +362 +363 return offset, limit +364 +365 def _parse_set_item_charset(self, kind: str) -> exp.Expression: +366 this = self._parse_string() or self._parse_id_var() +367 return self.expression(exp.SetItem, this=this, kind=kind) +368 +369 def _parse_set_item_names(self) -> exp.Expression: +370 charset = self._parse_string() or self._parse_id_var() +371 if self._match_text_seq("COLLATE"): +372 collate = self._parse_string() or self._parse_id_var() +373 else: +374 collate = None +375 +376 return self.expression( +377 exp.SetItem, +378 this=charset, +379 collate=collate, +380 kind="NAMES", +381 ) +382 +383 class Generator(generator.Generator): +384 LOCKING_READS_SUPPORTED = True +385 NULL_ORDERING_SUPPORTED = False +386 JOIN_HINTS = False +387 TABLE_HINTS = False +388 +389 TRANSFORMS = { +390 **generator.Generator.TRANSFORMS, +391 exp.CurrentDate: no_paren_current_date_sql, +392 exp.DateDiff: lambda self, e: self.func("DATEDIFF", e.this, e.expression), +393 exp.DateAdd: _date_add_sql("ADD"), +394 exp.DateStrToDate: datestrtodate_sql, +395 exp.DateSub: _date_add_sql("SUB"), +396 exp.DateTrunc: _date_trunc_sql, +397 exp.DayOfMonth: rename_func("DAYOFMONTH"), +398 exp.DayOfWeek: rename_func("DAYOFWEEK"), +399 exp.DayOfYear: rename_func("DAYOFYEAR"), +400 exp.GroupConcat: lambda self, e: f"""GROUP_CONCAT({self.sql(e, "this")} SEPARATOR {self.sql(e, "separator") or "','"})""", +401 exp.ILike: no_ilike_sql, +402 exp.JSONExtractScalar: arrow_json_extract_scalar_sql, +403 exp.Max: max_or_greatest, +404 exp.Min: min_or_least, +405 exp.NullSafeEQ: lambda self, e: self.binary(e, "<=>"), +406 exp.NullSafeNEQ: lambda self, e: self.not_sql(self.binary(e, "<=>")), +407 exp.Pivot: no_pivot_sql, +408 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), +409 exp.StrPosition: strposition_to_locate_sql, +410 exp.StrToDate: _str_to_date_sql, +411 exp.StrToTime: _str_to_date_sql, +412 exp.TableSample: no_tablesample_sql, +413 exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"), +414 exp.TimeToStr: lambda self, e: self.func("DATE_FORMAT", e.this, self.format_time(e)), +415 exp.Trim: _trim_sql, +416 exp.TryCast: no_trycast_sql, +417 exp.WeekOfYear: rename_func("WEEKOFYEAR"), +418 } +419 +420 TYPE_MAPPING = generator.Generator.TYPE_MAPPING.copy() +421 TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMTEXT) +422 TYPE_MAPPING.pop(exp.DataType.Type.LONGTEXT) +423 TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMBLOB) +424 TYPE_MAPPING.pop(exp.DataType.Type.LONGBLOB) +425 +426 PROPERTIES_LOCATION = { +427 **generator.Generator.PROPERTIES_LOCATION, +428 exp.TransientProperty: exp.Properties.Location.UNSUPPORTED, +429 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +430 } +431 +432 LIMIT_FETCH = "LIMIT" +433 +434 def show_sql(self, expression: exp.Show) -> str: +435 this = f" {expression.name}" +436 full = " FULL" if expression.args.get("full") else "" +437 global_ = " GLOBAL" if expression.args.get("global") else "" +438 +439 target = self.sql(expression, "target") +440 target = f" {target}" if target else "" +441 if expression.name in {"COLUMNS", "INDEX"}: +442 target = f" FROM{target}" +443 elif expression.name == "GRANTS": +444 target = f" FOR{target}" +445 +446 db = self._prefixed_sql("FROM", expression, "db") +447 +448 like = self._prefixed_sql("LIKE", expression, "like") +449 where = self.sql(expression, "where") 450 -451 like = self._prefixed_sql("LIKE", expression, "like") -452 where = self.sql(expression, "where") -453 -454 types = self.expressions(expression, key="types") -455 types = f" {types}" if types else types -456 query = self._prefixed_sql("FOR QUERY", expression, "query") -457 -458 if expression.name == "PROFILE": -459 offset = self._prefixed_sql("OFFSET", expression, "offset") -460 limit = self._prefixed_sql("LIMIT", expression, "limit") -461 else: -462 offset = "" -463 limit = self._oldstyle_limit_sql(expression) +451 types = self.expressions(expression, key="types") +452 types = f" {types}" if types else types +453 query = self._prefixed_sql("FOR QUERY", expression, "query") +454 +455 if expression.name == "PROFILE": +456 offset = self._prefixed_sql("OFFSET", expression, "offset") +457 limit = self._prefixed_sql("LIMIT", expression, "limit") +458 else: +459 offset = "" +460 limit = self._oldstyle_limit_sql(expression) +461 +462 log = self._prefixed_sql("IN", expression, "log") +463 position = self._prefixed_sql("FROM", expression, "position") 464 -465 log = self._prefixed_sql("IN", expression, "log") -466 position = self._prefixed_sql("FROM", expression, "position") -467 -468 channel = self._prefixed_sql("FOR CHANNEL", expression, "channel") -469 -470 if expression.name == "ENGINE": -471 mutex_or_status = " MUTEX" if expression.args.get("mutex") else " STATUS" -472 else: -473 mutex_or_status = "" -474 -475 return f"SHOW{full}{global_}{this}{target}{types}{db}{query}{log}{position}{channel}{mutex_or_status}{like}{where}{offset}{limit}" -476 -477 def _prefixed_sql(self, prefix: str, expression: exp.Expression, arg: str) -> str: -478 sql = self.sql(expression, arg) -479 if not sql: -480 return "" -481 return f" {prefix} {sql}" -482 -483 def _oldstyle_limit_sql(self, expression: exp.Show) -> str: -484 limit = self.sql(expression, "limit") -485 offset = self.sql(expression, "offset") -486 if limit: -487 limit_offset = f"{offset}, {limit}" if offset else limit -488 return f" LIMIT {limit_offset}" -489 return "" +465 channel = self._prefixed_sql("FOR CHANNEL", expression, "channel") +466 +467 if expression.name == "ENGINE": +468 mutex_or_status = " MUTEX" if expression.args.get("mutex") else " STATUS" +469 else: +470 mutex_or_status = "" +471 +472 return f"SHOW{full}{global_}{this}{target}{types}{db}{query}{log}{position}{channel}{mutex_or_status}{like}{where}{offset}{limit}" +473 +474 def _prefixed_sql(self, prefix: str, expression: exp.Expression, arg: str) -> str: +475 sql = self.sql(expression, arg) +476 if not sql: +477 return "" +478 return f" {prefix} {sql}" +479 +480 def _oldstyle_limit_sql(self, expression: exp.Show) -> str: +481 limit = self.sql(expression, "limit") +482 offset = self.sql(expression, "offset") +483 if limit: +484 limit_offset = f"{offset}, {limit}" if offset else limit +485 return f" LIMIT {limit_offset}" +486 return "" @@ -1110,201 +1104,198 @@ 187 "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "mysql"), 188 "DATE_SUB": parse_date_delta_with_interval(exp.DateSub), 189 "INSTR": lambda args: exp.StrPosition(substr=seq_get(args, 1), this=seq_get(args, 0)), -190 "LEFT": lambda args: exp.Substring( -191 this=seq_get(args, 0), start=exp.Literal.number(1), length=seq_get(args, 1) -192 ), -193 "LOCATE": locate_to_strposition, -194 "STR_TO_DATE": _str_to_date, -195 } -196 -197 FUNCTION_PARSERS = { -198 **parser.Parser.FUNCTION_PARSERS, -199 "GROUP_CONCAT": lambda self: self.expression( -200 exp.GroupConcat, -201 this=self._parse_lambda(), -202 separator=self._match(TokenType.SEPARATOR) and self._parse_field(), -203 ), -204 } -205 -206 STATEMENT_PARSERS = { -207 **parser.Parser.STATEMENT_PARSERS, -208 TokenType.SHOW: lambda self: self._parse_show(), -209 } -210 -211 SHOW_PARSERS = { -212 "BINARY LOGS": _show_parser("BINARY LOGS"), -213 "MASTER LOGS": _show_parser("BINARY LOGS"), -214 "BINLOG EVENTS": _show_parser("BINLOG EVENTS"), -215 "CHARACTER SET": _show_parser("CHARACTER SET"), -216 "CHARSET": _show_parser("CHARACTER SET"), -217 "COLLATION": _show_parser("COLLATION"), -218 "FULL COLUMNS": _show_parser("COLUMNS", target="FROM", full=True), -219 "COLUMNS": _show_parser("COLUMNS", target="FROM"), -220 "CREATE DATABASE": _show_parser("CREATE DATABASE", target=True), -221 "CREATE EVENT": _show_parser("CREATE EVENT", target=True), -222 "CREATE FUNCTION": _show_parser("CREATE FUNCTION", target=True), -223 "CREATE PROCEDURE": _show_parser("CREATE PROCEDURE", target=True), -224 "CREATE TABLE": _show_parser("CREATE TABLE", target=True), -225 "CREATE TRIGGER": _show_parser("CREATE TRIGGER", target=True), -226 "CREATE VIEW": _show_parser("CREATE VIEW", target=True), -227 "DATABASES": _show_parser("DATABASES"), -228 "ENGINE": _show_parser("ENGINE", target=True), -229 "STORAGE ENGINES": _show_parser("ENGINES"), -230 "ENGINES": _show_parser("ENGINES"), -231 "ERRORS": _show_parser("ERRORS"), -232 "EVENTS": _show_parser("EVENTS"), -233 "FUNCTION CODE": _show_parser("FUNCTION CODE", target=True), -234 "FUNCTION STATUS": _show_parser("FUNCTION STATUS"), -235 "GRANTS": _show_parser("GRANTS", target="FOR"), -236 "INDEX": _show_parser("INDEX", target="FROM"), -237 "MASTER STATUS": _show_parser("MASTER STATUS"), -238 "OPEN TABLES": _show_parser("OPEN TABLES"), -239 "PLUGINS": _show_parser("PLUGINS"), -240 "PROCEDURE CODE": _show_parser("PROCEDURE CODE", target=True), -241 "PROCEDURE STATUS": _show_parser("PROCEDURE STATUS"), -242 "PRIVILEGES": _show_parser("PRIVILEGES"), -243 "FULL PROCESSLIST": _show_parser("PROCESSLIST", full=True), -244 "PROCESSLIST": _show_parser("PROCESSLIST"), -245 "PROFILE": _show_parser("PROFILE"), -246 "PROFILES": _show_parser("PROFILES"), -247 "RELAYLOG EVENTS": _show_parser("RELAYLOG EVENTS"), -248 "REPLICAS": _show_parser("REPLICAS"), -249 "SLAVE HOSTS": _show_parser("REPLICAS"), -250 "REPLICA STATUS": _show_parser("REPLICA STATUS"), -251 "SLAVE STATUS": _show_parser("REPLICA STATUS"), -252 "GLOBAL STATUS": _show_parser("STATUS", global_=True), -253 "SESSION STATUS": _show_parser("STATUS"), -254 "STATUS": _show_parser("STATUS"), -255 "TABLE STATUS": _show_parser("TABLE STATUS"), -256 "FULL TABLES": _show_parser("TABLES", full=True), -257 "TABLES": _show_parser("TABLES"), -258 "TRIGGERS": _show_parser("TRIGGERS"), -259 "GLOBAL VARIABLES": _show_parser("VARIABLES", global_=True), -260 "SESSION VARIABLES": _show_parser("VARIABLES"), -261 "VARIABLES": _show_parser("VARIABLES"), -262 "WARNINGS": _show_parser("WARNINGS"), -263 } -264 -265 SET_PARSERS = { -266 **parser.Parser.SET_PARSERS, -267 "PERSIST": lambda self: self._parse_set_item_assignment("PERSIST"), -268 "PERSIST_ONLY": lambda self: self._parse_set_item_assignment("PERSIST_ONLY"), -269 "CHARACTER SET": lambda self: self._parse_set_item_charset("CHARACTER SET"), -270 "CHARSET": lambda self: self._parse_set_item_charset("CHARACTER SET"), -271 "NAMES": lambda self: self._parse_set_item_names(), -272 } -273 -274 PROFILE_TYPES = { -275 "ALL", -276 "BLOCK IO", -277 "CONTEXT SWITCHES", -278 "CPU", -279 "IPC", -280 "MEMORY", -281 "PAGE FAULTS", -282 "SOURCE", -283 "SWAPS", -284 } -285 -286 LOG_DEFAULTS_TO_LN = True -287 -288 def _parse_show_mysql( -289 self, -290 this: str, -291 target: bool | str = False, -292 full: t.Optional[bool] = None, -293 global_: t.Optional[bool] = None, -294 ) -> exp.Show: -295 if target: -296 if isinstance(target, str): -297 self._match_text_seq(target) -298 target_id = self._parse_id_var() -299 else: -300 target_id = None -301 -302 log = self._parse_string() if self._match_text_seq("IN") else None -303 -304 if this in {"BINLOG EVENTS", "RELAYLOG EVENTS"}: -305 position = self._parse_number() if self._match_text_seq("FROM") else None +190 "LOCATE": locate_to_strposition, +191 "STR_TO_DATE": _str_to_date, +192 } +193 +194 FUNCTION_PARSERS = { +195 **parser.Parser.FUNCTION_PARSERS, +196 "GROUP_CONCAT": lambda self: self.expression( +197 exp.GroupConcat, +198 this=self._parse_lambda(), +199 separator=self._match(TokenType.SEPARATOR) and self._parse_field(), +200 ), +201 } +202 +203 STATEMENT_PARSERS = { +204 **parser.Parser.STATEMENT_PARSERS, +205 TokenType.SHOW: lambda self: self._parse_show(), +206 } +207 +208 SHOW_PARSERS = { +209 "BINARY LOGS": _show_parser("BINARY LOGS"), +210 "MASTER LOGS": _show_parser("BINARY LOGS"), +211 "BINLOG EVENTS": _show_parser("BINLOG EVENTS"), +212 "CHARACTER SET": _show_parser("CHARACTER SET"), +213 "CHARSET": _show_parser("CHARACTER SET"), +214 "COLLATION": _show_parser("COLLATION"), +215 "FULL COLUMNS": _show_parser("COLUMNS", target="FROM", full=True), +216 "COLUMNS": _show_parser("COLUMNS", target="FROM"), +217 "CREATE DATABASE": _show_parser("CREATE DATABASE", target=True), +218 "CREATE EVENT": _show_parser("CREATE EVENT", target=True), +219 "CREATE FUNCTION": _show_parser("CREATE FUNCTION", target=True), +220 "CREATE PROCEDURE": _show_parser("CREATE PROCEDURE", target=True), +221 "CREATE TABLE": _show_parser("CREATE TABLE", target=True), +222 "CREATE TRIGGER": _show_parser("CREATE TRIGGER", target=True), +223 "CREATE VIEW": _show_parser("CREATE VIEW", target=True), +224 "DATABASES": _show_parser("DATABASES"), +225 "ENGINE": _show_parser("ENGINE", target=True), +226 "STORAGE ENGINES": _show_parser("ENGINES"), +227 "ENGINES": _show_parser("ENGINES"), +228 "ERRORS": _show_parser("ERRORS"), +229 "EVENTS": _show_parser("EVENTS"), +230 "FUNCTION CODE": _show_parser("FUNCTION CODE", target=True), +231 "FUNCTION STATUS": _show_parser("FUNCTION STATUS"), +232 "GRANTS": _show_parser("GRANTS", target="FOR"), +233 "INDEX": _show_parser("INDEX", target="FROM"), +234 "MASTER STATUS": _show_parser("MASTER STATUS"), +235 "OPEN TABLES": _show_parser("OPEN TABLES"), +236 "PLUGINS": _show_parser("PLUGINS"), +237 "PROCEDURE CODE": _show_parser("PROCEDURE CODE", target=True), +238 "PROCEDURE STATUS": _show_parser("PROCEDURE STATUS"), +239 "PRIVILEGES": _show_parser("PRIVILEGES"), +240 "FULL PROCESSLIST": _show_parser("PROCESSLIST", full=True), +241 "PROCESSLIST": _show_parser("PROCESSLIST"), +242 "PROFILE": _show_parser("PROFILE"), +243 "PROFILES": _show_parser("PROFILES"), +244 "RELAYLOG EVENTS": _show_parser("RELAYLOG EVENTS"), +245 "REPLICAS": _show_parser("REPLICAS"), +246 "SLAVE HOSTS": _show_parser("REPLICAS"), +247 "REPLICA STATUS": _show_parser("REPLICA STATUS"), +248 "SLAVE STATUS": _show_parser("REPLICA STATUS"), +249 "GLOBAL STATUS": _show_parser("STATUS", global_=True), +250 "SESSION STATUS": _show_parser("STATUS"), +251 "STATUS": _show_parser("STATUS"), +252 "TABLE STATUS": _show_parser("TABLE STATUS"), +253 "FULL TABLES": _show_parser("TABLES", full=True), +254 "TABLES": _show_parser("TABLES"), +255 "TRIGGERS": _show_parser("TRIGGERS"), +256 "GLOBAL VARIABLES": _show_parser("VARIABLES", global_=True), +257 "SESSION VARIABLES": _show_parser("VARIABLES"), +258 "VARIABLES": _show_parser("VARIABLES"), +259 "WARNINGS": _show_parser("WARNINGS"), +260 } +261 +262 SET_PARSERS = { +263 **parser.Parser.SET_PARSERS, +264 "PERSIST": lambda self: self._parse_set_item_assignment("PERSIST"), +265 "PERSIST_ONLY": lambda self: self._parse_set_item_assignment("PERSIST_ONLY"), +266 "CHARACTER SET": lambda self: self._parse_set_item_charset("CHARACTER SET"), +267 "CHARSET": lambda self: self._parse_set_item_charset("CHARACTER SET"), +268 "NAMES": lambda self: self._parse_set_item_names(), +269 } +270 +271 PROFILE_TYPES = { +272 "ALL", +273 "BLOCK IO", +274 "CONTEXT SWITCHES", +275 "CPU", +276 "IPC", +277 "MEMORY", +278 "PAGE FAULTS", +279 "SOURCE", +280 "SWAPS", +281 } +282 +283 LOG_DEFAULTS_TO_LN = True +284 +285 def _parse_show_mysql( +286 self, +287 this: str, +288 target: bool | str = False, +289 full: t.Optional[bool] = None, +290 global_: t.Optional[bool] = None, +291 ) -> exp.Show: +292 if target: +293 if isinstance(target, str): +294 self._match_text_seq(target) +295 target_id = self._parse_id_var() +296 else: +297 target_id = None +298 +299 log = self._parse_string() if self._match_text_seq("IN") else None +300 +301 if this in {"BINLOG EVENTS", "RELAYLOG EVENTS"}: +302 position = self._parse_number() if self._match_text_seq("FROM") else None +303 db = None +304 else: +305 position = None 306 db = None -307 else: -308 position = None -309 db = None -310 -311 if self._match(TokenType.FROM): -312 db = self._parse_id_var() -313 elif self._match(TokenType.DOT): -314 db = target_id -315 target_id = self._parse_id_var() -316 -317 channel = self._parse_id_var() if self._match_text_seq("FOR", "CHANNEL") else None +307 +308 if self._match(TokenType.FROM): +309 db = self._parse_id_var() +310 elif self._match(TokenType.DOT): +311 db = target_id +312 target_id = self._parse_id_var() +313 +314 channel = self._parse_id_var() if self._match_text_seq("FOR", "CHANNEL") else None +315 +316 like = self._parse_string() if self._match_text_seq("LIKE") else None +317 where = self._parse_where() 318 -319 like = self._parse_string() if self._match_text_seq("LIKE") else None -320 where = self._parse_where() -321 -322 if this == "PROFILE": -323 types = self._parse_csv(lambda: self._parse_var_from_options(self.PROFILE_TYPES)) -324 query = self._parse_number() if self._match_text_seq("FOR", "QUERY") else None -325 offset = self._parse_number() if self._match_text_seq("OFFSET") else None -326 limit = self._parse_number() if self._match_text_seq("LIMIT") else None -327 else: -328 types, query = None, None -329 offset, limit = self._parse_oldstyle_limit() +319 if this == "PROFILE": +320 types = self._parse_csv(lambda: self._parse_var_from_options(self.PROFILE_TYPES)) +321 query = self._parse_number() if self._match_text_seq("FOR", "QUERY") else None +322 offset = self._parse_number() if self._match_text_seq("OFFSET") else None +323 limit = self._parse_number() if self._match_text_seq("LIMIT") else None +324 else: +325 types, query = None, None +326 offset, limit = self._parse_oldstyle_limit() +327 +328 mutex = True if self._match_text_seq("MUTEX") else None +329 mutex = False if self._match_text_seq("STATUS") else mutex 330 -331 mutex = True if self._match_text_seq("MUTEX") else None -332 mutex = False if self._match_text_seq("STATUS") else mutex -333 -334 return self.expression( -335 exp.Show, -336 this=this, -337 target=target_id, -338 full=full, -339 log=log, -340 position=position, -341 db=db, -342 channel=channel, -343 like=like, -344 where=where, -345 types=types, -346 query=query, -347 offset=offset, -348 limit=limit, -349 mutex=mutex, -350 **{"global": global_}, # type: ignore -351 ) -352 -353 def _parse_oldstyle_limit( -354 self, -355 ) -> t.Tuple[t.Optional[exp.Expression], t.Optional[exp.Expression]]: -356 limit = None -357 offset = None -358 if self._match_text_seq("LIMIT"): -359 parts = self._parse_csv(self._parse_number) -360 if len(parts) == 1: -361 limit = parts[0] -362 elif len(parts) == 2: -363 limit = parts[1] -364 offset = parts[0] -365 -366 return offset, limit -367 -368 def _parse_set_item_charset(self, kind: str) -> exp.Expression: -369 this = self._parse_string() or self._parse_id_var() -370 return self.expression(exp.SetItem, this=this, kind=kind) -371 -372 def _parse_set_item_names(self) -> exp.Expression: -373 charset = self._parse_string() or self._parse_id_var() -374 if self._match_text_seq("COLLATE"): -375 collate = self._parse_string() or self._parse_id_var() -376 else: -377 collate = None -378 -379 return self.expression( -380 exp.SetItem, -381 this=charset, -382 collate=collate, -383 kind="NAMES", -384 ) +331 return self.expression( +332 exp.Show, +333 this=this, +334 target=target_id, +335 full=full, +336 log=log, +337 position=position, +338 db=db, +339 channel=channel, +340 like=like, +341 where=where, +342 types=types, +343 query=query, +344 offset=offset, +345 limit=limit, +346 mutex=mutex, +347 **{"global": global_}, # type: ignore +348 ) +349 +350 def _parse_oldstyle_limit( +351 self, +352 ) -> t.Tuple[t.Optional[exp.Expression], t.Optional[exp.Expression]]: +353 limit = None +354 offset = None +355 if self._match_text_seq("LIMIT"): +356 parts = self._parse_csv(self._parse_number) +357 if len(parts) == 1: +358 limit = parts[0] +359 elif len(parts) == 2: +360 limit = parts[1] +361 offset = parts[0] +362 +363 return offset, limit +364 +365 def _parse_set_item_charset(self, kind: str) -> exp.Expression: +366 this = self._parse_string() or self._parse_id_var() +367 return self.expression(exp.SetItem, this=this, kind=kind) +368 +369 def _parse_set_item_names(self) -> exp.Expression: +370 charset = self._parse_string() or self._parse_id_var() +371 if self._match_text_seq("COLLATE"): +372 collate = self._parse_string() or self._parse_id_var() +373 else: +374 collate = None +375 +376 return self.expression( +377 exp.SetItem, +378 this=charset, +379 collate=collate, +380 kind="NAMES", +381 ) @@ -1315,7 +1306,7 @@ a parsed syntax tree.

    • error_level: the desired error level. -Default: ErrorLevel.RAISE
    • +Default: ErrorLevel.IMMEDIATE
    • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
    • @@ -1361,110 +1352,110 @@ Default: "nulls_are_small" -
      386    class Generator(generator.Generator):
      -387        LOCKING_READS_SUPPORTED = True
      -388        NULL_ORDERING_SUPPORTED = False
      -389        JOIN_HINTS = False
      -390        TABLE_HINTS = False
      -391
      -392        TRANSFORMS = {
      -393            **generator.Generator.TRANSFORMS,
      -394            exp.CurrentDate: no_paren_current_date_sql,
      -395            exp.DateDiff: lambda self, e: self.func("DATEDIFF", e.this, e.expression),
      -396            exp.DateAdd: _date_add_sql("ADD"),
      -397            exp.DateStrToDate: datestrtodate_sql,
      -398            exp.DateSub: _date_add_sql("SUB"),
      -399            exp.DateTrunc: _date_trunc_sql,
      -400            exp.DayOfMonth: rename_func("DAYOFMONTH"),
      -401            exp.DayOfWeek: rename_func("DAYOFWEEK"),
      -402            exp.DayOfYear: rename_func("DAYOFYEAR"),
      -403            exp.GroupConcat: lambda self, e: f"""GROUP_CONCAT({self.sql(e, "this")} SEPARATOR {self.sql(e, "separator") or "','"})""",
      -404            exp.ILike: no_ilike_sql,
      -405            exp.JSONExtractScalar: arrow_json_extract_scalar_sql,
      -406            exp.Max: max_or_greatest,
      -407            exp.Min: min_or_least,
      -408            exp.NullSafeEQ: lambda self, e: self.binary(e, "<=>"),
      -409            exp.NullSafeNEQ: lambda self, e: self.not_sql(self.binary(e, "<=>")),
      -410            exp.Pivot: no_pivot_sql,
      -411            exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]),
      -412            exp.StrPosition: strposition_to_locate_sql,
      -413            exp.StrToDate: _str_to_date_sql,
      -414            exp.StrToTime: _str_to_date_sql,
      -415            exp.TableSample: no_tablesample_sql,
      -416            exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"),
      -417            exp.TimeToStr: lambda self, e: self.func("DATE_FORMAT", e.this, self.format_time(e)),
      -418            exp.Trim: _trim_sql,
      -419            exp.TryCast: no_trycast_sql,
      -420            exp.WeekOfYear: rename_func("WEEKOFYEAR"),
      -421        }
      -422
      -423        TYPE_MAPPING = generator.Generator.TYPE_MAPPING.copy()
      -424        TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMTEXT)
      -425        TYPE_MAPPING.pop(exp.DataType.Type.LONGTEXT)
      -426        TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMBLOB)
      -427        TYPE_MAPPING.pop(exp.DataType.Type.LONGBLOB)
      -428
      -429        PROPERTIES_LOCATION = {
      -430            **generator.Generator.PROPERTIES_LOCATION,
      -431            exp.TransientProperty: exp.Properties.Location.UNSUPPORTED,
      -432            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
      -433        }
      -434
      -435        LIMIT_FETCH = "LIMIT"
      -436
      -437        def show_sql(self, expression: exp.Show) -> str:
      -438            this = f" {expression.name}"
      -439            full = " FULL" if expression.args.get("full") else ""
      -440            global_ = " GLOBAL" if expression.args.get("global") else ""
      -441
      -442            target = self.sql(expression, "target")
      -443            target = f" {target}" if target else ""
      -444            if expression.name in {"COLUMNS", "INDEX"}:
      -445                target = f" FROM{target}"
      -446            elif expression.name == "GRANTS":
      -447                target = f" FOR{target}"
      -448
      -449            db = self._prefixed_sql("FROM", expression, "db")
      +            
      383    class Generator(generator.Generator):
      +384        LOCKING_READS_SUPPORTED = True
      +385        NULL_ORDERING_SUPPORTED = False
      +386        JOIN_HINTS = False
      +387        TABLE_HINTS = False
      +388
      +389        TRANSFORMS = {
      +390            **generator.Generator.TRANSFORMS,
      +391            exp.CurrentDate: no_paren_current_date_sql,
      +392            exp.DateDiff: lambda self, e: self.func("DATEDIFF", e.this, e.expression),
      +393            exp.DateAdd: _date_add_sql("ADD"),
      +394            exp.DateStrToDate: datestrtodate_sql,
      +395            exp.DateSub: _date_add_sql("SUB"),
      +396            exp.DateTrunc: _date_trunc_sql,
      +397            exp.DayOfMonth: rename_func("DAYOFMONTH"),
      +398            exp.DayOfWeek: rename_func("DAYOFWEEK"),
      +399            exp.DayOfYear: rename_func("DAYOFYEAR"),
      +400            exp.GroupConcat: lambda self, e: f"""GROUP_CONCAT({self.sql(e, "this")} SEPARATOR {self.sql(e, "separator") or "','"})""",
      +401            exp.ILike: no_ilike_sql,
      +402            exp.JSONExtractScalar: arrow_json_extract_scalar_sql,
      +403            exp.Max: max_or_greatest,
      +404            exp.Min: min_or_least,
      +405            exp.NullSafeEQ: lambda self, e: self.binary(e, "<=>"),
      +406            exp.NullSafeNEQ: lambda self, e: self.not_sql(self.binary(e, "<=>")),
      +407            exp.Pivot: no_pivot_sql,
      +408            exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]),
      +409            exp.StrPosition: strposition_to_locate_sql,
      +410            exp.StrToDate: _str_to_date_sql,
      +411            exp.StrToTime: _str_to_date_sql,
      +412            exp.TableSample: no_tablesample_sql,
      +413            exp.TimeStrToUnix: rename_func("UNIX_TIMESTAMP"),
      +414            exp.TimeToStr: lambda self, e: self.func("DATE_FORMAT", e.this, self.format_time(e)),
      +415            exp.Trim: _trim_sql,
      +416            exp.TryCast: no_trycast_sql,
      +417            exp.WeekOfYear: rename_func("WEEKOFYEAR"),
      +418        }
      +419
      +420        TYPE_MAPPING = generator.Generator.TYPE_MAPPING.copy()
      +421        TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMTEXT)
      +422        TYPE_MAPPING.pop(exp.DataType.Type.LONGTEXT)
      +423        TYPE_MAPPING.pop(exp.DataType.Type.MEDIUMBLOB)
      +424        TYPE_MAPPING.pop(exp.DataType.Type.LONGBLOB)
      +425
      +426        PROPERTIES_LOCATION = {
      +427            **generator.Generator.PROPERTIES_LOCATION,
      +428            exp.TransientProperty: exp.Properties.Location.UNSUPPORTED,
      +429            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
      +430        }
      +431
      +432        LIMIT_FETCH = "LIMIT"
      +433
      +434        def show_sql(self, expression: exp.Show) -> str:
      +435            this = f" {expression.name}"
      +436            full = " FULL" if expression.args.get("full") else ""
      +437            global_ = " GLOBAL" if expression.args.get("global") else ""
      +438
      +439            target = self.sql(expression, "target")
      +440            target = f" {target}" if target else ""
      +441            if expression.name in {"COLUMNS", "INDEX"}:
      +442                target = f" FROM{target}"
      +443            elif expression.name == "GRANTS":
      +444                target = f" FOR{target}"
      +445
      +446            db = self._prefixed_sql("FROM", expression, "db")
      +447
      +448            like = self._prefixed_sql("LIKE", expression, "like")
      +449            where = self.sql(expression, "where")
       450
      -451            like = self._prefixed_sql("LIKE", expression, "like")
      -452            where = self.sql(expression, "where")
      -453
      -454            types = self.expressions(expression, key="types")
      -455            types = f" {types}" if types else types
      -456            query = self._prefixed_sql("FOR QUERY", expression, "query")
      -457
      -458            if expression.name == "PROFILE":
      -459                offset = self._prefixed_sql("OFFSET", expression, "offset")
      -460                limit = self._prefixed_sql("LIMIT", expression, "limit")
      -461            else:
      -462                offset = ""
      -463                limit = self._oldstyle_limit_sql(expression)
      +451            types = self.expressions(expression, key="types")
      +452            types = f" {types}" if types else types
      +453            query = self._prefixed_sql("FOR QUERY", expression, "query")
      +454
      +455            if expression.name == "PROFILE":
      +456                offset = self._prefixed_sql("OFFSET", expression, "offset")
      +457                limit = self._prefixed_sql("LIMIT", expression, "limit")
      +458            else:
      +459                offset = ""
      +460                limit = self._oldstyle_limit_sql(expression)
      +461
      +462            log = self._prefixed_sql("IN", expression, "log")
      +463            position = self._prefixed_sql("FROM", expression, "position")
       464
      -465            log = self._prefixed_sql("IN", expression, "log")
      -466            position = self._prefixed_sql("FROM", expression, "position")
      -467
      -468            channel = self._prefixed_sql("FOR CHANNEL", expression, "channel")
      -469
      -470            if expression.name == "ENGINE":
      -471                mutex_or_status = " MUTEX" if expression.args.get("mutex") else " STATUS"
      -472            else:
      -473                mutex_or_status = ""
      -474
      -475            return f"SHOW{full}{global_}{this}{target}{types}{db}{query}{log}{position}{channel}{mutex_or_status}{like}{where}{offset}{limit}"
      -476
      -477        def _prefixed_sql(self, prefix: str, expression: exp.Expression, arg: str) -> str:
      -478            sql = self.sql(expression, arg)
      -479            if not sql:
      -480                return ""
      -481            return f" {prefix} {sql}"
      -482
      -483        def _oldstyle_limit_sql(self, expression: exp.Show) -> str:
      -484            limit = self.sql(expression, "limit")
      -485            offset = self.sql(expression, "offset")
      -486            if limit:
      -487                limit_offset = f"{offset}, {limit}" if offset else limit
      -488                return f" LIMIT {limit_offset}"
      -489            return ""
      +465            channel = self._prefixed_sql("FOR CHANNEL", expression, "channel")
      +466
      +467            if expression.name == "ENGINE":
      +468                mutex_or_status = " MUTEX" if expression.args.get("mutex") else " STATUS"
      +469            else:
      +470                mutex_or_status = ""
      +471
      +472            return f"SHOW{full}{global_}{this}{target}{types}{db}{query}{log}{position}{channel}{mutex_or_status}{like}{where}{offset}{limit}"
      +473
      +474        def _prefixed_sql(self, prefix: str, expression: exp.Expression, arg: str) -> str:
      +475            sql = self.sql(expression, arg)
      +476            if not sql:
      +477                return ""
      +478            return f" {prefix} {sql}"
      +479
      +480        def _oldstyle_limit_sql(self, expression: exp.Show) -> str:
      +481            limit = self.sql(expression, "limit")
      +482            offset = self.sql(expression, "offset")
      +483            if limit:
      +484                limit_offset = f"{offset}, {limit}" if offset else limit
      +485                return f" LIMIT {limit_offset}"
      +486            return ""
       
      @@ -1500,6 +1491,8 @@ represents a python time format and the output the target time format Default: "upper"
    • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
    • +
    • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
    • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
    • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1531,45 +1524,45 @@ Default: True
    • -
      437        def show_sql(self, expression: exp.Show) -> str:
      -438            this = f" {expression.name}"
      -439            full = " FULL" if expression.args.get("full") else ""
      -440            global_ = " GLOBAL" if expression.args.get("global") else ""
      -441
      -442            target = self.sql(expression, "target")
      -443            target = f" {target}" if target else ""
      -444            if expression.name in {"COLUMNS", "INDEX"}:
      -445                target = f" FROM{target}"
      -446            elif expression.name == "GRANTS":
      -447                target = f" FOR{target}"
      -448
      -449            db = self._prefixed_sql("FROM", expression, "db")
      +            
      434        def show_sql(self, expression: exp.Show) -> str:
      +435            this = f" {expression.name}"
      +436            full = " FULL" if expression.args.get("full") else ""
      +437            global_ = " GLOBAL" if expression.args.get("global") else ""
      +438
      +439            target = self.sql(expression, "target")
      +440            target = f" {target}" if target else ""
      +441            if expression.name in {"COLUMNS", "INDEX"}:
      +442                target = f" FROM{target}"
      +443            elif expression.name == "GRANTS":
      +444                target = f" FOR{target}"
      +445
      +446            db = self._prefixed_sql("FROM", expression, "db")
      +447
      +448            like = self._prefixed_sql("LIKE", expression, "like")
      +449            where = self.sql(expression, "where")
       450
      -451            like = self._prefixed_sql("LIKE", expression, "like")
      -452            where = self.sql(expression, "where")
      -453
      -454            types = self.expressions(expression, key="types")
      -455            types = f" {types}" if types else types
      -456            query = self._prefixed_sql("FOR QUERY", expression, "query")
      -457
      -458            if expression.name == "PROFILE":
      -459                offset = self._prefixed_sql("OFFSET", expression, "offset")
      -460                limit = self._prefixed_sql("LIMIT", expression, "limit")
      -461            else:
      -462                offset = ""
      -463                limit = self._oldstyle_limit_sql(expression)
      +451            types = self.expressions(expression, key="types")
      +452            types = f" {types}" if types else types
      +453            query = self._prefixed_sql("FOR QUERY", expression, "query")
      +454
      +455            if expression.name == "PROFILE":
      +456                offset = self._prefixed_sql("OFFSET", expression, "offset")
      +457                limit = self._prefixed_sql("LIMIT", expression, "limit")
      +458            else:
      +459                offset = ""
      +460                limit = self._oldstyle_limit_sql(expression)
      +461
      +462            log = self._prefixed_sql("IN", expression, "log")
      +463            position = self._prefixed_sql("FROM", expression, "position")
       464
      -465            log = self._prefixed_sql("IN", expression, "log")
      -466            position = self._prefixed_sql("FROM", expression, "position")
      -467
      -468            channel = self._prefixed_sql("FOR CHANNEL", expression, "channel")
      -469
      -470            if expression.name == "ENGINE":
      -471                mutex_or_status = " MUTEX" if expression.args.get("mutex") else " STATUS"
      -472            else:
      -473                mutex_or_status = ""
      -474
      -475            return f"SHOW{full}{global_}{this}{target}{types}{db}{query}{log}{position}{channel}{mutex_or_status}{like}{where}{offset}{limit}"
      +465            channel = self._prefixed_sql("FOR CHANNEL", expression, "channel")
      +466
      +467            if expression.name == "ENGINE":
      +468                mutex_or_status = " MUTEX" if expression.args.get("mutex") else " STATUS"
      +469            else:
      +470                mutex_or_status = ""
      +471
      +472            return f"SHOW{full}{global_}{this}{target}{types}{db}{query}{log}{position}{channel}{mutex_or_status}{like}{where}{offset}{limit}"
       
      @@ -1719,7 +1712,6 @@ Default: True
      check_sql
      foreignkey_sql
      primarykey_sql
      -
      unique_sql
      if_sql
      matchagainst_sql
      jsonkeyvalue_sql
      @@ -1812,6 +1804,9 @@ Default: True
      when_sql
      merge_sql
      tochar_sql
      +
      dictproperty_sql
      +
      dictrange_sql
      +
      dictsubproperty_sql
      diff --git a/docs/sqlglot/dialects/oracle.html b/docs/sqlglot/dialects/oracle.html index 347cb9f..2ef666e 100644 --- a/docs/sqlglot/dialects/oracle.html +++ b/docs/sqlglot/dialects/oracle.html @@ -522,7 +522,7 @@ a parsed syntax tree.

      • error_level: the desired error level. -Default: ErrorLevel.RAISE
      • +Default: ErrorLevel.IMMEDIATE
      • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
      • @@ -668,6 +668,8 @@ represents a python time format and the output the target time format Default: "upper"
      • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
      • +
      • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
      • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
      • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -895,7 +897,6 @@ Default: True
      • check_sql
        foreignkey_sql
        primarykey_sql
        -
        unique_sql
        if_sql
        matchagainst_sql
        jsonkeyvalue_sql
        @@ -988,6 +989,9 @@ Default: True
        when_sql
        merge_sql
        tochar_sql
        +
        dictproperty_sql
        +
        dictrange_sql
        +
        dictsubproperty_sql
        diff --git a/docs/sqlglot/dialects/postgres.html b/docs/sqlglot/dialects/postgres.html index 4d6a431..b3634b0 100644 --- a/docs/sqlglot/dialects/postgres.html +++ b/docs/sqlglot/dialects/postgres.html @@ -183,7 +183,7 @@ 104 105 106def _datatype_sql(self: generator.Generator, expression: exp.DataType) -> str: -107 if expression.this == exp.DataType.Type.ARRAY: +107 if expression.is_type("array"): 108 return f"{self.expressions(expression, flat=True)}[]" 109 return self.datatype_sql(expression) 110 @@ -819,7 +819,7 @@ a parsed syntax tree.

        • error_level: the desired error level. -Default: ErrorLevel.RAISE
        • +Default: ErrorLevel.IMMEDIATE
        • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
        • @@ -967,6 +967,8 @@ represents a python time format and the output the target time format Default: "upper"
        • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
        • +
        • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
        • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
        • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1130,7 +1132,6 @@ Default: True
        • check_sql
          foreignkey_sql
          primarykey_sql
          -
          unique_sql
          if_sql
          matchagainst_sql
          jsonkeyvalue_sql
          @@ -1223,6 +1224,9 @@ Default: True
          when_sql
          merge_sql
          tochar_sql
          +
          dictproperty_sql
          +
          dictrange_sql
          +
          dictsubproperty_sql
          diff --git a/docs/sqlglot/dialects/presto.html b/docs/sqlglot/dialects/presto.html index 21dee35..9a29740 100644 --- a/docs/sqlglot/dialects/presto.html +++ b/docs/sqlglot/dialects/presto.html @@ -96,363 +96,369 @@ 8 date_trunc_to_time, 9 format_time_lambda, 10 if_sql, - 11 no_ilike_sql, - 12 no_pivot_sql, - 13 no_safe_divide_sql, - 14 rename_func, - 15 struct_extract_sql, - 16 timestamptrunc_sql, - 17 timestrtotime_sql, - 18) - 19from sqlglot.dialects.mysql import MySQL - 20from sqlglot.errors import UnsupportedError - 21from sqlglot.helper import seq_get - 22from sqlglot.tokens import TokenType - 23 - 24 - 25def _approx_distinct_sql(self: generator.Generator, expression: exp.ApproxDistinct) -> str: - 26 accuracy = expression.args.get("accuracy") - 27 accuracy = ", " + self.sql(accuracy) if accuracy else "" - 28 return f"APPROX_DISTINCT({self.sql(expression, 'this')}{accuracy})" - 29 - 30 - 31def _datatype_sql(self: generator.Generator, expression: exp.DataType) -> str: - 32 sql = self.datatype_sql(expression) - 33 if expression.this == exp.DataType.Type.TIMESTAMPTZ: - 34 sql = f"{sql} WITH TIME ZONE" - 35 return sql - 36 - 37 - 38def _explode_to_unnest_sql(self: generator.Generator, expression: exp.Lateral) -> str: - 39 if isinstance(expression.this, (exp.Explode, exp.Posexplode)): - 40 return self.sql( - 41 exp.Join( - 42 this=exp.Unnest( - 43 expressions=[expression.this.this], - 44 alias=expression.args.get("alias"), - 45 ordinality=isinstance(expression.this, exp.Posexplode), - 46 ), - 47 kind="cross", - 48 ) - 49 ) - 50 return self.lateral_sql(expression) - 51 - 52 - 53def _initcap_sql(self: generator.Generator, expression: exp.Initcap) -> str: - 54 regex = r"(\w)(\w*)" - 55 return f"REGEXP_REPLACE({self.sql(expression, 'this')}, '{regex}', x -> UPPER(x[1]) || LOWER(x[2]))" - 56 - 57 - 58def _decode_sql(self: generator.Generator, expression: exp.Decode) -> str: - 59 _ensure_utf8(expression.args["charset"]) - 60 return self.func("FROM_UTF8", expression.this, expression.args.get("replace")) - 61 - 62 - 63def _encode_sql(self: generator.Generator, expression: exp.Encode) -> str: - 64 _ensure_utf8(expression.args["charset"]) - 65 return f"TO_UTF8({self.sql(expression, 'this')})" - 66 - 67 - 68def _no_sort_array(self: generator.Generator, expression: exp.SortArray) -> str: - 69 if expression.args.get("asc") == exp.false(): - 70 comparator = "(a, b) -> CASE WHEN a < b THEN 1 WHEN a > b THEN -1 ELSE 0 END" - 71 else: - 72 comparator = None - 73 return self.func("ARRAY_SORT", expression.this, comparator) - 74 - 75 - 76def _schema_sql(self: generator.Generator, expression: exp.Schema) -> str: - 77 if isinstance(expression.parent, exp.Property): - 78 columns = ", ".join(f"'{c.name}'" for c in expression.expressions) - 79 return f"ARRAY[{columns}]" - 80 - 81 if expression.parent: - 82 for schema in expression.parent.find_all(exp.Schema): - 83 if isinstance(schema.parent, exp.Property): - 84 expression = expression.copy() - 85 expression.expressions.extend(schema.expressions) - 86 - 87 return self.schema_sql(expression) + 11 left_to_substring_sql, + 12 no_ilike_sql, + 13 no_pivot_sql, + 14 no_safe_divide_sql, + 15 rename_func, + 16 right_to_substring_sql, + 17 struct_extract_sql, + 18 timestamptrunc_sql, + 19 timestrtotime_sql, + 20) + 21from sqlglot.dialects.mysql import MySQL + 22from sqlglot.errors import UnsupportedError + 23from sqlglot.helper import seq_get + 24from sqlglot.tokens import TokenType + 25 + 26 + 27def _approx_distinct_sql(self: generator.Generator, expression: exp.ApproxDistinct) -> str: + 28 accuracy = expression.args.get("accuracy") + 29 accuracy = ", " + self.sql(accuracy) if accuracy else "" + 30 return f"APPROX_DISTINCT({self.sql(expression, 'this')}{accuracy})" + 31 + 32 + 33def _datatype_sql(self: generator.Generator, expression: exp.DataType) -> str: + 34 sql = self.datatype_sql(expression) + 35 if expression.is_type("timestamptz"): + 36 sql = f"{sql} WITH TIME ZONE" + 37 return sql + 38 + 39 + 40def _explode_to_unnest_sql(self: generator.Generator, expression: exp.Lateral) -> str: + 41 if isinstance(expression.this, (exp.Explode, exp.Posexplode)): + 42 return self.sql( + 43 exp.Join( + 44 this=exp.Unnest( + 45 expressions=[expression.this.this], + 46 alias=expression.args.get("alias"), + 47 ordinality=isinstance(expression.this, exp.Posexplode), + 48 ), + 49 kind="cross", + 50 ) + 51 ) + 52 return self.lateral_sql(expression) + 53 + 54 + 55def _initcap_sql(self: generator.Generator, expression: exp.Initcap) -> str: + 56 regex = r"(\w)(\w*)" + 57 return f"REGEXP_REPLACE({self.sql(expression, 'this')}, '{regex}', x -> UPPER(x[1]) || LOWER(x[2]))" + 58 + 59 + 60def _decode_sql(self: generator.Generator, expression: exp.Decode) -> str: + 61 _ensure_utf8(expression.args["charset"]) + 62 return self.func("FROM_UTF8", expression.this, expression.args.get("replace")) + 63 + 64 + 65def _encode_sql(self: generator.Generator, expression: exp.Encode) -> str: + 66 _ensure_utf8(expression.args["charset"]) + 67 return f"TO_UTF8({self.sql(expression, 'this')})" + 68 + 69 + 70def _no_sort_array(self: generator.Generator, expression: exp.SortArray) -> str: + 71 if expression.args.get("asc") == exp.false(): + 72 comparator = "(a, b) -> CASE WHEN a < b THEN 1 WHEN a > b THEN -1 ELSE 0 END" + 73 else: + 74 comparator = None + 75 return self.func("ARRAY_SORT", expression.this, comparator) + 76 + 77 + 78def _schema_sql(self: generator.Generator, expression: exp.Schema) -> str: + 79 if isinstance(expression.parent, exp.Property): + 80 columns = ", ".join(f"'{c.name}'" for c in expression.expressions) + 81 return f"ARRAY[{columns}]" + 82 + 83 if expression.parent: + 84 for schema in expression.parent.find_all(exp.Schema): + 85 if isinstance(schema.parent, exp.Property): + 86 expression = expression.copy() + 87 expression.expressions.extend(schema.expressions) 88 - 89 - 90def _quantile_sql(self: generator.Generator, expression: exp.Quantile) -> str: - 91 self.unsupported("Presto does not support exact quantiles") - 92 return f"APPROX_PERCENTILE({self.sql(expression, 'this')}, {self.sql(expression, 'quantile')})" - 93 - 94 - 95def _str_to_time_sql( - 96 self: generator.Generator, expression: exp.StrToDate | exp.StrToTime | exp.TsOrDsToDate - 97) -> str: - 98 return f"DATE_PARSE({self.sql(expression, 'this')}, {self.format_time(expression)})" - 99 -100 -101def _ts_or_ds_to_date_sql(self: generator.Generator, expression: exp.TsOrDsToDate) -> str: -102 time_format = self.format_time(expression) -103 if time_format and time_format not in (Presto.time_format, Presto.date_format): -104 return f"CAST({_str_to_time_sql(self, expression)} AS DATE)" -105 return f"CAST(SUBSTR(CAST({self.sql(expression, 'this')} AS VARCHAR), 1, 10) AS DATE)" -106 -107 -108def _ts_or_ds_add_sql(self: generator.Generator, expression: exp.TsOrDsAdd) -> str: -109 this = expression.this -110 -111 if not isinstance(this, exp.CurrentDate): -112 this = self.func( -113 "DATE_PARSE", -114 self.func( -115 "SUBSTR", -116 this if this.is_string else exp.cast(this, "VARCHAR"), -117 exp.Literal.number(1), -118 exp.Literal.number(10), -119 ), -120 Presto.date_format, -121 ) -122 -123 return self.func( -124 "DATE_ADD", -125 exp.Literal.string(expression.text("unit") or "day"), -126 expression.expression, -127 this, -128 ) -129 -130 -131def _ensure_utf8(charset: exp.Literal) -> None: -132 if charset.name.lower() != "utf-8": -133 raise UnsupportedError(f"Unsupported charset {charset}") -134 -135 -136def _approx_percentile(args: t.List) -> exp.Expression: -137 if len(args) == 4: -138 return exp.ApproxQuantile( -139 this=seq_get(args, 0), -140 weight=seq_get(args, 1), -141 quantile=seq_get(args, 2), -142 accuracy=seq_get(args, 3), -143 ) -144 if len(args) == 3: -145 return exp.ApproxQuantile( -146 this=seq_get(args, 0), -147 quantile=seq_get(args, 1), -148 accuracy=seq_get(args, 2), -149 ) -150 return exp.ApproxQuantile.from_arg_list(args) -151 -152 -153def _from_unixtime(args: t.List) -> exp.Expression: -154 if len(args) == 3: -155 return exp.UnixToTime( -156 this=seq_get(args, 0), -157 hours=seq_get(args, 1), -158 minutes=seq_get(args, 2), -159 ) -160 if len(args) == 2: -161 return exp.UnixToTime( -162 this=seq_get(args, 0), -163 zone=seq_get(args, 1), -164 ) -165 return exp.UnixToTime.from_arg_list(args) -166 -167 -168def _unnest_sequence(expression: exp.Expression) -> exp.Expression: -169 if isinstance(expression, exp.Table): -170 if isinstance(expression.this, exp.GenerateSeries): -171 unnest = exp.Unnest(expressions=[expression.this]) -172 -173 if expression.alias: -174 return exp.alias_( -175 unnest, -176 alias="_u", -177 table=[expression.alias], -178 copy=False, -179 ) -180 return unnest -181 return expression -182 -183 -184class Presto(Dialect): -185 index_offset = 1 -186 null_ordering = "nulls_are_last" -187 time_format = MySQL.time_format -188 time_mapping = MySQL.time_mapping -189 -190 class Tokenizer(tokens.Tokenizer): -191 KEYWORDS = { -192 **tokens.Tokenizer.KEYWORDS, -193 "START": TokenType.BEGIN, -194 "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE, -195 "ROW": TokenType.STRUCT, -196 } -197 -198 class Parser(parser.Parser): -199 FUNCTIONS = { -200 **parser.Parser.FUNCTIONS, -201 "APPROX_DISTINCT": exp.ApproxDistinct.from_arg_list, -202 "APPROX_PERCENTILE": _approx_percentile, -203 "CARDINALITY": exp.ArraySize.from_arg_list, -204 "CONTAINS": exp.ArrayContains.from_arg_list, -205 "DATE_ADD": lambda args: exp.DateAdd( -206 this=seq_get(args, 2), -207 expression=seq_get(args, 1), -208 unit=seq_get(args, 0), -209 ), -210 "DATE_DIFF": lambda args: exp.DateDiff( -211 this=seq_get(args, 2), -212 expression=seq_get(args, 1), -213 unit=seq_get(args, 0), -214 ), -215 "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "presto"), -216 "DATE_PARSE": format_time_lambda(exp.StrToTime, "presto"), -217 "DATE_TRUNC": date_trunc_to_time, -218 "FROM_HEX": exp.Unhex.from_arg_list, -219 "FROM_UNIXTIME": _from_unixtime, -220 "FROM_UTF8": lambda args: exp.Decode( -221 this=seq_get(args, 0), replace=seq_get(args, 1), charset=exp.Literal.string("utf-8") -222 ), -223 "NOW": exp.CurrentTimestamp.from_arg_list, -224 "SEQUENCE": exp.GenerateSeries.from_arg_list, -225 "STRPOS": lambda args: exp.StrPosition( -226 this=seq_get(args, 0), -227 substr=seq_get(args, 1), -228 instance=seq_get(args, 2), -229 ), -230 "TO_UNIXTIME": exp.TimeToUnix.from_arg_list, -231 "TO_HEX": exp.Hex.from_arg_list, -232 "TO_UTF8": lambda args: exp.Encode( -233 this=seq_get(args, 0), charset=exp.Literal.string("utf-8") -234 ), -235 } -236 FUNCTION_PARSERS = parser.Parser.FUNCTION_PARSERS.copy() -237 FUNCTION_PARSERS.pop("TRIM") -238 -239 class Generator(generator.Generator): -240 INTERVAL_ALLOWS_PLURAL_FORM = False -241 JOIN_HINTS = False -242 TABLE_HINTS = False -243 STRUCT_DELIMITER = ("(", ")") -244 -245 PROPERTIES_LOCATION = { -246 **generator.Generator.PROPERTIES_LOCATION, -247 exp.LocationProperty: exp.Properties.Location.UNSUPPORTED, -248 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -249 } -250 -251 TYPE_MAPPING = { -252 **generator.Generator.TYPE_MAPPING, -253 exp.DataType.Type.INT: "INTEGER", -254 exp.DataType.Type.FLOAT: "REAL", -255 exp.DataType.Type.BINARY: "VARBINARY", -256 exp.DataType.Type.TEXT: "VARCHAR", -257 exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP", -258 exp.DataType.Type.STRUCT: "ROW", -259 } -260 -261 TRANSFORMS = { -262 **generator.Generator.TRANSFORMS, -263 exp.ApproxDistinct: _approx_distinct_sql, -264 exp.ApproxQuantile: rename_func("APPROX_PERCENTILE"), -265 exp.Array: lambda self, e: f"ARRAY[{self.expressions(e, flat=True)}]", -266 exp.ArrayConcat: rename_func("CONCAT"), -267 exp.ArrayContains: rename_func("CONTAINS"), -268 exp.ArraySize: rename_func("CARDINALITY"), -269 exp.BitwiseAnd: lambda self, e: f"BITWISE_AND({self.sql(e, 'this')}, {self.sql(e, 'expression')})", -270 exp.BitwiseLeftShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_LEFT({self.sql(e, 'this')}, {self.sql(e, 'expression')})", -271 exp.BitwiseNot: lambda self, e: f"BITWISE_NOT({self.sql(e, 'this')})", -272 exp.BitwiseOr: lambda self, e: f"BITWISE_OR({self.sql(e, 'this')}, {self.sql(e, 'expression')})", -273 exp.BitwiseRightShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_RIGHT({self.sql(e, 'this')}, {self.sql(e, 'expression')})", -274 exp.BitwiseXor: lambda self, e: f"BITWISE_XOR({self.sql(e, 'this')}, {self.sql(e, 'expression')})", -275 exp.CurrentTimestamp: lambda *_: "CURRENT_TIMESTAMP", -276 exp.DataType: _datatype_sql, -277 exp.DateAdd: lambda self, e: self.func( -278 "DATE_ADD", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this -279 ), -280 exp.DateDiff: lambda self, e: self.func( -281 "DATE_DIFF", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this + 89 return self.schema_sql(expression) + 90 + 91 + 92def _quantile_sql(self: generator.Generator, expression: exp.Quantile) -> str: + 93 self.unsupported("Presto does not support exact quantiles") + 94 return f"APPROX_PERCENTILE({self.sql(expression, 'this')}, {self.sql(expression, 'quantile')})" + 95 + 96 + 97def _str_to_time_sql( + 98 self: generator.Generator, expression: exp.StrToDate | exp.StrToTime | exp.TsOrDsToDate + 99) -> str: +100 return f"DATE_PARSE({self.sql(expression, 'this')}, {self.format_time(expression)})" +101 +102 +103def _ts_or_ds_to_date_sql(self: generator.Generator, expression: exp.TsOrDsToDate) -> str: +104 time_format = self.format_time(expression) +105 if time_format and time_format not in (Presto.time_format, Presto.date_format): +106 return f"CAST({_str_to_time_sql(self, expression)} AS DATE)" +107 return f"CAST(SUBSTR(CAST({self.sql(expression, 'this')} AS VARCHAR), 1, 10) AS DATE)" +108 +109 +110def _ts_or_ds_add_sql(self: generator.Generator, expression: exp.TsOrDsAdd) -> str: +111 this = expression.this +112 +113 if not isinstance(this, exp.CurrentDate): +114 this = self.func( +115 "DATE_PARSE", +116 self.func( +117 "SUBSTR", +118 this if this.is_string else exp.cast(this, "VARCHAR"), +119 exp.Literal.number(1), +120 exp.Literal.number(10), +121 ), +122 Presto.date_format, +123 ) +124 +125 return self.func( +126 "DATE_ADD", +127 exp.Literal.string(expression.text("unit") or "day"), +128 expression.expression, +129 this, +130 ) +131 +132 +133def _ensure_utf8(charset: exp.Literal) -> None: +134 if charset.name.lower() != "utf-8": +135 raise UnsupportedError(f"Unsupported charset {charset}") +136 +137 +138def _approx_percentile(args: t.List) -> exp.Expression: +139 if len(args) == 4: +140 return exp.ApproxQuantile( +141 this=seq_get(args, 0), +142 weight=seq_get(args, 1), +143 quantile=seq_get(args, 2), +144 accuracy=seq_get(args, 3), +145 ) +146 if len(args) == 3: +147 return exp.ApproxQuantile( +148 this=seq_get(args, 0), +149 quantile=seq_get(args, 1), +150 accuracy=seq_get(args, 2), +151 ) +152 return exp.ApproxQuantile.from_arg_list(args) +153 +154 +155def _from_unixtime(args: t.List) -> exp.Expression: +156 if len(args) == 3: +157 return exp.UnixToTime( +158 this=seq_get(args, 0), +159 hours=seq_get(args, 1), +160 minutes=seq_get(args, 2), +161 ) +162 if len(args) == 2: +163 return exp.UnixToTime( +164 this=seq_get(args, 0), +165 zone=seq_get(args, 1), +166 ) +167 return exp.UnixToTime.from_arg_list(args) +168 +169 +170def _unnest_sequence(expression: exp.Expression) -> exp.Expression: +171 if isinstance(expression, exp.Table): +172 if isinstance(expression.this, exp.GenerateSeries): +173 unnest = exp.Unnest(expressions=[expression.this]) +174 +175 if expression.alias: +176 return exp.alias_( +177 unnest, +178 alias="_u", +179 table=[expression.alias], +180 copy=False, +181 ) +182 return unnest +183 return expression +184 +185 +186class Presto(Dialect): +187 index_offset = 1 +188 null_ordering = "nulls_are_last" +189 time_format = MySQL.time_format +190 time_mapping = MySQL.time_mapping +191 +192 class Tokenizer(tokens.Tokenizer): +193 KEYWORDS = { +194 **tokens.Tokenizer.KEYWORDS, +195 "START": TokenType.BEGIN, +196 "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE, +197 "ROW": TokenType.STRUCT, +198 } +199 +200 class Parser(parser.Parser): +201 FUNCTIONS = { +202 **parser.Parser.FUNCTIONS, +203 "APPROX_DISTINCT": exp.ApproxDistinct.from_arg_list, +204 "APPROX_PERCENTILE": _approx_percentile, +205 "CARDINALITY": exp.ArraySize.from_arg_list, +206 "CONTAINS": exp.ArrayContains.from_arg_list, +207 "DATE_ADD": lambda args: exp.DateAdd( +208 this=seq_get(args, 2), +209 expression=seq_get(args, 1), +210 unit=seq_get(args, 0), +211 ), +212 "DATE_DIFF": lambda args: exp.DateDiff( +213 this=seq_get(args, 2), +214 expression=seq_get(args, 1), +215 unit=seq_get(args, 0), +216 ), +217 "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "presto"), +218 "DATE_PARSE": format_time_lambda(exp.StrToTime, "presto"), +219 "DATE_TRUNC": date_trunc_to_time, +220 "FROM_HEX": exp.Unhex.from_arg_list, +221 "FROM_UNIXTIME": _from_unixtime, +222 "FROM_UTF8": lambda args: exp.Decode( +223 this=seq_get(args, 0), replace=seq_get(args, 1), charset=exp.Literal.string("utf-8") +224 ), +225 "NOW": exp.CurrentTimestamp.from_arg_list, +226 "SEQUENCE": exp.GenerateSeries.from_arg_list, +227 "STRPOS": lambda args: exp.StrPosition( +228 this=seq_get(args, 0), +229 substr=seq_get(args, 1), +230 instance=seq_get(args, 2), +231 ), +232 "TO_UNIXTIME": exp.TimeToUnix.from_arg_list, +233 "TO_HEX": exp.Hex.from_arg_list, +234 "TO_UTF8": lambda args: exp.Encode( +235 this=seq_get(args, 0), charset=exp.Literal.string("utf-8") +236 ), +237 } +238 FUNCTION_PARSERS = parser.Parser.FUNCTION_PARSERS.copy() +239 FUNCTION_PARSERS.pop("TRIM") +240 +241 class Generator(generator.Generator): +242 INTERVAL_ALLOWS_PLURAL_FORM = False +243 JOIN_HINTS = False +244 TABLE_HINTS = False +245 STRUCT_DELIMITER = ("(", ")") +246 +247 PROPERTIES_LOCATION = { +248 **generator.Generator.PROPERTIES_LOCATION, +249 exp.LocationProperty: exp.Properties.Location.UNSUPPORTED, +250 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +251 } +252 +253 TYPE_MAPPING = { +254 **generator.Generator.TYPE_MAPPING, +255 exp.DataType.Type.INT: "INTEGER", +256 exp.DataType.Type.FLOAT: "REAL", +257 exp.DataType.Type.BINARY: "VARBINARY", +258 exp.DataType.Type.TEXT: "VARCHAR", +259 exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP", +260 exp.DataType.Type.STRUCT: "ROW", +261 } +262 +263 TRANSFORMS = { +264 **generator.Generator.TRANSFORMS, +265 exp.ApproxDistinct: _approx_distinct_sql, +266 exp.ApproxQuantile: rename_func("APPROX_PERCENTILE"), +267 exp.Array: lambda self, e: f"ARRAY[{self.expressions(e, flat=True)}]", +268 exp.ArrayConcat: rename_func("CONCAT"), +269 exp.ArrayContains: rename_func("CONTAINS"), +270 exp.ArraySize: rename_func("CARDINALITY"), +271 exp.BitwiseAnd: lambda self, e: f"BITWISE_AND({self.sql(e, 'this')}, {self.sql(e, 'expression')})", +272 exp.BitwiseLeftShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_LEFT({self.sql(e, 'this')}, {self.sql(e, 'expression')})", +273 exp.BitwiseNot: lambda self, e: f"BITWISE_NOT({self.sql(e, 'this')})", +274 exp.BitwiseOr: lambda self, e: f"BITWISE_OR({self.sql(e, 'this')}, {self.sql(e, 'expression')})", +275 exp.BitwiseRightShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_RIGHT({self.sql(e, 'this')}, {self.sql(e, 'expression')})", +276 exp.BitwiseXor: lambda self, e: f"BITWISE_XOR({self.sql(e, 'this')}, {self.sql(e, 'expression')})", +277 exp.Cast: transforms.preprocess([transforms.epoch_cast_to_ts]), +278 exp.CurrentTimestamp: lambda *_: "CURRENT_TIMESTAMP", +279 exp.DataType: _datatype_sql, +280 exp.DateAdd: lambda self, e: self.func( +281 "DATE_ADD", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this 282 ), -283 exp.DateStrToDate: lambda self, e: f"CAST(DATE_PARSE({self.sql(e, 'this')}, {Presto.date_format}) AS DATE)", -284 exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Presto.dateint_format}) AS INT)", -285 exp.Decode: _decode_sql, -286 exp.DiToDate: lambda self, e: f"CAST(DATE_PARSE(CAST({self.sql(e, 'this')} AS VARCHAR), {Presto.dateint_format}) AS DATE)", -287 exp.Encode: _encode_sql, -288 exp.FileFormatProperty: lambda self, e: f"FORMAT='{e.name.upper()}'", -289 exp.Group: transforms.preprocess([transforms.unalias_group]), -290 exp.Hex: rename_func("TO_HEX"), -291 exp.If: if_sql, -292 exp.ILike: no_ilike_sql, -293 exp.Initcap: _initcap_sql, -294 exp.Lateral: _explode_to_unnest_sql, -295 exp.Levenshtein: rename_func("LEVENSHTEIN_DISTANCE"), -296 exp.LogicalAnd: rename_func("BOOL_AND"), -297 exp.LogicalOr: rename_func("BOOL_OR"), -298 exp.Pivot: no_pivot_sql, -299 exp.Quantile: _quantile_sql, -300 exp.SafeDivide: no_safe_divide_sql, -301 exp.Schema: _schema_sql, -302 exp.Select: transforms.preprocess( -303 [ -304 transforms.eliminate_qualify, -305 transforms.eliminate_distinct_on, -306 transforms.explode_to_unnest, -307 ] -308 ), -309 exp.SortArray: _no_sort_array, -310 exp.StrPosition: rename_func("STRPOS"), -311 exp.StrToDate: lambda self, e: f"CAST({_str_to_time_sql(self, e)} AS DATE)", -312 exp.StrToTime: _str_to_time_sql, -313 exp.StrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {self.format_time(e)}))", -314 exp.StructExtract: struct_extract_sql, -315 exp.Table: transforms.preprocess([_unnest_sequence]), -316 exp.TimestampTrunc: timestamptrunc_sql, -317 exp.TimeStrToDate: timestrtotime_sql, -318 exp.TimeStrToTime: timestrtotime_sql, -319 exp.TimeStrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {Presto.time_format}))", -320 exp.TimeToStr: lambda self, e: f"DATE_FORMAT({self.sql(e, 'this')}, {self.format_time(e)})", -321 exp.TimeToUnix: rename_func("TO_UNIXTIME"), -322 exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS VARCHAR), '-', ''), 1, 8) AS INT)", -323 exp.TsOrDsAdd: _ts_or_ds_add_sql, -324 exp.TsOrDsToDate: _ts_or_ds_to_date_sql, -325 exp.Unhex: rename_func("FROM_HEX"), -326 exp.UnixToStr: lambda self, e: f"DATE_FORMAT(FROM_UNIXTIME({self.sql(e, 'this')}), {self.format_time(e)})", -327 exp.UnixToTime: rename_func("FROM_UNIXTIME"), -328 exp.UnixToTimeStr: lambda self, e: f"CAST(FROM_UNIXTIME({self.sql(e, 'this')}) AS VARCHAR)", -329 exp.VariancePop: rename_func("VAR_POP"), -330 exp.With: transforms.preprocess([transforms.add_recursive_cte_column_names]), -331 exp.WithinGroup: transforms.preprocess( -332 [transforms.remove_within_group_for_percentiles] -333 ), -334 } -335 -336 def interval_sql(self, expression: exp.Interval) -> str: -337 unit = self.sql(expression, "unit") -338 if expression.this and unit.lower().startswith("week"): -339 return f"({expression.this.name} * INTERVAL '7' day)" -340 return super().interval_sql(expression) +283 exp.DateDiff: lambda self, e: self.func( +284 "DATE_DIFF", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this +285 ), +286 exp.DateStrToDate: lambda self, e: f"CAST(DATE_PARSE({self.sql(e, 'this')}, {Presto.date_format}) AS DATE)", +287 exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Presto.dateint_format}) AS INT)", +288 exp.Decode: _decode_sql, +289 exp.DiToDate: lambda self, e: f"CAST(DATE_PARSE(CAST({self.sql(e, 'this')} AS VARCHAR), {Presto.dateint_format}) AS DATE)", +290 exp.Encode: _encode_sql, +291 exp.FileFormatProperty: lambda self, e: f"FORMAT='{e.name.upper()}'", +292 exp.Group: transforms.preprocess([transforms.unalias_group]), +293 exp.Hex: rename_func("TO_HEX"), +294 exp.If: if_sql, +295 exp.ILike: no_ilike_sql, +296 exp.Initcap: _initcap_sql, +297 exp.Lateral: _explode_to_unnest_sql, +298 exp.Left: left_to_substring_sql, +299 exp.Levenshtein: rename_func("LEVENSHTEIN_DISTANCE"), +300 exp.LogicalAnd: rename_func("BOOL_AND"), +301 exp.LogicalOr: rename_func("BOOL_OR"), +302 exp.Pivot: no_pivot_sql, +303 exp.Quantile: _quantile_sql, +304 exp.Right: right_to_substring_sql, +305 exp.SafeDivide: no_safe_divide_sql, +306 exp.Schema: _schema_sql, +307 exp.Select: transforms.preprocess( +308 [ +309 transforms.eliminate_qualify, +310 transforms.eliminate_distinct_on, +311 transforms.explode_to_unnest, +312 ] +313 ), +314 exp.SortArray: _no_sort_array, +315 exp.StrPosition: rename_func("STRPOS"), +316 exp.StrToDate: lambda self, e: f"CAST({_str_to_time_sql(self, e)} AS DATE)", +317 exp.StrToTime: _str_to_time_sql, +318 exp.StrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {self.format_time(e)}))", +319 exp.StructExtract: struct_extract_sql, +320 exp.Table: transforms.preprocess([_unnest_sequence]), +321 exp.TimestampTrunc: timestamptrunc_sql, +322 exp.TimeStrToDate: timestrtotime_sql, +323 exp.TimeStrToTime: timestrtotime_sql, +324 exp.TimeStrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {Presto.time_format}))", +325 exp.TimeToStr: lambda self, e: f"DATE_FORMAT({self.sql(e, 'this')}, {self.format_time(e)})", +326 exp.TimeToUnix: rename_func("TO_UNIXTIME"), +327 exp.TryCast: transforms.preprocess([transforms.epoch_cast_to_ts]), +328 exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS VARCHAR), '-', ''), 1, 8) AS INT)", +329 exp.TsOrDsAdd: _ts_or_ds_add_sql, +330 exp.TsOrDsToDate: _ts_or_ds_to_date_sql, +331 exp.Unhex: rename_func("FROM_HEX"), +332 exp.UnixToStr: lambda self, e: f"DATE_FORMAT(FROM_UNIXTIME({self.sql(e, 'this')}), {self.format_time(e)})", +333 exp.UnixToTime: rename_func("FROM_UNIXTIME"), +334 exp.UnixToTimeStr: lambda self, e: f"CAST(FROM_UNIXTIME({self.sql(e, 'this')}) AS VARCHAR)", +335 exp.VariancePop: rename_func("VAR_POP"), +336 exp.With: transforms.preprocess([transforms.add_recursive_cte_column_names]), +337 exp.WithinGroup: transforms.preprocess( +338 [transforms.remove_within_group_for_percentiles] +339 ), +340 } 341 -342 def transaction_sql(self, expression: exp.Transaction) -> str: -343 modes = expression.args.get("modes") -344 modes = f" {', '.join(modes)}" if modes else "" -345 return f"START TRANSACTION{modes}" -346 -347 def generateseries_sql(self, expression: exp.GenerateSeries) -> str: -348 start = expression.args["start"] -349 end = expression.args["end"] -350 step = expression.args.get("step") -351 -352 if isinstance(start, exp.Cast): -353 target_type = start.to -354 elif isinstance(end, exp.Cast): -355 target_type = end.to -356 else: -357 target_type = None -358 -359 if target_type and target_type.is_type(exp.DataType.Type.TIMESTAMP): -360 to = target_type.copy() -361 -362 if target_type is start.to: -363 end = exp.Cast(this=end, to=to) -364 else: -365 start = exp.Cast(this=start, to=to) -366 -367 return self.func("SEQUENCE", start, end, step) +342 def interval_sql(self, expression: exp.Interval) -> str: +343 unit = self.sql(expression, "unit") +344 if expression.this and unit.lower().startswith("week"): +345 return f"({expression.this.name} * INTERVAL '7' day)" +346 return super().interval_sql(expression) +347 +348 def transaction_sql(self, expression: exp.Transaction) -> str: +349 modes = expression.args.get("modes") +350 modes = f" {', '.join(modes)}" if modes else "" +351 return f"START TRANSACTION{modes}" +352 +353 def generateseries_sql(self, expression: exp.GenerateSeries) -> str: +354 start = expression.args["start"] +355 end = expression.args["end"] +356 step = expression.args.get("step") +357 +358 if isinstance(start, exp.Cast): +359 target_type = start.to +360 elif isinstance(end, exp.Cast): +361 target_type = end.to +362 else: +363 target_type = None +364 +365 if target_type and target_type.is_type("timestamp"): +366 to = target_type.copy() +367 +368 if target_type is start.to: +369 end = exp.Cast(this=end, to=to) +370 else: +371 start = exp.Cast(this=start, to=to) +372 +373 return self.func("SEQUENCE", start, end, step) @@ -468,190 +474,194 @@ -
          185class Presto(Dialect):
          -186    index_offset = 1
          -187    null_ordering = "nulls_are_last"
          -188    time_format = MySQL.time_format
          -189    time_mapping = MySQL.time_mapping
          -190
          -191    class Tokenizer(tokens.Tokenizer):
          -192        KEYWORDS = {
          -193            **tokens.Tokenizer.KEYWORDS,
          -194            "START": TokenType.BEGIN,
          -195            "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE,
          -196            "ROW": TokenType.STRUCT,
          -197        }
          -198
          -199    class Parser(parser.Parser):
          -200        FUNCTIONS = {
          -201            **parser.Parser.FUNCTIONS,
          -202            "APPROX_DISTINCT": exp.ApproxDistinct.from_arg_list,
          -203            "APPROX_PERCENTILE": _approx_percentile,
          -204            "CARDINALITY": exp.ArraySize.from_arg_list,
          -205            "CONTAINS": exp.ArrayContains.from_arg_list,
          -206            "DATE_ADD": lambda args: exp.DateAdd(
          -207                this=seq_get(args, 2),
          -208                expression=seq_get(args, 1),
          -209                unit=seq_get(args, 0),
          -210            ),
          -211            "DATE_DIFF": lambda args: exp.DateDiff(
          -212                this=seq_get(args, 2),
          -213                expression=seq_get(args, 1),
          -214                unit=seq_get(args, 0),
          -215            ),
          -216            "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "presto"),
          -217            "DATE_PARSE": format_time_lambda(exp.StrToTime, "presto"),
          -218            "DATE_TRUNC": date_trunc_to_time,
          -219            "FROM_HEX": exp.Unhex.from_arg_list,
          -220            "FROM_UNIXTIME": _from_unixtime,
          -221            "FROM_UTF8": lambda args: exp.Decode(
          -222                this=seq_get(args, 0), replace=seq_get(args, 1), charset=exp.Literal.string("utf-8")
          -223            ),
          -224            "NOW": exp.CurrentTimestamp.from_arg_list,
          -225            "SEQUENCE": exp.GenerateSeries.from_arg_list,
          -226            "STRPOS": lambda args: exp.StrPosition(
          -227                this=seq_get(args, 0),
          -228                substr=seq_get(args, 1),
          -229                instance=seq_get(args, 2),
          -230            ),
          -231            "TO_UNIXTIME": exp.TimeToUnix.from_arg_list,
          -232            "TO_HEX": exp.Hex.from_arg_list,
          -233            "TO_UTF8": lambda args: exp.Encode(
          -234                this=seq_get(args, 0), charset=exp.Literal.string("utf-8")
          -235            ),
          -236        }
          -237        FUNCTION_PARSERS = parser.Parser.FUNCTION_PARSERS.copy()
          -238        FUNCTION_PARSERS.pop("TRIM")
          -239
          -240    class Generator(generator.Generator):
          -241        INTERVAL_ALLOWS_PLURAL_FORM = False
          -242        JOIN_HINTS = False
          -243        TABLE_HINTS = False
          -244        STRUCT_DELIMITER = ("(", ")")
          -245
          -246        PROPERTIES_LOCATION = {
          -247            **generator.Generator.PROPERTIES_LOCATION,
          -248            exp.LocationProperty: exp.Properties.Location.UNSUPPORTED,
          -249            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
          -250        }
          -251
          -252        TYPE_MAPPING = {
          -253            **generator.Generator.TYPE_MAPPING,
          -254            exp.DataType.Type.INT: "INTEGER",
          -255            exp.DataType.Type.FLOAT: "REAL",
          -256            exp.DataType.Type.BINARY: "VARBINARY",
          -257            exp.DataType.Type.TEXT: "VARCHAR",
          -258            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
          -259            exp.DataType.Type.STRUCT: "ROW",
          -260        }
          -261
          -262        TRANSFORMS = {
          -263            **generator.Generator.TRANSFORMS,
          -264            exp.ApproxDistinct: _approx_distinct_sql,
          -265            exp.ApproxQuantile: rename_func("APPROX_PERCENTILE"),
          -266            exp.Array: lambda self, e: f"ARRAY[{self.expressions(e, flat=True)}]",
          -267            exp.ArrayConcat: rename_func("CONCAT"),
          -268            exp.ArrayContains: rename_func("CONTAINS"),
          -269            exp.ArraySize: rename_func("CARDINALITY"),
          -270            exp.BitwiseAnd: lambda self, e: f"BITWISE_AND({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -271            exp.BitwiseLeftShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_LEFT({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -272            exp.BitwiseNot: lambda self, e: f"BITWISE_NOT({self.sql(e, 'this')})",
          -273            exp.BitwiseOr: lambda self, e: f"BITWISE_OR({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -274            exp.BitwiseRightShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_RIGHT({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -275            exp.BitwiseXor: lambda self, e: f"BITWISE_XOR({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -276            exp.CurrentTimestamp: lambda *_: "CURRENT_TIMESTAMP",
          -277            exp.DataType: _datatype_sql,
          -278            exp.DateAdd: lambda self, e: self.func(
          -279                "DATE_ADD", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this
          -280            ),
          -281            exp.DateDiff: lambda self, e: self.func(
          -282                "DATE_DIFF", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this
          +            
          187class Presto(Dialect):
          +188    index_offset = 1
          +189    null_ordering = "nulls_are_last"
          +190    time_format = MySQL.time_format
          +191    time_mapping = MySQL.time_mapping
          +192
          +193    class Tokenizer(tokens.Tokenizer):
          +194        KEYWORDS = {
          +195            **tokens.Tokenizer.KEYWORDS,
          +196            "START": TokenType.BEGIN,
          +197            "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE,
          +198            "ROW": TokenType.STRUCT,
          +199        }
          +200
          +201    class Parser(parser.Parser):
          +202        FUNCTIONS = {
          +203            **parser.Parser.FUNCTIONS,
          +204            "APPROX_DISTINCT": exp.ApproxDistinct.from_arg_list,
          +205            "APPROX_PERCENTILE": _approx_percentile,
          +206            "CARDINALITY": exp.ArraySize.from_arg_list,
          +207            "CONTAINS": exp.ArrayContains.from_arg_list,
          +208            "DATE_ADD": lambda args: exp.DateAdd(
          +209                this=seq_get(args, 2),
          +210                expression=seq_get(args, 1),
          +211                unit=seq_get(args, 0),
          +212            ),
          +213            "DATE_DIFF": lambda args: exp.DateDiff(
          +214                this=seq_get(args, 2),
          +215                expression=seq_get(args, 1),
          +216                unit=seq_get(args, 0),
          +217            ),
          +218            "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "presto"),
          +219            "DATE_PARSE": format_time_lambda(exp.StrToTime, "presto"),
          +220            "DATE_TRUNC": date_trunc_to_time,
          +221            "FROM_HEX": exp.Unhex.from_arg_list,
          +222            "FROM_UNIXTIME": _from_unixtime,
          +223            "FROM_UTF8": lambda args: exp.Decode(
          +224                this=seq_get(args, 0), replace=seq_get(args, 1), charset=exp.Literal.string("utf-8")
          +225            ),
          +226            "NOW": exp.CurrentTimestamp.from_arg_list,
          +227            "SEQUENCE": exp.GenerateSeries.from_arg_list,
          +228            "STRPOS": lambda args: exp.StrPosition(
          +229                this=seq_get(args, 0),
          +230                substr=seq_get(args, 1),
          +231                instance=seq_get(args, 2),
          +232            ),
          +233            "TO_UNIXTIME": exp.TimeToUnix.from_arg_list,
          +234            "TO_HEX": exp.Hex.from_arg_list,
          +235            "TO_UTF8": lambda args: exp.Encode(
          +236                this=seq_get(args, 0), charset=exp.Literal.string("utf-8")
          +237            ),
          +238        }
          +239        FUNCTION_PARSERS = parser.Parser.FUNCTION_PARSERS.copy()
          +240        FUNCTION_PARSERS.pop("TRIM")
          +241
          +242    class Generator(generator.Generator):
          +243        INTERVAL_ALLOWS_PLURAL_FORM = False
          +244        JOIN_HINTS = False
          +245        TABLE_HINTS = False
          +246        STRUCT_DELIMITER = ("(", ")")
          +247
          +248        PROPERTIES_LOCATION = {
          +249            **generator.Generator.PROPERTIES_LOCATION,
          +250            exp.LocationProperty: exp.Properties.Location.UNSUPPORTED,
          +251            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
          +252        }
          +253
          +254        TYPE_MAPPING = {
          +255            **generator.Generator.TYPE_MAPPING,
          +256            exp.DataType.Type.INT: "INTEGER",
          +257            exp.DataType.Type.FLOAT: "REAL",
          +258            exp.DataType.Type.BINARY: "VARBINARY",
          +259            exp.DataType.Type.TEXT: "VARCHAR",
          +260            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
          +261            exp.DataType.Type.STRUCT: "ROW",
          +262        }
          +263
          +264        TRANSFORMS = {
          +265            **generator.Generator.TRANSFORMS,
          +266            exp.ApproxDistinct: _approx_distinct_sql,
          +267            exp.ApproxQuantile: rename_func("APPROX_PERCENTILE"),
          +268            exp.Array: lambda self, e: f"ARRAY[{self.expressions(e, flat=True)}]",
          +269            exp.ArrayConcat: rename_func("CONCAT"),
          +270            exp.ArrayContains: rename_func("CONTAINS"),
          +271            exp.ArraySize: rename_func("CARDINALITY"),
          +272            exp.BitwiseAnd: lambda self, e: f"BITWISE_AND({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +273            exp.BitwiseLeftShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_LEFT({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +274            exp.BitwiseNot: lambda self, e: f"BITWISE_NOT({self.sql(e, 'this')})",
          +275            exp.BitwiseOr: lambda self, e: f"BITWISE_OR({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +276            exp.BitwiseRightShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_RIGHT({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +277            exp.BitwiseXor: lambda self, e: f"BITWISE_XOR({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +278            exp.Cast: transforms.preprocess([transforms.epoch_cast_to_ts]),
          +279            exp.CurrentTimestamp: lambda *_: "CURRENT_TIMESTAMP",
          +280            exp.DataType: _datatype_sql,
          +281            exp.DateAdd: lambda self, e: self.func(
          +282                "DATE_ADD", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this
           283            ),
          -284            exp.DateStrToDate: lambda self, e: f"CAST(DATE_PARSE({self.sql(e, 'this')}, {Presto.date_format}) AS DATE)",
          -285            exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Presto.dateint_format}) AS INT)",
          -286            exp.Decode: _decode_sql,
          -287            exp.DiToDate: lambda self, e: f"CAST(DATE_PARSE(CAST({self.sql(e, 'this')} AS VARCHAR), {Presto.dateint_format}) AS DATE)",
          -288            exp.Encode: _encode_sql,
          -289            exp.FileFormatProperty: lambda self, e: f"FORMAT='{e.name.upper()}'",
          -290            exp.Group: transforms.preprocess([transforms.unalias_group]),
          -291            exp.Hex: rename_func("TO_HEX"),
          -292            exp.If: if_sql,
          -293            exp.ILike: no_ilike_sql,
          -294            exp.Initcap: _initcap_sql,
          -295            exp.Lateral: _explode_to_unnest_sql,
          -296            exp.Levenshtein: rename_func("LEVENSHTEIN_DISTANCE"),
          -297            exp.LogicalAnd: rename_func("BOOL_AND"),
          -298            exp.LogicalOr: rename_func("BOOL_OR"),
          -299            exp.Pivot: no_pivot_sql,
          -300            exp.Quantile: _quantile_sql,
          -301            exp.SafeDivide: no_safe_divide_sql,
          -302            exp.Schema: _schema_sql,
          -303            exp.Select: transforms.preprocess(
          -304                [
          -305                    transforms.eliminate_qualify,
          -306                    transforms.eliminate_distinct_on,
          -307                    transforms.explode_to_unnest,
          -308                ]
          -309            ),
          -310            exp.SortArray: _no_sort_array,
          -311            exp.StrPosition: rename_func("STRPOS"),
          -312            exp.StrToDate: lambda self, e: f"CAST({_str_to_time_sql(self, e)} AS DATE)",
          -313            exp.StrToTime: _str_to_time_sql,
          -314            exp.StrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {self.format_time(e)}))",
          -315            exp.StructExtract: struct_extract_sql,
          -316            exp.Table: transforms.preprocess([_unnest_sequence]),
          -317            exp.TimestampTrunc: timestamptrunc_sql,
          -318            exp.TimeStrToDate: timestrtotime_sql,
          -319            exp.TimeStrToTime: timestrtotime_sql,
          -320            exp.TimeStrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {Presto.time_format}))",
          -321            exp.TimeToStr: lambda self, e: f"DATE_FORMAT({self.sql(e, 'this')}, {self.format_time(e)})",
          -322            exp.TimeToUnix: rename_func("TO_UNIXTIME"),
          -323            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS VARCHAR), '-', ''), 1, 8) AS INT)",
          -324            exp.TsOrDsAdd: _ts_or_ds_add_sql,
          -325            exp.TsOrDsToDate: _ts_or_ds_to_date_sql,
          -326            exp.Unhex: rename_func("FROM_HEX"),
          -327            exp.UnixToStr: lambda self, e: f"DATE_FORMAT(FROM_UNIXTIME({self.sql(e, 'this')}), {self.format_time(e)})",
          -328            exp.UnixToTime: rename_func("FROM_UNIXTIME"),
          -329            exp.UnixToTimeStr: lambda self, e: f"CAST(FROM_UNIXTIME({self.sql(e, 'this')}) AS VARCHAR)",
          -330            exp.VariancePop: rename_func("VAR_POP"),
          -331            exp.With: transforms.preprocess([transforms.add_recursive_cte_column_names]),
          -332            exp.WithinGroup: transforms.preprocess(
          -333                [transforms.remove_within_group_for_percentiles]
          -334            ),
          -335        }
          -336
          -337        def interval_sql(self, expression: exp.Interval) -> str:
          -338            unit = self.sql(expression, "unit")
          -339            if expression.this and unit.lower().startswith("week"):
          -340                return f"({expression.this.name} * INTERVAL '7' day)"
          -341            return super().interval_sql(expression)
          +284            exp.DateDiff: lambda self, e: self.func(
          +285                "DATE_DIFF", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this
          +286            ),
          +287            exp.DateStrToDate: lambda self, e: f"CAST(DATE_PARSE({self.sql(e, 'this')}, {Presto.date_format}) AS DATE)",
          +288            exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Presto.dateint_format}) AS INT)",
          +289            exp.Decode: _decode_sql,
          +290            exp.DiToDate: lambda self, e: f"CAST(DATE_PARSE(CAST({self.sql(e, 'this')} AS VARCHAR), {Presto.dateint_format}) AS DATE)",
          +291            exp.Encode: _encode_sql,
          +292            exp.FileFormatProperty: lambda self, e: f"FORMAT='{e.name.upper()}'",
          +293            exp.Group: transforms.preprocess([transforms.unalias_group]),
          +294            exp.Hex: rename_func("TO_HEX"),
          +295            exp.If: if_sql,
          +296            exp.ILike: no_ilike_sql,
          +297            exp.Initcap: _initcap_sql,
          +298            exp.Lateral: _explode_to_unnest_sql,
          +299            exp.Left: left_to_substring_sql,
          +300            exp.Levenshtein: rename_func("LEVENSHTEIN_DISTANCE"),
          +301            exp.LogicalAnd: rename_func("BOOL_AND"),
          +302            exp.LogicalOr: rename_func("BOOL_OR"),
          +303            exp.Pivot: no_pivot_sql,
          +304            exp.Quantile: _quantile_sql,
          +305            exp.Right: right_to_substring_sql,
          +306            exp.SafeDivide: no_safe_divide_sql,
          +307            exp.Schema: _schema_sql,
          +308            exp.Select: transforms.preprocess(
          +309                [
          +310                    transforms.eliminate_qualify,
          +311                    transforms.eliminate_distinct_on,
          +312                    transforms.explode_to_unnest,
          +313                ]
          +314            ),
          +315            exp.SortArray: _no_sort_array,
          +316            exp.StrPosition: rename_func("STRPOS"),
          +317            exp.StrToDate: lambda self, e: f"CAST({_str_to_time_sql(self, e)} AS DATE)",
          +318            exp.StrToTime: _str_to_time_sql,
          +319            exp.StrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {self.format_time(e)}))",
          +320            exp.StructExtract: struct_extract_sql,
          +321            exp.Table: transforms.preprocess([_unnest_sequence]),
          +322            exp.TimestampTrunc: timestamptrunc_sql,
          +323            exp.TimeStrToDate: timestrtotime_sql,
          +324            exp.TimeStrToTime: timestrtotime_sql,
          +325            exp.TimeStrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {Presto.time_format}))",
          +326            exp.TimeToStr: lambda self, e: f"DATE_FORMAT({self.sql(e, 'this')}, {self.format_time(e)})",
          +327            exp.TimeToUnix: rename_func("TO_UNIXTIME"),
          +328            exp.TryCast: transforms.preprocess([transforms.epoch_cast_to_ts]),
          +329            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS VARCHAR), '-', ''), 1, 8) AS INT)",
          +330            exp.TsOrDsAdd: _ts_or_ds_add_sql,
          +331            exp.TsOrDsToDate: _ts_or_ds_to_date_sql,
          +332            exp.Unhex: rename_func("FROM_HEX"),
          +333            exp.UnixToStr: lambda self, e: f"DATE_FORMAT(FROM_UNIXTIME({self.sql(e, 'this')}), {self.format_time(e)})",
          +334            exp.UnixToTime: rename_func("FROM_UNIXTIME"),
          +335            exp.UnixToTimeStr: lambda self, e: f"CAST(FROM_UNIXTIME({self.sql(e, 'this')}) AS VARCHAR)",
          +336            exp.VariancePop: rename_func("VAR_POP"),
          +337            exp.With: transforms.preprocess([transforms.add_recursive_cte_column_names]),
          +338            exp.WithinGroup: transforms.preprocess(
          +339                [transforms.remove_within_group_for_percentiles]
          +340            ),
          +341        }
           342
          -343        def transaction_sql(self, expression: exp.Transaction) -> str:
          -344            modes = expression.args.get("modes")
          -345            modes = f" {', '.join(modes)}" if modes else ""
          -346            return f"START TRANSACTION{modes}"
          -347
          -348        def generateseries_sql(self, expression: exp.GenerateSeries) -> str:
          -349            start = expression.args["start"]
          -350            end = expression.args["end"]
          -351            step = expression.args.get("step")
          -352
          -353            if isinstance(start, exp.Cast):
          -354                target_type = start.to
          -355            elif isinstance(end, exp.Cast):
          -356                target_type = end.to
          -357            else:
          -358                target_type = None
          -359
          -360            if target_type and target_type.is_type(exp.DataType.Type.TIMESTAMP):
          -361                to = target_type.copy()
          -362
          -363                if target_type is start.to:
          -364                    end = exp.Cast(this=end, to=to)
          -365                else:
          -366                    start = exp.Cast(this=start, to=to)
          -367
          -368            return self.func("SEQUENCE", start, end, step)
          +343        def interval_sql(self, expression: exp.Interval) -> str:
          +344            unit = self.sql(expression, "unit")
          +345            if expression.this and unit.lower().startswith("week"):
          +346                return f"({expression.this.name} * INTERVAL '7' day)"
          +347            return super().interval_sql(expression)
          +348
          +349        def transaction_sql(self, expression: exp.Transaction) -> str:
          +350            modes = expression.args.get("modes")
          +351            modes = f" {', '.join(modes)}" if modes else ""
          +352            return f"START TRANSACTION{modes}"
          +353
          +354        def generateseries_sql(self, expression: exp.GenerateSeries) -> str:
          +355            start = expression.args["start"]
          +356            end = expression.args["end"]
          +357            step = expression.args.get("step")
          +358
          +359            if isinstance(start, exp.Cast):
          +360                target_type = start.to
          +361            elif isinstance(end, exp.Cast):
          +362                target_type = end.to
          +363            else:
          +364                target_type = None
          +365
          +366            if target_type and target_type.is_type("timestamp"):
          +367                to = target_type.copy()
          +368
          +369                if target_type is start.to:
          +370                    end = exp.Cast(this=end, to=to)
          +371                else:
          +372                    start = exp.Cast(this=start, to=to)
          +373
          +374            return self.func("SEQUENCE", start, end, step)
           
          @@ -686,13 +696,13 @@
          -
          191    class Tokenizer(tokens.Tokenizer):
          -192        KEYWORDS = {
          -193            **tokens.Tokenizer.KEYWORDS,
          -194            "START": TokenType.BEGIN,
          -195            "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE,
          -196            "ROW": TokenType.STRUCT,
          -197        }
          +            
          193    class Tokenizer(tokens.Tokenizer):
          +194        KEYWORDS = {
          +195            **tokens.Tokenizer.KEYWORDS,
          +196            "START": TokenType.BEGIN,
          +197            "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE,
          +198            "ROW": TokenType.STRUCT,
          +199        }
           
          @@ -720,46 +730,46 @@
          -
          199    class Parser(parser.Parser):
          -200        FUNCTIONS = {
          -201            **parser.Parser.FUNCTIONS,
          -202            "APPROX_DISTINCT": exp.ApproxDistinct.from_arg_list,
          -203            "APPROX_PERCENTILE": _approx_percentile,
          -204            "CARDINALITY": exp.ArraySize.from_arg_list,
          -205            "CONTAINS": exp.ArrayContains.from_arg_list,
          -206            "DATE_ADD": lambda args: exp.DateAdd(
          -207                this=seq_get(args, 2),
          -208                expression=seq_get(args, 1),
          -209                unit=seq_get(args, 0),
          -210            ),
          -211            "DATE_DIFF": lambda args: exp.DateDiff(
          -212                this=seq_get(args, 2),
          -213                expression=seq_get(args, 1),
          -214                unit=seq_get(args, 0),
          -215            ),
          -216            "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "presto"),
          -217            "DATE_PARSE": format_time_lambda(exp.StrToTime, "presto"),
          -218            "DATE_TRUNC": date_trunc_to_time,
          -219            "FROM_HEX": exp.Unhex.from_arg_list,
          -220            "FROM_UNIXTIME": _from_unixtime,
          -221            "FROM_UTF8": lambda args: exp.Decode(
          -222                this=seq_get(args, 0), replace=seq_get(args, 1), charset=exp.Literal.string("utf-8")
          -223            ),
          -224            "NOW": exp.CurrentTimestamp.from_arg_list,
          -225            "SEQUENCE": exp.GenerateSeries.from_arg_list,
          -226            "STRPOS": lambda args: exp.StrPosition(
          -227                this=seq_get(args, 0),
          -228                substr=seq_get(args, 1),
          -229                instance=seq_get(args, 2),
          -230            ),
          -231            "TO_UNIXTIME": exp.TimeToUnix.from_arg_list,
          -232            "TO_HEX": exp.Hex.from_arg_list,
          -233            "TO_UTF8": lambda args: exp.Encode(
          -234                this=seq_get(args, 0), charset=exp.Literal.string("utf-8")
          -235            ),
          -236        }
          -237        FUNCTION_PARSERS = parser.Parser.FUNCTION_PARSERS.copy()
          -238        FUNCTION_PARSERS.pop("TRIM")
          +            
          201    class Parser(parser.Parser):
          +202        FUNCTIONS = {
          +203            **parser.Parser.FUNCTIONS,
          +204            "APPROX_DISTINCT": exp.ApproxDistinct.from_arg_list,
          +205            "APPROX_PERCENTILE": _approx_percentile,
          +206            "CARDINALITY": exp.ArraySize.from_arg_list,
          +207            "CONTAINS": exp.ArrayContains.from_arg_list,
          +208            "DATE_ADD": lambda args: exp.DateAdd(
          +209                this=seq_get(args, 2),
          +210                expression=seq_get(args, 1),
          +211                unit=seq_get(args, 0),
          +212            ),
          +213            "DATE_DIFF": lambda args: exp.DateDiff(
          +214                this=seq_get(args, 2),
          +215                expression=seq_get(args, 1),
          +216                unit=seq_get(args, 0),
          +217            ),
          +218            "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "presto"),
          +219            "DATE_PARSE": format_time_lambda(exp.StrToTime, "presto"),
          +220            "DATE_TRUNC": date_trunc_to_time,
          +221            "FROM_HEX": exp.Unhex.from_arg_list,
          +222            "FROM_UNIXTIME": _from_unixtime,
          +223            "FROM_UTF8": lambda args: exp.Decode(
          +224                this=seq_get(args, 0), replace=seq_get(args, 1), charset=exp.Literal.string("utf-8")
          +225            ),
          +226            "NOW": exp.CurrentTimestamp.from_arg_list,
          +227            "SEQUENCE": exp.GenerateSeries.from_arg_list,
          +228            "STRPOS": lambda args: exp.StrPosition(
          +229                this=seq_get(args, 0),
          +230                substr=seq_get(args, 1),
          +231                instance=seq_get(args, 2),
          +232            ),
          +233            "TO_UNIXTIME": exp.TimeToUnix.from_arg_list,
          +234            "TO_HEX": exp.Hex.from_arg_list,
          +235            "TO_UTF8": lambda args: exp.Encode(
          +236                this=seq_get(args, 0), charset=exp.Literal.string("utf-8")
          +237            ),
          +238        }
          +239        FUNCTION_PARSERS = parser.Parser.FUNCTION_PARSERS.copy()
          +240        FUNCTION_PARSERS.pop("TRIM")
           
          @@ -770,7 +780,7 @@ a parsed syntax tree.

          • error_level: the desired error level. -Default: ErrorLevel.RAISE
          • +Default: ErrorLevel.IMMEDIATE
          • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
          • @@ -816,135 +826,139 @@ Default: "nulls_are_small"
          -
          240    class Generator(generator.Generator):
          -241        INTERVAL_ALLOWS_PLURAL_FORM = False
          -242        JOIN_HINTS = False
          -243        TABLE_HINTS = False
          -244        STRUCT_DELIMITER = ("(", ")")
          -245
          -246        PROPERTIES_LOCATION = {
          -247            **generator.Generator.PROPERTIES_LOCATION,
          -248            exp.LocationProperty: exp.Properties.Location.UNSUPPORTED,
          -249            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
          -250        }
          -251
          -252        TYPE_MAPPING = {
          -253            **generator.Generator.TYPE_MAPPING,
          -254            exp.DataType.Type.INT: "INTEGER",
          -255            exp.DataType.Type.FLOAT: "REAL",
          -256            exp.DataType.Type.BINARY: "VARBINARY",
          -257            exp.DataType.Type.TEXT: "VARCHAR",
          -258            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
          -259            exp.DataType.Type.STRUCT: "ROW",
          -260        }
          -261
          -262        TRANSFORMS = {
          -263            **generator.Generator.TRANSFORMS,
          -264            exp.ApproxDistinct: _approx_distinct_sql,
          -265            exp.ApproxQuantile: rename_func("APPROX_PERCENTILE"),
          -266            exp.Array: lambda self, e: f"ARRAY[{self.expressions(e, flat=True)}]",
          -267            exp.ArrayConcat: rename_func("CONCAT"),
          -268            exp.ArrayContains: rename_func("CONTAINS"),
          -269            exp.ArraySize: rename_func("CARDINALITY"),
          -270            exp.BitwiseAnd: lambda self, e: f"BITWISE_AND({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -271            exp.BitwiseLeftShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_LEFT({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -272            exp.BitwiseNot: lambda self, e: f"BITWISE_NOT({self.sql(e, 'this')})",
          -273            exp.BitwiseOr: lambda self, e: f"BITWISE_OR({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -274            exp.BitwiseRightShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_RIGHT({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -275            exp.BitwiseXor: lambda self, e: f"BITWISE_XOR({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          -276            exp.CurrentTimestamp: lambda *_: "CURRENT_TIMESTAMP",
          -277            exp.DataType: _datatype_sql,
          -278            exp.DateAdd: lambda self, e: self.func(
          -279                "DATE_ADD", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this
          -280            ),
          -281            exp.DateDiff: lambda self, e: self.func(
          -282                "DATE_DIFF", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this
          +            
          242    class Generator(generator.Generator):
          +243        INTERVAL_ALLOWS_PLURAL_FORM = False
          +244        JOIN_HINTS = False
          +245        TABLE_HINTS = False
          +246        STRUCT_DELIMITER = ("(", ")")
          +247
          +248        PROPERTIES_LOCATION = {
          +249            **generator.Generator.PROPERTIES_LOCATION,
          +250            exp.LocationProperty: exp.Properties.Location.UNSUPPORTED,
          +251            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
          +252        }
          +253
          +254        TYPE_MAPPING = {
          +255            **generator.Generator.TYPE_MAPPING,
          +256            exp.DataType.Type.INT: "INTEGER",
          +257            exp.DataType.Type.FLOAT: "REAL",
          +258            exp.DataType.Type.BINARY: "VARBINARY",
          +259            exp.DataType.Type.TEXT: "VARCHAR",
          +260            exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP",
          +261            exp.DataType.Type.STRUCT: "ROW",
          +262        }
          +263
          +264        TRANSFORMS = {
          +265            **generator.Generator.TRANSFORMS,
          +266            exp.ApproxDistinct: _approx_distinct_sql,
          +267            exp.ApproxQuantile: rename_func("APPROX_PERCENTILE"),
          +268            exp.Array: lambda self, e: f"ARRAY[{self.expressions(e, flat=True)}]",
          +269            exp.ArrayConcat: rename_func("CONCAT"),
          +270            exp.ArrayContains: rename_func("CONTAINS"),
          +271            exp.ArraySize: rename_func("CARDINALITY"),
          +272            exp.BitwiseAnd: lambda self, e: f"BITWISE_AND({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +273            exp.BitwiseLeftShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_LEFT({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +274            exp.BitwiseNot: lambda self, e: f"BITWISE_NOT({self.sql(e, 'this')})",
          +275            exp.BitwiseOr: lambda self, e: f"BITWISE_OR({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +276            exp.BitwiseRightShift: lambda self, e: f"BITWISE_ARITHMETIC_SHIFT_RIGHT({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +277            exp.BitwiseXor: lambda self, e: f"BITWISE_XOR({self.sql(e, 'this')}, {self.sql(e, 'expression')})",
          +278            exp.Cast: transforms.preprocess([transforms.epoch_cast_to_ts]),
          +279            exp.CurrentTimestamp: lambda *_: "CURRENT_TIMESTAMP",
          +280            exp.DataType: _datatype_sql,
          +281            exp.DateAdd: lambda self, e: self.func(
          +282                "DATE_ADD", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this
           283            ),
          -284            exp.DateStrToDate: lambda self, e: f"CAST(DATE_PARSE({self.sql(e, 'this')}, {Presto.date_format}) AS DATE)",
          -285            exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Presto.dateint_format}) AS INT)",
          -286            exp.Decode: _decode_sql,
          -287            exp.DiToDate: lambda self, e: f"CAST(DATE_PARSE(CAST({self.sql(e, 'this')} AS VARCHAR), {Presto.dateint_format}) AS DATE)",
          -288            exp.Encode: _encode_sql,
          -289            exp.FileFormatProperty: lambda self, e: f"FORMAT='{e.name.upper()}'",
          -290            exp.Group: transforms.preprocess([transforms.unalias_group]),
          -291            exp.Hex: rename_func("TO_HEX"),
          -292            exp.If: if_sql,
          -293            exp.ILike: no_ilike_sql,
          -294            exp.Initcap: _initcap_sql,
          -295            exp.Lateral: _explode_to_unnest_sql,
          -296            exp.Levenshtein: rename_func("LEVENSHTEIN_DISTANCE"),
          -297            exp.LogicalAnd: rename_func("BOOL_AND"),
          -298            exp.LogicalOr: rename_func("BOOL_OR"),
          -299            exp.Pivot: no_pivot_sql,
          -300            exp.Quantile: _quantile_sql,
          -301            exp.SafeDivide: no_safe_divide_sql,
          -302            exp.Schema: _schema_sql,
          -303            exp.Select: transforms.preprocess(
          -304                [
          -305                    transforms.eliminate_qualify,
          -306                    transforms.eliminate_distinct_on,
          -307                    transforms.explode_to_unnest,
          -308                ]
          -309            ),
          -310            exp.SortArray: _no_sort_array,
          -311            exp.StrPosition: rename_func("STRPOS"),
          -312            exp.StrToDate: lambda self, e: f"CAST({_str_to_time_sql(self, e)} AS DATE)",
          -313            exp.StrToTime: _str_to_time_sql,
          -314            exp.StrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {self.format_time(e)}))",
          -315            exp.StructExtract: struct_extract_sql,
          -316            exp.Table: transforms.preprocess([_unnest_sequence]),
          -317            exp.TimestampTrunc: timestamptrunc_sql,
          -318            exp.TimeStrToDate: timestrtotime_sql,
          -319            exp.TimeStrToTime: timestrtotime_sql,
          -320            exp.TimeStrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {Presto.time_format}))",
          -321            exp.TimeToStr: lambda self, e: f"DATE_FORMAT({self.sql(e, 'this')}, {self.format_time(e)})",
          -322            exp.TimeToUnix: rename_func("TO_UNIXTIME"),
          -323            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS VARCHAR), '-', ''), 1, 8) AS INT)",
          -324            exp.TsOrDsAdd: _ts_or_ds_add_sql,
          -325            exp.TsOrDsToDate: _ts_or_ds_to_date_sql,
          -326            exp.Unhex: rename_func("FROM_HEX"),
          -327            exp.UnixToStr: lambda self, e: f"DATE_FORMAT(FROM_UNIXTIME({self.sql(e, 'this')}), {self.format_time(e)})",
          -328            exp.UnixToTime: rename_func("FROM_UNIXTIME"),
          -329            exp.UnixToTimeStr: lambda self, e: f"CAST(FROM_UNIXTIME({self.sql(e, 'this')}) AS VARCHAR)",
          -330            exp.VariancePop: rename_func("VAR_POP"),
          -331            exp.With: transforms.preprocess([transforms.add_recursive_cte_column_names]),
          -332            exp.WithinGroup: transforms.preprocess(
          -333                [transforms.remove_within_group_for_percentiles]
          -334            ),
          -335        }
          -336
          -337        def interval_sql(self, expression: exp.Interval) -> str:
          -338            unit = self.sql(expression, "unit")
          -339            if expression.this and unit.lower().startswith("week"):
          -340                return f"({expression.this.name} * INTERVAL '7' day)"
          -341            return super().interval_sql(expression)
          +284            exp.DateDiff: lambda self, e: self.func(
          +285                "DATE_DIFF", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this
          +286            ),
          +287            exp.DateStrToDate: lambda self, e: f"CAST(DATE_PARSE({self.sql(e, 'this')}, {Presto.date_format}) AS DATE)",
          +288            exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Presto.dateint_format}) AS INT)",
          +289            exp.Decode: _decode_sql,
          +290            exp.DiToDate: lambda self, e: f"CAST(DATE_PARSE(CAST({self.sql(e, 'this')} AS VARCHAR), {Presto.dateint_format}) AS DATE)",
          +291            exp.Encode: _encode_sql,
          +292            exp.FileFormatProperty: lambda self, e: f"FORMAT='{e.name.upper()}'",
          +293            exp.Group: transforms.preprocess([transforms.unalias_group]),
          +294            exp.Hex: rename_func("TO_HEX"),
          +295            exp.If: if_sql,
          +296            exp.ILike: no_ilike_sql,
          +297            exp.Initcap: _initcap_sql,
          +298            exp.Lateral: _explode_to_unnest_sql,
          +299            exp.Left: left_to_substring_sql,
          +300            exp.Levenshtein: rename_func("LEVENSHTEIN_DISTANCE"),
          +301            exp.LogicalAnd: rename_func("BOOL_AND"),
          +302            exp.LogicalOr: rename_func("BOOL_OR"),
          +303            exp.Pivot: no_pivot_sql,
          +304            exp.Quantile: _quantile_sql,
          +305            exp.Right: right_to_substring_sql,
          +306            exp.SafeDivide: no_safe_divide_sql,
          +307            exp.Schema: _schema_sql,
          +308            exp.Select: transforms.preprocess(
          +309                [
          +310                    transforms.eliminate_qualify,
          +311                    transforms.eliminate_distinct_on,
          +312                    transforms.explode_to_unnest,
          +313                ]
          +314            ),
          +315            exp.SortArray: _no_sort_array,
          +316            exp.StrPosition: rename_func("STRPOS"),
          +317            exp.StrToDate: lambda self, e: f"CAST({_str_to_time_sql(self, e)} AS DATE)",
          +318            exp.StrToTime: _str_to_time_sql,
          +319            exp.StrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {self.format_time(e)}))",
          +320            exp.StructExtract: struct_extract_sql,
          +321            exp.Table: transforms.preprocess([_unnest_sequence]),
          +322            exp.TimestampTrunc: timestamptrunc_sql,
          +323            exp.TimeStrToDate: timestrtotime_sql,
          +324            exp.TimeStrToTime: timestrtotime_sql,
          +325            exp.TimeStrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {Presto.time_format}))",
          +326            exp.TimeToStr: lambda self, e: f"DATE_FORMAT({self.sql(e, 'this')}, {self.format_time(e)})",
          +327            exp.TimeToUnix: rename_func("TO_UNIXTIME"),
          +328            exp.TryCast: transforms.preprocess([transforms.epoch_cast_to_ts]),
          +329            exp.TsOrDiToDi: lambda self, e: f"CAST(SUBSTR(REPLACE(CAST({self.sql(e, 'this')} AS VARCHAR), '-', ''), 1, 8) AS INT)",
          +330            exp.TsOrDsAdd: _ts_or_ds_add_sql,
          +331            exp.TsOrDsToDate: _ts_or_ds_to_date_sql,
          +332            exp.Unhex: rename_func("FROM_HEX"),
          +333            exp.UnixToStr: lambda self, e: f"DATE_FORMAT(FROM_UNIXTIME({self.sql(e, 'this')}), {self.format_time(e)})",
          +334            exp.UnixToTime: rename_func("FROM_UNIXTIME"),
          +335            exp.UnixToTimeStr: lambda self, e: f"CAST(FROM_UNIXTIME({self.sql(e, 'this')}) AS VARCHAR)",
          +336            exp.VariancePop: rename_func("VAR_POP"),
          +337            exp.With: transforms.preprocess([transforms.add_recursive_cte_column_names]),
          +338            exp.WithinGroup: transforms.preprocess(
          +339                [transforms.remove_within_group_for_percentiles]
          +340            ),
          +341        }
           342
          -343        def transaction_sql(self, expression: exp.Transaction) -> str:
          -344            modes = expression.args.get("modes")
          -345            modes = f" {', '.join(modes)}" if modes else ""
          -346            return f"START TRANSACTION{modes}"
          -347
          -348        def generateseries_sql(self, expression: exp.GenerateSeries) -> str:
          -349            start = expression.args["start"]
          -350            end = expression.args["end"]
          -351            step = expression.args.get("step")
          -352
          -353            if isinstance(start, exp.Cast):
          -354                target_type = start.to
          -355            elif isinstance(end, exp.Cast):
          -356                target_type = end.to
          -357            else:
          -358                target_type = None
          -359
          -360            if target_type and target_type.is_type(exp.DataType.Type.TIMESTAMP):
          -361                to = target_type.copy()
          -362
          -363                if target_type is start.to:
          -364                    end = exp.Cast(this=end, to=to)
          -365                else:
          -366                    start = exp.Cast(this=start, to=to)
          -367
          -368            return self.func("SEQUENCE", start, end, step)
          +343        def interval_sql(self, expression: exp.Interval) -> str:
          +344            unit = self.sql(expression, "unit")
          +345            if expression.this and unit.lower().startswith("week"):
          +346                return f"({expression.this.name} * INTERVAL '7' day)"
          +347            return super().interval_sql(expression)
          +348
          +349        def transaction_sql(self, expression: exp.Transaction) -> str:
          +350            modes = expression.args.get("modes")
          +351            modes = f" {', '.join(modes)}" if modes else ""
          +352            return f"START TRANSACTION{modes}"
          +353
          +354        def generateseries_sql(self, expression: exp.GenerateSeries) -> str:
          +355            start = expression.args["start"]
          +356            end = expression.args["end"]
          +357            step = expression.args.get("step")
          +358
          +359            if isinstance(start, exp.Cast):
          +360                target_type = start.to
          +361            elif isinstance(end, exp.Cast):
          +362                target_type = end.to
          +363            else:
          +364                target_type = None
          +365
          +366            if target_type and target_type.is_type("timestamp"):
          +367                to = target_type.copy()
          +368
          +369                if target_type is start.to:
          +370                    end = exp.Cast(this=end, to=to)
          +371                else:
          +372                    start = exp.Cast(this=start, to=to)
          +373
          +374            return self.func("SEQUENCE", start, end, step)
           
          @@ -980,6 +994,8 @@ represents a python time format and the output the target time format Default: "upper"
        • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
        • +
        • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
        • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
        • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1011,11 +1027,11 @@ Default: True
        • -
          337        def interval_sql(self, expression: exp.Interval) -> str:
          -338            unit = self.sql(expression, "unit")
          -339            if expression.this and unit.lower().startswith("week"):
          -340                return f"({expression.this.name} * INTERVAL '7' day)"
          -341            return super().interval_sql(expression)
          +            
          343        def interval_sql(self, expression: exp.Interval) -> str:
          +344            unit = self.sql(expression, "unit")
          +345            if expression.this and unit.lower().startswith("week"):
          +346                return f"({expression.this.name} * INTERVAL '7' day)"
          +347            return super().interval_sql(expression)
           
          @@ -1033,10 +1049,10 @@ Default: True
          -
          343        def transaction_sql(self, expression: exp.Transaction) -> str:
          -344            modes = expression.args.get("modes")
          -345            modes = f" {', '.join(modes)}" if modes else ""
          -346            return f"START TRANSACTION{modes}"
          +            
          349        def transaction_sql(self, expression: exp.Transaction) -> str:
          +350            modes = expression.args.get("modes")
          +351            modes = f" {', '.join(modes)}" if modes else ""
          +352            return f"START TRANSACTION{modes}"
           
          @@ -1054,27 +1070,27 @@ Default: True
          -
          348        def generateseries_sql(self, expression: exp.GenerateSeries) -> str:
          -349            start = expression.args["start"]
          -350            end = expression.args["end"]
          -351            step = expression.args.get("step")
          -352
          -353            if isinstance(start, exp.Cast):
          -354                target_type = start.to
          -355            elif isinstance(end, exp.Cast):
          -356                target_type = end.to
          -357            else:
          -358                target_type = None
          -359
          -360            if target_type and target_type.is_type(exp.DataType.Type.TIMESTAMP):
          -361                to = target_type.copy()
          -362
          -363                if target_type is start.to:
          -364                    end = exp.Cast(this=end, to=to)
          -365                else:
          -366                    start = exp.Cast(this=start, to=to)
          -367
          -368            return self.func("SEQUENCE", start, end, step)
          +            
          354        def generateseries_sql(self, expression: exp.GenerateSeries) -> str:
          +355            start = expression.args["start"]
          +356            end = expression.args["end"]
          +357            step = expression.args.get("step")
          +358
          +359            if isinstance(start, exp.Cast):
          +360                target_type = start.to
          +361            elif isinstance(end, exp.Cast):
          +362                target_type = end.to
          +363            else:
          +364                target_type = None
          +365
          +366            if target_type and target_type.is_type("timestamp"):
          +367                to = target_type.copy()
          +368
          +369                if target_type is start.to:
          +370                    end = exp.Cast(this=end, to=to)
          +371                else:
          +372                    start = exp.Cast(this=start, to=to)
          +373
          +374            return self.func("SEQUENCE", start, end, step)
           
          @@ -1224,7 +1240,6 @@ Default: True
          check_sql
          foreignkey_sql
          primarykey_sql
          -
          unique_sql
          if_sql
          matchagainst_sql
          jsonkeyvalue_sql
          @@ -1315,6 +1330,9 @@ Default: True
          when_sql
          merge_sql
          tochar_sql
          +
          dictproperty_sql
          +
          dictrange_sql
          +
          dictsubproperty_sql
          diff --git a/docs/sqlglot/dialects/redshift.html b/docs/sqlglot/dialects/redshift.html index 53ae41b..9ba45c1 100644 --- a/docs/sqlglot/dialects/redshift.html +++ b/docs/sqlglot/dialects/redshift.html @@ -126,135 +126,137 @@ 38 39 CONVERT_TYPE_FIRST = True 40 - 41 def _parse_types(self, check_func: bool = False) -> t.Optional[exp.Expression]: - 42 this = super()._parse_types(check_func=check_func) - 43 - 44 if ( - 45 isinstance(this, exp.DataType) - 46 and this.this == exp.DataType.Type.VARCHAR - 47 and this.expressions - 48 and this.expressions[0].this == exp.column("MAX") - 49 ): - 50 this.set("expressions", [exp.Var(this="MAX")]) - 51 - 52 return this + 41 def _parse_types( + 42 self, check_func: bool = False, schema: bool = False + 43 ) -> t.Optional[exp.Expression]: + 44 this = super()._parse_types(check_func=check_func, schema=schema) + 45 + 46 if ( + 47 isinstance(this, exp.DataType) + 48 and this.is_type("varchar") + 49 and this.expressions + 50 and this.expressions[0].this == exp.column("MAX") + 51 ): + 52 this.set("expressions", [exp.Var(this="MAX")]) 53 - 54 class Tokenizer(Postgres.Tokenizer): - 55 BIT_STRINGS = [] - 56 HEX_STRINGS = [] - 57 STRING_ESCAPES = ["\\"] - 58 - 59 KEYWORDS = { - 60 **Postgres.Tokenizer.KEYWORDS, - 61 "HLLSKETCH": TokenType.HLLSKETCH, - 62 "SUPER": TokenType.SUPER, - 63 "SYSDATE": TokenType.CURRENT_TIMESTAMP, - 64 "TIME": TokenType.TIMESTAMP, - 65 "TIMETZ": TokenType.TIMESTAMPTZ, - 66 "TOP": TokenType.TOP, - 67 "UNLOAD": TokenType.COMMAND, - 68 "VARBYTE": TokenType.VARBINARY, - 69 } - 70 - 71 # Redshift allows # to appear as a table identifier prefix - 72 SINGLE_TOKENS = Postgres.Tokenizer.SINGLE_TOKENS.copy() - 73 SINGLE_TOKENS.pop("#") - 74 - 75 class Generator(Postgres.Generator): - 76 LOCKING_READS_SUPPORTED = False - 77 RENAME_TABLE_WITH_DB = False - 78 - 79 TYPE_MAPPING = { - 80 **Postgres.Generator.TYPE_MAPPING, - 81 exp.DataType.Type.BINARY: "VARBYTE", - 82 exp.DataType.Type.VARBINARY: "VARBYTE", - 83 exp.DataType.Type.INT: "INTEGER", - 84 } - 85 - 86 PROPERTIES_LOCATION = { - 87 **Postgres.Generator.PROPERTIES_LOCATION, - 88 exp.LikeProperty: exp.Properties.Location.POST_WITH, - 89 } - 90 - 91 TRANSFORMS = { - 92 **Postgres.Generator.TRANSFORMS, - 93 exp.CurrentTimestamp: lambda self, e: "SYSDATE", - 94 exp.DateAdd: lambda self, e: self.func( - 95 "DATEADD", exp.var(e.text("unit") or "day"), e.expression, e.this - 96 ), - 97 exp.DateDiff: lambda self, e: self.func( - 98 "DATEDIFF", exp.var(e.text("unit") or "day"), e.expression, e.this - 99 ), -100 exp.DistKeyProperty: lambda self, e: f"DISTKEY({e.name})", -101 exp.DistStyleProperty: lambda self, e: self.naked_property(e), -102 exp.JSONExtract: _json_sql, -103 exp.JSONExtractScalar: _json_sql, -104 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), -105 exp.SortKeyProperty: lambda self, e: f"{'COMPOUND ' if e.args['compound'] else ''}SORTKEY({self.format_args(*e.this)})", -106 } -107 -108 # Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots -109 TRANSFORMS.pop(exp.Pivot) -110 -111 # Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres) -112 TRANSFORMS.pop(exp.Pow) -113 -114 RESERVED_KEYWORDS = {*Postgres.Generator.RESERVED_KEYWORDS, "snapshot", "type"} + 54 return this + 55 + 56 class Tokenizer(Postgres.Tokenizer): + 57 BIT_STRINGS = [] + 58 HEX_STRINGS = [] + 59 STRING_ESCAPES = ["\\"] + 60 + 61 KEYWORDS = { + 62 **Postgres.Tokenizer.KEYWORDS, + 63 "HLLSKETCH": TokenType.HLLSKETCH, + 64 "SUPER": TokenType.SUPER, + 65 "SYSDATE": TokenType.CURRENT_TIMESTAMP, + 66 "TIME": TokenType.TIMESTAMP, + 67 "TIMETZ": TokenType.TIMESTAMPTZ, + 68 "TOP": TokenType.TOP, + 69 "UNLOAD": TokenType.COMMAND, + 70 "VARBYTE": TokenType.VARBINARY, + 71 } + 72 + 73 # Redshift allows # to appear as a table identifier prefix + 74 SINGLE_TOKENS = Postgres.Tokenizer.SINGLE_TOKENS.copy() + 75 SINGLE_TOKENS.pop("#") + 76 + 77 class Generator(Postgres.Generator): + 78 LOCKING_READS_SUPPORTED = False + 79 RENAME_TABLE_WITH_DB = False + 80 + 81 TYPE_MAPPING = { + 82 **Postgres.Generator.TYPE_MAPPING, + 83 exp.DataType.Type.BINARY: "VARBYTE", + 84 exp.DataType.Type.VARBINARY: "VARBYTE", + 85 exp.DataType.Type.INT: "INTEGER", + 86 } + 87 + 88 PROPERTIES_LOCATION = { + 89 **Postgres.Generator.PROPERTIES_LOCATION, + 90 exp.LikeProperty: exp.Properties.Location.POST_WITH, + 91 } + 92 + 93 TRANSFORMS = { + 94 **Postgres.Generator.TRANSFORMS, + 95 exp.CurrentTimestamp: lambda self, e: "SYSDATE", + 96 exp.DateAdd: lambda self, e: self.func( + 97 "DATEADD", exp.var(e.text("unit") or "day"), e.expression, e.this + 98 ), + 99 exp.DateDiff: lambda self, e: self.func( +100 "DATEDIFF", exp.var(e.text("unit") or "day"), e.expression, e.this +101 ), +102 exp.DistKeyProperty: lambda self, e: f"DISTKEY({e.name})", +103 exp.DistStyleProperty: lambda self, e: self.naked_property(e), +104 exp.JSONExtract: _json_sql, +105 exp.JSONExtractScalar: _json_sql, +106 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), +107 exp.SortKeyProperty: lambda self, e: f"{'COMPOUND ' if e.args['compound'] else ''}SORTKEY({self.format_args(*e.this)})", +108 } +109 +110 # Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots +111 TRANSFORMS.pop(exp.Pivot) +112 +113 # Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres) +114 TRANSFORMS.pop(exp.Pow) 115 -116 def values_sql(self, expression: exp.Values) -> str: -117 """ -118 Converts `VALUES...` expression into a series of unions. -119 -120 Note: If you have a lot of unions then this will result in a large number of recursive statements to -121 evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be -122 very slow. -123 """ -124 -125 # The VALUES clause is still valid in an `INSERT INTO ..` statement, for example -126 if not expression.find_ancestor(exp.From, exp.Join): -127 return super().values_sql(expression) -128 -129 column_names = expression.alias and expression.args["alias"].columns +116 RESERVED_KEYWORDS = {*Postgres.Generator.RESERVED_KEYWORDS, "snapshot", "type"} +117 +118 def values_sql(self, expression: exp.Values) -> str: +119 """ +120 Converts `VALUES...` expression into a series of unions. +121 +122 Note: If you have a lot of unions then this will result in a large number of recursive statements to +123 evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be +124 very slow. +125 """ +126 +127 # The VALUES clause is still valid in an `INSERT INTO ..` statement, for example +128 if not expression.find_ancestor(exp.From, exp.Join): +129 return super().values_sql(expression) 130 -131 selects = [] -132 rows = [tuple_exp.expressions for tuple_exp in expression.expressions] -133 -134 for i, row in enumerate(rows): -135 if i == 0 and column_names: -136 row = [ -137 exp.alias_(value, column_name) -138 for value, column_name in zip(row, column_names) -139 ] -140 -141 selects.append(exp.Select(expressions=row)) +131 column_names = expression.alias and expression.args["alias"].columns +132 +133 selects = [] +134 rows = [tuple_exp.expressions for tuple_exp in expression.expressions] +135 +136 for i, row in enumerate(rows): +137 if i == 0 and column_names: +138 row = [ +139 exp.alias_(value, column_name) +140 for value, column_name in zip(row, column_names) +141 ] 142 -143 subquery_expression: exp.Select | exp.Union = selects[0] -144 if len(selects) > 1: -145 for select in selects[1:]: -146 subquery_expression = exp.union(subquery_expression, select, distinct=False) -147 -148 return self.subquery_sql(subquery_expression.subquery(expression.alias)) +143 selects.append(exp.Select(expressions=row)) +144 +145 subquery_expression: exp.Select | exp.Union = selects[0] +146 if len(selects) > 1: +147 for select in selects[1:]: +148 subquery_expression = exp.union(subquery_expression, select, distinct=False) 149 -150 def with_properties(self, properties: exp.Properties) -> str: -151 """Redshift doesn't have `WITH` as part of their with_properties so we remove it""" -152 return self.properties(properties, prefix=" ", suffix="") -153 -154 def datatype_sql(self, expression: exp.DataType) -> str: -155 """ -156 Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean -157 VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type -158 without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert -159 `TEXT` to `VARCHAR`. -160 """ -161 if expression.this == exp.DataType.Type.TEXT: -162 expression = expression.copy() -163 expression.set("this", exp.DataType.Type.VARCHAR) -164 precision = expression.args.get("expressions") -165 -166 if not precision: -167 expression.append("expressions", exp.Var(this="MAX")) -168 -169 return super().datatype_sql(expression) +150 return self.subquery_sql(subquery_expression.subquery(expression.alias)) +151 +152 def with_properties(self, properties: exp.Properties) -> str: +153 """Redshift doesn't have `WITH` as part of their with_properties so we remove it""" +154 return self.properties(properties, prefix=" ", suffix="") +155 +156 def datatype_sql(self, expression: exp.DataType) -> str: +157 """ +158 Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean +159 VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type +160 without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert +161 `TEXT` to `VARCHAR`. +162 """ +163 if expression.is_type("text"): +164 expression = expression.copy() +165 expression.set("this", exp.DataType.Type.VARCHAR) +166 precision = expression.args.get("expressions") +167 +168 if not precision: +169 expression.append("expressions", exp.Var(this="MAX")) +170 +171 return super().datatype_sql(expression) @@ -296,135 +298,137 @@ 39 40 CONVERT_TYPE_FIRST = True 41 - 42 def _parse_types(self, check_func: bool = False) -> t.Optional[exp.Expression]: - 43 this = super()._parse_types(check_func=check_func) - 44 - 45 if ( - 46 isinstance(this, exp.DataType) - 47 and this.this == exp.DataType.Type.VARCHAR - 48 and this.expressions - 49 and this.expressions[0].this == exp.column("MAX") - 50 ): - 51 this.set("expressions", [exp.Var(this="MAX")]) - 52 - 53 return this + 42 def _parse_types( + 43 self, check_func: bool = False, schema: bool = False + 44 ) -> t.Optional[exp.Expression]: + 45 this = super()._parse_types(check_func=check_func, schema=schema) + 46 + 47 if ( + 48 isinstance(this, exp.DataType) + 49 and this.is_type("varchar") + 50 and this.expressions + 51 and this.expressions[0].this == exp.column("MAX") + 52 ): + 53 this.set("expressions", [exp.Var(this="MAX")]) 54 - 55 class Tokenizer(Postgres.Tokenizer): - 56 BIT_STRINGS = [] - 57 HEX_STRINGS = [] - 58 STRING_ESCAPES = ["\\"] - 59 - 60 KEYWORDS = { - 61 **Postgres.Tokenizer.KEYWORDS, - 62 "HLLSKETCH": TokenType.HLLSKETCH, - 63 "SUPER": TokenType.SUPER, - 64 "SYSDATE": TokenType.CURRENT_TIMESTAMP, - 65 "TIME": TokenType.TIMESTAMP, - 66 "TIMETZ": TokenType.TIMESTAMPTZ, - 67 "TOP": TokenType.TOP, - 68 "UNLOAD": TokenType.COMMAND, - 69 "VARBYTE": TokenType.VARBINARY, - 70 } - 71 - 72 # Redshift allows # to appear as a table identifier prefix - 73 SINGLE_TOKENS = Postgres.Tokenizer.SINGLE_TOKENS.copy() - 74 SINGLE_TOKENS.pop("#") - 75 - 76 class Generator(Postgres.Generator): - 77 LOCKING_READS_SUPPORTED = False - 78 RENAME_TABLE_WITH_DB = False - 79 - 80 TYPE_MAPPING = { - 81 **Postgres.Generator.TYPE_MAPPING, - 82 exp.DataType.Type.BINARY: "VARBYTE", - 83 exp.DataType.Type.VARBINARY: "VARBYTE", - 84 exp.DataType.Type.INT: "INTEGER", - 85 } - 86 - 87 PROPERTIES_LOCATION = { - 88 **Postgres.Generator.PROPERTIES_LOCATION, - 89 exp.LikeProperty: exp.Properties.Location.POST_WITH, - 90 } - 91 - 92 TRANSFORMS = { - 93 **Postgres.Generator.TRANSFORMS, - 94 exp.CurrentTimestamp: lambda self, e: "SYSDATE", - 95 exp.DateAdd: lambda self, e: self.func( - 96 "DATEADD", exp.var(e.text("unit") or "day"), e.expression, e.this - 97 ), - 98 exp.DateDiff: lambda self, e: self.func( - 99 "DATEDIFF", exp.var(e.text("unit") or "day"), e.expression, e.this -100 ), -101 exp.DistKeyProperty: lambda self, e: f"DISTKEY({e.name})", -102 exp.DistStyleProperty: lambda self, e: self.naked_property(e), -103 exp.JSONExtract: _json_sql, -104 exp.JSONExtractScalar: _json_sql, -105 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), -106 exp.SortKeyProperty: lambda self, e: f"{'COMPOUND ' if e.args['compound'] else ''}SORTKEY({self.format_args(*e.this)})", -107 } -108 -109 # Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots -110 TRANSFORMS.pop(exp.Pivot) -111 -112 # Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres) -113 TRANSFORMS.pop(exp.Pow) -114 -115 RESERVED_KEYWORDS = {*Postgres.Generator.RESERVED_KEYWORDS, "snapshot", "type"} + 55 return this + 56 + 57 class Tokenizer(Postgres.Tokenizer): + 58 BIT_STRINGS = [] + 59 HEX_STRINGS = [] + 60 STRING_ESCAPES = ["\\"] + 61 + 62 KEYWORDS = { + 63 **Postgres.Tokenizer.KEYWORDS, + 64 "HLLSKETCH": TokenType.HLLSKETCH, + 65 "SUPER": TokenType.SUPER, + 66 "SYSDATE": TokenType.CURRENT_TIMESTAMP, + 67 "TIME": TokenType.TIMESTAMP, + 68 "TIMETZ": TokenType.TIMESTAMPTZ, + 69 "TOP": TokenType.TOP, + 70 "UNLOAD": TokenType.COMMAND, + 71 "VARBYTE": TokenType.VARBINARY, + 72 } + 73 + 74 # Redshift allows # to appear as a table identifier prefix + 75 SINGLE_TOKENS = Postgres.Tokenizer.SINGLE_TOKENS.copy() + 76 SINGLE_TOKENS.pop("#") + 77 + 78 class Generator(Postgres.Generator): + 79 LOCKING_READS_SUPPORTED = False + 80 RENAME_TABLE_WITH_DB = False + 81 + 82 TYPE_MAPPING = { + 83 **Postgres.Generator.TYPE_MAPPING, + 84 exp.DataType.Type.BINARY: "VARBYTE", + 85 exp.DataType.Type.VARBINARY: "VARBYTE", + 86 exp.DataType.Type.INT: "INTEGER", + 87 } + 88 + 89 PROPERTIES_LOCATION = { + 90 **Postgres.Generator.PROPERTIES_LOCATION, + 91 exp.LikeProperty: exp.Properties.Location.POST_WITH, + 92 } + 93 + 94 TRANSFORMS = { + 95 **Postgres.Generator.TRANSFORMS, + 96 exp.CurrentTimestamp: lambda self, e: "SYSDATE", + 97 exp.DateAdd: lambda self, e: self.func( + 98 "DATEADD", exp.var(e.text("unit") or "day"), e.expression, e.this + 99 ), +100 exp.DateDiff: lambda self, e: self.func( +101 "DATEDIFF", exp.var(e.text("unit") or "day"), e.expression, e.this +102 ), +103 exp.DistKeyProperty: lambda self, e: f"DISTKEY({e.name})", +104 exp.DistStyleProperty: lambda self, e: self.naked_property(e), +105 exp.JSONExtract: _json_sql, +106 exp.JSONExtractScalar: _json_sql, +107 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), +108 exp.SortKeyProperty: lambda self, e: f"{'COMPOUND ' if e.args['compound'] else ''}SORTKEY({self.format_args(*e.this)})", +109 } +110 +111 # Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots +112 TRANSFORMS.pop(exp.Pivot) +113 +114 # Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres) +115 TRANSFORMS.pop(exp.Pow) 116 -117 def values_sql(self, expression: exp.Values) -> str: -118 """ -119 Converts `VALUES...` expression into a series of unions. -120 -121 Note: If you have a lot of unions then this will result in a large number of recursive statements to -122 evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be -123 very slow. -124 """ -125 -126 # The VALUES clause is still valid in an `INSERT INTO ..` statement, for example -127 if not expression.find_ancestor(exp.From, exp.Join): -128 return super().values_sql(expression) -129 -130 column_names = expression.alias and expression.args["alias"].columns +117 RESERVED_KEYWORDS = {*Postgres.Generator.RESERVED_KEYWORDS, "snapshot", "type"} +118 +119 def values_sql(self, expression: exp.Values) -> str: +120 """ +121 Converts `VALUES...` expression into a series of unions. +122 +123 Note: If you have a lot of unions then this will result in a large number of recursive statements to +124 evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be +125 very slow. +126 """ +127 +128 # The VALUES clause is still valid in an `INSERT INTO ..` statement, for example +129 if not expression.find_ancestor(exp.From, exp.Join): +130 return super().values_sql(expression) 131 -132 selects = [] -133 rows = [tuple_exp.expressions for tuple_exp in expression.expressions] -134 -135 for i, row in enumerate(rows): -136 if i == 0 and column_names: -137 row = [ -138 exp.alias_(value, column_name) -139 for value, column_name in zip(row, column_names) -140 ] -141 -142 selects.append(exp.Select(expressions=row)) +132 column_names = expression.alias and expression.args["alias"].columns +133 +134 selects = [] +135 rows = [tuple_exp.expressions for tuple_exp in expression.expressions] +136 +137 for i, row in enumerate(rows): +138 if i == 0 and column_names: +139 row = [ +140 exp.alias_(value, column_name) +141 for value, column_name in zip(row, column_names) +142 ] 143 -144 subquery_expression: exp.Select | exp.Union = selects[0] -145 if len(selects) > 1: -146 for select in selects[1:]: -147 subquery_expression = exp.union(subquery_expression, select, distinct=False) -148 -149 return self.subquery_sql(subquery_expression.subquery(expression.alias)) +144 selects.append(exp.Select(expressions=row)) +145 +146 subquery_expression: exp.Select | exp.Union = selects[0] +147 if len(selects) > 1: +148 for select in selects[1:]: +149 subquery_expression = exp.union(subquery_expression, select, distinct=False) 150 -151 def with_properties(self, properties: exp.Properties) -> str: -152 """Redshift doesn't have `WITH` as part of their with_properties so we remove it""" -153 return self.properties(properties, prefix=" ", suffix="") -154 -155 def datatype_sql(self, expression: exp.DataType) -> str: -156 """ -157 Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean -158 VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type -159 without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert -160 `TEXT` to `VARCHAR`. -161 """ -162 if expression.this == exp.DataType.Type.TEXT: -163 expression = expression.copy() -164 expression.set("this", exp.DataType.Type.VARCHAR) -165 precision = expression.args.get("expressions") -166 -167 if not precision: -168 expression.append("expressions", exp.Var(this="MAX")) -169 -170 return super().datatype_sql(expression) +151 return self.subquery_sql(subquery_expression.subquery(expression.alias)) +152 +153 def with_properties(self, properties: exp.Properties) -> str: +154 """Redshift doesn't have `WITH` as part of their with_properties so we remove it""" +155 return self.properties(properties, prefix=" ", suffix="") +156 +157 def datatype_sql(self, expression: exp.DataType) -> str: +158 """ +159 Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean +160 VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type +161 without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert +162 `TEXT` to `VARCHAR`. +163 """ +164 if expression.is_type("text"): +165 expression = expression.copy() +166 expression.set("this", exp.DataType.Type.VARCHAR) +167 precision = expression.args.get("expressions") +168 +169 if not precision: +170 expression.append("expressions", exp.Var(this="MAX")) +171 +172 return super().datatype_sql(expression) @@ -477,18 +481,20 @@ 39 40 CONVERT_TYPE_FIRST = True 41 -42 def _parse_types(self, check_func: bool = False) -> t.Optional[exp.Expression]: -43 this = super()._parse_types(check_func=check_func) -44 -45 if ( -46 isinstance(this, exp.DataType) -47 and this.this == exp.DataType.Type.VARCHAR -48 and this.expressions -49 and this.expressions[0].this == exp.column("MAX") -50 ): -51 this.set("expressions", [exp.Var(this="MAX")]) -52 -53 return this +42 def _parse_types( +43 self, check_func: bool = False, schema: bool = False +44 ) -> t.Optional[exp.Expression]: +45 this = super()._parse_types(check_func=check_func, schema=schema) +46 +47 if ( +48 isinstance(this, exp.DataType) +49 and this.is_type("varchar") +50 and this.expressions +51 and this.expressions[0].this == exp.column("MAX") +52 ): +53 this.set("expressions", [exp.Var(this="MAX")]) +54 +55 return this @@ -499,7 +505,7 @@ a parsed syntax tree.

          • error_level: the desired error level. -Default: ErrorLevel.RAISE
          • +Default: ErrorLevel.IMMEDIATE
          • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
          • @@ -545,26 +551,26 @@ Default: "nulls_are_small" -
            55    class Tokenizer(Postgres.Tokenizer):
            -56        BIT_STRINGS = []
            -57        HEX_STRINGS = []
            -58        STRING_ESCAPES = ["\\"]
            -59
            -60        KEYWORDS = {
            -61            **Postgres.Tokenizer.KEYWORDS,
            -62            "HLLSKETCH": TokenType.HLLSKETCH,
            -63            "SUPER": TokenType.SUPER,
            -64            "SYSDATE": TokenType.CURRENT_TIMESTAMP,
            -65            "TIME": TokenType.TIMESTAMP,
            -66            "TIMETZ": TokenType.TIMESTAMPTZ,
            -67            "TOP": TokenType.TOP,
            -68            "UNLOAD": TokenType.COMMAND,
            -69            "VARBYTE": TokenType.VARBINARY,
            -70        }
            -71
            -72        # Redshift allows # to appear as a table identifier prefix
            -73        SINGLE_TOKENS = Postgres.Tokenizer.SINGLE_TOKENS.copy()
            -74        SINGLE_TOKENS.pop("#")
            +            
            57    class Tokenizer(Postgres.Tokenizer):
            +58        BIT_STRINGS = []
            +59        HEX_STRINGS = []
            +60        STRING_ESCAPES = ["\\"]
            +61
            +62        KEYWORDS = {
            +63            **Postgres.Tokenizer.KEYWORDS,
            +64            "HLLSKETCH": TokenType.HLLSKETCH,
            +65            "SUPER": TokenType.SUPER,
            +66            "SYSDATE": TokenType.CURRENT_TIMESTAMP,
            +67            "TIME": TokenType.TIMESTAMP,
            +68            "TIMETZ": TokenType.TIMESTAMPTZ,
            +69            "TOP": TokenType.TOP,
            +70            "UNLOAD": TokenType.COMMAND,
            +71            "VARBYTE": TokenType.VARBINARY,
            +72        }
            +73
            +74        # Redshift allows # to appear as a table identifier prefix
            +75        SINGLE_TOKENS = Postgres.Tokenizer.SINGLE_TOKENS.copy()
            +76        SINGLE_TOKENS.pop("#")
             
            @@ -592,101 +598,101 @@ Default: "nulls_are_small"
            -
             76    class Generator(Postgres.Generator):
            - 77        LOCKING_READS_SUPPORTED = False
            - 78        RENAME_TABLE_WITH_DB = False
            - 79
            - 80        TYPE_MAPPING = {
            - 81            **Postgres.Generator.TYPE_MAPPING,
            - 82            exp.DataType.Type.BINARY: "VARBYTE",
            - 83            exp.DataType.Type.VARBINARY: "VARBYTE",
            - 84            exp.DataType.Type.INT: "INTEGER",
            - 85        }
            - 86
            - 87        PROPERTIES_LOCATION = {
            - 88            **Postgres.Generator.PROPERTIES_LOCATION,
            - 89            exp.LikeProperty: exp.Properties.Location.POST_WITH,
            - 90        }
            - 91
            - 92        TRANSFORMS = {
            - 93            **Postgres.Generator.TRANSFORMS,
            - 94            exp.CurrentTimestamp: lambda self, e: "SYSDATE",
            - 95            exp.DateAdd: lambda self, e: self.func(
            - 96                "DATEADD", exp.var(e.text("unit") or "day"), e.expression, e.this
            - 97            ),
            - 98            exp.DateDiff: lambda self, e: self.func(
            - 99                "DATEDIFF", exp.var(e.text("unit") or "day"), e.expression, e.this
            -100            ),
            -101            exp.DistKeyProperty: lambda self, e: f"DISTKEY({e.name})",
            -102            exp.DistStyleProperty: lambda self, e: self.naked_property(e),
            -103            exp.JSONExtract: _json_sql,
            -104            exp.JSONExtractScalar: _json_sql,
            -105            exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]),
            -106            exp.SortKeyProperty: lambda self, e: f"{'COMPOUND ' if e.args['compound'] else ''}SORTKEY({self.format_args(*e.this)})",
            -107        }
            -108
            -109        # Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots
            -110        TRANSFORMS.pop(exp.Pivot)
            -111
            -112        # Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres)
            -113        TRANSFORMS.pop(exp.Pow)
            -114
            -115        RESERVED_KEYWORDS = {*Postgres.Generator.RESERVED_KEYWORDS, "snapshot", "type"}
            +            
             78    class Generator(Postgres.Generator):
            + 79        LOCKING_READS_SUPPORTED = False
            + 80        RENAME_TABLE_WITH_DB = False
            + 81
            + 82        TYPE_MAPPING = {
            + 83            **Postgres.Generator.TYPE_MAPPING,
            + 84            exp.DataType.Type.BINARY: "VARBYTE",
            + 85            exp.DataType.Type.VARBINARY: "VARBYTE",
            + 86            exp.DataType.Type.INT: "INTEGER",
            + 87        }
            + 88
            + 89        PROPERTIES_LOCATION = {
            + 90            **Postgres.Generator.PROPERTIES_LOCATION,
            + 91            exp.LikeProperty: exp.Properties.Location.POST_WITH,
            + 92        }
            + 93
            + 94        TRANSFORMS = {
            + 95            **Postgres.Generator.TRANSFORMS,
            + 96            exp.CurrentTimestamp: lambda self, e: "SYSDATE",
            + 97            exp.DateAdd: lambda self, e: self.func(
            + 98                "DATEADD", exp.var(e.text("unit") or "day"), e.expression, e.this
            + 99            ),
            +100            exp.DateDiff: lambda self, e: self.func(
            +101                "DATEDIFF", exp.var(e.text("unit") or "day"), e.expression, e.this
            +102            ),
            +103            exp.DistKeyProperty: lambda self, e: f"DISTKEY({e.name})",
            +104            exp.DistStyleProperty: lambda self, e: self.naked_property(e),
            +105            exp.JSONExtract: _json_sql,
            +106            exp.JSONExtractScalar: _json_sql,
            +107            exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]),
            +108            exp.SortKeyProperty: lambda self, e: f"{'COMPOUND ' if e.args['compound'] else ''}SORTKEY({self.format_args(*e.this)})",
            +109        }
            +110
            +111        # Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots
            +112        TRANSFORMS.pop(exp.Pivot)
            +113
            +114        # Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres)
            +115        TRANSFORMS.pop(exp.Pow)
             116
            -117        def values_sql(self, expression: exp.Values) -> str:
            -118            """
            -119            Converts `VALUES...` expression into a series of unions.
            -120
            -121            Note: If you have a lot of unions then this will result in a large number of recursive statements to
            -122            evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be
            -123            very slow.
            -124            """
            -125
            -126            # The VALUES clause is still valid in an `INSERT INTO ..` statement, for example
            -127            if not expression.find_ancestor(exp.From, exp.Join):
            -128                return super().values_sql(expression)
            -129
            -130            column_names = expression.alias and expression.args["alias"].columns
            +117        RESERVED_KEYWORDS = {*Postgres.Generator.RESERVED_KEYWORDS, "snapshot", "type"}
            +118
            +119        def values_sql(self, expression: exp.Values) -> str:
            +120            """
            +121            Converts `VALUES...` expression into a series of unions.
            +122
            +123            Note: If you have a lot of unions then this will result in a large number of recursive statements to
            +124            evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be
            +125            very slow.
            +126            """
            +127
            +128            # The VALUES clause is still valid in an `INSERT INTO ..` statement, for example
            +129            if not expression.find_ancestor(exp.From, exp.Join):
            +130                return super().values_sql(expression)
             131
            -132            selects = []
            -133            rows = [tuple_exp.expressions for tuple_exp in expression.expressions]
            -134
            -135            for i, row in enumerate(rows):
            -136                if i == 0 and column_names:
            -137                    row = [
            -138                        exp.alias_(value, column_name)
            -139                        for value, column_name in zip(row, column_names)
            -140                    ]
            -141
            -142                selects.append(exp.Select(expressions=row))
            +132            column_names = expression.alias and expression.args["alias"].columns
            +133
            +134            selects = []
            +135            rows = [tuple_exp.expressions for tuple_exp in expression.expressions]
            +136
            +137            for i, row in enumerate(rows):
            +138                if i == 0 and column_names:
            +139                    row = [
            +140                        exp.alias_(value, column_name)
            +141                        for value, column_name in zip(row, column_names)
            +142                    ]
             143
            -144            subquery_expression: exp.Select | exp.Union = selects[0]
            -145            if len(selects) > 1:
            -146                for select in selects[1:]:
            -147                    subquery_expression = exp.union(subquery_expression, select, distinct=False)
            -148
            -149            return self.subquery_sql(subquery_expression.subquery(expression.alias))
            +144                selects.append(exp.Select(expressions=row))
            +145
            +146            subquery_expression: exp.Select | exp.Union = selects[0]
            +147            if len(selects) > 1:
            +148                for select in selects[1:]:
            +149                    subquery_expression = exp.union(subquery_expression, select, distinct=False)
             150
            -151        def with_properties(self, properties: exp.Properties) -> str:
            -152            """Redshift doesn't have `WITH` as part of their with_properties so we remove it"""
            -153            return self.properties(properties, prefix=" ", suffix="")
            -154
            -155        def datatype_sql(self, expression: exp.DataType) -> str:
            -156            """
            -157            Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean
            -158            VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type
            -159            without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert
            -160            `TEXT` to `VARCHAR`.
            -161            """
            -162            if expression.this == exp.DataType.Type.TEXT:
            -163                expression = expression.copy()
            -164                expression.set("this", exp.DataType.Type.VARCHAR)
            -165                precision = expression.args.get("expressions")
            -166
            -167                if not precision:
            -168                    expression.append("expressions", exp.Var(this="MAX"))
            -169
            -170            return super().datatype_sql(expression)
            +151            return self.subquery_sql(subquery_expression.subquery(expression.alias))
            +152
            +153        def with_properties(self, properties: exp.Properties) -> str:
            +154            """Redshift doesn't have `WITH` as part of their with_properties so we remove it"""
            +155            return self.properties(properties, prefix=" ", suffix="")
            +156
            +157        def datatype_sql(self, expression: exp.DataType) -> str:
            +158            """
            +159            Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean
            +160            VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type
            +161            without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert
            +162            `TEXT` to `VARCHAR`.
            +163            """
            +164            if expression.is_type("text"):
            +165                expression = expression.copy()
            +166                expression.set("this", exp.DataType.Type.VARCHAR)
            +167                precision = expression.args.get("expressions")
            +168
            +169                if not precision:
            +170                    expression.append("expressions", exp.Var(this="MAX"))
            +171
            +172            return super().datatype_sql(expression)
             
            @@ -722,6 +728,8 @@ represents a python time format and the output the target time format Default: "upper"
          • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
          • +
          • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
          • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
          • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -753,39 +761,39 @@ Default: True
          • -
            117        def values_sql(self, expression: exp.Values) -> str:
            -118            """
            -119            Converts `VALUES...` expression into a series of unions.
            -120
            -121            Note: If you have a lot of unions then this will result in a large number of recursive statements to
            -122            evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be
            -123            very slow.
            -124            """
            -125
            -126            # The VALUES clause is still valid in an `INSERT INTO ..` statement, for example
            -127            if not expression.find_ancestor(exp.From, exp.Join):
            -128                return super().values_sql(expression)
            -129
            -130            column_names = expression.alias and expression.args["alias"].columns
            +            
            119        def values_sql(self, expression: exp.Values) -> str:
            +120            """
            +121            Converts `VALUES...` expression into a series of unions.
            +122
            +123            Note: If you have a lot of unions then this will result in a large number of recursive statements to
            +124            evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be
            +125            very slow.
            +126            """
            +127
            +128            # The VALUES clause is still valid in an `INSERT INTO ..` statement, for example
            +129            if not expression.find_ancestor(exp.From, exp.Join):
            +130                return super().values_sql(expression)
             131
            -132            selects = []
            -133            rows = [tuple_exp.expressions for tuple_exp in expression.expressions]
            -134
            -135            for i, row in enumerate(rows):
            -136                if i == 0 and column_names:
            -137                    row = [
            -138                        exp.alias_(value, column_name)
            -139                        for value, column_name in zip(row, column_names)
            -140                    ]
            -141
            -142                selects.append(exp.Select(expressions=row))
            +132            column_names = expression.alias and expression.args["alias"].columns
            +133
            +134            selects = []
            +135            rows = [tuple_exp.expressions for tuple_exp in expression.expressions]
            +136
            +137            for i, row in enumerate(rows):
            +138                if i == 0 and column_names:
            +139                    row = [
            +140                        exp.alias_(value, column_name)
            +141                        for value, column_name in zip(row, column_names)
            +142                    ]
             143
            -144            subquery_expression: exp.Select | exp.Union = selects[0]
            -145            if len(selects) > 1:
            -146                for select in selects[1:]:
            -147                    subquery_expression = exp.union(subquery_expression, select, distinct=False)
            -148
            -149            return self.subquery_sql(subquery_expression.subquery(expression.alias))
            +144                selects.append(exp.Select(expressions=row))
            +145
            +146            subquery_expression: exp.Select | exp.Union = selects[0]
            +147            if len(selects) > 1:
            +148                for select in selects[1:]:
            +149                    subquery_expression = exp.union(subquery_expression, select, distinct=False)
            +150
            +151            return self.subquery_sql(subquery_expression.subquery(expression.alias))
             
            @@ -809,9 +817,9 @@ very slow.

            -
            151        def with_properties(self, properties: exp.Properties) -> str:
            -152            """Redshift doesn't have `WITH` as part of their with_properties so we remove it"""
            -153            return self.properties(properties, prefix=" ", suffix="")
            +            
            153        def with_properties(self, properties: exp.Properties) -> str:
            +154            """Redshift doesn't have `WITH` as part of their with_properties so we remove it"""
            +155            return self.properties(properties, prefix=" ", suffix="")
             
            @@ -831,22 +839,22 @@ very slow.

            -
            155        def datatype_sql(self, expression: exp.DataType) -> str:
            -156            """
            -157            Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean
            -158            VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type
            -159            without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert
            -160            `TEXT` to `VARCHAR`.
            -161            """
            -162            if expression.this == exp.DataType.Type.TEXT:
            -163                expression = expression.copy()
            -164                expression.set("this", exp.DataType.Type.VARCHAR)
            -165                precision = expression.args.get("expressions")
            -166
            -167                if not precision:
            -168                    expression.append("expressions", exp.Var(this="MAX"))
            -169
            -170            return super().datatype_sql(expression)
            +            
            157        def datatype_sql(self, expression: exp.DataType) -> str:
            +158            """
            +159            Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean
            +160            VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type
            +161            without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert
            +162            `TEXT` to `VARCHAR`.
            +163            """
            +164            if expression.is_type("text"):
            +165                expression = expression.copy()
            +166                expression.set("this", exp.DataType.Type.VARCHAR)
            +167                precision = expression.args.get("expressions")
            +168
            +169                if not precision:
            +170                    expression.append("expressions", exp.Var(this="MAX"))
            +171
            +172            return super().datatype_sql(expression)
             
            @@ -998,7 +1006,6 @@ without precision we convert it to VARCHAR(max) and if it does have
            check_sql
            foreignkey_sql
            primarykey_sql
            -
            unique_sql
            if_sql
            matchagainst_sql
            jsonkeyvalue_sql
            @@ -1091,6 +1098,9 @@ without precision we convert it to VARCHAR(max) and if it does have
            when_sql
            merge_sql
            tochar_sql
            +
            dictproperty_sql
            +
            dictrange_sql
            +
            dictsubproperty_sql
            diff --git a/docs/sqlglot/dialects/snowflake.html b/docs/sqlglot/dialects/snowflake.html index 5e055f4..e8aeffe 100644 --- a/docs/sqlglot/dialects/snowflake.html +++ b/docs/sqlglot/dialects/snowflake.html @@ -167,316 +167,333 @@ 73 return exp.UnixToTime.from_arg_list(args) 74 75 - 76def _unix_to_time_sql(self: generator.Generator, expression: exp.UnixToTime) -> str: - 77 scale = expression.args.get("scale") - 78 timestamp = self.sql(expression, "this") - 79 if scale in [None, exp.UnixToTime.SECONDS]: - 80 return f"TO_TIMESTAMP({timestamp})" - 81 if scale == exp.UnixToTime.MILLIS: - 82 return f"TO_TIMESTAMP({timestamp}, 3)" - 83 if scale == exp.UnixToTime.MICROS: - 84 return f"TO_TIMESTAMP({timestamp}, 9)" - 85 - 86 raise ValueError("Improper scale for timestamp") + 76def _parse_object_construct(args: t.List) -> t.Union[exp.StarMap, exp.Struct]: + 77 expression = parser.parse_var_map(args) + 78 + 79 if isinstance(expression, exp.StarMap): + 80 return expression + 81 + 82 return exp.Struct( + 83 expressions=[ + 84 t.cast(exp.Condition, k).eq(v) for k, v in zip(expression.keys, expression.values) + 85 ] + 86 ) 87 88 - 89# https://docs.snowflake.com/en/sql-reference/functions/date_part.html - 90# https://docs.snowflake.com/en/sql-reference/functions-date-time.html#label-supported-date-time-parts - 91def _parse_date_part(self: parser.Parser) -> t.Optional[exp.Expression]: - 92 this = self._parse_var() or self._parse_type() - 93 - 94 if not this: - 95 return None - 96 - 97 self._match(TokenType.COMMA) - 98 expression = self._parse_bitwise() - 99 -100 name = this.name.upper() -101 if name.startswith("EPOCH"): -102 if name.startswith("EPOCH_MILLISECOND"): -103 scale = 10**3 -104 elif name.startswith("EPOCH_MICROSECOND"): -105 scale = 10**6 -106 elif name.startswith("EPOCH_NANOSECOND"): -107 scale = 10**9 -108 else: -109 scale = None -110 -111 ts = self.expression(exp.Cast, this=expression, to=exp.DataType.build("TIMESTAMP")) -112 to_unix: exp.Expression = self.expression(exp.TimeToUnix, this=ts) -113 -114 if scale: -115 to_unix = exp.Mul(this=to_unix, expression=exp.Literal.number(scale)) -116 -117 return to_unix -118 -119 return self.expression(exp.Extract, this=this, expression=expression) -120 -121 -122# https://docs.snowflake.com/en/sql-reference/functions/div0 -123def _div0_to_if(args: t.List) -> exp.Expression: -124 cond = exp.EQ(this=seq_get(args, 1), expression=exp.Literal.number(0)) -125 true = exp.Literal.number(0) -126 false = exp.Div(this=seq_get(args, 0), expression=seq_get(args, 1)) -127 return exp.If(this=cond, true=true, false=false) -128 + 89def _unix_to_time_sql(self: generator.Generator, expression: exp.UnixToTime) -> str: + 90 scale = expression.args.get("scale") + 91 timestamp = self.sql(expression, "this") + 92 if scale in [None, exp.UnixToTime.SECONDS]: + 93 return f"TO_TIMESTAMP({timestamp})" + 94 if scale == exp.UnixToTime.MILLIS: + 95 return f"TO_TIMESTAMP({timestamp}, 3)" + 96 if scale == exp.UnixToTime.MICROS: + 97 return f"TO_TIMESTAMP({timestamp}, 9)" + 98 + 99 raise ValueError("Improper scale for timestamp") +100 +101 +102# https://docs.snowflake.com/en/sql-reference/functions/date_part.html +103# https://docs.snowflake.com/en/sql-reference/functions-date-time.html#label-supported-date-time-parts +104def _parse_date_part(self: parser.Parser) -> t.Optional[exp.Expression]: +105 this = self._parse_var() or self._parse_type() +106 +107 if not this: +108 return None +109 +110 self._match(TokenType.COMMA) +111 expression = self._parse_bitwise() +112 +113 name = this.name.upper() +114 if name.startswith("EPOCH"): +115 if name.startswith("EPOCH_MILLISECOND"): +116 scale = 10**3 +117 elif name.startswith("EPOCH_MICROSECOND"): +118 scale = 10**6 +119 elif name.startswith("EPOCH_NANOSECOND"): +120 scale = 10**9 +121 else: +122 scale = None +123 +124 ts = self.expression(exp.Cast, this=expression, to=exp.DataType.build("TIMESTAMP")) +125 to_unix: exp.Expression = self.expression(exp.TimeToUnix, this=ts) +126 +127 if scale: +128 to_unix = exp.Mul(this=to_unix, expression=exp.Literal.number(scale)) 129 -130# https://docs.snowflake.com/en/sql-reference/functions/zeroifnull -131def _zeroifnull_to_if(args: t.List) -> exp.Expression: -132 cond = exp.Is(this=seq_get(args, 0), expression=exp.Null()) -133 return exp.If(this=cond, true=exp.Literal.number(0), false=seq_get(args, 0)) +130 return to_unix +131 +132 return self.expression(exp.Extract, this=this, expression=expression) +133 134 -135 -136# https://docs.snowflake.com/en/sql-reference/functions/zeroifnull -137def _nullifzero_to_if(args: t.List) -> exp.Expression: -138 cond = exp.EQ(this=seq_get(args, 0), expression=exp.Literal.number(0)) -139 return exp.If(this=cond, true=exp.Null(), false=seq_get(args, 0)) -140 +135# https://docs.snowflake.com/en/sql-reference/functions/div0 +136def _div0_to_if(args: t.List) -> exp.Expression: +137 cond = exp.EQ(this=seq_get(args, 1), expression=exp.Literal.number(0)) +138 true = exp.Literal.number(0) +139 false = exp.Div(this=seq_get(args, 0), expression=seq_get(args, 1)) +140 return exp.If(this=cond, true=true, false=false) 141 -142def _datatype_sql(self: generator.Generator, expression: exp.DataType) -> str: -143 if expression.this == exp.DataType.Type.ARRAY: -144 return "ARRAY" -145 elif expression.this == exp.DataType.Type.MAP: -146 return "OBJECT" -147 return self.datatype_sql(expression) +142 +143# https://docs.snowflake.com/en/sql-reference/functions/zeroifnull +144def _zeroifnull_to_if(args: t.List) -> exp.Expression: +145 cond = exp.Is(this=seq_get(args, 0), expression=exp.Null()) +146 return exp.If(this=cond, true=exp.Literal.number(0), false=seq_get(args, 0)) +147 148 -149 -150def _parse_convert_timezone(args: t.List) -> exp.Expression: -151 if len(args) == 3: -152 return exp.Anonymous(this="CONVERT_TIMEZONE", expressions=args) -153 return exp.AtTimeZone(this=seq_get(args, 1), zone=seq_get(args, 0)) +149# https://docs.snowflake.com/en/sql-reference/functions/zeroifnull +150def _nullifzero_to_if(args: t.List) -> exp.Expression: +151 cond = exp.EQ(this=seq_get(args, 0), expression=exp.Literal.number(0)) +152 return exp.If(this=cond, true=exp.Null(), false=seq_get(args, 0)) +153 154 -155 -156class Snowflake(Dialect): -157 null_ordering = "nulls_are_large" -158 time_format = "'yyyy-mm-dd hh24:mi:ss'" -159 -160 time_mapping = { -161 "YYYY": "%Y", -162 "yyyy": "%Y", -163 "YY": "%y", -164 "yy": "%y", -165 "MMMM": "%B", -166 "mmmm": "%B", -167 "MON": "%b", -168 "mon": "%b", -169 "MM": "%m", -170 "mm": "%m", -171 "DD": "%d", -172 "dd": "%-d", -173 "DY": "%a", -174 "dy": "%w", -175 "HH24": "%H", -176 "hh24": "%H", -177 "HH12": "%I", -178 "hh12": "%I", -179 "MI": "%M", -180 "mi": "%M", -181 "SS": "%S", -182 "ss": "%S", -183 "FF": "%f", -184 "ff": "%f", -185 "FF6": "%f", -186 "ff6": "%f", -187 } -188 -189 class Parser(parser.Parser): -190 IDENTIFY_PIVOT_STRINGS = True -191 -192 FUNCTIONS = { -193 **parser.Parser.FUNCTIONS, -194 "ARRAYAGG": exp.ArrayAgg.from_arg_list, -195 "ARRAY_CONSTRUCT": exp.Array.from_arg_list, -196 "ARRAY_TO_STRING": exp.ArrayJoin.from_arg_list, -197 "CONVERT_TIMEZONE": _parse_convert_timezone, -198 "DATE_TRUNC": date_trunc_to_time, -199 "DATEADD": lambda args: exp.DateAdd( -200 this=seq_get(args, 2), -201 expression=seq_get(args, 1), -202 unit=seq_get(args, 0), -203 ), -204 "DATEDIFF": lambda args: exp.DateDiff( -205 this=seq_get(args, 2), -206 expression=seq_get(args, 1), -207 unit=seq_get(args, 0), -208 ), -209 "DIV0": _div0_to_if, -210 "IFF": exp.If.from_arg_list, -211 "NULLIFZERO": _nullifzero_to_if, -212 "OBJECT_CONSTRUCT": parser.parse_var_map, -213 "RLIKE": exp.RegexpLike.from_arg_list, -214 "SQUARE": lambda args: exp.Pow(this=seq_get(args, 0), expression=exp.Literal.number(2)), -215 "TO_ARRAY": exp.Array.from_arg_list, -216 "TO_VARCHAR": exp.ToChar.from_arg_list, -217 "TO_TIMESTAMP": _snowflake_to_timestamp, -218 "ZEROIFNULL": _zeroifnull_to_if, -219 } -220 -221 FUNCTION_PARSERS = { -222 **parser.Parser.FUNCTION_PARSERS, -223 "DATE_PART": _parse_date_part, -224 } -225 FUNCTION_PARSERS.pop("TRIM") -226 -227 FUNC_TOKENS = { -228 *parser.Parser.FUNC_TOKENS, -229 TokenType.RLIKE, -230 TokenType.TABLE, -231 } -232 -233 COLUMN_OPERATORS = { -234 **parser.Parser.COLUMN_OPERATORS, -235 TokenType.COLON: lambda self, this, path: self.expression( -236 exp.Bracket, -237 this=this, -238 expressions=[path], -239 ), -240 } -241 -242 TIMESTAMPS = parser.Parser.TIMESTAMPS.copy() - {TokenType.TIME} -243 -244 RANGE_PARSERS = { -245 **parser.Parser.RANGE_PARSERS, -246 TokenType.LIKE_ANY: binary_range_parser(exp.LikeAny), -247 TokenType.ILIKE_ANY: binary_range_parser(exp.ILikeAny), -248 } -249 -250 ALTER_PARSERS = { -251 **parser.Parser.ALTER_PARSERS, -252 "UNSET": lambda self: self._parse_alter_table_set_tag(unset=True), -253 "SET": lambda self: self._parse_alter_table_set_tag(), -254 } -255 -256 def _parse_alter_table_set_tag(self, unset: bool = False) -> exp.Expression: -257 self._match_text_seq("TAG") -258 parser = t.cast(t.Callable, self._parse_id_var if unset else self._parse_conjunction) -259 return self.expression(exp.SetTag, expressions=self._parse_csv(parser), unset=unset) -260 -261 class Tokenizer(tokens.Tokenizer): -262 QUOTES = ["'", "$$"] -263 STRING_ESCAPES = ["\\", "'"] -264 HEX_STRINGS = [("x'", "'"), ("X'", "'")] -265 -266 KEYWORDS = { -267 **tokens.Tokenizer.KEYWORDS, -268 "CHAR VARYING": TokenType.VARCHAR, -269 "CHARACTER VARYING": TokenType.VARCHAR, -270 "EXCLUDE": TokenType.EXCEPT, -271 "ILIKE ANY": TokenType.ILIKE_ANY, -272 "LIKE ANY": TokenType.LIKE_ANY, -273 "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE, -274 "MINUS": TokenType.EXCEPT, -275 "NCHAR VARYING": TokenType.VARCHAR, -276 "PUT": TokenType.COMMAND, -277 "RENAME": TokenType.REPLACE, -278 "TIMESTAMP_LTZ": TokenType.TIMESTAMPLTZ, -279 "TIMESTAMP_NTZ": TokenType.TIMESTAMP, -280 "TIMESTAMP_TZ": TokenType.TIMESTAMPTZ, -281 "TIMESTAMPNTZ": TokenType.TIMESTAMP, -282 "SAMPLE": TokenType.TABLE_SAMPLE, -283 } -284 -285 SINGLE_TOKENS = { -286 **tokens.Tokenizer.SINGLE_TOKENS, -287 "$": TokenType.PARAMETER, -288 } -289 -290 VAR_SINGLE_TOKENS = {"$"} -291 -292 class Generator(generator.Generator): -293 PARAMETER_TOKEN = "$" -294 MATCHED_BY_SOURCE = False -295 SINGLE_STRING_INTERVAL = True -296 JOIN_HINTS = False -297 TABLE_HINTS = False -298 -299 TRANSFORMS = { -300 **generator.Generator.TRANSFORMS, -301 exp.Array: inline_array_sql, -302 exp.ArrayConcat: rename_func("ARRAY_CAT"), -303 exp.ArrayJoin: rename_func("ARRAY_TO_STRING"), -304 exp.AtTimeZone: lambda self, e: self.func( -305 "CONVERT_TIMEZONE", e.args.get("zone"), e.this -306 ), -307 exp.DateAdd: lambda self, e: self.func("DATEADD", e.text("unit"), e.expression, e.this), -308 exp.DateDiff: lambda self, e: self.func( -309 "DATEDIFF", e.text("unit"), e.expression, e.this -310 ), -311 exp.DateStrToDate: datestrtodate_sql, -312 exp.DataType: _datatype_sql, -313 exp.DayOfWeek: rename_func("DAYOFWEEK"), -314 exp.Extract: rename_func("DATE_PART"), -315 exp.If: rename_func("IFF"), -316 exp.LogicalAnd: rename_func("BOOLAND_AGG"), -317 exp.LogicalOr: rename_func("BOOLOR_AGG"), -318 exp.Map: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"), -319 exp.Max: max_or_greatest, -320 exp.Min: min_or_least, -321 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", -322 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), -323 exp.StarMap: rename_func("OBJECT_CONSTRUCT"), -324 exp.StrPosition: lambda self, e: self.func( -325 "POSITION", e.args.get("substr"), e.this, e.args.get("position") -326 ), -327 exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})", -328 exp.TimeStrToTime: timestrtotime_sql, -329 exp.TimeToUnix: lambda self, e: f"EXTRACT(epoch_second FROM {self.sql(e, 'this')})", -330 exp.TimeToStr: lambda self, e: self.func( -331 "TO_CHAR", exp.cast(e.this, "timestamp"), self.format_time(e) -332 ), -333 exp.TimestampTrunc: timestamptrunc_sql, -334 exp.ToChar: lambda self, e: self.function_fallback_sql(e), -335 exp.Trim: lambda self, e: self.func("TRIM", e.this, e.expression), -336 exp.TsOrDsToDate: ts_or_ds_to_date_sql("snowflake"), -337 exp.UnixToTime: _unix_to_time_sql, -338 exp.VarMap: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"), -339 } -340 -341 TYPE_MAPPING = { -342 **generator.Generator.TYPE_MAPPING, -343 exp.DataType.Type.TIMESTAMP: "TIMESTAMPNTZ", -344 } -345 -346 STAR_MAPPING = { -347 "except": "EXCLUDE", -348 "replace": "RENAME", -349 } -350 -351 PROPERTIES_LOCATION = { -352 **generator.Generator.PROPERTIES_LOCATION, -353 exp.SetProperty: exp.Properties.Location.UNSUPPORTED, -354 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, -355 } -356 -357 def except_op(self, expression: exp.Except) -> str: -358 if not expression.args.get("distinct", False): -359 self.unsupported("EXCEPT with All is not supported in Snowflake") -360 return super().except_op(expression) -361 -362 def intersect_op(self, expression: exp.Intersect) -> str: -363 if not expression.args.get("distinct", False): -364 self.unsupported("INTERSECT with All is not supported in Snowflake") -365 return super().intersect_op(expression) -366 -367 def settag_sql(self, expression: exp.SetTag) -> str: -368 action = "UNSET" if expression.args.get("unset") else "SET" -369 return f"{action} TAG {self.expressions(expression)}" -370 -371 def describe_sql(self, expression: exp.Describe) -> str: -372 # Default to table if kind is unknown -373 kind_value = expression.args.get("kind") or "TABLE" -374 kind = f" {kind_value}" if kind_value else "" -375 this = f" {self.sql(expression, 'this')}" -376 return f"DESCRIBE{kind}{this}" -377 -378 def generatedasidentitycolumnconstraint_sql( -379 self, expression: exp.GeneratedAsIdentityColumnConstraint -380 ) -> str: -381 start = expression.args.get("start") -382 start = f" START {start}" if start else "" -383 increment = expression.args.get("increment") -384 increment = f" INCREMENT {increment}" if increment else "" -385 return f"AUTOINCREMENT{start}{increment}" +155def _datatype_sql(self: generator.Generator, expression: exp.DataType) -> str: +156 if expression.is_type("array"): +157 return "ARRAY" +158 elif expression.is_type("map"): +159 return "OBJECT" +160 return self.datatype_sql(expression) +161 +162 +163def _parse_convert_timezone(args: t.List) -> exp.Expression: +164 if len(args) == 3: +165 return exp.Anonymous(this="CONVERT_TIMEZONE", expressions=args) +166 return exp.AtTimeZone(this=seq_get(args, 1), zone=seq_get(args, 0)) +167 +168 +169class Snowflake(Dialect): +170 null_ordering = "nulls_are_large" +171 time_format = "'yyyy-mm-dd hh24:mi:ss'" +172 +173 time_mapping = { +174 "YYYY": "%Y", +175 "yyyy": "%Y", +176 "YY": "%y", +177 "yy": "%y", +178 "MMMM": "%B", +179 "mmmm": "%B", +180 "MON": "%b", +181 "mon": "%b", +182 "MM": "%m", +183 "mm": "%m", +184 "DD": "%d", +185 "dd": "%-d", +186 "DY": "%a", +187 "dy": "%w", +188 "HH24": "%H", +189 "hh24": "%H", +190 "HH12": "%I", +191 "hh12": "%I", +192 "MI": "%M", +193 "mi": "%M", +194 "SS": "%S", +195 "ss": "%S", +196 "FF": "%f", +197 "ff": "%f", +198 "FF6": "%f", +199 "ff6": "%f", +200 } +201 +202 class Parser(parser.Parser): +203 IDENTIFY_PIVOT_STRINGS = True +204 +205 FUNCTIONS = { +206 **parser.Parser.FUNCTIONS, +207 "ARRAYAGG": exp.ArrayAgg.from_arg_list, +208 "ARRAY_CONSTRUCT": exp.Array.from_arg_list, +209 "ARRAY_TO_STRING": exp.ArrayJoin.from_arg_list, +210 "CONVERT_TIMEZONE": _parse_convert_timezone, +211 "DATE_TRUNC": date_trunc_to_time, +212 "DATEADD": lambda args: exp.DateAdd( +213 this=seq_get(args, 2), +214 expression=seq_get(args, 1), +215 unit=seq_get(args, 0), +216 ), +217 "DATEDIFF": lambda args: exp.DateDiff( +218 this=seq_get(args, 2), +219 expression=seq_get(args, 1), +220 unit=seq_get(args, 0), +221 ), +222 "DIV0": _div0_to_if, +223 "IFF": exp.If.from_arg_list, +224 "NULLIFZERO": _nullifzero_to_if, +225 "OBJECT_CONSTRUCT": _parse_object_construct, +226 "RLIKE": exp.RegexpLike.from_arg_list, +227 "SQUARE": lambda args: exp.Pow(this=seq_get(args, 0), expression=exp.Literal.number(2)), +228 "TO_ARRAY": exp.Array.from_arg_list, +229 "TO_VARCHAR": exp.ToChar.from_arg_list, +230 "TO_TIMESTAMP": _snowflake_to_timestamp, +231 "ZEROIFNULL": _zeroifnull_to_if, +232 } +233 +234 FUNCTION_PARSERS = { +235 **parser.Parser.FUNCTION_PARSERS, +236 "DATE_PART": _parse_date_part, +237 } +238 FUNCTION_PARSERS.pop("TRIM") +239 +240 FUNC_TOKENS = { +241 *parser.Parser.FUNC_TOKENS, +242 TokenType.RLIKE, +243 TokenType.TABLE, +244 } +245 +246 COLUMN_OPERATORS = { +247 **parser.Parser.COLUMN_OPERATORS, +248 TokenType.COLON: lambda self, this, path: self.expression( +249 exp.Bracket, +250 this=this, +251 expressions=[path], +252 ), +253 } +254 +255 TIMESTAMPS = parser.Parser.TIMESTAMPS.copy() - {TokenType.TIME} +256 +257 RANGE_PARSERS = { +258 **parser.Parser.RANGE_PARSERS, +259 TokenType.LIKE_ANY: binary_range_parser(exp.LikeAny), +260 TokenType.ILIKE_ANY: binary_range_parser(exp.ILikeAny), +261 } +262 +263 ALTER_PARSERS = { +264 **parser.Parser.ALTER_PARSERS, +265 "UNSET": lambda self: self._parse_alter_table_set_tag(unset=True), +266 "SET": lambda self: self._parse_alter_table_set_tag(), +267 } +268 +269 def _parse_alter_table_set_tag(self, unset: bool = False) -> exp.Expression: +270 self._match_text_seq("TAG") +271 parser = t.cast(t.Callable, self._parse_id_var if unset else self._parse_conjunction) +272 return self.expression(exp.SetTag, expressions=self._parse_csv(parser), unset=unset) +273 +274 class Tokenizer(tokens.Tokenizer): +275 QUOTES = ["'", "$$"] +276 STRING_ESCAPES = ["\\", "'"] +277 HEX_STRINGS = [("x'", "'"), ("X'", "'")] +278 +279 KEYWORDS = { +280 **tokens.Tokenizer.KEYWORDS, +281 "CHAR VARYING": TokenType.VARCHAR, +282 "CHARACTER VARYING": TokenType.VARCHAR, +283 "EXCLUDE": TokenType.EXCEPT, +284 "ILIKE ANY": TokenType.ILIKE_ANY, +285 "LIKE ANY": TokenType.LIKE_ANY, +286 "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE, +287 "MINUS": TokenType.EXCEPT, +288 "NCHAR VARYING": TokenType.VARCHAR, +289 "PUT": TokenType.COMMAND, +290 "RENAME": TokenType.REPLACE, +291 "TIMESTAMP_LTZ": TokenType.TIMESTAMPLTZ, +292 "TIMESTAMP_NTZ": TokenType.TIMESTAMP, +293 "TIMESTAMP_TZ": TokenType.TIMESTAMPTZ, +294 "TIMESTAMPNTZ": TokenType.TIMESTAMP, +295 "SAMPLE": TokenType.TABLE_SAMPLE, +296 } +297 +298 SINGLE_TOKENS = { +299 **tokens.Tokenizer.SINGLE_TOKENS, +300 "$": TokenType.PARAMETER, +301 } +302 +303 VAR_SINGLE_TOKENS = {"$"} +304 +305 class Generator(generator.Generator): +306 PARAMETER_TOKEN = "$" +307 MATCHED_BY_SOURCE = False +308 SINGLE_STRING_INTERVAL = True +309 JOIN_HINTS = False +310 TABLE_HINTS = False +311 +312 TRANSFORMS = { +313 **generator.Generator.TRANSFORMS, +314 exp.Array: inline_array_sql, +315 exp.ArrayConcat: rename_func("ARRAY_CAT"), +316 exp.ArrayJoin: rename_func("ARRAY_TO_STRING"), +317 exp.AtTimeZone: lambda self, e: self.func( +318 "CONVERT_TIMEZONE", e.args.get("zone"), e.this +319 ), +320 exp.DateAdd: lambda self, e: self.func("DATEADD", e.text("unit"), e.expression, e.this), +321 exp.DateDiff: lambda self, e: self.func( +322 "DATEDIFF", e.text("unit"), e.expression, e.this +323 ), +324 exp.DateStrToDate: datestrtodate_sql, +325 exp.DataType: _datatype_sql, +326 exp.DayOfWeek: rename_func("DAYOFWEEK"), +327 exp.Extract: rename_func("DATE_PART"), +328 exp.If: rename_func("IFF"), +329 exp.LogicalAnd: rename_func("BOOLAND_AGG"), +330 exp.LogicalOr: rename_func("BOOLOR_AGG"), +331 exp.Map: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"), +332 exp.Max: max_or_greatest, +333 exp.Min: min_or_least, +334 exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", +335 exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]), +336 exp.StarMap: rename_func("OBJECT_CONSTRUCT"), +337 exp.StrPosition: lambda self, e: self.func( +338 "POSITION", e.args.get("substr"), e.this, e.args.get("position") +339 ), +340 exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})", +341 exp.Struct: lambda self, e: self.func( +342 "OBJECT_CONSTRUCT", +343 *(arg for expression in e.expressions for arg in expression.flatten()), +344 ), +345 exp.TimeStrToTime: timestrtotime_sql, +346 exp.TimeToUnix: lambda self, e: f"EXTRACT(epoch_second FROM {self.sql(e, 'this')})", +347 exp.TimeToStr: lambda self, e: self.func( +348 "TO_CHAR", exp.cast(e.this, "timestamp"), self.format_time(e) +349 ), +350 exp.TimestampTrunc: timestamptrunc_sql, +351 exp.ToChar: lambda self, e: self.function_fallback_sql(e), +352 exp.Trim: lambda self, e: self.func("TRIM", e.this, e.expression), +353 exp.TsOrDsToDate: ts_or_ds_to_date_sql("snowflake"), +354 exp.UnixToTime: _unix_to_time_sql, +355 exp.VarMap: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"), +356 } +357 +358 TYPE_MAPPING = { +359 **generator.Generator.TYPE_MAPPING, +360 exp.DataType.Type.TIMESTAMP: "TIMESTAMPNTZ", +361 } +362 +363 STAR_MAPPING = { +364 "except": "EXCLUDE", +365 "replace": "RENAME", +366 } +367 +368 PROPERTIES_LOCATION = { +369 **generator.Generator.PROPERTIES_LOCATION, +370 exp.SetProperty: exp.Properties.Location.UNSUPPORTED, +371 exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED, +372 } +373 +374 def except_op(self, expression: exp.Except) -> str: +375 if not expression.args.get("distinct", False): +376 self.unsupported("EXCEPT with All is not supported in Snowflake") +377 return super().except_op(expression) +378 +379 def intersect_op(self, expression: exp.Intersect) -> str: +380 if not expression.args.get("distinct", False): +381 self.unsupported("INTERSECT with All is not supported in Snowflake") +382 return super().intersect_op(expression) +383 +384 def settag_sql(self, expression: exp.SetTag) -> str: +385 action = "UNSET" if expression.args.get("unset") else "SET" +386 return f"{action} TAG {self.expressions(expression)}" +387 +388 def describe_sql(self, expression: exp.Describe) -> str: +389 # Default to table if kind is unknown +390 kind_value = expression.args.get("kind") or "TABLE" +391 kind = f" {kind_value}" if kind_value else "" +392 this = f" {self.sql(expression, 'this')}" +393 return f"DESCRIBE{kind}{this}" +394 +395 def generatedasidentitycolumnconstraint_sql( +396 self, expression: exp.GeneratedAsIdentityColumnConstraint +397 ) -> str: +398 start = expression.args.get("start") +399 start = f" START {start}" if start else "" +400 increment = expression.args.get("increment") +401 increment = f" INCREMENT {increment}" if increment else "" +402 return f"AUTOINCREMENT{start}{increment}" @@ -492,236 +509,240 @@ -
            157class Snowflake(Dialect):
            -158    null_ordering = "nulls_are_large"
            -159    time_format = "'yyyy-mm-dd hh24:mi:ss'"
            -160
            -161    time_mapping = {
            -162        "YYYY": "%Y",
            -163        "yyyy": "%Y",
            -164        "YY": "%y",
            -165        "yy": "%y",
            -166        "MMMM": "%B",
            -167        "mmmm": "%B",
            -168        "MON": "%b",
            -169        "mon": "%b",
            -170        "MM": "%m",
            -171        "mm": "%m",
            -172        "DD": "%d",
            -173        "dd": "%-d",
            -174        "DY": "%a",
            -175        "dy": "%w",
            -176        "HH24": "%H",
            -177        "hh24": "%H",
            -178        "HH12": "%I",
            -179        "hh12": "%I",
            -180        "MI": "%M",
            -181        "mi": "%M",
            -182        "SS": "%S",
            -183        "ss": "%S",
            -184        "FF": "%f",
            -185        "ff": "%f",
            -186        "FF6": "%f",
            -187        "ff6": "%f",
            -188    }
            -189
            -190    class Parser(parser.Parser):
            -191        IDENTIFY_PIVOT_STRINGS = True
            -192
            -193        FUNCTIONS = {
            -194            **parser.Parser.FUNCTIONS,
            -195            "ARRAYAGG": exp.ArrayAgg.from_arg_list,
            -196            "ARRAY_CONSTRUCT": exp.Array.from_arg_list,
            -197            "ARRAY_TO_STRING": exp.ArrayJoin.from_arg_list,
            -198            "CONVERT_TIMEZONE": _parse_convert_timezone,
            -199            "DATE_TRUNC": date_trunc_to_time,
            -200            "DATEADD": lambda args: exp.DateAdd(
            -201                this=seq_get(args, 2),
            -202                expression=seq_get(args, 1),
            -203                unit=seq_get(args, 0),
            -204            ),
            -205            "DATEDIFF": lambda args: exp.DateDiff(
            -206                this=seq_get(args, 2),
            -207                expression=seq_get(args, 1),
            -208                unit=seq_get(args, 0),
            -209            ),
            -210            "DIV0": _div0_to_if,
            -211            "IFF": exp.If.from_arg_list,
            -212            "NULLIFZERO": _nullifzero_to_if,
            -213            "OBJECT_CONSTRUCT": parser.parse_var_map,
            -214            "RLIKE": exp.RegexpLike.from_arg_list,
            -215            "SQUARE": lambda args: exp.Pow(this=seq_get(args, 0), expression=exp.Literal.number(2)),
            -216            "TO_ARRAY": exp.Array.from_arg_list,
            -217            "TO_VARCHAR": exp.ToChar.from_arg_list,
            -218            "TO_TIMESTAMP": _snowflake_to_timestamp,
            -219            "ZEROIFNULL": _zeroifnull_to_if,
            -220        }
            -221
            -222        FUNCTION_PARSERS = {
            -223            **parser.Parser.FUNCTION_PARSERS,
            -224            "DATE_PART": _parse_date_part,
            -225        }
            -226        FUNCTION_PARSERS.pop("TRIM")
            -227
            -228        FUNC_TOKENS = {
            -229            *parser.Parser.FUNC_TOKENS,
            -230            TokenType.RLIKE,
            -231            TokenType.TABLE,
            -232        }
            -233
            -234        COLUMN_OPERATORS = {
            -235            **parser.Parser.COLUMN_OPERATORS,
            -236            TokenType.COLON: lambda self, this, path: self.expression(
            -237                exp.Bracket,
            -238                this=this,
            -239                expressions=[path],
            -240            ),
            -241        }
            -242
            -243        TIMESTAMPS = parser.Parser.TIMESTAMPS.copy() - {TokenType.TIME}
            -244
            -245        RANGE_PARSERS = {
            -246            **parser.Parser.RANGE_PARSERS,
            -247            TokenType.LIKE_ANY: binary_range_parser(exp.LikeAny),
            -248            TokenType.ILIKE_ANY: binary_range_parser(exp.ILikeAny),
            -249        }
            -250
            -251        ALTER_PARSERS = {
            -252            **parser.Parser.ALTER_PARSERS,
            -253            "UNSET": lambda self: self._parse_alter_table_set_tag(unset=True),
            -254            "SET": lambda self: self._parse_alter_table_set_tag(),
            -255        }
            -256
            -257        def _parse_alter_table_set_tag(self, unset: bool = False) -> exp.Expression:
            -258            self._match_text_seq("TAG")
            -259            parser = t.cast(t.Callable, self._parse_id_var if unset else self._parse_conjunction)
            -260            return self.expression(exp.SetTag, expressions=self._parse_csv(parser), unset=unset)
            -261
            -262    class Tokenizer(tokens.Tokenizer):
            -263        QUOTES = ["'", "$$"]
            -264        STRING_ESCAPES = ["\\", "'"]
            -265        HEX_STRINGS = [("x'", "'"), ("X'", "'")]
            -266
            -267        KEYWORDS = {
            -268            **tokens.Tokenizer.KEYWORDS,
            -269            "CHAR VARYING": TokenType.VARCHAR,
            -270            "CHARACTER VARYING": TokenType.VARCHAR,
            -271            "EXCLUDE": TokenType.EXCEPT,
            -272            "ILIKE ANY": TokenType.ILIKE_ANY,
            -273            "LIKE ANY": TokenType.LIKE_ANY,
            -274            "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE,
            -275            "MINUS": TokenType.EXCEPT,
            -276            "NCHAR VARYING": TokenType.VARCHAR,
            -277            "PUT": TokenType.COMMAND,
            -278            "RENAME": TokenType.REPLACE,
            -279            "TIMESTAMP_LTZ": TokenType.TIMESTAMPLTZ,
            -280            "TIMESTAMP_NTZ": TokenType.TIMESTAMP,
            -281            "TIMESTAMP_TZ": TokenType.TIMESTAMPTZ,
            -282            "TIMESTAMPNTZ": TokenType.TIMESTAMP,
            -283            "SAMPLE": TokenType.TABLE_SAMPLE,
            -284        }
            -285
            -286        SINGLE_TOKENS = {
            -287            **tokens.Tokenizer.SINGLE_TOKENS,
            -288            "$": TokenType.PARAMETER,
            -289        }
            -290
            -291        VAR_SINGLE_TOKENS = {"$"}
            -292
            -293    class Generator(generator.Generator):
            -294        PARAMETER_TOKEN = "$"
            -295        MATCHED_BY_SOURCE = False
            -296        SINGLE_STRING_INTERVAL = True
            -297        JOIN_HINTS = False
            -298        TABLE_HINTS = False
            -299
            -300        TRANSFORMS = {
            -301            **generator.Generator.TRANSFORMS,
            -302            exp.Array: inline_array_sql,
            -303            exp.ArrayConcat: rename_func("ARRAY_CAT"),
            -304            exp.ArrayJoin: rename_func("ARRAY_TO_STRING"),
            -305            exp.AtTimeZone: lambda self, e: self.func(
            -306                "CONVERT_TIMEZONE", e.args.get("zone"), e.this
            -307            ),
            -308            exp.DateAdd: lambda self, e: self.func("DATEADD", e.text("unit"), e.expression, e.this),
            -309            exp.DateDiff: lambda self, e: self.func(
            -310                "DATEDIFF", e.text("unit"), e.expression, e.this
            -311            ),
            -312            exp.DateStrToDate: datestrtodate_sql,
            -313            exp.DataType: _datatype_sql,
            -314            exp.DayOfWeek: rename_func("DAYOFWEEK"),
            -315            exp.Extract: rename_func("DATE_PART"),
            -316            exp.If: rename_func("IFF"),
            -317            exp.LogicalAnd: rename_func("BOOLAND_AGG"),
            -318            exp.LogicalOr: rename_func("BOOLOR_AGG"),
            -319            exp.Map: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"),
            -320            exp.Max: max_or_greatest,
            -321            exp.Min: min_or_least,
            -322            exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}",
            -323            exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]),
            -324            exp.StarMap: rename_func("OBJECT_CONSTRUCT"),
            -325            exp.StrPosition: lambda self, e: self.func(
            -326                "POSITION", e.args.get("substr"), e.this, e.args.get("position")
            -327            ),
            -328            exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})",
            -329            exp.TimeStrToTime: timestrtotime_sql,
            -330            exp.TimeToUnix: lambda self, e: f"EXTRACT(epoch_second FROM {self.sql(e, 'this')})",
            -331            exp.TimeToStr: lambda self, e: self.func(
            -332                "TO_CHAR", exp.cast(e.this, "timestamp"), self.format_time(e)
            -333            ),
            -334            exp.TimestampTrunc: timestamptrunc_sql,
            -335            exp.ToChar: lambda self, e: self.function_fallback_sql(e),
            -336            exp.Trim: lambda self, e: self.func("TRIM", e.this, e.expression),
            -337            exp.TsOrDsToDate: ts_or_ds_to_date_sql("snowflake"),
            -338            exp.UnixToTime: _unix_to_time_sql,
            -339            exp.VarMap: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"),
            -340        }
            -341
            -342        TYPE_MAPPING = {
            -343            **generator.Generator.TYPE_MAPPING,
            -344            exp.DataType.Type.TIMESTAMP: "TIMESTAMPNTZ",
            -345        }
            -346
            -347        STAR_MAPPING = {
            -348            "except": "EXCLUDE",
            -349            "replace": "RENAME",
            -350        }
            -351
            -352        PROPERTIES_LOCATION = {
            -353            **generator.Generator.PROPERTIES_LOCATION,
            -354            exp.SetProperty: exp.Properties.Location.UNSUPPORTED,
            -355            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
            -356        }
            -357
            -358        def except_op(self, expression: exp.Except) -> str:
            -359            if not expression.args.get("distinct", False):
            -360                self.unsupported("EXCEPT with All is not supported in Snowflake")
            -361            return super().except_op(expression)
            -362
            -363        def intersect_op(self, expression: exp.Intersect) -> str:
            -364            if not expression.args.get("distinct", False):
            -365                self.unsupported("INTERSECT with All is not supported in Snowflake")
            -366            return super().intersect_op(expression)
            -367
            -368        def settag_sql(self, expression: exp.SetTag) -> str:
            -369            action = "UNSET" if expression.args.get("unset") else "SET"
            -370            return f"{action} TAG {self.expressions(expression)}"
            -371
            -372        def describe_sql(self, expression: exp.Describe) -> str:
            -373            # Default to table if kind is unknown
            -374            kind_value = expression.args.get("kind") or "TABLE"
            -375            kind = f" {kind_value}" if kind_value else ""
            -376            this = f" {self.sql(expression, 'this')}"
            -377            return f"DESCRIBE{kind}{this}"
            -378
            -379        def generatedasidentitycolumnconstraint_sql(
            -380            self, expression: exp.GeneratedAsIdentityColumnConstraint
            -381        ) -> str:
            -382            start = expression.args.get("start")
            -383            start = f" START {start}" if start else ""
            -384            increment = expression.args.get("increment")
            -385            increment = f" INCREMENT {increment}" if increment else ""
            -386            return f"AUTOINCREMENT{start}{increment}"
            +            
            170class Snowflake(Dialect):
            +171    null_ordering = "nulls_are_large"
            +172    time_format = "'yyyy-mm-dd hh24:mi:ss'"
            +173
            +174    time_mapping = {
            +175        "YYYY": "%Y",
            +176        "yyyy": "%Y",
            +177        "YY": "%y",
            +178        "yy": "%y",
            +179        "MMMM": "%B",
            +180        "mmmm": "%B",
            +181        "MON": "%b",
            +182        "mon": "%b",
            +183        "MM": "%m",
            +184        "mm": "%m",
            +185        "DD": "%d",
            +186        "dd": "%-d",
            +187        "DY": "%a",
            +188        "dy": "%w",
            +189        "HH24": "%H",
            +190        "hh24": "%H",
            +191        "HH12": "%I",
            +192        "hh12": "%I",
            +193        "MI": "%M",
            +194        "mi": "%M",
            +195        "SS": "%S",
            +196        "ss": "%S",
            +197        "FF": "%f",
            +198        "ff": "%f",
            +199        "FF6": "%f",
            +200        "ff6": "%f",
            +201    }
            +202
            +203    class Parser(parser.Parser):
            +204        IDENTIFY_PIVOT_STRINGS = True
            +205
            +206        FUNCTIONS = {
            +207            **parser.Parser.FUNCTIONS,
            +208            "ARRAYAGG": exp.ArrayAgg.from_arg_list,
            +209            "ARRAY_CONSTRUCT": exp.Array.from_arg_list,
            +210            "ARRAY_TO_STRING": exp.ArrayJoin.from_arg_list,
            +211            "CONVERT_TIMEZONE": _parse_convert_timezone,
            +212            "DATE_TRUNC": date_trunc_to_time,
            +213            "DATEADD": lambda args: exp.DateAdd(
            +214                this=seq_get(args, 2),
            +215                expression=seq_get(args, 1),
            +216                unit=seq_get(args, 0),
            +217            ),
            +218            "DATEDIFF": lambda args: exp.DateDiff(
            +219                this=seq_get(args, 2),
            +220                expression=seq_get(args, 1),
            +221                unit=seq_get(args, 0),
            +222            ),
            +223            "DIV0": _div0_to_if,
            +224            "IFF": exp.If.from_arg_list,
            +225            "NULLIFZERO": _nullifzero_to_if,
            +226            "OBJECT_CONSTRUCT": _parse_object_construct,
            +227            "RLIKE": exp.RegexpLike.from_arg_list,
            +228            "SQUARE": lambda args: exp.Pow(this=seq_get(args, 0), expression=exp.Literal.number(2)),
            +229            "TO_ARRAY": exp.Array.from_arg_list,
            +230            "TO_VARCHAR": exp.ToChar.from_arg_list,
            +231            "TO_TIMESTAMP": _snowflake_to_timestamp,
            +232            "ZEROIFNULL": _zeroifnull_to_if,
            +233        }
            +234
            +235        FUNCTION_PARSERS = {
            +236            **parser.Parser.FUNCTION_PARSERS,
            +237            "DATE_PART": _parse_date_part,
            +238        }
            +239        FUNCTION_PARSERS.pop("TRIM")
            +240
            +241        FUNC_TOKENS = {
            +242            *parser.Parser.FUNC_TOKENS,
            +243            TokenType.RLIKE,
            +244            TokenType.TABLE,
            +245        }
            +246
            +247        COLUMN_OPERATORS = {
            +248            **parser.Parser.COLUMN_OPERATORS,
            +249            TokenType.COLON: lambda self, this, path: self.expression(
            +250                exp.Bracket,
            +251                this=this,
            +252                expressions=[path],
            +253            ),
            +254        }
            +255
            +256        TIMESTAMPS = parser.Parser.TIMESTAMPS.copy() - {TokenType.TIME}
            +257
            +258        RANGE_PARSERS = {
            +259            **parser.Parser.RANGE_PARSERS,
            +260            TokenType.LIKE_ANY: binary_range_parser(exp.LikeAny),
            +261            TokenType.ILIKE_ANY: binary_range_parser(exp.ILikeAny),
            +262        }
            +263
            +264        ALTER_PARSERS = {
            +265            **parser.Parser.ALTER_PARSERS,
            +266            "UNSET": lambda self: self._parse_alter_table_set_tag(unset=True),
            +267            "SET": lambda self: self._parse_alter_table_set_tag(),
            +268        }
            +269
            +270        def _parse_alter_table_set_tag(self, unset: bool = False) -> exp.Expression:
            +271            self._match_text_seq("TAG")
            +272            parser = t.cast(t.Callable, self._parse_id_var if unset else self._parse_conjunction)
            +273            return self.expression(exp.SetTag, expressions=self._parse_csv(parser), unset=unset)
            +274
            +275    class Tokenizer(tokens.Tokenizer):
            +276        QUOTES = ["'", "$$"]
            +277        STRING_ESCAPES = ["\\", "'"]
            +278        HEX_STRINGS = [("x'", "'"), ("X'", "'")]
            +279
            +280        KEYWORDS = {
            +281            **tokens.Tokenizer.KEYWORDS,
            +282            "CHAR VARYING": TokenType.VARCHAR,
            +283            "CHARACTER VARYING": TokenType.VARCHAR,
            +284            "EXCLUDE": TokenType.EXCEPT,
            +285            "ILIKE ANY": TokenType.ILIKE_ANY,
            +286            "LIKE ANY": TokenType.LIKE_ANY,
            +287            "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE,
            +288            "MINUS": TokenType.EXCEPT,
            +289            "NCHAR VARYING": TokenType.VARCHAR,
            +290            "PUT": TokenType.COMMAND,
            +291            "RENAME": TokenType.REPLACE,
            +292            "TIMESTAMP_LTZ": TokenType.TIMESTAMPLTZ,
            +293            "TIMESTAMP_NTZ": TokenType.TIMESTAMP,
            +294            "TIMESTAMP_TZ": TokenType.TIMESTAMPTZ,
            +295            "TIMESTAMPNTZ": TokenType.TIMESTAMP,
            +296            "SAMPLE": TokenType.TABLE_SAMPLE,
            +297        }
            +298
            +299        SINGLE_TOKENS = {
            +300            **tokens.Tokenizer.SINGLE_TOKENS,
            +301            "$": TokenType.PARAMETER,
            +302        }
            +303
            +304        VAR_SINGLE_TOKENS = {"$"}
            +305
            +306    class Generator(generator.Generator):
            +307        PARAMETER_TOKEN = "$"
            +308        MATCHED_BY_SOURCE = False
            +309        SINGLE_STRING_INTERVAL = True
            +310        JOIN_HINTS = False
            +311        TABLE_HINTS = False
            +312
            +313        TRANSFORMS = {
            +314            **generator.Generator.TRANSFORMS,
            +315            exp.Array: inline_array_sql,
            +316            exp.ArrayConcat: rename_func("ARRAY_CAT"),
            +317            exp.ArrayJoin: rename_func("ARRAY_TO_STRING"),
            +318            exp.AtTimeZone: lambda self, e: self.func(
            +319                "CONVERT_TIMEZONE", e.args.get("zone"), e.this
            +320            ),
            +321            exp.DateAdd: lambda self, e: self.func("DATEADD", e.text("unit"), e.expression, e.this),
            +322            exp.DateDiff: lambda self, e: self.func(
            +323                "DATEDIFF", e.text("unit"), e.expression, e.this
            +324            ),
            +325            exp.DateStrToDate: datestrtodate_sql,
            +326            exp.DataType: _datatype_sql,
            +327            exp.DayOfWeek: rename_func("DAYOFWEEK"),
            +328            exp.Extract: rename_func("DATE_PART"),
            +329            exp.If: rename_func("IFF"),
            +330            exp.LogicalAnd: rename_func("BOOLAND_AGG"),
            +331            exp.LogicalOr: rename_func("BOOLOR_AGG"),
            +332            exp.Map: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"),
            +333            exp.Max: max_or_greatest,
            +334            exp.Min: min_or_least,
            +335            exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}",
            +336            exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]),
            +337            exp.StarMap: rename_func("OBJECT_CONSTRUCT"),
            +338            exp.StrPosition: lambda self, e: self.func(
            +339                "POSITION", e.args.get("substr"), e.this, e.args.get("position")
            +340            ),
            +341            exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})",
            +342            exp.Struct: lambda self, e: self.func(
            +343                "OBJECT_CONSTRUCT",
            +344                *(arg for expression in e.expressions for arg in expression.flatten()),
            +345            ),
            +346            exp.TimeStrToTime: timestrtotime_sql,
            +347            exp.TimeToUnix: lambda self, e: f"EXTRACT(epoch_second FROM {self.sql(e, 'this')})",
            +348            exp.TimeToStr: lambda self, e: self.func(
            +349                "TO_CHAR", exp.cast(e.this, "timestamp"), self.format_time(e)
            +350            ),
            +351            exp.TimestampTrunc: timestamptrunc_sql,
            +352            exp.ToChar: lambda self, e: self.function_fallback_sql(e),
            +353            exp.Trim: lambda self, e: self.func("TRIM", e.this, e.expression),
            +354            exp.TsOrDsToDate: ts_or_ds_to_date_sql("snowflake"),
            +355            exp.UnixToTime: _unix_to_time_sql,
            +356            exp.VarMap: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"),
            +357        }
            +358
            +359        TYPE_MAPPING = {
            +360            **generator.Generator.TYPE_MAPPING,
            +361            exp.DataType.Type.TIMESTAMP: "TIMESTAMPNTZ",
            +362        }
            +363
            +364        STAR_MAPPING = {
            +365            "except": "EXCLUDE",
            +366            "replace": "RENAME",
            +367        }
            +368
            +369        PROPERTIES_LOCATION = {
            +370            **generator.Generator.PROPERTIES_LOCATION,
            +371            exp.SetProperty: exp.Properties.Location.UNSUPPORTED,
            +372            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
            +373        }
            +374
            +375        def except_op(self, expression: exp.Except) -> str:
            +376            if not expression.args.get("distinct", False):
            +377                self.unsupported("EXCEPT with All is not supported in Snowflake")
            +378            return super().except_op(expression)
            +379
            +380        def intersect_op(self, expression: exp.Intersect) -> str:
            +381            if not expression.args.get("distinct", False):
            +382                self.unsupported("INTERSECT with All is not supported in Snowflake")
            +383            return super().intersect_op(expression)
            +384
            +385        def settag_sql(self, expression: exp.SetTag) -> str:
            +386            action = "UNSET" if expression.args.get("unset") else "SET"
            +387            return f"{action} TAG {self.expressions(expression)}"
            +388
            +389        def describe_sql(self, expression: exp.Describe) -> str:
            +390            # Default to table if kind is unknown
            +391            kind_value = expression.args.get("kind") or "TABLE"
            +392            kind = f" {kind_value}" if kind_value else ""
            +393            this = f" {self.sql(expression, 'this')}"
            +394            return f"DESCRIBE{kind}{this}"
            +395
            +396        def generatedasidentitycolumnconstraint_sql(
            +397            self, expression: exp.GeneratedAsIdentityColumnConstraint
            +398        ) -> str:
            +399            start = expression.args.get("start")
            +400            start = f" START {start}" if start else ""
            +401            increment = expression.args.get("increment")
            +402            increment = f" INCREMENT {increment}" if increment else ""
            +403            return f"AUTOINCREMENT{start}{increment}"
             
            @@ -756,77 +777,77 @@
            -
            190    class Parser(parser.Parser):
            -191        IDENTIFY_PIVOT_STRINGS = True
            -192
            -193        FUNCTIONS = {
            -194            **parser.Parser.FUNCTIONS,
            -195            "ARRAYAGG": exp.ArrayAgg.from_arg_list,
            -196            "ARRAY_CONSTRUCT": exp.Array.from_arg_list,
            -197            "ARRAY_TO_STRING": exp.ArrayJoin.from_arg_list,
            -198            "CONVERT_TIMEZONE": _parse_convert_timezone,
            -199            "DATE_TRUNC": date_trunc_to_time,
            -200            "DATEADD": lambda args: exp.DateAdd(
            -201                this=seq_get(args, 2),
            -202                expression=seq_get(args, 1),
            -203                unit=seq_get(args, 0),
            -204            ),
            -205            "DATEDIFF": lambda args: exp.DateDiff(
            -206                this=seq_get(args, 2),
            -207                expression=seq_get(args, 1),
            -208                unit=seq_get(args, 0),
            -209            ),
            -210            "DIV0": _div0_to_if,
            -211            "IFF": exp.If.from_arg_list,
            -212            "NULLIFZERO": _nullifzero_to_if,
            -213            "OBJECT_CONSTRUCT": parser.parse_var_map,
            -214            "RLIKE": exp.RegexpLike.from_arg_list,
            -215            "SQUARE": lambda args: exp.Pow(this=seq_get(args, 0), expression=exp.Literal.number(2)),
            -216            "TO_ARRAY": exp.Array.from_arg_list,
            -217            "TO_VARCHAR": exp.ToChar.from_arg_list,
            -218            "TO_TIMESTAMP": _snowflake_to_timestamp,
            -219            "ZEROIFNULL": _zeroifnull_to_if,
            -220        }
            -221
            -222        FUNCTION_PARSERS = {
            -223            **parser.Parser.FUNCTION_PARSERS,
            -224            "DATE_PART": _parse_date_part,
            -225        }
            -226        FUNCTION_PARSERS.pop("TRIM")
            -227
            -228        FUNC_TOKENS = {
            -229            *parser.Parser.FUNC_TOKENS,
            -230            TokenType.RLIKE,
            -231            TokenType.TABLE,
            -232        }
            -233
            -234        COLUMN_OPERATORS = {
            -235            **parser.Parser.COLUMN_OPERATORS,
            -236            TokenType.COLON: lambda self, this, path: self.expression(
            -237                exp.Bracket,
            -238                this=this,
            -239                expressions=[path],
            -240            ),
            -241        }
            -242
            -243        TIMESTAMPS = parser.Parser.TIMESTAMPS.copy() - {TokenType.TIME}
            -244
            -245        RANGE_PARSERS = {
            -246            **parser.Parser.RANGE_PARSERS,
            -247            TokenType.LIKE_ANY: binary_range_parser(exp.LikeAny),
            -248            TokenType.ILIKE_ANY: binary_range_parser(exp.ILikeAny),
            -249        }
            -250
            -251        ALTER_PARSERS = {
            -252            **parser.Parser.ALTER_PARSERS,
            -253            "UNSET": lambda self: self._parse_alter_table_set_tag(unset=True),
            -254            "SET": lambda self: self._parse_alter_table_set_tag(),
            -255        }
            -256
            -257        def _parse_alter_table_set_tag(self, unset: bool = False) -> exp.Expression:
            -258            self._match_text_seq("TAG")
            -259            parser = t.cast(t.Callable, self._parse_id_var if unset else self._parse_conjunction)
            -260            return self.expression(exp.SetTag, expressions=self._parse_csv(parser), unset=unset)
            +            
            203    class Parser(parser.Parser):
            +204        IDENTIFY_PIVOT_STRINGS = True
            +205
            +206        FUNCTIONS = {
            +207            **parser.Parser.FUNCTIONS,
            +208            "ARRAYAGG": exp.ArrayAgg.from_arg_list,
            +209            "ARRAY_CONSTRUCT": exp.Array.from_arg_list,
            +210            "ARRAY_TO_STRING": exp.ArrayJoin.from_arg_list,
            +211            "CONVERT_TIMEZONE": _parse_convert_timezone,
            +212            "DATE_TRUNC": date_trunc_to_time,
            +213            "DATEADD": lambda args: exp.DateAdd(
            +214                this=seq_get(args, 2),
            +215                expression=seq_get(args, 1),
            +216                unit=seq_get(args, 0),
            +217            ),
            +218            "DATEDIFF": lambda args: exp.DateDiff(
            +219                this=seq_get(args, 2),
            +220                expression=seq_get(args, 1),
            +221                unit=seq_get(args, 0),
            +222            ),
            +223            "DIV0": _div0_to_if,
            +224            "IFF": exp.If.from_arg_list,
            +225            "NULLIFZERO": _nullifzero_to_if,
            +226            "OBJECT_CONSTRUCT": _parse_object_construct,
            +227            "RLIKE": exp.RegexpLike.from_arg_list,
            +228            "SQUARE": lambda args: exp.Pow(this=seq_get(args, 0), expression=exp.Literal.number(2)),
            +229            "TO_ARRAY": exp.Array.from_arg_list,
            +230            "TO_VARCHAR": exp.ToChar.from_arg_list,
            +231            "TO_TIMESTAMP": _snowflake_to_timestamp,
            +232            "ZEROIFNULL": _zeroifnull_to_if,
            +233        }
            +234
            +235        FUNCTION_PARSERS = {
            +236            **parser.Parser.FUNCTION_PARSERS,
            +237            "DATE_PART": _parse_date_part,
            +238        }
            +239        FUNCTION_PARSERS.pop("TRIM")
            +240
            +241        FUNC_TOKENS = {
            +242            *parser.Parser.FUNC_TOKENS,
            +243            TokenType.RLIKE,
            +244            TokenType.TABLE,
            +245        }
            +246
            +247        COLUMN_OPERATORS = {
            +248            **parser.Parser.COLUMN_OPERATORS,
            +249            TokenType.COLON: lambda self, this, path: self.expression(
            +250                exp.Bracket,
            +251                this=this,
            +252                expressions=[path],
            +253            ),
            +254        }
            +255
            +256        TIMESTAMPS = parser.Parser.TIMESTAMPS.copy() - {TokenType.TIME}
            +257
            +258        RANGE_PARSERS = {
            +259            **parser.Parser.RANGE_PARSERS,
            +260            TokenType.LIKE_ANY: binary_range_parser(exp.LikeAny),
            +261            TokenType.ILIKE_ANY: binary_range_parser(exp.ILikeAny),
            +262        }
            +263
            +264        ALTER_PARSERS = {
            +265            **parser.Parser.ALTER_PARSERS,
            +266            "UNSET": lambda self: self._parse_alter_table_set_tag(unset=True),
            +267            "SET": lambda self: self._parse_alter_table_set_tag(),
            +268        }
            +269
            +270        def _parse_alter_table_set_tag(self, unset: bool = False) -> exp.Expression:
            +271            self._match_text_seq("TAG")
            +272            parser = t.cast(t.Callable, self._parse_id_var if unset else self._parse_conjunction)
            +273            return self.expression(exp.SetTag, expressions=self._parse_csv(parser), unset=unset)
             
            @@ -837,7 +858,7 @@ a parsed syntax tree.

            • error_level: the desired error level. -Default: ErrorLevel.RAISE
            • +Default: ErrorLevel.IMMEDIATE
            • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
            • @@ -883,36 +904,36 @@ Default: "nulls_are_small"
            -
            262    class Tokenizer(tokens.Tokenizer):
            -263        QUOTES = ["'", "$$"]
            -264        STRING_ESCAPES = ["\\", "'"]
            -265        HEX_STRINGS = [("x'", "'"), ("X'", "'")]
            -266
            -267        KEYWORDS = {
            -268            **tokens.Tokenizer.KEYWORDS,
            -269            "CHAR VARYING": TokenType.VARCHAR,
            -270            "CHARACTER VARYING": TokenType.VARCHAR,
            -271            "EXCLUDE": TokenType.EXCEPT,
            -272            "ILIKE ANY": TokenType.ILIKE_ANY,
            -273            "LIKE ANY": TokenType.LIKE_ANY,
            -274            "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE,
            -275            "MINUS": TokenType.EXCEPT,
            -276            "NCHAR VARYING": TokenType.VARCHAR,
            -277            "PUT": TokenType.COMMAND,
            -278            "RENAME": TokenType.REPLACE,
            -279            "TIMESTAMP_LTZ": TokenType.TIMESTAMPLTZ,
            -280            "TIMESTAMP_NTZ": TokenType.TIMESTAMP,
            -281            "TIMESTAMP_TZ": TokenType.TIMESTAMPTZ,
            -282            "TIMESTAMPNTZ": TokenType.TIMESTAMP,
            -283            "SAMPLE": TokenType.TABLE_SAMPLE,
            -284        }
            -285
            -286        SINGLE_TOKENS = {
            -287            **tokens.Tokenizer.SINGLE_TOKENS,
            -288            "$": TokenType.PARAMETER,
            -289        }
            -290
            -291        VAR_SINGLE_TOKENS = {"$"}
            +            
            275    class Tokenizer(tokens.Tokenizer):
            +276        QUOTES = ["'", "$$"]
            +277        STRING_ESCAPES = ["\\", "'"]
            +278        HEX_STRINGS = [("x'", "'"), ("X'", "'")]
            +279
            +280        KEYWORDS = {
            +281            **tokens.Tokenizer.KEYWORDS,
            +282            "CHAR VARYING": TokenType.VARCHAR,
            +283            "CHARACTER VARYING": TokenType.VARCHAR,
            +284            "EXCLUDE": TokenType.EXCEPT,
            +285            "ILIKE ANY": TokenType.ILIKE_ANY,
            +286            "LIKE ANY": TokenType.LIKE_ANY,
            +287            "MATCH_RECOGNIZE": TokenType.MATCH_RECOGNIZE,
            +288            "MINUS": TokenType.EXCEPT,
            +289            "NCHAR VARYING": TokenType.VARCHAR,
            +290            "PUT": TokenType.COMMAND,
            +291            "RENAME": TokenType.REPLACE,
            +292            "TIMESTAMP_LTZ": TokenType.TIMESTAMPLTZ,
            +293            "TIMESTAMP_NTZ": TokenType.TIMESTAMP,
            +294            "TIMESTAMP_TZ": TokenType.TIMESTAMPTZ,
            +295            "TIMESTAMPNTZ": TokenType.TIMESTAMP,
            +296            "SAMPLE": TokenType.TABLE_SAMPLE,
            +297        }
            +298
            +299        SINGLE_TOKENS = {
            +300            **tokens.Tokenizer.SINGLE_TOKENS,
            +301            "$": TokenType.PARAMETER,
            +302        }
            +303
            +304        VAR_SINGLE_TOKENS = {"$"}
             
            @@ -940,100 +961,104 @@ Default: "nulls_are_small"
            -
            293    class Generator(generator.Generator):
            -294        PARAMETER_TOKEN = "$"
            -295        MATCHED_BY_SOURCE = False
            -296        SINGLE_STRING_INTERVAL = True
            -297        JOIN_HINTS = False
            -298        TABLE_HINTS = False
            -299
            -300        TRANSFORMS = {
            -301            **generator.Generator.TRANSFORMS,
            -302            exp.Array: inline_array_sql,
            -303            exp.ArrayConcat: rename_func("ARRAY_CAT"),
            -304            exp.ArrayJoin: rename_func("ARRAY_TO_STRING"),
            -305            exp.AtTimeZone: lambda self, e: self.func(
            -306                "CONVERT_TIMEZONE", e.args.get("zone"), e.this
            -307            ),
            -308            exp.DateAdd: lambda self, e: self.func("DATEADD", e.text("unit"), e.expression, e.this),
            -309            exp.DateDiff: lambda self, e: self.func(
            -310                "DATEDIFF", e.text("unit"), e.expression, e.this
            -311            ),
            -312            exp.DateStrToDate: datestrtodate_sql,
            -313            exp.DataType: _datatype_sql,
            -314            exp.DayOfWeek: rename_func("DAYOFWEEK"),
            -315            exp.Extract: rename_func("DATE_PART"),
            -316            exp.If: rename_func("IFF"),
            -317            exp.LogicalAnd: rename_func("BOOLAND_AGG"),
            -318            exp.LogicalOr: rename_func("BOOLOR_AGG"),
            -319            exp.Map: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"),
            -320            exp.Max: max_or_greatest,
            -321            exp.Min: min_or_least,
            -322            exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}",
            -323            exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]),
            -324            exp.StarMap: rename_func("OBJECT_CONSTRUCT"),
            -325            exp.StrPosition: lambda self, e: self.func(
            -326                "POSITION", e.args.get("substr"), e.this, e.args.get("position")
            -327            ),
            -328            exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})",
            -329            exp.TimeStrToTime: timestrtotime_sql,
            -330            exp.TimeToUnix: lambda self, e: f"EXTRACT(epoch_second FROM {self.sql(e, 'this')})",
            -331            exp.TimeToStr: lambda self, e: self.func(
            -332                "TO_CHAR", exp.cast(e.this, "timestamp"), self.format_time(e)
            -333            ),
            -334            exp.TimestampTrunc: timestamptrunc_sql,
            -335            exp.ToChar: lambda self, e: self.function_fallback_sql(e),
            -336            exp.Trim: lambda self, e: self.func("TRIM", e.this, e.expression),
            -337            exp.TsOrDsToDate: ts_or_ds_to_date_sql("snowflake"),
            -338            exp.UnixToTime: _unix_to_time_sql,
            -339            exp.VarMap: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"),
            -340        }
            -341
            -342        TYPE_MAPPING = {
            -343            **generator.Generator.TYPE_MAPPING,
            -344            exp.DataType.Type.TIMESTAMP: "TIMESTAMPNTZ",
            -345        }
            -346
            -347        STAR_MAPPING = {
            -348            "except": "EXCLUDE",
            -349            "replace": "RENAME",
            -350        }
            -351
            -352        PROPERTIES_LOCATION = {
            -353            **generator.Generator.PROPERTIES_LOCATION,
            -354            exp.SetProperty: exp.Properties.Location.UNSUPPORTED,
            -355            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
            -356        }
            -357
            -358        def except_op(self, expression: exp.Except) -> str:
            -359            if not expression.args.get("distinct", False):
            -360                self.unsupported("EXCEPT with All is not supported in Snowflake")
            -361            return super().except_op(expression)
            -362
            -363        def intersect_op(self, expression: exp.Intersect) -> str:
            -364            if not expression.args.get("distinct", False):
            -365                self.unsupported("INTERSECT with All is not supported in Snowflake")
            -366            return super().intersect_op(expression)
            -367
            -368        def settag_sql(self, expression: exp.SetTag) -> str:
            -369            action = "UNSET" if expression.args.get("unset") else "SET"
            -370            return f"{action} TAG {self.expressions(expression)}"
            -371
            -372        def describe_sql(self, expression: exp.Describe) -> str:
            -373            # Default to table if kind is unknown
            -374            kind_value = expression.args.get("kind") or "TABLE"
            -375            kind = f" {kind_value}" if kind_value else ""
            -376            this = f" {self.sql(expression, 'this')}"
            -377            return f"DESCRIBE{kind}{this}"
            -378
            -379        def generatedasidentitycolumnconstraint_sql(
            -380            self, expression: exp.GeneratedAsIdentityColumnConstraint
            -381        ) -> str:
            -382            start = expression.args.get("start")
            -383            start = f" START {start}" if start else ""
            -384            increment = expression.args.get("increment")
            -385            increment = f" INCREMENT {increment}" if increment else ""
            -386            return f"AUTOINCREMENT{start}{increment}"
            +            
            306    class Generator(generator.Generator):
            +307        PARAMETER_TOKEN = "$"
            +308        MATCHED_BY_SOURCE = False
            +309        SINGLE_STRING_INTERVAL = True
            +310        JOIN_HINTS = False
            +311        TABLE_HINTS = False
            +312
            +313        TRANSFORMS = {
            +314            **generator.Generator.TRANSFORMS,
            +315            exp.Array: inline_array_sql,
            +316            exp.ArrayConcat: rename_func("ARRAY_CAT"),
            +317            exp.ArrayJoin: rename_func("ARRAY_TO_STRING"),
            +318            exp.AtTimeZone: lambda self, e: self.func(
            +319                "CONVERT_TIMEZONE", e.args.get("zone"), e.this
            +320            ),
            +321            exp.DateAdd: lambda self, e: self.func("DATEADD", e.text("unit"), e.expression, e.this),
            +322            exp.DateDiff: lambda self, e: self.func(
            +323                "DATEDIFF", e.text("unit"), e.expression, e.this
            +324            ),
            +325            exp.DateStrToDate: datestrtodate_sql,
            +326            exp.DataType: _datatype_sql,
            +327            exp.DayOfWeek: rename_func("DAYOFWEEK"),
            +328            exp.Extract: rename_func("DATE_PART"),
            +329            exp.If: rename_func("IFF"),
            +330            exp.LogicalAnd: rename_func("BOOLAND_AGG"),
            +331            exp.LogicalOr: rename_func("BOOLOR_AGG"),
            +332            exp.Map: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"),
            +333            exp.Max: max_or_greatest,
            +334            exp.Min: min_or_least,
            +335            exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}",
            +336            exp.Select: transforms.preprocess([transforms.eliminate_distinct_on]),
            +337            exp.StarMap: rename_func("OBJECT_CONSTRUCT"),
            +338            exp.StrPosition: lambda self, e: self.func(
            +339                "POSITION", e.args.get("substr"), e.this, e.args.get("position")
            +340            ),
            +341            exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})",
            +342            exp.Struct: lambda self, e: self.func(
            +343                "OBJECT_CONSTRUCT",
            +344                *(arg for expression in e.expressions for arg in expression.flatten()),
            +345            ),
            +346            exp.TimeStrToTime: timestrtotime_sql,
            +347            exp.TimeToUnix: lambda self, e: f"EXTRACT(epoch_second FROM {self.sql(e, 'this')})",
            +348            exp.TimeToStr: lambda self, e: self.func(
            +349                "TO_CHAR", exp.cast(e.this, "timestamp"), self.format_time(e)
            +350            ),
            +351            exp.TimestampTrunc: timestamptrunc_sql,
            +352            exp.ToChar: lambda self, e: self.function_fallback_sql(e),
            +353            exp.Trim: lambda self, e: self.func("TRIM", e.this, e.expression),
            +354            exp.TsOrDsToDate: ts_or_ds_to_date_sql("snowflake"),
            +355            exp.UnixToTime: _unix_to_time_sql,
            +356            exp.VarMap: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"),
            +357        }
            +358
            +359        TYPE_MAPPING = {
            +360            **generator.Generator.TYPE_MAPPING,
            +361            exp.DataType.Type.TIMESTAMP: "TIMESTAMPNTZ",
            +362        }
            +363
            +364        STAR_MAPPING = {
            +365            "except": "EXCLUDE",
            +366            "replace": "RENAME",
            +367        }
            +368
            +369        PROPERTIES_LOCATION = {
            +370            **generator.Generator.PROPERTIES_LOCATION,
            +371            exp.SetProperty: exp.Properties.Location.UNSUPPORTED,
            +372            exp.VolatileProperty: exp.Properties.Location.UNSUPPORTED,
            +373        }
            +374
            +375        def except_op(self, expression: exp.Except) -> str:
            +376            if not expression.args.get("distinct", False):
            +377                self.unsupported("EXCEPT with All is not supported in Snowflake")
            +378            return super().except_op(expression)
            +379
            +380        def intersect_op(self, expression: exp.Intersect) -> str:
            +381            if not expression.args.get("distinct", False):
            +382                self.unsupported("INTERSECT with All is not supported in Snowflake")
            +383            return super().intersect_op(expression)
            +384
            +385        def settag_sql(self, expression: exp.SetTag) -> str:
            +386            action = "UNSET" if expression.args.get("unset") else "SET"
            +387            return f"{action} TAG {self.expressions(expression)}"
            +388
            +389        def describe_sql(self, expression: exp.Describe) -> str:
            +390            # Default to table if kind is unknown
            +391            kind_value = expression.args.get("kind") or "TABLE"
            +392            kind = f" {kind_value}" if kind_value else ""
            +393            this = f" {self.sql(expression, 'this')}"
            +394            return f"DESCRIBE{kind}{this}"
            +395
            +396        def generatedasidentitycolumnconstraint_sql(
            +397            self, expression: exp.GeneratedAsIdentityColumnConstraint
            +398        ) -> str:
            +399            start = expression.args.get("start")
            +400            start = f" START {start}" if start else ""
            +401            increment = expression.args.get("increment")
            +402            increment = f" INCREMENT {increment}" if increment else ""
            +403            return f"AUTOINCREMENT{start}{increment}"
             
            @@ -1069,6 +1094,8 @@ represents a python time format and the output the target time format Default: "upper"
          • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
          • +
          • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
          • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
          • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1100,10 +1127,10 @@ Default: True
          • -
            358        def except_op(self, expression: exp.Except) -> str:
            -359            if not expression.args.get("distinct", False):
            -360                self.unsupported("EXCEPT with All is not supported in Snowflake")
            -361            return super().except_op(expression)
            +            
            375        def except_op(self, expression: exp.Except) -> str:
            +376            if not expression.args.get("distinct", False):
            +377                self.unsupported("EXCEPT with All is not supported in Snowflake")
            +378            return super().except_op(expression)
             
            @@ -1121,10 +1148,10 @@ Default: True
            -
            363        def intersect_op(self, expression: exp.Intersect) -> str:
            -364            if not expression.args.get("distinct", False):
            -365                self.unsupported("INTERSECT with All is not supported in Snowflake")
            -366            return super().intersect_op(expression)
            +            
            380        def intersect_op(self, expression: exp.Intersect) -> str:
            +381            if not expression.args.get("distinct", False):
            +382                self.unsupported("INTERSECT with All is not supported in Snowflake")
            +383            return super().intersect_op(expression)
             
            @@ -1142,9 +1169,9 @@ Default: True
            -
            368        def settag_sql(self, expression: exp.SetTag) -> str:
            -369            action = "UNSET" if expression.args.get("unset") else "SET"
            -370            return f"{action} TAG {self.expressions(expression)}"
            +            
            385        def settag_sql(self, expression: exp.SetTag) -> str:
            +386            action = "UNSET" if expression.args.get("unset") else "SET"
            +387            return f"{action} TAG {self.expressions(expression)}"
             
            @@ -1162,12 +1189,12 @@ Default: True
            -
            372        def describe_sql(self, expression: exp.Describe) -> str:
            -373            # Default to table if kind is unknown
            -374            kind_value = expression.args.get("kind") or "TABLE"
            -375            kind = f" {kind_value}" if kind_value else ""
            -376            this = f" {self.sql(expression, 'this')}"
            -377            return f"DESCRIBE{kind}{this}"
            +            
            389        def describe_sql(self, expression: exp.Describe) -> str:
            +390            # Default to table if kind is unknown
            +391            kind_value = expression.args.get("kind") or "TABLE"
            +392            kind = f" {kind_value}" if kind_value else ""
            +393            this = f" {self.sql(expression, 'this')}"
            +394            return f"DESCRIBE{kind}{this}"
             
            @@ -1185,14 +1212,14 @@ Default: True
            -
            379        def generatedasidentitycolumnconstraint_sql(
            -380            self, expression: exp.GeneratedAsIdentityColumnConstraint
            -381        ) -> str:
            -382            start = expression.args.get("start")
            -383            start = f" START {start}" if start else ""
            -384            increment = expression.args.get("increment")
            -385            increment = f" INCREMENT {increment}" if increment else ""
            -386            return f"AUTOINCREMENT{start}{increment}"
            +            
            396        def generatedasidentitycolumnconstraint_sql(
            +397            self, expression: exp.GeneratedAsIdentityColumnConstraint
            +398        ) -> str:
            +399            start = expression.args.get("start")
            +400            start = f" START {start}" if start else ""
            +401            increment = expression.args.get("increment")
            +402            increment = f" INCREMENT {increment}" if increment else ""
            +403            return f"AUTOINCREMENT{start}{increment}"
             
            @@ -1338,7 +1365,6 @@ Default: True
            check_sql
            foreignkey_sql
            primarykey_sql
            -
            unique_sql
            if_sql
            matchagainst_sql
            jsonkeyvalue_sql
            @@ -1431,6 +1457,9 @@ Default: True
            when_sql
            merge_sql
            tochar_sql
            +
            dictproperty_sql
            +
            dictrange_sql
            +
            dictsubproperty_sql
            diff --git a/docs/sqlglot/dialects/spark.html b/docs/sqlglot/dialects/spark.html index 9b38483..1051557 100644 --- a/docs/sqlglot/dialects/spark.html +++ b/docs/sqlglot/dialects/spark.html @@ -217,7 +217,7 @@ a parsed syntax tree.

            • error_level: the desired error level. -Default: ErrorLevel.RAISE
            • +Default: ErrorLevel.IMMEDIATE
            • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
            • @@ -311,6 +311,8 @@ represents a python time format and the output the target time format Default: "upper"
            • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
            • +
            • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
            • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
            • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -496,7 +498,6 @@ Default: True
            • check_sql
              foreignkey_sql
              primarykey_sql
              -
              unique_sql
              if_sql
              matchagainst_sql
              jsonkeyvalue_sql
              @@ -588,6 +589,9 @@ Default: True
              when_sql
              merge_sql
              tochar_sql
              +
              dictproperty_sql
              +
              dictrange_sql
              +
              dictsubproperty_sql
              sqlglot.dialects.spark2.Spark2.Generator
              diff --git a/docs/sqlglot/dialects/spark2.html b/docs/sqlglot/dialects/spark2.html index de5c308..a468035 100644 --- a/docs/sqlglot/dialects/spark2.html +++ b/docs/sqlglot/dialects/spark2.html @@ -195,162 +195,149 @@ 110 **Hive.Parser.FUNCTIONS, 111 "MAP_FROM_ARRAYS": exp.Map.from_arg_list, 112 "TO_UNIX_TIMESTAMP": exp.StrToUnix.from_arg_list, -113 "LEFT": lambda args: exp.Substring( +113 "SHIFTLEFT": lambda args: exp.BitwiseLeftShift( 114 this=seq_get(args, 0), -115 start=exp.Literal.number(1), -116 length=seq_get(args, 1), -117 ), -118 "SHIFTLEFT": lambda args: exp.BitwiseLeftShift( -119 this=seq_get(args, 0), -120 expression=seq_get(args, 1), -121 ), -122 "SHIFTRIGHT": lambda args: exp.BitwiseRightShift( -123 this=seq_get(args, 0), -124 expression=seq_get(args, 1), -125 ), -126 "RIGHT": lambda args: exp.Substring( -127 this=seq_get(args, 0), -128 start=exp.Sub( -129 this=exp.Length(this=seq_get(args, 0)), -130 expression=exp.Add(this=seq_get(args, 1), expression=exp.Literal.number(1)), -131 ), -132 length=seq_get(args, 1), -133 ), -134 "APPROX_PERCENTILE": exp.ApproxQuantile.from_arg_list, -135 "IIF": exp.If.from_arg_list, -136 "AGGREGATE": exp.Reduce.from_arg_list, -137 "DAYOFWEEK": lambda args: exp.DayOfWeek( -138 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -139 ), -140 "DAYOFMONTH": lambda args: exp.DayOfMonth( -141 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -142 ), -143 "DAYOFYEAR": lambda args: exp.DayOfYear( -144 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -145 ), -146 "WEEKOFYEAR": lambda args: exp.WeekOfYear( -147 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -148 ), -149 "DATE": lambda args: exp.Cast(this=seq_get(args, 0), to=exp.DataType.build("date")), -150 "DATE_TRUNC": lambda args: exp.TimestampTrunc( -151 this=seq_get(args, 1), -152 unit=exp.var(seq_get(args, 0)), -153 ), -154 "TRUNC": lambda args: exp.DateTrunc(unit=seq_get(args, 1), this=seq_get(args, 0)), -155 "BOOLEAN": _parse_as_cast("boolean"), -156 "DOUBLE": _parse_as_cast("double"), -157 "FLOAT": _parse_as_cast("float"), -158 "INT": _parse_as_cast("int"), -159 "STRING": _parse_as_cast("string"), -160 "TIMESTAMP": _parse_as_cast("timestamp"), -161 } -162 -163 FUNCTION_PARSERS = { -164 **parser.Parser.FUNCTION_PARSERS, -165 "BROADCAST": lambda self: self._parse_join_hint("BROADCAST"), -166 "BROADCASTJOIN": lambda self: self._parse_join_hint("BROADCASTJOIN"), -167 "MAPJOIN": lambda self: self._parse_join_hint("MAPJOIN"), -168 "MERGE": lambda self: self._parse_join_hint("MERGE"), -169 "SHUFFLEMERGE": lambda self: self._parse_join_hint("SHUFFLEMERGE"), -170 "MERGEJOIN": lambda self: self._parse_join_hint("MERGEJOIN"), -171 "SHUFFLE_HASH": lambda self: self._parse_join_hint("SHUFFLE_HASH"), -172 "SHUFFLE_REPLICATE_NL": lambda self: self._parse_join_hint("SHUFFLE_REPLICATE_NL"), -173 } -174 -175 def _parse_add_column(self) -> t.Optional[exp.Expression]: -176 return self._match_text_seq("ADD", "COLUMNS") and self._parse_schema() -177 -178 def _parse_drop_column(self) -> t.Optional[exp.Expression]: -179 return self._match_text_seq("DROP", "COLUMNS") and self.expression( -180 exp.Drop, -181 this=self._parse_schema(), -182 kind="COLUMNS", -183 ) +115 expression=seq_get(args, 1), +116 ), +117 "SHIFTRIGHT": lambda args: exp.BitwiseRightShift( +118 this=seq_get(args, 0), +119 expression=seq_get(args, 1), +120 ), +121 "APPROX_PERCENTILE": exp.ApproxQuantile.from_arg_list, +122 "IIF": exp.If.from_arg_list, +123 "AGGREGATE": exp.Reduce.from_arg_list, +124 "DAYOFWEEK": lambda args: exp.DayOfWeek( +125 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +126 ), +127 "DAYOFMONTH": lambda args: exp.DayOfMonth( +128 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +129 ), +130 "DAYOFYEAR": lambda args: exp.DayOfYear( +131 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +132 ), +133 "WEEKOFYEAR": lambda args: exp.WeekOfYear( +134 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +135 ), +136 "DATE": lambda args: exp.Cast(this=seq_get(args, 0), to=exp.DataType.build("date")), +137 "DATE_TRUNC": lambda args: exp.TimestampTrunc( +138 this=seq_get(args, 1), +139 unit=exp.var(seq_get(args, 0)), +140 ), +141 "TRUNC": lambda args: exp.DateTrunc(unit=seq_get(args, 1), this=seq_get(args, 0)), +142 "BOOLEAN": _parse_as_cast("boolean"), +143 "DOUBLE": _parse_as_cast("double"), +144 "FLOAT": _parse_as_cast("float"), +145 "INT": _parse_as_cast("int"), +146 "STRING": _parse_as_cast("string"), +147 "TIMESTAMP": _parse_as_cast("timestamp"), +148 } +149 +150 FUNCTION_PARSERS = { +151 **parser.Parser.FUNCTION_PARSERS, +152 "BROADCAST": lambda self: self._parse_join_hint("BROADCAST"), +153 "BROADCASTJOIN": lambda self: self._parse_join_hint("BROADCASTJOIN"), +154 "MAPJOIN": lambda self: self._parse_join_hint("MAPJOIN"), +155 "MERGE": lambda self: self._parse_join_hint("MERGE"), +156 "SHUFFLEMERGE": lambda self: self._parse_join_hint("SHUFFLEMERGE"), +157 "MERGEJOIN": lambda self: self._parse_join_hint("MERGEJOIN"), +158 "SHUFFLE_HASH": lambda self: self._parse_join_hint("SHUFFLE_HASH"), +159 "SHUFFLE_REPLICATE_NL": lambda self: self._parse_join_hint("SHUFFLE_REPLICATE_NL"), +160 } +161 +162 def _parse_add_column(self) -> t.Optional[exp.Expression]: +163 return self._match_text_seq("ADD", "COLUMNS") and self._parse_schema() +164 +165 def _parse_drop_column(self) -> t.Optional[exp.Expression]: +166 return self._match_text_seq("DROP", "COLUMNS") and self.expression( +167 exp.Drop, +168 this=self._parse_schema(), +169 kind="COLUMNS", +170 ) +171 +172 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: +173 if len(aggregations) == 1: +174 return [""] +175 return pivot_column_names(aggregations, dialect="spark") +176 +177 class Generator(Hive.Generator): +178 TYPE_MAPPING = { +179 **Hive.Generator.TYPE_MAPPING, +180 exp.DataType.Type.TINYINT: "BYTE", +181 exp.DataType.Type.SMALLINT: "SHORT", +182 exp.DataType.Type.BIGINT: "LONG", +183 } 184 -185 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: -186 if len(aggregations) == 1: -187 return [""] -188 return pivot_column_names(aggregations, dialect="spark") -189 -190 class Generator(Hive.Generator): -191 TYPE_MAPPING = { -192 **Hive.Generator.TYPE_MAPPING, -193 exp.DataType.Type.TINYINT: "BYTE", -194 exp.DataType.Type.SMALLINT: "SHORT", -195 exp.DataType.Type.BIGINT: "LONG", -196 } -197 -198 PROPERTIES_LOCATION = { -199 **Hive.Generator.PROPERTIES_LOCATION, -200 exp.EngineProperty: exp.Properties.Location.UNSUPPORTED, -201 exp.AutoIncrementProperty: exp.Properties.Location.UNSUPPORTED, -202 exp.CharacterSetProperty: exp.Properties.Location.UNSUPPORTED, -203 exp.CollateProperty: exp.Properties.Location.UNSUPPORTED, -204 } -205 -206 TRANSFORMS = { -207 **Hive.Generator.TRANSFORMS, -208 exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"), -209 exp.ArraySum: lambda self, e: f"AGGREGATE({self.sql(e, 'this')}, 0, (acc, x) -> acc + x, acc -> acc)", -210 exp.AtTimeZone: lambda self, e: f"FROM_UTC_TIMESTAMP({self.sql(e, 'this')}, {self.sql(e, 'zone')})", -211 exp.BitwiseLeftShift: rename_func("SHIFTLEFT"), -212 exp.BitwiseRightShift: rename_func("SHIFTRIGHT"), -213 exp.Create: _create_sql, -214 exp.DateFromParts: rename_func("MAKE_DATE"), -215 exp.DateTrunc: lambda self, e: self.func("TRUNC", e.this, e.args.get("unit")), -216 exp.DayOfMonth: rename_func("DAYOFMONTH"), -217 exp.DayOfWeek: rename_func("DAYOFWEEK"), -218 exp.DayOfYear: rename_func("DAYOFYEAR"), -219 exp.FileFormatProperty: lambda self, e: f"USING {e.name.upper()}", -220 exp.From: transforms.preprocess([_unalias_pivot]), -221 exp.Hint: lambda self, e: f" /*+ {self.expressions(e).strip()} */", -222 exp.LogicalAnd: rename_func("BOOL_AND"), -223 exp.LogicalOr: rename_func("BOOL_OR"), -224 exp.Map: _map_sql, -225 exp.Pivot: transforms.preprocess([_unqualify_pivot_columns]), -226 exp.Reduce: rename_func("AGGREGATE"), -227 exp.StrToDate: _str_to_date, -228 exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})", -229 exp.TimestampTrunc: lambda self, e: self.func( -230 "DATE_TRUNC", exp.Literal.string(e.text("unit")), e.this -231 ), -232 exp.Trim: trim_sql, -233 exp.UnixToTime: _unix_to_time_sql, -234 exp.VariancePop: rename_func("VAR_POP"), -235 exp.WeekOfYear: rename_func("WEEKOFYEAR"), -236 exp.WithinGroup: transforms.preprocess( -237 [transforms.remove_within_group_for_percentiles] -238 ), -239 } -240 TRANSFORMS.pop(exp.ArrayJoin) -241 TRANSFORMS.pop(exp.ArraySort) -242 TRANSFORMS.pop(exp.ILike) -243 -244 WRAP_DERIVED_VALUES = False -245 CREATE_FUNCTION_RETURN_AS = False -246 -247 def cast_sql(self, expression: exp.Cast) -> str: -248 if isinstance(expression.this, exp.Cast) and expression.this.is_type( -249 exp.DataType.Type.JSON -250 ): -251 schema = f"'{self.sql(expression, 'to')}'" -252 return self.func("FROM_JSON", expression.this.this, schema) -253 if expression.to.is_type(exp.DataType.Type.JSON): -254 return self.func("TO_JSON", expression.this) -255 -256 return super(Hive.Generator, self).cast_sql(expression) -257 -258 def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str: -259 return super().columndef_sql( -260 expression, -261 sep=": " -262 if isinstance(expression.parent, exp.DataType) -263 and expression.parent.is_type(exp.DataType.Type.STRUCT) -264 else sep, -265 ) -266 -267 class Tokenizer(Hive.Tokenizer): -268 HEX_STRINGS = [("X'", "'")] +185 PROPERTIES_LOCATION = { +186 **Hive.Generator.PROPERTIES_LOCATION, +187 exp.EngineProperty: exp.Properties.Location.UNSUPPORTED, +188 exp.AutoIncrementProperty: exp.Properties.Location.UNSUPPORTED, +189 exp.CharacterSetProperty: exp.Properties.Location.UNSUPPORTED, +190 exp.CollateProperty: exp.Properties.Location.UNSUPPORTED, +191 } +192 +193 TRANSFORMS = { +194 **Hive.Generator.TRANSFORMS, +195 exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"), +196 exp.ArraySum: lambda self, e: f"AGGREGATE({self.sql(e, 'this')}, 0, (acc, x) -> acc + x, acc -> acc)", +197 exp.AtTimeZone: lambda self, e: f"FROM_UTC_TIMESTAMP({self.sql(e, 'this')}, {self.sql(e, 'zone')})", +198 exp.BitwiseLeftShift: rename_func("SHIFTLEFT"), +199 exp.BitwiseRightShift: rename_func("SHIFTRIGHT"), +200 exp.Create: _create_sql, +201 exp.DateFromParts: rename_func("MAKE_DATE"), +202 exp.DateTrunc: lambda self, e: self.func("TRUNC", e.this, e.args.get("unit")), +203 exp.DayOfMonth: rename_func("DAYOFMONTH"), +204 exp.DayOfWeek: rename_func("DAYOFWEEK"), +205 exp.DayOfYear: rename_func("DAYOFYEAR"), +206 exp.FileFormatProperty: lambda self, e: f"USING {e.name.upper()}", +207 exp.From: transforms.preprocess([_unalias_pivot]), +208 exp.Hint: lambda self, e: f" /*+ {self.expressions(e).strip()} */", +209 exp.LogicalAnd: rename_func("BOOL_AND"), +210 exp.LogicalOr: rename_func("BOOL_OR"), +211 exp.Map: _map_sql, +212 exp.Pivot: transforms.preprocess([_unqualify_pivot_columns]), +213 exp.Reduce: rename_func("AGGREGATE"), +214 exp.StrToDate: _str_to_date, +215 exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})", +216 exp.TimestampTrunc: lambda self, e: self.func( +217 "DATE_TRUNC", exp.Literal.string(e.text("unit")), e.this +218 ), +219 exp.Trim: trim_sql, +220 exp.UnixToTime: _unix_to_time_sql, +221 exp.VariancePop: rename_func("VAR_POP"), +222 exp.WeekOfYear: rename_func("WEEKOFYEAR"), +223 exp.WithinGroup: transforms.preprocess( +224 [transforms.remove_within_group_for_percentiles] +225 ), +226 } +227 TRANSFORMS.pop(exp.ArrayJoin) +228 TRANSFORMS.pop(exp.ArraySort) +229 TRANSFORMS.pop(exp.ILike) +230 TRANSFORMS.pop(exp.Left) +231 TRANSFORMS.pop(exp.Right) +232 +233 WRAP_DERIVED_VALUES = False +234 CREATE_FUNCTION_RETURN_AS = False +235 +236 def cast_sql(self, expression: exp.Cast) -> str: +237 if isinstance(expression.this, exp.Cast) and expression.this.is_type("json"): +238 schema = f"'{self.sql(expression, 'to')}'" +239 return self.func("FROM_JSON", expression.this.this, schema) +240 if expression.is_type("json"): +241 return self.func("TO_JSON", expression.this) +242 +243 return super(Hive.Generator, self).cast_sql(expression) +244 +245 def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str: +246 return super().columndef_sql( +247 expression, +248 sep=": " +249 if isinstance(expression.parent, exp.DataType) +250 and expression.parent.is_type("struct") +251 else sep, +252 ) +253 +254 class Tokenizer(Hive.Tokenizer): +255 HEX_STRINGS = [("X'", "'")]
              @@ -372,162 +359,149 @@ 111 **Hive.Parser.FUNCTIONS, 112 "MAP_FROM_ARRAYS": exp.Map.from_arg_list, 113 "TO_UNIX_TIMESTAMP": exp.StrToUnix.from_arg_list, -114 "LEFT": lambda args: exp.Substring( +114 "SHIFTLEFT": lambda args: exp.BitwiseLeftShift( 115 this=seq_get(args, 0), -116 start=exp.Literal.number(1), -117 length=seq_get(args, 1), -118 ), -119 "SHIFTLEFT": lambda args: exp.BitwiseLeftShift( -120 this=seq_get(args, 0), -121 expression=seq_get(args, 1), -122 ), -123 "SHIFTRIGHT": lambda args: exp.BitwiseRightShift( -124 this=seq_get(args, 0), -125 expression=seq_get(args, 1), -126 ), -127 "RIGHT": lambda args: exp.Substring( -128 this=seq_get(args, 0), -129 start=exp.Sub( -130 this=exp.Length(this=seq_get(args, 0)), -131 expression=exp.Add(this=seq_get(args, 1), expression=exp.Literal.number(1)), -132 ), -133 length=seq_get(args, 1), -134 ), -135 "APPROX_PERCENTILE": exp.ApproxQuantile.from_arg_list, -136 "IIF": exp.If.from_arg_list, -137 "AGGREGATE": exp.Reduce.from_arg_list, -138 "DAYOFWEEK": lambda args: exp.DayOfWeek( -139 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -140 ), -141 "DAYOFMONTH": lambda args: exp.DayOfMonth( -142 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -143 ), -144 "DAYOFYEAR": lambda args: exp.DayOfYear( -145 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -146 ), -147 "WEEKOFYEAR": lambda args: exp.WeekOfYear( -148 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -149 ), -150 "DATE": lambda args: exp.Cast(this=seq_get(args, 0), to=exp.DataType.build("date")), -151 "DATE_TRUNC": lambda args: exp.TimestampTrunc( -152 this=seq_get(args, 1), -153 unit=exp.var(seq_get(args, 0)), -154 ), -155 "TRUNC": lambda args: exp.DateTrunc(unit=seq_get(args, 1), this=seq_get(args, 0)), -156 "BOOLEAN": _parse_as_cast("boolean"), -157 "DOUBLE": _parse_as_cast("double"), -158 "FLOAT": _parse_as_cast("float"), -159 "INT": _parse_as_cast("int"), -160 "STRING": _parse_as_cast("string"), -161 "TIMESTAMP": _parse_as_cast("timestamp"), -162 } -163 -164 FUNCTION_PARSERS = { -165 **parser.Parser.FUNCTION_PARSERS, -166 "BROADCAST": lambda self: self._parse_join_hint("BROADCAST"), -167 "BROADCASTJOIN": lambda self: self._parse_join_hint("BROADCASTJOIN"), -168 "MAPJOIN": lambda self: self._parse_join_hint("MAPJOIN"), -169 "MERGE": lambda self: self._parse_join_hint("MERGE"), -170 "SHUFFLEMERGE": lambda self: self._parse_join_hint("SHUFFLEMERGE"), -171 "MERGEJOIN": lambda self: self._parse_join_hint("MERGEJOIN"), -172 "SHUFFLE_HASH": lambda self: self._parse_join_hint("SHUFFLE_HASH"), -173 "SHUFFLE_REPLICATE_NL": lambda self: self._parse_join_hint("SHUFFLE_REPLICATE_NL"), -174 } -175 -176 def _parse_add_column(self) -> t.Optional[exp.Expression]: -177 return self._match_text_seq("ADD", "COLUMNS") and self._parse_schema() -178 -179 def _parse_drop_column(self) -> t.Optional[exp.Expression]: -180 return self._match_text_seq("DROP", "COLUMNS") and self.expression( -181 exp.Drop, -182 this=self._parse_schema(), -183 kind="COLUMNS", -184 ) +116 expression=seq_get(args, 1), +117 ), +118 "SHIFTRIGHT": lambda args: exp.BitwiseRightShift( +119 this=seq_get(args, 0), +120 expression=seq_get(args, 1), +121 ), +122 "APPROX_PERCENTILE": exp.ApproxQuantile.from_arg_list, +123 "IIF": exp.If.from_arg_list, +124 "AGGREGATE": exp.Reduce.from_arg_list, +125 "DAYOFWEEK": lambda args: exp.DayOfWeek( +126 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +127 ), +128 "DAYOFMONTH": lambda args: exp.DayOfMonth( +129 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +130 ), +131 "DAYOFYEAR": lambda args: exp.DayOfYear( +132 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +133 ), +134 "WEEKOFYEAR": lambda args: exp.WeekOfYear( +135 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +136 ), +137 "DATE": lambda args: exp.Cast(this=seq_get(args, 0), to=exp.DataType.build("date")), +138 "DATE_TRUNC": lambda args: exp.TimestampTrunc( +139 this=seq_get(args, 1), +140 unit=exp.var(seq_get(args, 0)), +141 ), +142 "TRUNC": lambda args: exp.DateTrunc(unit=seq_get(args, 1), this=seq_get(args, 0)), +143 "BOOLEAN": _parse_as_cast("boolean"), +144 "DOUBLE": _parse_as_cast("double"), +145 "FLOAT": _parse_as_cast("float"), +146 "INT": _parse_as_cast("int"), +147 "STRING": _parse_as_cast("string"), +148 "TIMESTAMP": _parse_as_cast("timestamp"), +149 } +150 +151 FUNCTION_PARSERS = { +152 **parser.Parser.FUNCTION_PARSERS, +153 "BROADCAST": lambda self: self._parse_join_hint("BROADCAST"), +154 "BROADCASTJOIN": lambda self: self._parse_join_hint("BROADCASTJOIN"), +155 "MAPJOIN": lambda self: self._parse_join_hint("MAPJOIN"), +156 "MERGE": lambda self: self._parse_join_hint("MERGE"), +157 "SHUFFLEMERGE": lambda self: self._parse_join_hint("SHUFFLEMERGE"), +158 "MERGEJOIN": lambda self: self._parse_join_hint("MERGEJOIN"), +159 "SHUFFLE_HASH": lambda self: self._parse_join_hint("SHUFFLE_HASH"), +160 "SHUFFLE_REPLICATE_NL": lambda self: self._parse_join_hint("SHUFFLE_REPLICATE_NL"), +161 } +162 +163 def _parse_add_column(self) -> t.Optional[exp.Expression]: +164 return self._match_text_seq("ADD", "COLUMNS") and self._parse_schema() +165 +166 def _parse_drop_column(self) -> t.Optional[exp.Expression]: +167 return self._match_text_seq("DROP", "COLUMNS") and self.expression( +168 exp.Drop, +169 this=self._parse_schema(), +170 kind="COLUMNS", +171 ) +172 +173 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: +174 if len(aggregations) == 1: +175 return [""] +176 return pivot_column_names(aggregations, dialect="spark") +177 +178 class Generator(Hive.Generator): +179 TYPE_MAPPING = { +180 **Hive.Generator.TYPE_MAPPING, +181 exp.DataType.Type.TINYINT: "BYTE", +182 exp.DataType.Type.SMALLINT: "SHORT", +183 exp.DataType.Type.BIGINT: "LONG", +184 } 185 -186 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: -187 if len(aggregations) == 1: -188 return [""] -189 return pivot_column_names(aggregations, dialect="spark") -190 -191 class Generator(Hive.Generator): -192 TYPE_MAPPING = { -193 **Hive.Generator.TYPE_MAPPING, -194 exp.DataType.Type.TINYINT: "BYTE", -195 exp.DataType.Type.SMALLINT: "SHORT", -196 exp.DataType.Type.BIGINT: "LONG", -197 } -198 -199 PROPERTIES_LOCATION = { -200 **Hive.Generator.PROPERTIES_LOCATION, -201 exp.EngineProperty: exp.Properties.Location.UNSUPPORTED, -202 exp.AutoIncrementProperty: exp.Properties.Location.UNSUPPORTED, -203 exp.CharacterSetProperty: exp.Properties.Location.UNSUPPORTED, -204 exp.CollateProperty: exp.Properties.Location.UNSUPPORTED, -205 } -206 -207 TRANSFORMS = { -208 **Hive.Generator.TRANSFORMS, -209 exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"), -210 exp.ArraySum: lambda self, e: f"AGGREGATE({self.sql(e, 'this')}, 0, (acc, x) -> acc + x, acc -> acc)", -211 exp.AtTimeZone: lambda self, e: f"FROM_UTC_TIMESTAMP({self.sql(e, 'this')}, {self.sql(e, 'zone')})", -212 exp.BitwiseLeftShift: rename_func("SHIFTLEFT"), -213 exp.BitwiseRightShift: rename_func("SHIFTRIGHT"), -214 exp.Create: _create_sql, -215 exp.DateFromParts: rename_func("MAKE_DATE"), -216 exp.DateTrunc: lambda self, e: self.func("TRUNC", e.this, e.args.get("unit")), -217 exp.DayOfMonth: rename_func("DAYOFMONTH"), -218 exp.DayOfWeek: rename_func("DAYOFWEEK"), -219 exp.DayOfYear: rename_func("DAYOFYEAR"), -220 exp.FileFormatProperty: lambda self, e: f"USING {e.name.upper()}", -221 exp.From: transforms.preprocess([_unalias_pivot]), -222 exp.Hint: lambda self, e: f" /*+ {self.expressions(e).strip()} */", -223 exp.LogicalAnd: rename_func("BOOL_AND"), -224 exp.LogicalOr: rename_func("BOOL_OR"), -225 exp.Map: _map_sql, -226 exp.Pivot: transforms.preprocess([_unqualify_pivot_columns]), -227 exp.Reduce: rename_func("AGGREGATE"), -228 exp.StrToDate: _str_to_date, -229 exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})", -230 exp.TimestampTrunc: lambda self, e: self.func( -231 "DATE_TRUNC", exp.Literal.string(e.text("unit")), e.this -232 ), -233 exp.Trim: trim_sql, -234 exp.UnixToTime: _unix_to_time_sql, -235 exp.VariancePop: rename_func("VAR_POP"), -236 exp.WeekOfYear: rename_func("WEEKOFYEAR"), -237 exp.WithinGroup: transforms.preprocess( -238 [transforms.remove_within_group_for_percentiles] -239 ), -240 } -241 TRANSFORMS.pop(exp.ArrayJoin) -242 TRANSFORMS.pop(exp.ArraySort) -243 TRANSFORMS.pop(exp.ILike) -244 -245 WRAP_DERIVED_VALUES = False -246 CREATE_FUNCTION_RETURN_AS = False -247 -248 def cast_sql(self, expression: exp.Cast) -> str: -249 if isinstance(expression.this, exp.Cast) and expression.this.is_type( -250 exp.DataType.Type.JSON -251 ): -252 schema = f"'{self.sql(expression, 'to')}'" -253 return self.func("FROM_JSON", expression.this.this, schema) -254 if expression.to.is_type(exp.DataType.Type.JSON): -255 return self.func("TO_JSON", expression.this) -256 -257 return super(Hive.Generator, self).cast_sql(expression) -258 -259 def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str: -260 return super().columndef_sql( -261 expression, -262 sep=": " -263 if isinstance(expression.parent, exp.DataType) -264 and expression.parent.is_type(exp.DataType.Type.STRUCT) -265 else sep, -266 ) -267 -268 class Tokenizer(Hive.Tokenizer): -269 HEX_STRINGS = [("X'", "'")] +186 PROPERTIES_LOCATION = { +187 **Hive.Generator.PROPERTIES_LOCATION, +188 exp.EngineProperty: exp.Properties.Location.UNSUPPORTED, +189 exp.AutoIncrementProperty: exp.Properties.Location.UNSUPPORTED, +190 exp.CharacterSetProperty: exp.Properties.Location.UNSUPPORTED, +191 exp.CollateProperty: exp.Properties.Location.UNSUPPORTED, +192 } +193 +194 TRANSFORMS = { +195 **Hive.Generator.TRANSFORMS, +196 exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"), +197 exp.ArraySum: lambda self, e: f"AGGREGATE({self.sql(e, 'this')}, 0, (acc, x) -> acc + x, acc -> acc)", +198 exp.AtTimeZone: lambda self, e: f"FROM_UTC_TIMESTAMP({self.sql(e, 'this')}, {self.sql(e, 'zone')})", +199 exp.BitwiseLeftShift: rename_func("SHIFTLEFT"), +200 exp.BitwiseRightShift: rename_func("SHIFTRIGHT"), +201 exp.Create: _create_sql, +202 exp.DateFromParts: rename_func("MAKE_DATE"), +203 exp.DateTrunc: lambda self, e: self.func("TRUNC", e.this, e.args.get("unit")), +204 exp.DayOfMonth: rename_func("DAYOFMONTH"), +205 exp.DayOfWeek: rename_func("DAYOFWEEK"), +206 exp.DayOfYear: rename_func("DAYOFYEAR"), +207 exp.FileFormatProperty: lambda self, e: f"USING {e.name.upper()}", +208 exp.From: transforms.preprocess([_unalias_pivot]), +209 exp.Hint: lambda self, e: f" /*+ {self.expressions(e).strip()} */", +210 exp.LogicalAnd: rename_func("BOOL_AND"), +211 exp.LogicalOr: rename_func("BOOL_OR"), +212 exp.Map: _map_sql, +213 exp.Pivot: transforms.preprocess([_unqualify_pivot_columns]), +214 exp.Reduce: rename_func("AGGREGATE"), +215 exp.StrToDate: _str_to_date, +216 exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})", +217 exp.TimestampTrunc: lambda self, e: self.func( +218 "DATE_TRUNC", exp.Literal.string(e.text("unit")), e.this +219 ), +220 exp.Trim: trim_sql, +221 exp.UnixToTime: _unix_to_time_sql, +222 exp.VariancePop: rename_func("VAR_POP"), +223 exp.WeekOfYear: rename_func("WEEKOFYEAR"), +224 exp.WithinGroup: transforms.preprocess( +225 [transforms.remove_within_group_for_percentiles] +226 ), +227 } +228 TRANSFORMS.pop(exp.ArrayJoin) +229 TRANSFORMS.pop(exp.ArraySort) +230 TRANSFORMS.pop(exp.ILike) +231 TRANSFORMS.pop(exp.Left) +232 TRANSFORMS.pop(exp.Right) +233 +234 WRAP_DERIVED_VALUES = False +235 CREATE_FUNCTION_RETURN_AS = False +236 +237 def cast_sql(self, expression: exp.Cast) -> str: +238 if isinstance(expression.this, exp.Cast) and expression.this.is_type("json"): +239 schema = f"'{self.sql(expression, 'to')}'" +240 return self.func("FROM_JSON", expression.this.this, schema) +241 if expression.is_type("json"): +242 return self.func("TO_JSON", expression.this) +243 +244 return super(Hive.Generator, self).cast_sql(expression) +245 +246 def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str: +247 return super().columndef_sql( +248 expression, +249 sep=": " +250 if isinstance(expression.parent, exp.DataType) +251 and expression.parent.is_type("struct") +252 else sep, +253 ) +254 +255 class Tokenizer(Hive.Tokenizer): +256 HEX_STRINGS = [("X'", "'")] @@ -567,82 +541,69 @@ 111 **Hive.Parser.FUNCTIONS, 112 "MAP_FROM_ARRAYS": exp.Map.from_arg_list, 113 "TO_UNIX_TIMESTAMP": exp.StrToUnix.from_arg_list, -114 "LEFT": lambda args: exp.Substring( +114 "SHIFTLEFT": lambda args: exp.BitwiseLeftShift( 115 this=seq_get(args, 0), -116 start=exp.Literal.number(1), -117 length=seq_get(args, 1), -118 ), -119 "SHIFTLEFT": lambda args: exp.BitwiseLeftShift( -120 this=seq_get(args, 0), -121 expression=seq_get(args, 1), -122 ), -123 "SHIFTRIGHT": lambda args: exp.BitwiseRightShift( -124 this=seq_get(args, 0), -125 expression=seq_get(args, 1), -126 ), -127 "RIGHT": lambda args: exp.Substring( -128 this=seq_get(args, 0), -129 start=exp.Sub( -130 this=exp.Length(this=seq_get(args, 0)), -131 expression=exp.Add(this=seq_get(args, 1), expression=exp.Literal.number(1)), -132 ), -133 length=seq_get(args, 1), -134 ), -135 "APPROX_PERCENTILE": exp.ApproxQuantile.from_arg_list, -136 "IIF": exp.If.from_arg_list, -137 "AGGREGATE": exp.Reduce.from_arg_list, -138 "DAYOFWEEK": lambda args: exp.DayOfWeek( -139 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -140 ), -141 "DAYOFMONTH": lambda args: exp.DayOfMonth( -142 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -143 ), -144 "DAYOFYEAR": lambda args: exp.DayOfYear( -145 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -146 ), -147 "WEEKOFYEAR": lambda args: exp.WeekOfYear( -148 this=exp.TsOrDsToDate(this=seq_get(args, 0)), -149 ), -150 "DATE": lambda args: exp.Cast(this=seq_get(args, 0), to=exp.DataType.build("date")), -151 "DATE_TRUNC": lambda args: exp.TimestampTrunc( -152 this=seq_get(args, 1), -153 unit=exp.var(seq_get(args, 0)), -154 ), -155 "TRUNC": lambda args: exp.DateTrunc(unit=seq_get(args, 1), this=seq_get(args, 0)), -156 "BOOLEAN": _parse_as_cast("boolean"), -157 "DOUBLE": _parse_as_cast("double"), -158 "FLOAT": _parse_as_cast("float"), -159 "INT": _parse_as_cast("int"), -160 "STRING": _parse_as_cast("string"), -161 "TIMESTAMP": _parse_as_cast("timestamp"), -162 } -163 -164 FUNCTION_PARSERS = { -165 **parser.Parser.FUNCTION_PARSERS, -166 "BROADCAST": lambda self: self._parse_join_hint("BROADCAST"), -167 "BROADCASTJOIN": lambda self: self._parse_join_hint("BROADCASTJOIN"), -168 "MAPJOIN": lambda self: self._parse_join_hint("MAPJOIN"), -169 "MERGE": lambda self: self._parse_join_hint("MERGE"), -170 "SHUFFLEMERGE": lambda self: self._parse_join_hint("SHUFFLEMERGE"), -171 "MERGEJOIN": lambda self: self._parse_join_hint("MERGEJOIN"), -172 "SHUFFLE_HASH": lambda self: self._parse_join_hint("SHUFFLE_HASH"), -173 "SHUFFLE_REPLICATE_NL": lambda self: self._parse_join_hint("SHUFFLE_REPLICATE_NL"), -174 } -175 -176 def _parse_add_column(self) -> t.Optional[exp.Expression]: -177 return self._match_text_seq("ADD", "COLUMNS") and self._parse_schema() -178 -179 def _parse_drop_column(self) -> t.Optional[exp.Expression]: -180 return self._match_text_seq("DROP", "COLUMNS") and self.expression( -181 exp.Drop, -182 this=self._parse_schema(), -183 kind="COLUMNS", -184 ) -185 -186 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: -187 if len(aggregations) == 1: -188 return [""] -189 return pivot_column_names(aggregations, dialect="spark") +116 expression=seq_get(args, 1), +117 ), +118 "SHIFTRIGHT": lambda args: exp.BitwiseRightShift( +119 this=seq_get(args, 0), +120 expression=seq_get(args, 1), +121 ), +122 "APPROX_PERCENTILE": exp.ApproxQuantile.from_arg_list, +123 "IIF": exp.If.from_arg_list, +124 "AGGREGATE": exp.Reduce.from_arg_list, +125 "DAYOFWEEK": lambda args: exp.DayOfWeek( +126 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +127 ), +128 "DAYOFMONTH": lambda args: exp.DayOfMonth( +129 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +130 ), +131 "DAYOFYEAR": lambda args: exp.DayOfYear( +132 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +133 ), +134 "WEEKOFYEAR": lambda args: exp.WeekOfYear( +135 this=exp.TsOrDsToDate(this=seq_get(args, 0)), +136 ), +137 "DATE": lambda args: exp.Cast(this=seq_get(args, 0), to=exp.DataType.build("date")), +138 "DATE_TRUNC": lambda args: exp.TimestampTrunc( +139 this=seq_get(args, 1), +140 unit=exp.var(seq_get(args, 0)), +141 ), +142 "TRUNC": lambda args: exp.DateTrunc(unit=seq_get(args, 1), this=seq_get(args, 0)), +143 "BOOLEAN": _parse_as_cast("boolean"), +144 "DOUBLE": _parse_as_cast("double"), +145 "FLOAT": _parse_as_cast("float"), +146 "INT": _parse_as_cast("int"), +147 "STRING": _parse_as_cast("string"), +148 "TIMESTAMP": _parse_as_cast("timestamp"), +149 } +150 +151 FUNCTION_PARSERS = { +152 **parser.Parser.FUNCTION_PARSERS, +153 "BROADCAST": lambda self: self._parse_join_hint("BROADCAST"), +154 "BROADCASTJOIN": lambda self: self._parse_join_hint("BROADCASTJOIN"), +155 "MAPJOIN": lambda self: self._parse_join_hint("MAPJOIN"), +156 "MERGE": lambda self: self._parse_join_hint("MERGE"), +157 "SHUFFLEMERGE": lambda self: self._parse_join_hint("SHUFFLEMERGE"), +158 "MERGEJOIN": lambda self: self._parse_join_hint("MERGEJOIN"), +159 "SHUFFLE_HASH": lambda self: self._parse_join_hint("SHUFFLE_HASH"), +160 "SHUFFLE_REPLICATE_NL": lambda self: self._parse_join_hint("SHUFFLE_REPLICATE_NL"), +161 } +162 +163 def _parse_add_column(self) -> t.Optional[exp.Expression]: +164 return self._match_text_seq("ADD", "COLUMNS") and self._parse_schema() +165 +166 def _parse_drop_column(self) -> t.Optional[exp.Expression]: +167 return self._match_text_seq("DROP", "COLUMNS") and self.expression( +168 exp.Drop, +169 this=self._parse_schema(), +170 kind="COLUMNS", +171 ) +172 +173 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: +174 if len(aggregations) == 1: +175 return [""] +176 return pivot_column_names(aggregations, dialect="spark") @@ -653,7 +614,7 @@ a parsed syntax tree.

              • error_level: the desired error level. -Default: ErrorLevel.RAISE
              • +Default: ErrorLevel.IMMEDIATE
              • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
              • @@ -699,82 +660,82 @@ Default: "nulls_are_small" -
                191    class Generator(Hive.Generator):
                -192        TYPE_MAPPING = {
                -193            **Hive.Generator.TYPE_MAPPING,
                -194            exp.DataType.Type.TINYINT: "BYTE",
                -195            exp.DataType.Type.SMALLINT: "SHORT",
                -196            exp.DataType.Type.BIGINT: "LONG",
                -197        }
                -198
                -199        PROPERTIES_LOCATION = {
                -200            **Hive.Generator.PROPERTIES_LOCATION,
                -201            exp.EngineProperty: exp.Properties.Location.UNSUPPORTED,
                -202            exp.AutoIncrementProperty: exp.Properties.Location.UNSUPPORTED,
                -203            exp.CharacterSetProperty: exp.Properties.Location.UNSUPPORTED,
                -204            exp.CollateProperty: exp.Properties.Location.UNSUPPORTED,
                -205        }
                -206
                -207        TRANSFORMS = {
                -208            **Hive.Generator.TRANSFORMS,
                -209            exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"),
                -210            exp.ArraySum: lambda self, e: f"AGGREGATE({self.sql(e, 'this')}, 0, (acc, x) -> acc + x, acc -> acc)",
                -211            exp.AtTimeZone: lambda self, e: f"FROM_UTC_TIMESTAMP({self.sql(e, 'this')}, {self.sql(e, 'zone')})",
                -212            exp.BitwiseLeftShift: rename_func("SHIFTLEFT"),
                -213            exp.BitwiseRightShift: rename_func("SHIFTRIGHT"),
                -214            exp.Create: _create_sql,
                -215            exp.DateFromParts: rename_func("MAKE_DATE"),
                -216            exp.DateTrunc: lambda self, e: self.func("TRUNC", e.this, e.args.get("unit")),
                -217            exp.DayOfMonth: rename_func("DAYOFMONTH"),
                -218            exp.DayOfWeek: rename_func("DAYOFWEEK"),
                -219            exp.DayOfYear: rename_func("DAYOFYEAR"),
                -220            exp.FileFormatProperty: lambda self, e: f"USING {e.name.upper()}",
                -221            exp.From: transforms.preprocess([_unalias_pivot]),
                -222            exp.Hint: lambda self, e: f" /*+ {self.expressions(e).strip()} */",
                -223            exp.LogicalAnd: rename_func("BOOL_AND"),
                -224            exp.LogicalOr: rename_func("BOOL_OR"),
                -225            exp.Map: _map_sql,
                -226            exp.Pivot: transforms.preprocess([_unqualify_pivot_columns]),
                -227            exp.Reduce: rename_func("AGGREGATE"),
                -228            exp.StrToDate: _str_to_date,
                -229            exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})",
                -230            exp.TimestampTrunc: lambda self, e: self.func(
                -231                "DATE_TRUNC", exp.Literal.string(e.text("unit")), e.this
                -232            ),
                -233            exp.Trim: trim_sql,
                -234            exp.UnixToTime: _unix_to_time_sql,
                -235            exp.VariancePop: rename_func("VAR_POP"),
                -236            exp.WeekOfYear: rename_func("WEEKOFYEAR"),
                -237            exp.WithinGroup: transforms.preprocess(
                -238                [transforms.remove_within_group_for_percentiles]
                -239            ),
                -240        }
                -241        TRANSFORMS.pop(exp.ArrayJoin)
                -242        TRANSFORMS.pop(exp.ArraySort)
                -243        TRANSFORMS.pop(exp.ILike)
                -244
                -245        WRAP_DERIVED_VALUES = False
                -246        CREATE_FUNCTION_RETURN_AS = False
                -247
                -248        def cast_sql(self, expression: exp.Cast) -> str:
                -249            if isinstance(expression.this, exp.Cast) and expression.this.is_type(
                -250                exp.DataType.Type.JSON
                -251            ):
                -252                schema = f"'{self.sql(expression, 'to')}'"
                -253                return self.func("FROM_JSON", expression.this.this, schema)
                -254            if expression.to.is_type(exp.DataType.Type.JSON):
                -255                return self.func("TO_JSON", expression.this)
                -256
                -257            return super(Hive.Generator, self).cast_sql(expression)
                -258
                -259        def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str:
                -260            return super().columndef_sql(
                -261                expression,
                -262                sep=": "
                -263                if isinstance(expression.parent, exp.DataType)
                -264                and expression.parent.is_type(exp.DataType.Type.STRUCT)
                -265                else sep,
                -266            )
                +            
                178    class Generator(Hive.Generator):
                +179        TYPE_MAPPING = {
                +180            **Hive.Generator.TYPE_MAPPING,
                +181            exp.DataType.Type.TINYINT: "BYTE",
                +182            exp.DataType.Type.SMALLINT: "SHORT",
                +183            exp.DataType.Type.BIGINT: "LONG",
                +184        }
                +185
                +186        PROPERTIES_LOCATION = {
                +187            **Hive.Generator.PROPERTIES_LOCATION,
                +188            exp.EngineProperty: exp.Properties.Location.UNSUPPORTED,
                +189            exp.AutoIncrementProperty: exp.Properties.Location.UNSUPPORTED,
                +190            exp.CharacterSetProperty: exp.Properties.Location.UNSUPPORTED,
                +191            exp.CollateProperty: exp.Properties.Location.UNSUPPORTED,
                +192        }
                +193
                +194        TRANSFORMS = {
                +195            **Hive.Generator.TRANSFORMS,
                +196            exp.ApproxDistinct: rename_func("APPROX_COUNT_DISTINCT"),
                +197            exp.ArraySum: lambda self, e: f"AGGREGATE({self.sql(e, 'this')}, 0, (acc, x) -> acc + x, acc -> acc)",
                +198            exp.AtTimeZone: lambda self, e: f"FROM_UTC_TIMESTAMP({self.sql(e, 'this')}, {self.sql(e, 'zone')})",
                +199            exp.BitwiseLeftShift: rename_func("SHIFTLEFT"),
                +200            exp.BitwiseRightShift: rename_func("SHIFTRIGHT"),
                +201            exp.Create: _create_sql,
                +202            exp.DateFromParts: rename_func("MAKE_DATE"),
                +203            exp.DateTrunc: lambda self, e: self.func("TRUNC", e.this, e.args.get("unit")),
                +204            exp.DayOfMonth: rename_func("DAYOFMONTH"),
                +205            exp.DayOfWeek: rename_func("DAYOFWEEK"),
                +206            exp.DayOfYear: rename_func("DAYOFYEAR"),
                +207            exp.FileFormatProperty: lambda self, e: f"USING {e.name.upper()}",
                +208            exp.From: transforms.preprocess([_unalias_pivot]),
                +209            exp.Hint: lambda self, e: f" /*+ {self.expressions(e).strip()} */",
                +210            exp.LogicalAnd: rename_func("BOOL_AND"),
                +211            exp.LogicalOr: rename_func("BOOL_OR"),
                +212            exp.Map: _map_sql,
                +213            exp.Pivot: transforms.preprocess([_unqualify_pivot_columns]),
                +214            exp.Reduce: rename_func("AGGREGATE"),
                +215            exp.StrToDate: _str_to_date,
                +216            exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})",
                +217            exp.TimestampTrunc: lambda self, e: self.func(
                +218                "DATE_TRUNC", exp.Literal.string(e.text("unit")), e.this
                +219            ),
                +220            exp.Trim: trim_sql,
                +221            exp.UnixToTime: _unix_to_time_sql,
                +222            exp.VariancePop: rename_func("VAR_POP"),
                +223            exp.WeekOfYear: rename_func("WEEKOFYEAR"),
                +224            exp.WithinGroup: transforms.preprocess(
                +225                [transforms.remove_within_group_for_percentiles]
                +226            ),
                +227        }
                +228        TRANSFORMS.pop(exp.ArrayJoin)
                +229        TRANSFORMS.pop(exp.ArraySort)
                +230        TRANSFORMS.pop(exp.ILike)
                +231        TRANSFORMS.pop(exp.Left)
                +232        TRANSFORMS.pop(exp.Right)
                +233
                +234        WRAP_DERIVED_VALUES = False
                +235        CREATE_FUNCTION_RETURN_AS = False
                +236
                +237        def cast_sql(self, expression: exp.Cast) -> str:
                +238            if isinstance(expression.this, exp.Cast) and expression.this.is_type("json"):
                +239                schema = f"'{self.sql(expression, 'to')}'"
                +240                return self.func("FROM_JSON", expression.this.this, schema)
                +241            if expression.is_type("json"):
                +242                return self.func("TO_JSON", expression.this)
                +243
                +244            return super(Hive.Generator, self).cast_sql(expression)
                +245
                +246        def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str:
                +247            return super().columndef_sql(
                +248                expression,
                +249                sep=": "
                +250                if isinstance(expression.parent, exp.DataType)
                +251                and expression.parent.is_type("struct")
                +252                else sep,
                +253            )
                 
                @@ -810,6 +771,8 @@ represents a python time format and the output the target time format Default: "upper"
              • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
              • +
              • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
              • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
              • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -841,16 +804,14 @@ Default: True
              • -
                248        def cast_sql(self, expression: exp.Cast) -> str:
                -249            if isinstance(expression.this, exp.Cast) and expression.this.is_type(
                -250                exp.DataType.Type.JSON
                -251            ):
                -252                schema = f"'{self.sql(expression, 'to')}'"
                -253                return self.func("FROM_JSON", expression.this.this, schema)
                -254            if expression.to.is_type(exp.DataType.Type.JSON):
                -255                return self.func("TO_JSON", expression.this)
                -256
                -257            return super(Hive.Generator, self).cast_sql(expression)
                +            
                237        def cast_sql(self, expression: exp.Cast) -> str:
                +238            if isinstance(expression.this, exp.Cast) and expression.this.is_type("json"):
                +239                schema = f"'{self.sql(expression, 'to')}'"
                +240                return self.func("FROM_JSON", expression.this.this, schema)
                +241            if expression.is_type("json"):
                +242                return self.func("TO_JSON", expression.this)
                +243
                +244            return super(Hive.Generator, self).cast_sql(expression)
                 
                @@ -868,14 +829,14 @@ Default: True
                -
                259        def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str:
                -260            return super().columndef_sql(
                -261                expression,
                -262                sep=": "
                -263                if isinstance(expression.parent, exp.DataType)
                -264                and expression.parent.is_type(exp.DataType.Type.STRUCT)
                -265                else sep,
                -266            )
                +            
                246        def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str:
                +247            return super().columndef_sql(
                +248                expression,
                +249                sep=": "
                +250                if isinstance(expression.parent, exp.DataType)
                +251                and expression.parent.is_type("struct")
                +252                else sep,
                +253            )
                 
                @@ -1021,7 +982,6 @@ Default: True
                check_sql
                foreignkey_sql
                primarykey_sql
                -
                unique_sql
                if_sql
                matchagainst_sql
                jsonkeyvalue_sql
                @@ -1113,6 +1073,9 @@ Default: True
                when_sql
                merge_sql
                tochar_sql
                +
                dictproperty_sql
                +
                dictrange_sql
                +
                dictsubproperty_sql
                sqlglot.dialects.hive.Hive.Generator
                @@ -1136,8 +1099,8 @@ Default: True
                -
                268    class Tokenizer(Hive.Tokenizer):
                -269        HEX_STRINGS = [("X'", "'")]
                +            
                255    class Tokenizer(Hive.Tokenizer):
                +256        HEX_STRINGS = [("X'", "'")]
                 
                diff --git a/docs/sqlglot/dialects/sqlite.html b/docs/sqlglot/dialects/sqlite.html index e7cc26b..0ae00eb 100644 --- a/docs/sqlglot/dialects/sqlite.html +++ b/docs/sqlglot/dialects/sqlite.html @@ -226,7 +226,7 @@
                132 LIMIT_FETCH = "LIMIT" 133 134 def cast_sql(self, expression: exp.Cast) -> str: -135 if expression.to.this == exp.DataType.Type.DATE: +135 if expression.is_type("date"): 136 return self.func("DATE", expression.this) 137 138 return super().cast_sql(expression) @@ -377,7 +377,7 @@ 133 LIMIT_FETCH = "LIMIT" 134 135 def cast_sql(self, expression: exp.Cast) -> str: -136 if expression.to.this == exp.DataType.Type.DATE: +136 if expression.is_type("date"): 137 return self.func("DATE", expression.this) 138 139 return super().cast_sql(expression) @@ -521,7 +521,7 @@ a parsed syntax tree.

                • error_level: the desired error level. -Default: ErrorLevel.RAISE
                • +Default: ErrorLevel.IMMEDIATE
                • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
                • @@ -627,7 +627,7 @@ Default: "nulls_are_small" 133 LIMIT_FETCH = "LIMIT" 134 135 def cast_sql(self, expression: exp.Cast) -> str: -136 if expression.to.this == exp.DataType.Type.DATE: +136 if expression.is_type("date"): 137 return self.func("DATE", expression.this) 138 139 return super().cast_sql(expression) @@ -723,6 +723,8 @@ represents a python time format and the output the target time format Default: "upper"
                • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
                • +
                • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
                • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
                • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -755,7 +757,7 @@ Default: True
                135        def cast_sql(self, expression: exp.Cast) -> str:
                -136            if expression.to.this == exp.DataType.Type.DATE:
                +136            if expression.is_type("date"):
                 137                return self.func("DATE", expression.this)
                 138
                 139            return super().cast_sql(expression)
                @@ -1028,7 +1030,6 @@ Default: True
                                 
                check_sql
                foreignkey_sql
                primarykey_sql
                -
                unique_sql
                if_sql
                matchagainst_sql
                jsonkeyvalue_sql
                @@ -1119,6 +1120,9 @@ Default: True
                when_sql
                merge_sql
                tochar_sql
                +
                dictproperty_sql
                +
                dictrange_sql
                +
                dictsubproperty_sql
                diff --git a/docs/sqlglot/dialects/starrocks.html b/docs/sqlglot/dialects/starrocks.html index 92eebc4..40b4e05 100644 --- a/docs/sqlglot/dialects/starrocks.html +++ b/docs/sqlglot/dialects/starrocks.html @@ -221,7 +221,7 @@ a parsed syntax tree.

                • error_level: the desired error level. -Default: ErrorLevel.RAISE
                • +Default: ErrorLevel.IMMEDIATE
                • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
                • @@ -327,6 +327,8 @@ represents a python time format and the output the target time format Default: "upper"
                • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
                • +
                • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
                • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
                • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -490,7 +492,6 @@ Default: True
                • check_sql
                  foreignkey_sql
                  primarykey_sql
                  -
                  unique_sql
                  if_sql
                  matchagainst_sql
                  jsonkeyvalue_sql
                  @@ -583,6 +584,9 @@ Default: True
                  when_sql
                  merge_sql
                  tochar_sql
                  +
                  dictproperty_sql
                  +
                  dictrange_sql
                  +
                  dictsubproperty_sql
                  sqlglot.dialects.mysql.MySQL.Generator
                  diff --git a/docs/sqlglot/dialects/tableau.html b/docs/sqlglot/dialects/tableau.html index a3fdde4..0e99348 100644 --- a/docs/sqlglot/dialects/tableau.html +++ b/docs/sqlglot/dialects/tableau.html @@ -268,6 +268,8 @@ represents a python time format and the output the target time format Default: "upper"
                • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
                • +
                • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
                • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
                • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -494,7 +496,6 @@ Default: True
                • check_sql
                  foreignkey_sql
                  primarykey_sql
                  -
                  unique_sql
                  matchagainst_sql
                  jsonkeyvalue_sql
                  jsonobject_sql
                  @@ -586,6 +587,9 @@ Default: True
                  when_sql
                  merge_sql
                  tochar_sql
                  +
                  dictproperty_sql
                  +
                  dictrange_sql
                  +
                  dictsubproperty_sql
                  @@ -617,7 +621,7 @@ a parsed syntax tree.

                  • error_level: the desired error level. -Default: ErrorLevel.RAISE
                  • +Default: ErrorLevel.IMMEDIATE
                  • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
                  • diff --git a/docs/sqlglot/dialects/teradata.html b/docs/sqlglot/dialects/teradata.html index e3023b4..e4f7333 100644 --- a/docs/sqlglot/dialects/teradata.html +++ b/docs/sqlglot/dialects/teradata.html @@ -236,7 +236,7 @@ 142 PROPERTIES_LOCATION = { 143 **generator.Generator.PROPERTIES_LOCATION, 144 exp.OnCommitProperty: exp.Properties.Location.POST_INDEX, -145 exp.PartitionedByProperty: exp.Properties.Location.POST_INDEX, +145 exp.PartitionedByProperty: exp.Properties.Location.POST_EXPRESSION, 146 exp.StabilityProperty: exp.Properties.Location.POST_CREATE, 147 } 148 @@ -422,7 +422,7 @@ 143 PROPERTIES_LOCATION = { 144 **generator.Generator.PROPERTIES_LOCATION, 145 exp.OnCommitProperty: exp.Properties.Location.POST_INDEX, -146 exp.PartitionedByProperty: exp.Properties.Location.POST_INDEX, +146 exp.PartitionedByProperty: exp.Properties.Location.POST_EXPRESSION, 147 exp.StabilityProperty: exp.Properties.Location.POST_CREATE, 148 } 149 @@ -649,7 +649,7 @@ a parsed syntax tree.

                    • error_level: the desired error level. -Default: ErrorLevel.RAISE
                    • +Default: ErrorLevel.IMMEDIATE
                    • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
                    • @@ -707,7 +707,7 @@ Default: "nulls_are_small" 143 PROPERTIES_LOCATION = { 144 **generator.Generator.PROPERTIES_LOCATION, 145 exp.OnCommitProperty: exp.Properties.Location.POST_INDEX, -146 exp.PartitionedByProperty: exp.Properties.Location.POST_INDEX, +146 exp.PartitionedByProperty: exp.Properties.Location.POST_EXPRESSION, 147 exp.StabilityProperty: exp.Properties.Location.POST_CREATE, 148 } 149 @@ -783,6 +783,8 @@ represents a python time format and the output the target time format Default: "upper"
                    • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
                    • +
                    • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
                    • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
                    • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1051,7 +1053,6 @@ Default: True
                    • check_sql
                      foreignkey_sql
                      primarykey_sql
                      -
                      unique_sql
                      if_sql
                      matchagainst_sql
                      jsonkeyvalue_sql
                      @@ -1143,6 +1144,9 @@ Default: True
                      when_sql
                      merge_sql
                      tochar_sql
                      +
                      dictproperty_sql
                      +
                      dictrange_sql
                      +
                      dictsubproperty_sql
                      diff --git a/docs/sqlglot/dialects/trino.html b/docs/sqlglot/dialects/trino.html index c01f02a..15f0491 100644 --- a/docs/sqlglot/dialects/trino.html +++ b/docs/sqlglot/dialects/trino.html @@ -188,6 +188,8 @@ represents a python time format and the output the target time format Default: "upper"
                    • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
                    • +
                    • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
                    • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
                    • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -351,7 +353,6 @@ Default: True
                    • check_sql
                      foreignkey_sql
                      primarykey_sql
                      -
                      unique_sql
                      if_sql
                      matchagainst_sql
                      jsonkeyvalue_sql
                      @@ -442,6 +443,9 @@ Default: True
                      when_sql
                      merge_sql
                      tochar_sql
                      +
                      dictproperty_sql
                      +
                      dictrange_sql
                      +
                      dictsubproperty_sql
                      sqlglot.dialects.presto.Presto.Generator
                      diff --git a/docs/sqlglot/dialects/tsql.html b/docs/sqlglot/dialects/tsql.html index 01a2d68..88de4be 100644 --- a/docs/sqlglot/dialects/tsql.html +++ b/docs/sqlglot/dialects/tsql.html @@ -1277,7 +1277,7 @@ a parsed syntax tree.

                      • error_level: the desired error level. -Default: ErrorLevel.RAISE
                      • +Default: ErrorLevel.IMMEDIATE
                      • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
                      • @@ -1422,6 +1422,8 @@ represents a python time format and the output the target time format Default: "upper"
                      • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
                      • +
                      • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
                      • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
                      • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1657,7 +1659,6 @@ Default: True
                      • check_sql
                        foreignkey_sql
                        primarykey_sql
                        -
                        unique_sql
                        if_sql
                        matchagainst_sql
                        jsonkeyvalue_sql
                        @@ -1750,6 +1751,9 @@ Default: True
                        when_sql
                        merge_sql
                        tochar_sql
                        +
                        dictproperty_sql
                        +
                        dictrange_sql
                        +
                        dictsubproperty_sql
                      diff --git a/docs/sqlglot/executor/python.html b/docs/sqlglot/executor/python.html index c73d51c..c096edf 100644 --- a/docs/sqlglot/executor/python.html +++ b/docs/sqlglot/executor/python.html @@ -1653,6 +1653,8 @@ represents a python time format and the output the target time format Default: "upper"
                    • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
                    • +
                    • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
                    • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
                    • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -1816,7 +1818,6 @@ Default: True
                    • check_sql
                      foreignkey_sql
                      primarykey_sql
                      -
                      unique_sql
                      if_sql
                      matchagainst_sql
                      jsonkeyvalue_sql
                      @@ -1909,6 +1910,9 @@ Default: True
                      when_sql
                      merge_sql
                      tochar_sql
                      +
                      dictproperty_sql
                      +
                      dictrange_sql
                      +
                      dictsubproperty_sql
                      diff --git a/docs/sqlglot/expressions.html b/docs/sqlglot/expressions.html index a536c56..8ea59aa 100644 --- a/docs/sqlglot/expressions.html +++ b/docs/sqlglot/expressions.html @@ -589,12 +589,6 @@
                      - -
                    • - Unique -
                        -
                      -
                    • Into @@ -916,6 +910,24 @@
                      +
                    • +
                    • + DictProperty +
                        +
                      + +
                    • +
                    • + DictSubProperty +
                        +
                      + +
                    • +
                    • + DictRange +
                        +
                      +
                    • LikeProperty @@ -1421,6 +1433,42 @@
                    • DATETIME64
                    • +
                    • + INT4RANGE +
                    • +
                    • + INT4MULTIRANGE +
                    • +
                    • + INT8RANGE +
                    • +
                    • + INT8MULTIRANGE +
                    • +
                    • + NUMRANGE +
                    • +
                    • + NUMMULTIRANGE +
                    • +
                    • + TSRANGE +
                    • +
                    • + TSMULTIRANGE +
                    • +
                    • + TSTZRANGE +
                    • +
                    • + TSTZMULTIRANGE +
                    • +
                    • + DATERANGE +
                    • +
                    • + DATEMULTIRANGE +
                    • DECIMAL
                    • @@ -2569,6 +2617,18 @@
                      + +
                    • + Left +
                        +
                      + +
                    • +
                    • + Right +
                        +
                      +
                    • Length @@ -3858,7 +3918,7 @@ SQL expressions, such as sqlglot.expressions.select< 670 dialect: DialectType = None, 671 copy: bool = True, 672 **opts, - 673 ) -> Expression: + 673 ) -> Condition: 674 """ 675 AND this condition with one or multiple expressions. 676 @@ -3884,7 +3944,7 @@ SQL expressions, such as sqlglot.expressions.select< 696 dialect: DialectType = None, 697 copy: bool = True, 698 **opts, - 699 ) -> Expression: + 699 ) -> Condition: 700 """ 701 OR this condition with one or multiple expressions. 702 @@ -4062,793 +4122,793 @@ SQL expressions, such as sqlglot.expressions.select< 874 table_alias = self.args.get("alias") 875 if not table_alias: 876 return [] - 877 column_list = table_alias.assert_is(TableAlias).args.get("columns") or [] - 878 return [c.name for c in column_list] - 879 - 880 @property - 881 def selects(self): - 882 return self.this.selects if isinstance(self.this, Subqueryable) else [] - 883 - 884 @property - 885 def named_selects(self): - 886 return [select.output_name for select in self.selects] + 877 return [c.name for c in table_alias.args.get("columns") or []] + 878 + 879 @property + 880 def selects(self): + 881 return self.this.selects if isinstance(self.this, Subqueryable) else [] + 882 + 883 @property + 884 def named_selects(self): + 885 return [select.output_name for select in self.selects] + 886 887 - 888 - 889class Unionable(Expression): - 890 def union( - 891 self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts - 892 ) -> Unionable: - 893 """ - 894 Builds a UNION expression. - 895 - 896 Example: - 897 >>> import sqlglot - 898 >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql() - 899 'SELECT * FROM foo UNION SELECT * FROM bla' - 900 - 901 Args: - 902 expression: the SQL code string. - 903 If an `Expression` instance is passed, it will be used as-is. - 904 distinct: set the DISTINCT flag if and only if this is true. - 905 dialect: the dialect used to parse the input expression. - 906 opts: other options to use to parse the input expressions. - 907 - 908 Returns: - 909 The new Union expression. - 910 """ - 911 return union(left=self, right=expression, distinct=distinct, dialect=dialect, **opts) - 912 - 913 def intersect( - 914 self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts - 915 ) -> Unionable: - 916 """ - 917 Builds an INTERSECT expression. - 918 - 919 Example: - 920 >>> import sqlglot - 921 >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql() - 922 'SELECT * FROM foo INTERSECT SELECT * FROM bla' - 923 - 924 Args: - 925 expression: the SQL code string. - 926 If an `Expression` instance is passed, it will be used as-is. - 927 distinct: set the DISTINCT flag if and only if this is true. - 928 dialect: the dialect used to parse the input expression. - 929 opts: other options to use to parse the input expressions. - 930 - 931 Returns: - 932 The new Intersect expression. - 933 """ - 934 return intersect(left=self, right=expression, distinct=distinct, dialect=dialect, **opts) - 935 - 936 def except_( - 937 self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts - 938 ) -> Unionable: - 939 """ - 940 Builds an EXCEPT expression. - 941 - 942 Example: - 943 >>> import sqlglot - 944 >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql() - 945 'SELECT * FROM foo EXCEPT SELECT * FROM bla' - 946 - 947 Args: - 948 expression: the SQL code string. - 949 If an `Expression` instance is passed, it will be used as-is. - 950 distinct: set the DISTINCT flag if and only if this is true. - 951 dialect: the dialect used to parse the input expression. - 952 opts: other options to use to parse the input expressions. - 953 - 954 Returns: - 955 The new Except expression. - 956 """ - 957 return except_(left=self, right=expression, distinct=distinct, dialect=dialect, **opts) + 888class Unionable(Expression): + 889 def union( + 890 self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts + 891 ) -> Unionable: + 892 """ + 893 Builds a UNION expression. + 894 + 895 Example: + 896 >>> import sqlglot + 897 >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql() + 898 'SELECT * FROM foo UNION SELECT * FROM bla' + 899 + 900 Args: + 901 expression: the SQL code string. + 902 If an `Expression` instance is passed, it will be used as-is. + 903 distinct: set the DISTINCT flag if and only if this is true. + 904 dialect: the dialect used to parse the input expression. + 905 opts: other options to use to parse the input expressions. + 906 + 907 Returns: + 908 The new Union expression. + 909 """ + 910 return union(left=self, right=expression, distinct=distinct, dialect=dialect, **opts) + 911 + 912 def intersect( + 913 self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts + 914 ) -> Unionable: + 915 """ + 916 Builds an INTERSECT expression. + 917 + 918 Example: + 919 >>> import sqlglot + 920 >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql() + 921 'SELECT * FROM foo INTERSECT SELECT * FROM bla' + 922 + 923 Args: + 924 expression: the SQL code string. + 925 If an `Expression` instance is passed, it will be used as-is. + 926 distinct: set the DISTINCT flag if and only if this is true. + 927 dialect: the dialect used to parse the input expression. + 928 opts: other options to use to parse the input expressions. + 929 + 930 Returns: + 931 The new Intersect expression. + 932 """ + 933 return intersect(left=self, right=expression, distinct=distinct, dialect=dialect, **opts) + 934 + 935 def except_( + 936 self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts + 937 ) -> Unionable: + 938 """ + 939 Builds an EXCEPT expression. + 940 + 941 Example: + 942 >>> import sqlglot + 943 >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql() + 944 'SELECT * FROM foo EXCEPT SELECT * FROM bla' + 945 + 946 Args: + 947 expression: the SQL code string. + 948 If an `Expression` instance is passed, it will be used as-is. + 949 distinct: set the DISTINCT flag if and only if this is true. + 950 dialect: the dialect used to parse the input expression. + 951 opts: other options to use to parse the input expressions. + 952 + 953 Returns: + 954 The new Except expression. + 955 """ + 956 return except_(left=self, right=expression, distinct=distinct, dialect=dialect, **opts) + 957 958 - 959 - 960class UDTF(DerivedTable, Unionable): - 961 @property - 962 def selects(self): - 963 alias = self.args.get("alias") - 964 return alias.columns if alias else [] + 959class UDTF(DerivedTable, Unionable): + 960 @property + 961 def selects(self): + 962 alias = self.args.get("alias") + 963 return alias.columns if alias else [] + 964 965 - 966 - 967class Cache(Expression): - 968 arg_types = { - 969 "with": False, - 970 "this": True, - 971 "lazy": False, - 972 "options": False, - 973 "expression": False, - 974 } + 966class Cache(Expression): + 967 arg_types = { + 968 "with": False, + 969 "this": True, + 970 "lazy": False, + 971 "options": False, + 972 "expression": False, + 973 } + 974 975 - 976 - 977class Uncache(Expression): - 978 arg_types = {"this": True, "exists": False} + 976class Uncache(Expression): + 977 arg_types = {"this": True, "exists": False} + 978 979 - 980 - 981class Create(Expression): - 982 arg_types = { - 983 "with": False, - 984 "this": True, - 985 "kind": True, - 986 "expression": False, - 987 "exists": False, - 988 "properties": False, - 989 "replace": False, - 990 "unique": False, - 991 "indexes": False, - 992 "no_schema_binding": False, - 993 "begin": False, - 994 "clone": False, - 995 } + 980class Create(Expression): + 981 arg_types = { + 982 "with": False, + 983 "this": True, + 984 "kind": True, + 985 "expression": False, + 986 "exists": False, + 987 "properties": False, + 988 "replace": False, + 989 "unique": False, + 990 "indexes": False, + 991 "no_schema_binding": False, + 992 "begin": False, + 993 "clone": False, + 994 } + 995 996 - 997 - 998# https://docs.snowflake.com/en/sql-reference/sql/create-clone - 999class Clone(Expression): -1000 arg_types = { -1001 "this": True, -1002 "when": False, -1003 "kind": False, -1004 "expression": False, -1005 } + 997# https://docs.snowflake.com/en/sql-reference/sql/create-clone + 998class Clone(Expression): + 999 arg_types = { +1000 "this": True, +1001 "when": False, +1002 "kind": False, +1003 "expression": False, +1004 } +1005 1006 -1007 -1008class Describe(Expression): -1009 arg_types = {"this": True, "kind": False} +1007class Describe(Expression): +1008 arg_types = {"this": True, "kind": False} +1009 1010 -1011 -1012class Pragma(Expression): -1013 pass +1011class Pragma(Expression): +1012 pass +1013 1014 -1015 -1016class Set(Expression): -1017 arg_types = {"expressions": False} +1015class Set(Expression): +1016 arg_types = {"expressions": False} +1017 1018 -1019 -1020class SetItem(Expression): -1021 arg_types = { -1022 "this": False, -1023 "expressions": False, -1024 "kind": False, -1025 "collate": False, # MySQL SET NAMES statement -1026 "global": False, -1027 } +1019class SetItem(Expression): +1020 arg_types = { +1021 "this": False, +1022 "expressions": False, +1023 "kind": False, +1024 "collate": False, # MySQL SET NAMES statement +1025 "global": False, +1026 } +1027 1028 -1029 -1030class Show(Expression): -1031 arg_types = { -1032 "this": True, -1033 "target": False, -1034 "offset": False, -1035 "limit": False, -1036 "like": False, -1037 "where": False, -1038 "db": False, -1039 "full": False, -1040 "mutex": False, -1041 "query": False, -1042 "channel": False, -1043 "global": False, -1044 "log": False, -1045 "position": False, -1046 "types": False, -1047 } +1029class Show(Expression): +1030 arg_types = { +1031 "this": True, +1032 "target": False, +1033 "offset": False, +1034 "limit": False, +1035 "like": False, +1036 "where": False, +1037 "db": False, +1038 "full": False, +1039 "mutex": False, +1040 "query": False, +1041 "channel": False, +1042 "global": False, +1043 "log": False, +1044 "position": False, +1045 "types": False, +1046 } +1047 1048 -1049 -1050class UserDefinedFunction(Expression): -1051 arg_types = {"this": True, "expressions": False, "wrapped": False} +1049class UserDefinedFunction(Expression): +1050 arg_types = {"this": True, "expressions": False, "wrapped": False} +1051 1052 -1053 -1054class CharacterSet(Expression): -1055 arg_types = {"this": True, "default": False} +1053class CharacterSet(Expression): +1054 arg_types = {"this": True, "default": False} +1055 1056 -1057 -1058class With(Expression): -1059 arg_types = {"expressions": True, "recursive": False} -1060 -1061 @property -1062 def recursive(self) -> bool: -1063 return bool(self.args.get("recursive")) +1057class With(Expression): +1058 arg_types = {"expressions": True, "recursive": False} +1059 +1060 @property +1061 def recursive(self) -> bool: +1062 return bool(self.args.get("recursive")) +1063 1064 -1065 -1066class WithinGroup(Expression): -1067 arg_types = {"this": True, "expression": False} +1065class WithinGroup(Expression): +1066 arg_types = {"this": True, "expression": False} +1067 1068 -1069 -1070class CTE(DerivedTable): -1071 arg_types = {"this": True, "alias": True} +1069class CTE(DerivedTable): +1070 arg_types = {"this": True, "alias": True} +1071 1072 -1073 -1074class TableAlias(Expression): -1075 arg_types = {"this": False, "columns": False} -1076 -1077 @property -1078 def columns(self): -1079 return self.args.get("columns") or [] +1073class TableAlias(Expression): +1074 arg_types = {"this": False, "columns": False} +1075 +1076 @property +1077 def columns(self): +1078 return self.args.get("columns") or [] +1079 1080 -1081 -1082class BitString(Condition): -1083 pass +1081class BitString(Condition): +1082 pass +1083 1084 -1085 -1086class HexString(Condition): -1087 pass +1085class HexString(Condition): +1086 pass +1087 1088 -1089 -1090class ByteString(Condition): -1091 pass +1089class ByteString(Condition): +1090 pass +1091 1092 -1093 -1094class RawString(Condition): -1095 pass +1093class RawString(Condition): +1094 pass +1095 1096 -1097 -1098class Column(Condition): -1099 arg_types = {"this": True, "table": False, "db": False, "catalog": False, "join_mark": False} -1100 -1101 @property -1102 def table(self) -> str: -1103 return self.text("table") -1104 -1105 @property -1106 def db(self) -> str: -1107 return self.text("db") -1108 -1109 @property -1110 def catalog(self) -> str: -1111 return self.text("catalog") -1112 -1113 @property -1114 def output_name(self) -> str: -1115 return self.name -1116 -1117 @property -1118 def parts(self) -> t.List[Identifier]: -1119 """Return the parts of a column in order catalog, db, table, name.""" -1120 return [ -1121 t.cast(Identifier, self.args[part]) -1122 for part in ("catalog", "db", "table", "this") -1123 if self.args.get(part) -1124 ] -1125 -1126 def to_dot(self) -> Dot: -1127 """Converts the column into a dot expression.""" -1128 parts = self.parts -1129 parent = self.parent -1130 -1131 while parent: -1132 if isinstance(parent, Dot): -1133 parts.append(parent.expression) -1134 parent = parent.parent -1135 -1136 return Dot.build(parts) +1097class Column(Condition): +1098 arg_types = {"this": True, "table": False, "db": False, "catalog": False, "join_mark": False} +1099 +1100 @property +1101 def table(self) -> str: +1102 return self.text("table") +1103 +1104 @property +1105 def db(self) -> str: +1106 return self.text("db") +1107 +1108 @property +1109 def catalog(self) -> str: +1110 return self.text("catalog") +1111 +1112 @property +1113 def output_name(self) -> str: +1114 return self.name +1115 +1116 @property +1117 def parts(self) -> t.List[Identifier]: +1118 """Return the parts of a column in order catalog, db, table, name.""" +1119 return [ +1120 t.cast(Identifier, self.args[part]) +1121 for part in ("catalog", "db", "table", "this") +1122 if self.args.get(part) +1123 ] +1124 +1125 def to_dot(self) -> Dot: +1126 """Converts the column into a dot expression.""" +1127 parts = self.parts +1128 parent = self.parent +1129 +1130 while parent: +1131 if isinstance(parent, Dot): +1132 parts.append(parent.expression) +1133 parent = parent.parent +1134 +1135 return Dot.build(parts) +1136 1137 -1138 -1139class ColumnPosition(Expression): -1140 arg_types = {"this": False, "position": True} +1138class ColumnPosition(Expression): +1139 arg_types = {"this": False, "position": True} +1140 1141 -1142 -1143class ColumnDef(Expression): -1144 arg_types = { -1145 "this": True, -1146 "kind": False, -1147 "constraints": False, -1148 "exists": False, -1149 "position": False, -1150 } -1151 -1152 @property -1153 def constraints(self) -> t.List[ColumnConstraint]: -1154 return self.args.get("constraints") or [] +1142class ColumnDef(Expression): +1143 arg_types = { +1144 "this": True, +1145 "kind": False, +1146 "constraints": False, +1147 "exists": False, +1148 "position": False, +1149 } +1150 +1151 @property +1152 def constraints(self) -> t.List[ColumnConstraint]: +1153 return self.args.get("constraints") or [] +1154 1155 -1156 -1157class AlterColumn(Expression): -1158 arg_types = { -1159 "this": True, -1160 "dtype": False, -1161 "collate": False, -1162 "using": False, -1163 "default": False, -1164 "drop": False, -1165 } +1156class AlterColumn(Expression): +1157 arg_types = { +1158 "this": True, +1159 "dtype": False, +1160 "collate": False, +1161 "using": False, +1162 "default": False, +1163 "drop": False, +1164 } +1165 1166 -1167 -1168class RenameTable(Expression): -1169 pass +1167class RenameTable(Expression): +1168 pass +1169 1170 -1171 -1172class SetTag(Expression): -1173 arg_types = {"expressions": True, "unset": False} +1171class SetTag(Expression): +1172 arg_types = {"expressions": True, "unset": False} +1173 1174 -1175 -1176class Comment(Expression): -1177 arg_types = {"this": True, "kind": True, "expression": True, "exists": False} +1175class Comment(Expression): +1176 arg_types = {"this": True, "kind": True, "expression": True, "exists": False} +1177 1178 -1179 -1180# https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl -1181class MergeTreeTTLAction(Expression): -1182 arg_types = { -1183 "this": True, -1184 "delete": False, -1185 "recompress": False, -1186 "to_disk": False, -1187 "to_volume": False, -1188 } +1179# https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl +1180class MergeTreeTTLAction(Expression): +1181 arg_types = { +1182 "this": True, +1183 "delete": False, +1184 "recompress": False, +1185 "to_disk": False, +1186 "to_volume": False, +1187 } +1188 1189 -1190 -1191# https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl -1192class MergeTreeTTL(Expression): -1193 arg_types = { -1194 "expressions": True, -1195 "where": False, -1196 "group": False, -1197 "aggregates": False, -1198 } +1190# https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl +1191class MergeTreeTTL(Expression): +1192 arg_types = { +1193 "expressions": True, +1194 "where": False, +1195 "group": False, +1196 "aggregates": False, +1197 } +1198 1199 -1200 -1201class ColumnConstraint(Expression): -1202 arg_types = {"this": False, "kind": True} -1203 -1204 @property -1205 def kind(self) -> ColumnConstraintKind: -1206 return self.args["kind"] +1200class ColumnConstraint(Expression): +1201 arg_types = {"this": False, "kind": True} +1202 +1203 @property +1204 def kind(self) -> ColumnConstraintKind: +1205 return self.args["kind"] +1206 1207 -1208 -1209class ColumnConstraintKind(Expression): -1210 pass +1208class ColumnConstraintKind(Expression): +1209 pass +1210 1211 -1212 -1213class AutoIncrementColumnConstraint(ColumnConstraintKind): -1214 pass +1212class AutoIncrementColumnConstraint(ColumnConstraintKind): +1213 pass +1214 1215 -1216 -1217class CaseSpecificColumnConstraint(ColumnConstraintKind): -1218 arg_types = {"not_": True} +1216class CaseSpecificColumnConstraint(ColumnConstraintKind): +1217 arg_types = {"not_": True} +1218 1219 -1220 -1221class CharacterSetColumnConstraint(ColumnConstraintKind): -1222 arg_types = {"this": True} +1220class CharacterSetColumnConstraint(ColumnConstraintKind): +1221 arg_types = {"this": True} +1222 1223 -1224 -1225class CheckColumnConstraint(ColumnConstraintKind): -1226 pass +1224class CheckColumnConstraint(ColumnConstraintKind): +1225 pass +1226 1227 -1228 -1229class CollateColumnConstraint(ColumnConstraintKind): -1230 pass +1228class CollateColumnConstraint(ColumnConstraintKind): +1229 pass +1230 1231 -1232 -1233class CommentColumnConstraint(ColumnConstraintKind): -1234 pass +1232class CommentColumnConstraint(ColumnConstraintKind): +1233 pass +1234 1235 -1236 -1237class CompressColumnConstraint(ColumnConstraintKind): -1238 pass +1236class CompressColumnConstraint(ColumnConstraintKind): +1237 pass +1238 1239 -1240 -1241class DateFormatColumnConstraint(ColumnConstraintKind): -1242 arg_types = {"this": True} +1240class DateFormatColumnConstraint(ColumnConstraintKind): +1241 arg_types = {"this": True} +1242 1243 -1244 -1245class DefaultColumnConstraint(ColumnConstraintKind): -1246 pass +1244class DefaultColumnConstraint(ColumnConstraintKind): +1245 pass +1246 1247 -1248 -1249class EncodeColumnConstraint(ColumnConstraintKind): -1250 pass +1248class EncodeColumnConstraint(ColumnConstraintKind): +1249 pass +1250 1251 -1252 -1253class GeneratedAsIdentityColumnConstraint(ColumnConstraintKind): -1254 # this: True -> ALWAYS, this: False -> BY DEFAULT -1255 arg_types = { -1256 "this": False, -1257 "expression": False, -1258 "on_null": False, -1259 "start": False, -1260 "increment": False, -1261 "minvalue": False, -1262 "maxvalue": False, -1263 "cycle": False, -1264 } +1252class GeneratedAsIdentityColumnConstraint(ColumnConstraintKind): +1253 # this: True -> ALWAYS, this: False -> BY DEFAULT +1254 arg_types = { +1255 "this": False, +1256 "expression": False, +1257 "on_null": False, +1258 "start": False, +1259 "increment": False, +1260 "minvalue": False, +1261 "maxvalue": False, +1262 "cycle": False, +1263 } +1264 1265 -1266 -1267class InlineLengthColumnConstraint(ColumnConstraintKind): -1268 pass +1266class InlineLengthColumnConstraint(ColumnConstraintKind): +1267 pass +1268 1269 -1270 -1271class NotNullColumnConstraint(ColumnConstraintKind): -1272 arg_types = {"allow_null": False} +1270class NotNullColumnConstraint(ColumnConstraintKind): +1271 arg_types = {"allow_null": False} +1272 1273 -1274 -1275# https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html -1276class OnUpdateColumnConstraint(ColumnConstraintKind): -1277 pass +1274# https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html +1275class OnUpdateColumnConstraint(ColumnConstraintKind): +1276 pass +1277 1278 -1279 -1280class PrimaryKeyColumnConstraint(ColumnConstraintKind): -1281 arg_types = {"desc": False} +1279class PrimaryKeyColumnConstraint(ColumnConstraintKind): +1280 arg_types = {"desc": False} +1281 1282 -1283 -1284class TitleColumnConstraint(ColumnConstraintKind): -1285 pass +1283class TitleColumnConstraint(ColumnConstraintKind): +1284 pass +1285 1286 -1287 -1288class UniqueColumnConstraint(ColumnConstraintKind): -1289 arg_types: t.Dict[str, t.Any] = {} +1287class UniqueColumnConstraint(ColumnConstraintKind): +1288 arg_types = {"this": False} +1289 1290 -1291 -1292class UppercaseColumnConstraint(ColumnConstraintKind): -1293 arg_types: t.Dict[str, t.Any] = {} +1291class UppercaseColumnConstraint(ColumnConstraintKind): +1292 arg_types: t.Dict[str, t.Any] = {} +1293 1294 -1295 -1296class PathColumnConstraint(ColumnConstraintKind): -1297 pass +1295class PathColumnConstraint(ColumnConstraintKind): +1296 pass +1297 1298 -1299 -1300class Constraint(Expression): -1301 arg_types = {"this": True, "expressions": True} +1299class Constraint(Expression): +1300 arg_types = {"this": True, "expressions": True} +1301 1302 -1303 -1304class Delete(Expression): -1305 arg_types = {"with": False, "this": False, "using": False, "where": False, "returning": False} -1306 -1307 def delete( -1308 self, -1309 table: ExpOrStr, -1310 dialect: DialectType = None, -1311 copy: bool = True, -1312 **opts, -1313 ) -> Delete: -1314 """ -1315 Create a DELETE expression or replace the table on an existing DELETE expression. -1316 -1317 Example: -1318 >>> delete("tbl").sql() -1319 'DELETE FROM tbl' -1320 -1321 Args: -1322 table: the table from which to delete. -1323 dialect: the dialect used to parse the input expression. -1324 copy: if `False`, modify this expression instance in-place. -1325 opts: other options to use to parse the input expressions. -1326 -1327 Returns: -1328 Delete: the modified expression. -1329 """ -1330 return _apply_builder( -1331 expression=table, -1332 instance=self, -1333 arg="this", -1334 dialect=dialect, -1335 into=Table, -1336 copy=copy, -1337 **opts, -1338 ) -1339 -1340 def where( -1341 self, -1342 *expressions: t.Optional[ExpOrStr], -1343 append: bool = True, -1344 dialect: DialectType = None, -1345 copy: bool = True, -1346 **opts, -1347 ) -> Delete: -1348 """ -1349 Append to or set the WHERE expressions. -1350 -1351 Example: -1352 >>> delete("tbl").where("x = 'a' OR x < 'b'").sql() -1353 "DELETE FROM tbl WHERE x = 'a' OR x < 'b'" -1354 -1355 Args: -1356 *expressions: the SQL code strings to parse. -1357 If an `Expression` instance is passed, it will be used as-is. -1358 Multiple expressions are combined with an AND operator. -1359 append: if `True`, AND the new expressions to any existing expression. -1360 Otherwise, this resets the expression. -1361 dialect: the dialect used to parse the input expressions. -1362 copy: if `False`, modify this expression instance in-place. -1363 opts: other options to use to parse the input expressions. -1364 -1365 Returns: -1366 Delete: the modified expression. -1367 """ -1368 return _apply_conjunction_builder( -1369 *expressions, -1370 instance=self, -1371 arg="where", -1372 append=append, -1373 into=Where, -1374 dialect=dialect, -1375 copy=copy, -1376 **opts, -1377 ) -1378 -1379 def returning( -1380 self, -1381 expression: ExpOrStr, -1382 dialect: DialectType = None, -1383 copy: bool = True, -1384 **opts, -1385 ) -> Delete: -1386 """ -1387 Set the RETURNING expression. Not supported by all dialects. -1388 -1389 Example: -1390 >>> delete("tbl").returning("*", dialect="postgres").sql() -1391 'DELETE FROM tbl RETURNING *' -1392 -1393 Args: -1394 expression: the SQL code strings to parse. -1395 If an `Expression` instance is passed, it will be used as-is. -1396 dialect: the dialect used to parse the input expressions. -1397 copy: if `False`, modify this expression instance in-place. -1398 opts: other options to use to parse the input expressions. -1399 -1400 Returns: -1401 Delete: the modified expression. -1402 """ -1403 return _apply_builder( -1404 expression=expression, -1405 instance=self, -1406 arg="returning", -1407 prefix="RETURNING", -1408 dialect=dialect, -1409 copy=copy, -1410 into=Returning, -1411 **opts, -1412 ) +1303class Delete(Expression): +1304 arg_types = {"with": False, "this": False, "using": False, "where": False, "returning": False} +1305 +1306 def delete( +1307 self, +1308 table: ExpOrStr, +1309 dialect: DialectType = None, +1310 copy: bool = True, +1311 **opts, +1312 ) -> Delete: +1313 """ +1314 Create a DELETE expression or replace the table on an existing DELETE expression. +1315 +1316 Example: +1317 >>> delete("tbl").sql() +1318 'DELETE FROM tbl' +1319 +1320 Args: +1321 table: the table from which to delete. +1322 dialect: the dialect used to parse the input expression. +1323 copy: if `False`, modify this expression instance in-place. +1324 opts: other options to use to parse the input expressions. +1325 +1326 Returns: +1327 Delete: the modified expression. +1328 """ +1329 return _apply_builder( +1330 expression=table, +1331 instance=self, +1332 arg="this", +1333 dialect=dialect, +1334 into=Table, +1335 copy=copy, +1336 **opts, +1337 ) +1338 +1339 def where( +1340 self, +1341 *expressions: t.Optional[ExpOrStr], +1342 append: bool = True, +1343 dialect: DialectType = None, +1344 copy: bool = True, +1345 **opts, +1346 ) -> Delete: +1347 """ +1348 Append to or set the WHERE expressions. +1349 +1350 Example: +1351 >>> delete("tbl").where("x = 'a' OR x < 'b'").sql() +1352 "DELETE FROM tbl WHERE x = 'a' OR x < 'b'" +1353 +1354 Args: +1355 *expressions: the SQL code strings to parse. +1356 If an `Expression` instance is passed, it will be used as-is. +1357 Multiple expressions are combined with an AND operator. +1358 append: if `True`, AND the new expressions to any existing expression. +1359 Otherwise, this resets the expression. +1360 dialect: the dialect used to parse the input expressions. +1361 copy: if `False`, modify this expression instance in-place. +1362 opts: other options to use to parse the input expressions. +1363 +1364 Returns: +1365 Delete: the modified expression. +1366 """ +1367 return _apply_conjunction_builder( +1368 *expressions, +1369 instance=self, +1370 arg="where", +1371 append=append, +1372 into=Where, +1373 dialect=dialect, +1374 copy=copy, +1375 **opts, +1376 ) +1377 +1378 def returning( +1379 self, +1380 expression: ExpOrStr, +1381 dialect: DialectType = None, +1382 copy: bool = True, +1383 **opts, +1384 ) -> Delete: +1385 """ +1386 Set the RETURNING expression. Not supported by all dialects. +1387 +1388 Example: +1389 >>> delete("tbl").returning("*", dialect="postgres").sql() +1390 'DELETE FROM tbl RETURNING *' +1391 +1392 Args: +1393 expression: the SQL code strings to parse. +1394 If an `Expression` instance is passed, it will be used as-is. +1395 dialect: the dialect used to parse the input expressions. +1396 copy: if `False`, modify this expression instance in-place. +1397 opts: other options to use to parse the input expressions. +1398 +1399 Returns: +1400 Delete: the modified expression. +1401 """ +1402 return _apply_builder( +1403 expression=expression, +1404 instance=self, +1405 arg="returning", +1406 prefix="RETURNING", +1407 dialect=dialect, +1408 copy=copy, +1409 into=Returning, +1410 **opts, +1411 ) +1412 1413 -1414 -1415class Drop(Expression): -1416 arg_types = { -1417 "this": False, -1418 "kind": False, -1419 "exists": False, -1420 "temporary": False, -1421 "materialized": False, -1422 "cascade": False, -1423 "constraints": False, -1424 "purge": False, -1425 } +1414class Drop(Expression): +1415 arg_types = { +1416 "this": False, +1417 "kind": False, +1418 "exists": False, +1419 "temporary": False, +1420 "materialized": False, +1421 "cascade": False, +1422 "constraints": False, +1423 "purge": False, +1424 } +1425 1426 -1427 -1428class Filter(Expression): -1429 arg_types = {"this": True, "expression": True} +1427class Filter(Expression): +1428 arg_types = {"this": True, "expression": True} +1429 1430 -1431 -1432class Check(Expression): -1433 pass +1431class Check(Expression): +1432 pass +1433 1434 -1435 -1436class Directory(Expression): -1437 # https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html -1438 arg_types = {"this": True, "local": False, "row_format": False} +1435class Directory(Expression): +1436 # https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html +1437 arg_types = {"this": True, "local": False, "row_format": False} +1438 1439 -1440 -1441class ForeignKey(Expression): -1442 arg_types = { -1443 "expressions": True, -1444 "reference": False, -1445 "delete": False, -1446 "update": False, -1447 } +1440class ForeignKey(Expression): +1441 arg_types = { +1442 "expressions": True, +1443 "reference": False, +1444 "delete": False, +1445 "update": False, +1446 } +1447 1448 -1449 -1450class PrimaryKey(Expression): -1451 arg_types = {"expressions": True, "options": False} +1449class PrimaryKey(Expression): +1450 arg_types = {"expressions": True, "options": False} +1451 1452 -1453 -1454class Unique(Expression): -1455 arg_types = {"expressions": True} -1456 +1453# https://www.postgresql.org/docs/9.1/sql-selectinto.html +1454# https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_INTO.html#r_SELECT_INTO-examples +1455class Into(Expression): +1456 arg_types = {"this": True, "temporary": False, "unlogged": False} 1457 -1458# https://www.postgresql.org/docs/9.1/sql-selectinto.html -1459# https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_INTO.html#r_SELECT_INTO-examples -1460class Into(Expression): -1461 arg_types = {"this": True, "temporary": False, "unlogged": False} -1462 +1458 +1459class From(Expression): +1460 @property +1461 def name(self) -> str: +1462 return self.this.name 1463 -1464class From(Expression): -1465 @property -1466 def name(self) -> str: -1467 return self.this.name +1464 @property +1465 def alias_or_name(self) -> str: +1466 return self.this.alias_or_name +1467 1468 -1469 @property -1470 def alias_or_name(self) -> str: -1471 return self.this.alias_or_name +1469class Having(Expression): +1470 pass +1471 1472 -1473 -1474class Having(Expression): -1475 pass +1473class Hint(Expression): +1474 arg_types = {"expressions": True} +1475 1476 -1477 -1478class Hint(Expression): -1479 arg_types = {"expressions": True} +1477class JoinHint(Expression): +1478 arg_types = {"this": True, "expressions": True} +1479 1480 -1481 -1482class JoinHint(Expression): -1483 arg_types = {"this": True, "expressions": True} -1484 -1485 -1486class Identifier(Expression): -1487 arg_types = {"this": True, "quoted": False} -1488 -1489 @property -1490 def quoted(self) -> bool: -1491 return bool(self.args.get("quoted")) -1492 -1493 @property -1494 def hashable_args(self) -> t.Any: -1495 if self.quoted and any(char.isupper() for char in self.this): -1496 return (self.this, self.quoted) -1497 return self.this.lower() +1481class Identifier(Expression): +1482 arg_types = {"this": True, "quoted": False} +1483 +1484 @property +1485 def quoted(self) -> bool: +1486 return bool(self.args.get("quoted")) +1487 +1488 @property +1489 def hashable_args(self) -> t.Any: +1490 if self.quoted and any(char.isupper() for char in self.this): +1491 return (self.this, self.quoted) +1492 return self.this.lower() +1493 +1494 @property +1495 def output_name(self) -> str: +1496 return self.name +1497 1498 -1499 @property -1500 def output_name(self) -> str: -1501 return self.name -1502 -1503 -1504class Index(Expression): -1505 arg_types = { -1506 "this": False, -1507 "table": False, -1508 "where": False, -1509 "columns": False, -1510 "unique": False, -1511 "primary": False, -1512 "amp": False, # teradata -1513 } -1514 -1515 -1516class Insert(Expression): -1517 arg_types = { -1518 "with": False, -1519 "this": True, -1520 "expression": False, -1521 "conflict": False, -1522 "returning": False, -1523 "overwrite": False, -1524 "exists": False, -1525 "partition": False, -1526 "alternative": False, -1527 } -1528 -1529 def with_( -1530 self, -1531 alias: ExpOrStr, -1532 as_: ExpOrStr, -1533 recursive: t.Optional[bool] = None, -1534 append: bool = True, -1535 dialect: DialectType = None, -1536 copy: bool = True, -1537 **opts, -1538 ) -> Insert: -1539 """ -1540 Append to or set the common table expressions. +1499class Index(Expression): +1500 arg_types = { +1501 "this": False, +1502 "table": False, +1503 "where": False, +1504 "columns": False, +1505 "unique": False, +1506 "primary": False, +1507 "amp": False, # teradata +1508 "partition_by": False, # teradata +1509 } +1510 +1511 +1512class Insert(Expression): +1513 arg_types = { +1514 "with": False, +1515 "this": True, +1516 "expression": False, +1517 "conflict": False, +1518 "returning": False, +1519 "overwrite": False, +1520 "exists": False, +1521 "partition": False, +1522 "alternative": False, +1523 } +1524 +1525 def with_( +1526 self, +1527 alias: ExpOrStr, +1528 as_: ExpOrStr, +1529 recursive: t.Optional[bool] = None, +1530 append: bool = True, +1531 dialect: DialectType = None, +1532 copy: bool = True, +1533 **opts, +1534 ) -> Insert: +1535 """ +1536 Append to or set the common table expressions. +1537 +1538 Example: +1539 >>> insert("SELECT x FROM cte", "t").with_("cte", as_="SELECT * FROM tbl").sql() +1540 'WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte' 1541 -1542 Example: -1543 >>> insert("SELECT x FROM cte", "t").with_("cte", as_="SELECT * FROM tbl").sql() -1544 'WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte' -1545 -1546 Args: -1547 alias: the SQL code string to parse as the table name. -1548 If an `Expression` instance is passed, this is used as-is. -1549 as_: the SQL code string to parse as the table expression. -1550 If an `Expression` instance is passed, it will be used as-is. -1551 recursive: set the RECURSIVE part of the expression. Defaults to `False`. -1552 append: if `True`, add to any existing expressions. -1553 Otherwise, this resets the expressions. -1554 dialect: the dialect used to parse the input expression. -1555 copy: if `False`, modify this expression instance in-place. -1556 opts: other options to use to parse the input expressions. -1557 -1558 Returns: -1559 The modified expression. -1560 """ -1561 return _apply_cte_builder( -1562 self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts -1563 ) -1564 -1565 -1566class OnConflict(Expression): -1567 arg_types = { -1568 "duplicate": False, -1569 "expressions": False, -1570 "nothing": False, -1571 "key": False, -1572 "constraint": False, -1573 } +1542 Args: +1543 alias: the SQL code string to parse as the table name. +1544 If an `Expression` instance is passed, this is used as-is. +1545 as_: the SQL code string to parse as the table expression. +1546 If an `Expression` instance is passed, it will be used as-is. +1547 recursive: set the RECURSIVE part of the expression. Defaults to `False`. +1548 append: if `True`, add to any existing expressions. +1549 Otherwise, this resets the expressions. +1550 dialect: the dialect used to parse the input expression. +1551 copy: if `False`, modify this expression instance in-place. +1552 opts: other options to use to parse the input expressions. +1553 +1554 Returns: +1555 The modified expression. +1556 """ +1557 return _apply_cte_builder( +1558 self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts +1559 ) +1560 +1561 +1562class OnConflict(Expression): +1563 arg_types = { +1564 "duplicate": False, +1565 "expressions": False, +1566 "nothing": False, +1567 "key": False, +1568 "constraint": False, +1569 } +1570 +1571 +1572class Returning(Expression): +1573 arg_types = {"expressions": True} 1574 1575 -1576class Returning(Expression): -1577 arg_types = {"expressions": True} -1578 +1576# https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html +1577class Introducer(Expression): +1578 arg_types = {"this": True, "expression": True} 1579 -1580# https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html -1581class Introducer(Expression): -1582 arg_types = {"this": True, "expression": True} -1583 +1580 +1581# national char, like n'utf8' +1582class National(Expression): +1583 pass 1584 -1585# national char, like n'utf8' -1586class National(Expression): -1587 pass -1588 -1589 -1590class LoadData(Expression): -1591 arg_types = { -1592 "this": True, -1593 "local": False, -1594 "overwrite": False, -1595 "inpath": True, -1596 "partition": False, -1597 "input_format": False, -1598 "serde": False, -1599 } +1585 +1586class LoadData(Expression): +1587 arg_types = { +1588 "this": True, +1589 "local": False, +1590 "overwrite": False, +1591 "inpath": True, +1592 "partition": False, +1593 "input_format": False, +1594 "serde": False, +1595 } +1596 +1597 +1598class Partition(Expression): +1599 arg_types = {"expressions": True} 1600 1601 -1602class Partition(Expression): -1603 arg_types = {"expressions": True} -1604 -1605 -1606class Fetch(Expression): -1607 arg_types = { -1608 "direction": False, -1609 "count": False, -1610 "percent": False, -1611 "with_ties": False, -1612 } -1613 -1614 -1615class Group(Expression): -1616 arg_types = { -1617 "expressions": False, -1618 "grouping_sets": False, -1619 "cube": False, -1620 "rollup": False, -1621 "totals": False, -1622 } +1602class Fetch(Expression): +1603 arg_types = { +1604 "direction": False, +1605 "count": False, +1606 "percent": False, +1607 "with_ties": False, +1608 } +1609 +1610 +1611class Group(Expression): +1612 arg_types = { +1613 "expressions": False, +1614 "grouping_sets": False, +1615 "cube": False, +1616 "rollup": False, +1617 "totals": False, +1618 } +1619 +1620 +1621class Lambda(Expression): +1622 arg_types = {"this": True, "expressions": True} 1623 1624 -1625class Lambda(Expression): -1626 arg_types = {"this": True, "expressions": True} +1625class Limit(Expression): +1626 arg_types = {"this": False, "expression": True} 1627 1628 -1629class Limit(Expression): -1630 arg_types = {"this": False, "expression": True} +1629class Literal(Condition): +1630 arg_types = {"this": True, "is_string": True} 1631 -1632 -1633class Literal(Condition): -1634 arg_types = {"this": True, "is_string": True} +1632 @property +1633 def hashable_args(self) -> t.Any: +1634 return (self.this, self.args.get("is_string")) 1635 -1636 @property -1637 def hashable_args(self) -> t.Any: -1638 return (self.this, self.args.get("is_string")) +1636 @classmethod +1637 def number(cls, number) -> Literal: +1638 return cls(this=str(number), is_string=False) 1639 1640 @classmethod -1641 def number(cls, number) -> Literal: -1642 return cls(this=str(number), is_string=False) +1641 def string(cls, string) -> Literal: +1642 return cls(this=str(string), is_string=True) 1643 -1644 @classmethod -1645 def string(cls, string) -> Literal: -1646 return cls(this=str(string), is_string=True) +1644 @property +1645 def output_name(self) -> str: +1646 return self.name 1647 -1648 @property -1649 def output_name(self) -> str: -1650 return self.name -1651 -1652 -1653class Join(Expression): -1654 arg_types = { -1655 "this": True, -1656 "on": False, -1657 "side": False, -1658 "kind": False, -1659 "using": False, -1660 "natural": False, -1661 "global": False, -1662 "hint": False, -1663 } +1648 +1649class Join(Expression): +1650 arg_types = { +1651 "this": True, +1652 "on": False, +1653 "side": False, +1654 "kind": False, +1655 "using": False, +1656 "method": False, +1657 "global": False, +1658 "hint": False, +1659 } +1660 +1661 @property +1662 def method(self) -> str: +1663 return self.text("method").upper() 1664 1665 @property 1666 def kind(self) -> str: @@ -5105,3851 +5165,3900 @@ SQL expressions, such as sqlglot.expressions.select< 1917 arg_types = {"this": True} 1918 1919 -1920class LikeProperty(Property): -1921 arg_types = {"this": True, "expressions": False} +1920class DictProperty(Property): +1921 arg_types = {"this": True, "kind": True, "settings": False} 1922 1923 -1924class LocationProperty(Property): -1925 arg_types = {"this": True} +1924class DictSubProperty(Property): +1925 pass 1926 1927 -1928class LockingProperty(Property): -1929 arg_types = { -1930 "this": False, -1931 "kind": True, -1932 "for_or_in": True, -1933 "lock_type": True, -1934 "override": False, -1935 } -1936 -1937 -1938class LogProperty(Property): -1939 arg_types = {"no": True} -1940 -1941 -1942class MaterializedProperty(Property): -1943 arg_types = {"this": False} -1944 -1945 -1946class MergeBlockRatioProperty(Property): -1947 arg_types = {"this": False, "no": False, "default": False, "percent": False} +1928class DictRange(Property): +1929 arg_types = {"this": True, "min": True, "max": True} +1930 +1931 +1932class LikeProperty(Property): +1933 arg_types = {"this": True, "expressions": False} +1934 +1935 +1936class LocationProperty(Property): +1937 arg_types = {"this": True} +1938 +1939 +1940class LockingProperty(Property): +1941 arg_types = { +1942 "this": False, +1943 "kind": True, +1944 "for_or_in": True, +1945 "lock_type": True, +1946 "override": False, +1947 } 1948 1949 -1950class NoPrimaryIndexProperty(Property): -1951 arg_types = {} +1950class LogProperty(Property): +1951 arg_types = {"no": True} 1952 1953 -1954class OnCommitProperty(Property): -1955 arg_type = {"delete": False} +1954class MaterializedProperty(Property): +1955 arg_types = {"this": False} 1956 1957 -1958class PartitionedByProperty(Property): -1959 arg_types = {"this": True} +1958class MergeBlockRatioProperty(Property): +1959 arg_types = {"this": False, "no": False, "default": False, "percent": False} 1960 1961 -1962class ReturnsProperty(Property): -1963 arg_types = {"this": True, "is_table": False, "table": False} +1962class NoPrimaryIndexProperty(Property): +1963 arg_types = {} 1964 1965 -1966class RowFormatProperty(Property): -1967 arg_types = {"this": True} +1966class OnCommitProperty(Property): +1967 arg_type = {"delete": False} 1968 1969 -1970class RowFormatDelimitedProperty(Property): -1971 # https://cwiki.apache.org/confluence/display/hive/languagemanual+dml -1972 arg_types = { -1973 "fields": False, -1974 "escaped": False, -1975 "collection_items": False, -1976 "map_keys": False, -1977 "lines": False, -1978 "null": False, -1979 "serde": False, -1980 } +1970class PartitionedByProperty(Property): +1971 arg_types = {"this": True} +1972 +1973 +1974class ReturnsProperty(Property): +1975 arg_types = {"this": True, "is_table": False, "table": False} +1976 +1977 +1978class RowFormatProperty(Property): +1979 arg_types = {"this": True} +1980 1981 -1982 -1983class RowFormatSerdeProperty(Property): -1984 arg_types = {"this": True} -1985 -1986 -1987class SchemaCommentProperty(Property): -1988 arg_types = {"this": True} -1989 -1990 -1991class SerdeProperties(Property): -1992 arg_types = {"expressions": True} +1982class RowFormatDelimitedProperty(Property): +1983 # https://cwiki.apache.org/confluence/display/hive/languagemanual+dml +1984 arg_types = { +1985 "fields": False, +1986 "escaped": False, +1987 "collection_items": False, +1988 "map_keys": False, +1989 "lines": False, +1990 "null": False, +1991 "serde": False, +1992 } 1993 1994 -1995class SetProperty(Property): -1996 arg_types = {"multi": True} +1995class RowFormatSerdeProperty(Property): +1996 arg_types = {"this": True} 1997 1998 -1999class SettingsProperty(Property): -2000 arg_types = {"expressions": True} +1999class SchemaCommentProperty(Property): +2000 arg_types = {"this": True} 2001 2002 -2003class SortKeyProperty(Property): -2004 arg_types = {"this": True, "compound": False} +2003class SerdeProperties(Property): +2004 arg_types = {"expressions": True} 2005 2006 -2007class SqlSecurityProperty(Property): -2008 arg_types = {"definer": True} +2007class SetProperty(Property): +2008 arg_types = {"multi": True} 2009 2010 -2011class StabilityProperty(Property): -2012 arg_types = {"this": True} +2011class SettingsProperty(Property): +2012 arg_types = {"expressions": True} 2013 2014 -2015class TemporaryProperty(Property): -2016 arg_types = {} +2015class SortKeyProperty(Property): +2016 arg_types = {"this": True, "compound": False} 2017 2018 -2019class TransientProperty(Property): -2020 arg_types = {"this": False} +2019class SqlSecurityProperty(Property): +2020 arg_types = {"definer": True} 2021 2022 -2023class VolatileProperty(Property): -2024 arg_types = {"this": False} +2023class StabilityProperty(Property): +2024 arg_types = {"this": True} 2025 2026 -2027class WithDataProperty(Property): -2028 arg_types = {"no": True, "statistics": False} +2027class TemporaryProperty(Property): +2028 arg_types = {} 2029 2030 -2031class WithJournalTableProperty(Property): -2032 arg_types = {"this": True} +2031class TransientProperty(Property): +2032 arg_types = {"this": False} 2033 2034 -2035class Properties(Expression): -2036 arg_types = {"expressions": True} +2035class VolatileProperty(Property): +2036 arg_types = {"this": False} 2037 -2038 NAME_TO_PROPERTY = { -2039 "ALGORITHM": AlgorithmProperty, -2040 "AUTO_INCREMENT": AutoIncrementProperty, -2041 "CHARACTER SET": CharacterSetProperty, -2042 "COLLATE": CollateProperty, -2043 "COMMENT": SchemaCommentProperty, -2044 "DEFINER": DefinerProperty, -2045 "DISTKEY": DistKeyProperty, -2046 "DISTSTYLE": DistStyleProperty, -2047 "ENGINE": EngineProperty, -2048 "EXECUTE AS": ExecuteAsProperty, -2049 "FORMAT": FileFormatProperty, -2050 "LANGUAGE": LanguageProperty, -2051 "LOCATION": LocationProperty, -2052 "PARTITIONED_BY": PartitionedByProperty, -2053 "RETURNS": ReturnsProperty, -2054 "ROW_FORMAT": RowFormatProperty, -2055 "SORTKEY": SortKeyProperty, -2056 } -2057 -2058 PROPERTY_TO_NAME = {v: k for k, v in NAME_TO_PROPERTY.items()} -2059 -2060 # CREATE property locations -2061 # Form: schema specified -2062 # create [POST_CREATE] -2063 # table a [POST_NAME] -2064 # (b int) [POST_SCHEMA] -2065 # with ([POST_WITH]) -2066 # index (b) [POST_INDEX] -2067 # -2068 # Form: alias selection -2069 # create [POST_CREATE] -2070 # table a [POST_NAME] -2071 # as [POST_ALIAS] (select * from b) [POST_EXPRESSION] -2072 # index (c) [POST_INDEX] -2073 class Location(AutoName): -2074 POST_CREATE = auto() -2075 POST_NAME = auto() -2076 POST_SCHEMA = auto() -2077 POST_WITH = auto() -2078 POST_ALIAS = auto() -2079 POST_EXPRESSION = auto() -2080 POST_INDEX = auto() -2081 UNSUPPORTED = auto() -2082 -2083 @classmethod -2084 def from_dict(cls, properties_dict: t.Dict) -> Properties: -2085 expressions = [] -2086 for key, value in properties_dict.items(): -2087 property_cls = cls.NAME_TO_PROPERTY.get(key.upper()) -2088 if property_cls: -2089 expressions.append(property_cls(this=convert(value))) -2090 else: -2091 expressions.append(Property(this=Literal.string(key), value=convert(value))) -2092 -2093 return cls(expressions=expressions) +2038 +2039class WithDataProperty(Property): +2040 arg_types = {"no": True, "statistics": False} +2041 +2042 +2043class WithJournalTableProperty(Property): +2044 arg_types = {"this": True} +2045 +2046 +2047class Properties(Expression): +2048 arg_types = {"expressions": True} +2049 +2050 NAME_TO_PROPERTY = { +2051 "ALGORITHM": AlgorithmProperty, +2052 "AUTO_INCREMENT": AutoIncrementProperty, +2053 "CHARACTER SET": CharacterSetProperty, +2054 "COLLATE": CollateProperty, +2055 "COMMENT": SchemaCommentProperty, +2056 "DEFINER": DefinerProperty, +2057 "DISTKEY": DistKeyProperty, +2058 "DISTSTYLE": DistStyleProperty, +2059 "ENGINE": EngineProperty, +2060 "EXECUTE AS": ExecuteAsProperty, +2061 "FORMAT": FileFormatProperty, +2062 "LANGUAGE": LanguageProperty, +2063 "LOCATION": LocationProperty, +2064 "PARTITIONED_BY": PartitionedByProperty, +2065 "RETURNS": ReturnsProperty, +2066 "ROW_FORMAT": RowFormatProperty, +2067 "SORTKEY": SortKeyProperty, +2068 } +2069 +2070 PROPERTY_TO_NAME = {v: k for k, v in NAME_TO_PROPERTY.items()} +2071 +2072 # CREATE property locations +2073 # Form: schema specified +2074 # create [POST_CREATE] +2075 # table a [POST_NAME] +2076 # (b int) [POST_SCHEMA] +2077 # with ([POST_WITH]) +2078 # index (b) [POST_INDEX] +2079 # +2080 # Form: alias selection +2081 # create [POST_CREATE] +2082 # table a [POST_NAME] +2083 # as [POST_ALIAS] (select * from b) [POST_EXPRESSION] +2084 # index (c) [POST_INDEX] +2085 class Location(AutoName): +2086 POST_CREATE = auto() +2087 POST_NAME = auto() +2088 POST_SCHEMA = auto() +2089 POST_WITH = auto() +2090 POST_ALIAS = auto() +2091 POST_EXPRESSION = auto() +2092 POST_INDEX = auto() +2093 UNSUPPORTED = auto() 2094 -2095 -2096class Qualify(Expression): -2097 pass -2098 -2099 -2100# https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql -2101class Return(Expression): -2102 pass -2103 +2095 @classmethod +2096 def from_dict(cls, properties_dict: t.Dict) -> Properties: +2097 expressions = [] +2098 for key, value in properties_dict.items(): +2099 property_cls = cls.NAME_TO_PROPERTY.get(key.upper()) +2100 if property_cls: +2101 expressions.append(property_cls(this=convert(value))) +2102 else: +2103 expressions.append(Property(this=Literal.string(key), value=convert(value))) 2104 -2105class Reference(Expression): -2106 arg_types = {"this": True, "expressions": False, "options": False} +2105 return cls(expressions=expressions) +2106 2107 -2108 -2109class Tuple(Expression): -2110 arg_types = {"expressions": False} +2108class Qualify(Expression): +2109 pass +2110 2111 -2112 def isin( -2113 self, *expressions: t.Any, query: t.Optional[ExpOrStr] = None, copy: bool = True, **opts -2114 ) -> In: -2115 return In( -2116 this=_maybe_copy(self, copy), -2117 expressions=[convert(e, copy=copy) for e in expressions], -2118 query=maybe_parse(query, copy=copy, **opts) if query else None, -2119 ) +2112# https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql +2113class Return(Expression): +2114 pass +2115 +2116 +2117class Reference(Expression): +2118 arg_types = {"this": True, "expressions": False, "options": False} +2119 2120 -2121 -2122class Subqueryable(Unionable): -2123 def subquery(self, alias: t.Optional[ExpOrStr] = None, copy: bool = True) -> Subquery: -2124 """ -2125 Convert this expression to an aliased expression that can be used as a Subquery. -2126 -2127 Example: -2128 >>> subquery = Select().select("x").from_("tbl").subquery() -2129 >>> Select().select("x").from_(subquery).sql() -2130 'SELECT x FROM (SELECT x FROM tbl)' -2131 -2132 Args: -2133 alias (str | Identifier): an optional alias for the subquery -2134 copy (bool): if `False`, modify this expression instance in-place. -2135 -2136 Returns: -2137 Alias: the subquery -2138 """ -2139 instance = _maybe_copy(self, copy) -2140 if not isinstance(alias, Expression): -2141 alias = TableAlias(this=to_identifier(alias)) if alias else None -2142 -2143 return Subquery(this=instance, alias=alias) -2144 -2145 def limit( -2146 self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts -2147 ) -> Select: -2148 raise NotImplementedError -2149 -2150 @property -2151 def ctes(self): -2152 with_ = self.args.get("with") -2153 if not with_: -2154 return [] -2155 return with_.expressions +2121class Tuple(Expression): +2122 arg_types = {"expressions": False} +2123 +2124 def isin( +2125 self, *expressions: t.Any, query: t.Optional[ExpOrStr] = None, copy: bool = True, **opts +2126 ) -> In: +2127 return In( +2128 this=_maybe_copy(self, copy), +2129 expressions=[convert(e, copy=copy) for e in expressions], +2130 query=maybe_parse(query, copy=copy, **opts) if query else None, +2131 ) +2132 +2133 +2134class Subqueryable(Unionable): +2135 def subquery(self, alias: t.Optional[ExpOrStr] = None, copy: bool = True) -> Subquery: +2136 """ +2137 Convert this expression to an aliased expression that can be used as a Subquery. +2138 +2139 Example: +2140 >>> subquery = Select().select("x").from_("tbl").subquery() +2141 >>> Select().select("x").from_(subquery).sql() +2142 'SELECT x FROM (SELECT x FROM tbl)' +2143 +2144 Args: +2145 alias (str | Identifier): an optional alias for the subquery +2146 copy (bool): if `False`, modify this expression instance in-place. +2147 +2148 Returns: +2149 Alias: the subquery +2150 """ +2151 instance = _maybe_copy(self, copy) +2152 if not isinstance(alias, Expression): +2153 alias = TableAlias(this=to_identifier(alias)) if alias else None +2154 +2155 return Subquery(this=instance, alias=alias) 2156 -2157 @property -2158 def selects(self): -2159 raise NotImplementedError("Subqueryable objects must implement `selects`") -2160 -2161 @property -2162 def named_selects(self): -2163 raise NotImplementedError("Subqueryable objects must implement `named_selects`") -2164 -2165 def with_( -2166 self, -2167 alias: ExpOrStr, -2168 as_: ExpOrStr, -2169 recursive: t.Optional[bool] = None, -2170 append: bool = True, -2171 dialect: DialectType = None, -2172 copy: bool = True, -2173 **opts, -2174 ) -> Subqueryable: -2175 """ -2176 Append to or set the common table expressions. -2177 -2178 Example: -2179 >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql() -2180 'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2' -2181 -2182 Args: -2183 alias: the SQL code string to parse as the table name. -2184 If an `Expression` instance is passed, this is used as-is. -2185 as_: the SQL code string to parse as the table expression. -2186 If an `Expression` instance is passed, it will be used as-is. -2187 recursive: set the RECURSIVE part of the expression. Defaults to `False`. -2188 append: if `True`, add to any existing expressions. -2189 Otherwise, this resets the expressions. -2190 dialect: the dialect used to parse the input expression. -2191 copy: if `False`, modify this expression instance in-place. -2192 opts: other options to use to parse the input expressions. +2157 def limit( +2158 self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts +2159 ) -> Select: +2160 raise NotImplementedError +2161 +2162 @property +2163 def ctes(self): +2164 with_ = self.args.get("with") +2165 if not with_: +2166 return [] +2167 return with_.expressions +2168 +2169 @property +2170 def selects(self): +2171 raise NotImplementedError("Subqueryable objects must implement `selects`") +2172 +2173 @property +2174 def named_selects(self): +2175 raise NotImplementedError("Subqueryable objects must implement `named_selects`") +2176 +2177 def with_( +2178 self, +2179 alias: ExpOrStr, +2180 as_: ExpOrStr, +2181 recursive: t.Optional[bool] = None, +2182 append: bool = True, +2183 dialect: DialectType = None, +2184 copy: bool = True, +2185 **opts, +2186 ) -> Subqueryable: +2187 """ +2188 Append to or set the common table expressions. +2189 +2190 Example: +2191 >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql() +2192 'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2' 2193 -2194 Returns: -2195 The modified expression. -2196 """ -2197 return _apply_cte_builder( -2198 self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts -2199 ) -2200 -2201 -2202QUERY_MODIFIERS = { -2203 "match": False, -2204 "laterals": False, -2205 "joins": False, -2206 "pivots": False, -2207 "where": False, -2208 "group": False, -2209 "having": False, -2210 "qualify": False, -2211 "windows": False, -2212 "distribute": False, -2213 "sort": False, -2214 "cluster": False, -2215 "order": False, -2216 "limit": False, -2217 "offset": False, -2218 "locks": False, -2219 "sample": False, -2220 "settings": False, -2221 "format": False, -2222} -2223 -2224 -2225class Table(Expression): -2226 arg_types = { -2227 "this": True, -2228 "alias": False, -2229 "db": False, -2230 "catalog": False, -2231 "laterals": False, -2232 "joins": False, -2233 "pivots": False, -2234 "hints": False, -2235 "system_time": False, -2236 } -2237 -2238 @property -2239 def db(self) -> str: -2240 return self.text("db") -2241 -2242 @property -2243 def catalog(self) -> str: -2244 return self.text("catalog") -2245 -2246 @property -2247 def parts(self) -> t.List[Identifier]: -2248 """Return the parts of a table in order catalog, db, table.""" -2249 return [ -2250 t.cast(Identifier, self.args[part]) -2251 for part in ("catalog", "db", "this") -2252 if self.args.get(part) -2253 ] -2254 -2255 -2256# See the TSQL "Querying data in a system-versioned temporal table" page -2257class SystemTime(Expression): -2258 arg_types = { -2259 "this": False, -2260 "expression": False, -2261 "kind": True, -2262 } -2263 -2264 -2265class Union(Subqueryable): -2266 arg_types = { -2267 "with": False, -2268 "this": True, -2269 "expression": True, -2270 "distinct": False, -2271 **QUERY_MODIFIERS, -2272 } -2273 -2274 def limit( -2275 self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts -2276 ) -> Select: -2277 """ -2278 Set the LIMIT expression. -2279 -2280 Example: -2281 >>> select("1").union(select("1")).limit(1).sql() -2282 'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1' -2283 -2284 Args: -2285 expression: the SQL code string to parse. -2286 This can also be an integer. -2287 If a `Limit` instance is passed, this is used as-is. -2288 If another `Expression` instance is passed, it will be wrapped in a `Limit`. -2289 dialect: the dialect used to parse the input expression. -2290 copy: if `False`, modify this expression instance in-place. -2291 opts: other options to use to parse the input expressions. -2292 -2293 Returns: -2294 The limited subqueryable. -2295 """ -2296 return ( -2297 select("*") -2298 .from_(self.subquery(alias="_l_0", copy=copy)) -2299 .limit(expression, dialect=dialect, copy=False, **opts) -2300 ) -2301 -2302 def select( -2303 self, -2304 *expressions: t.Optional[ExpOrStr], -2305 append: bool = True, -2306 dialect: DialectType = None, -2307 copy: bool = True, -2308 **opts, -2309 ) -> Union: -2310 """Append to or set the SELECT of the union recursively. -2311 -2312 Example: -2313 >>> from sqlglot import parse_one -2314 >>> parse_one("select a from x union select a from y union select a from z").select("b").sql() -2315 'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z' -2316 -2317 Args: -2318 *expressions: the SQL code strings to parse. -2319 If an `Expression` instance is passed, it will be used as-is. -2320 append: if `True`, add to any existing expressions. -2321 Otherwise, this resets the expressions. -2322 dialect: the dialect used to parse the input expressions. -2323 copy: if `False`, modify this expression instance in-place. -2324 opts: other options to use to parse the input expressions. -2325 -2326 Returns: -2327 Union: the modified expression. -2328 """ -2329 this = self.copy() if copy else self -2330 this.this.unnest().select(*expressions, append=append, dialect=dialect, copy=False, **opts) -2331 this.expression.unnest().select( -2332 *expressions, append=append, dialect=dialect, copy=False, **opts -2333 ) -2334 return this -2335 -2336 @property -2337 def named_selects(self): -2338 return self.this.unnest().named_selects -2339 -2340 @property -2341 def is_star(self) -> bool: -2342 return self.this.is_star or self.expression.is_star -2343 -2344 @property -2345 def selects(self): -2346 return self.this.unnest().selects +2194 Args: +2195 alias: the SQL code string to parse as the table name. +2196 If an `Expression` instance is passed, this is used as-is. +2197 as_: the SQL code string to parse as the table expression. +2198 If an `Expression` instance is passed, it will be used as-is. +2199 recursive: set the RECURSIVE part of the expression. Defaults to `False`. +2200 append: if `True`, add to any existing expressions. +2201 Otherwise, this resets the expressions. +2202 dialect: the dialect used to parse the input expression. +2203 copy: if `False`, modify this expression instance in-place. +2204 opts: other options to use to parse the input expressions. +2205 +2206 Returns: +2207 The modified expression. +2208 """ +2209 return _apply_cte_builder( +2210 self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts +2211 ) +2212 +2213 +2214QUERY_MODIFIERS = { +2215 "match": False, +2216 "laterals": False, +2217 "joins": False, +2218 "pivots": False, +2219 "where": False, +2220 "group": False, +2221 "having": False, +2222 "qualify": False, +2223 "windows": False, +2224 "distribute": False, +2225 "sort": False, +2226 "cluster": False, +2227 "order": False, +2228 "limit": False, +2229 "offset": False, +2230 "locks": False, +2231 "sample": False, +2232 "settings": False, +2233 "format": False, +2234} +2235 +2236 +2237class Table(Expression): +2238 arg_types = { +2239 "this": True, +2240 "alias": False, +2241 "db": False, +2242 "catalog": False, +2243 "laterals": False, +2244 "joins": False, +2245 "pivots": False, +2246 "hints": False, +2247 "system_time": False, +2248 } +2249 +2250 @property +2251 def db(self) -> str: +2252 return self.text("db") +2253 +2254 @property +2255 def catalog(self) -> str: +2256 return self.text("catalog") +2257 +2258 @property +2259 def parts(self) -> t.List[Identifier]: +2260 """Return the parts of a table in order catalog, db, table.""" +2261 return [ +2262 t.cast(Identifier, self.args[part]) +2263 for part in ("catalog", "db", "this") +2264 if self.args.get(part) +2265 ] +2266 +2267 +2268# See the TSQL "Querying data in a system-versioned temporal table" page +2269class SystemTime(Expression): +2270 arg_types = { +2271 "this": False, +2272 "expression": False, +2273 "kind": True, +2274 } +2275 +2276 +2277class Union(Subqueryable): +2278 arg_types = { +2279 "with": False, +2280 "this": True, +2281 "expression": True, +2282 "distinct": False, +2283 **QUERY_MODIFIERS, +2284 } +2285 +2286 def limit( +2287 self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts +2288 ) -> Select: +2289 """ +2290 Set the LIMIT expression. +2291 +2292 Example: +2293 >>> select("1").union(select("1")).limit(1).sql() +2294 'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1' +2295 +2296 Args: +2297 expression: the SQL code string to parse. +2298 This can also be an integer. +2299 If a `Limit` instance is passed, this is used as-is. +2300 If another `Expression` instance is passed, it will be wrapped in a `Limit`. +2301 dialect: the dialect used to parse the input expression. +2302 copy: if `False`, modify this expression instance in-place. +2303 opts: other options to use to parse the input expressions. +2304 +2305 Returns: +2306 The limited subqueryable. +2307 """ +2308 return ( +2309 select("*") +2310 .from_(self.subquery(alias="_l_0", copy=copy)) +2311 .limit(expression, dialect=dialect, copy=False, **opts) +2312 ) +2313 +2314 def select( +2315 self, +2316 *expressions: t.Optional[ExpOrStr], +2317 append: bool = True, +2318 dialect: DialectType = None, +2319 copy: bool = True, +2320 **opts, +2321 ) -> Union: +2322 """Append to or set the SELECT of the union recursively. +2323 +2324 Example: +2325 >>> from sqlglot import parse_one +2326 >>> parse_one("select a from x union select a from y union select a from z").select("b").sql() +2327 'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z' +2328 +2329 Args: +2330 *expressions: the SQL code strings to parse. +2331 If an `Expression` instance is passed, it will be used as-is. +2332 append: if `True`, add to any existing expressions. +2333 Otherwise, this resets the expressions. +2334 dialect: the dialect used to parse the input expressions. +2335 copy: if `False`, modify this expression instance in-place. +2336 opts: other options to use to parse the input expressions. +2337 +2338 Returns: +2339 Union: the modified expression. +2340 """ +2341 this = self.copy() if copy else self +2342 this.this.unnest().select(*expressions, append=append, dialect=dialect, copy=False, **opts) +2343 this.expression.unnest().select( +2344 *expressions, append=append, dialect=dialect, copy=False, **opts +2345 ) +2346 return this 2347 2348 @property -2349 def left(self): -2350 return self.this +2349 def named_selects(self): +2350 return self.this.unnest().named_selects 2351 2352 @property -2353 def right(self): -2354 return self.expression +2353 def is_star(self) -> bool: +2354 return self.this.is_star or self.expression.is_star 2355 -2356 -2357class Except(Union): -2358 pass +2356 @property +2357 def selects(self): +2358 return self.this.unnest().selects 2359 -2360 -2361class Intersect(Union): -2362 pass +2360 @property +2361 def left(self): +2362 return self.this 2363 -2364 -2365class Unnest(UDTF): -2366 arg_types = { -2367 "expressions": True, -2368 "ordinality": False, -2369 "alias": False, -2370 "offset": False, -2371 } +2364 @property +2365 def right(self): +2366 return self.expression +2367 +2368 +2369class Except(Union): +2370 pass +2371 2372 -2373 -2374class Update(Expression): -2375 arg_types = { -2376 "with": False, -2377 "this": False, -2378 "expressions": True, -2379 "from": False, -2380 "where": False, -2381 "returning": False, -2382 } -2383 +2373class Intersect(Union): +2374 pass +2375 +2376 +2377class Unnest(UDTF): +2378 arg_types = { +2379 "expressions": True, +2380 "ordinality": False, +2381 "alias": False, +2382 "offset": False, +2383 } 2384 -2385class Values(UDTF): -2386 arg_types = { -2387 "expressions": True, -2388 "ordinality": False, -2389 "alias": False, -2390 } -2391 -2392 -2393class Var(Expression): -2394 pass +2385 +2386class Update(Expression): +2387 arg_types = { +2388 "with": False, +2389 "this": False, +2390 "expressions": True, +2391 "from": False, +2392 "where": False, +2393 "returning": False, +2394 } 2395 2396 -2397class Schema(Expression): -2398 arg_types = {"this": False, "expressions": False} -2399 -2400 -2401# https://dev.mysql.com/doc/refman/8.0/en/select.html -2402# https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html -2403class Lock(Expression): -2404 arg_types = {"update": True, "expressions": False, "wait": False} -2405 -2406 -2407class Select(Subqueryable): -2408 arg_types = { -2409 "with": False, -2410 "kind": False, -2411 "expressions": False, -2412 "hint": False, -2413 "distinct": False, -2414 "struct": False, # https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#return_query_results_as_a_value_table -2415 "value": False, -2416 "into": False, -2417 "from": False, -2418 **QUERY_MODIFIERS, -2419 } -2420 -2421 def from_( -2422 self, expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts -2423 ) -> Select: -2424 """ -2425 Set the FROM expression. -2426 -2427 Example: -2428 >>> Select().from_("tbl").select("x").sql() -2429 'SELECT x FROM tbl' -2430 -2431 Args: -2432 expression : the SQL code strings to parse. -2433 If a `From` instance is passed, this is used as-is. -2434 If another `Expression` instance is passed, it will be wrapped in a `From`. -2435 dialect: the dialect used to parse the input expression. -2436 copy: if `False`, modify this expression instance in-place. -2437 opts: other options to use to parse the input expressions. +2397class Values(UDTF): +2398 arg_types = { +2399 "expressions": True, +2400 "ordinality": False, +2401 "alias": False, +2402 } +2403 +2404 +2405class Var(Expression): +2406 pass +2407 +2408 +2409class Schema(Expression): +2410 arg_types = {"this": False, "expressions": False} +2411 +2412 +2413# https://dev.mysql.com/doc/refman/8.0/en/select.html +2414# https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html +2415class Lock(Expression): +2416 arg_types = {"update": True, "expressions": False, "wait": False} +2417 +2418 +2419class Select(Subqueryable): +2420 arg_types = { +2421 "with": False, +2422 "kind": False, +2423 "expressions": False, +2424 "hint": False, +2425 "distinct": False, +2426 "struct": False, # https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#return_query_results_as_a_value_table +2427 "value": False, +2428 "into": False, +2429 "from": False, +2430 **QUERY_MODIFIERS, +2431 } +2432 +2433 def from_( +2434 self, expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts +2435 ) -> Select: +2436 """ +2437 Set the FROM expression. 2438 -2439 Returns: -2440 The modified Select expression. -2441 """ -2442 return _apply_builder( -2443 expression=expression, -2444 instance=self, -2445 arg="from", -2446 into=From, -2447 prefix="FROM", -2448 dialect=dialect, -2449 copy=copy, -2450 **opts, -2451 ) -2452 -2453 def group_by( -2454 self, -2455 *expressions: t.Optional[ExpOrStr], -2456 append: bool = True, -2457 dialect: DialectType = None, -2458 copy: bool = True, -2459 **opts, -2460 ) -> Select: -2461 """ -2462 Set the GROUP BY expression. -2463 -2464 Example: -2465 >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql() -2466 'SELECT x, COUNT(1) FROM tbl GROUP BY x' -2467 -2468 Args: -2469 *expressions: the SQL code strings to parse. -2470 If a `Group` instance is passed, this is used as-is. -2471 If another `Expression` instance is passed, it will be wrapped in a `Group`. -2472 If nothing is passed in then a group by is not applied to the expression -2473 append: if `True`, add to any existing expressions. -2474 Otherwise, this flattens all the `Group` expression into a single expression. -2475 dialect: the dialect used to parse the input expression. -2476 copy: if `False`, modify this expression instance in-place. -2477 opts: other options to use to parse the input expressions. -2478 -2479 Returns: -2480 The modified Select expression. -2481 """ -2482 if not expressions: -2483 return self if not copy else self.copy() -2484 -2485 return _apply_child_list_builder( -2486 *expressions, -2487 instance=self, -2488 arg="group", -2489 append=append, -2490 copy=copy, -2491 prefix="GROUP BY", -2492 into=Group, -2493 dialect=dialect, -2494 **opts, -2495 ) +2439 Example: +2440 >>> Select().from_("tbl").select("x").sql() +2441 'SELECT x FROM tbl' +2442 +2443 Args: +2444 expression : the SQL code strings to parse. +2445 If a `From` instance is passed, this is used as-is. +2446 If another `Expression` instance is passed, it will be wrapped in a `From`. +2447 dialect: the dialect used to parse the input expression. +2448 copy: if `False`, modify this expression instance in-place. +2449 opts: other options to use to parse the input expressions. +2450 +2451 Returns: +2452 The modified Select expression. +2453 """ +2454 return _apply_builder( +2455 expression=expression, +2456 instance=self, +2457 arg="from", +2458 into=From, +2459 prefix="FROM", +2460 dialect=dialect, +2461 copy=copy, +2462 **opts, +2463 ) +2464 +2465 def group_by( +2466 self, +2467 *expressions: t.Optional[ExpOrStr], +2468 append: bool = True, +2469 dialect: DialectType = None, +2470 copy: bool = True, +2471 **opts, +2472 ) -> Select: +2473 """ +2474 Set the GROUP BY expression. +2475 +2476 Example: +2477 >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql() +2478 'SELECT x, COUNT(1) FROM tbl GROUP BY x' +2479 +2480 Args: +2481 *expressions: the SQL code strings to parse. +2482 If a `Group` instance is passed, this is used as-is. +2483 If another `Expression` instance is passed, it will be wrapped in a `Group`. +2484 If nothing is passed in then a group by is not applied to the expression +2485 append: if `True`, add to any existing expressions. +2486 Otherwise, this flattens all the `Group` expression into a single expression. +2487 dialect: the dialect used to parse the input expression. +2488 copy: if `False`, modify this expression instance in-place. +2489 opts: other options to use to parse the input expressions. +2490 +2491 Returns: +2492 The modified Select expression. +2493 """ +2494 if not expressions: +2495 return self if not copy else self.copy() 2496 -2497 def order_by( -2498 self, -2499 *expressions: t.Optional[ExpOrStr], -2500 append: bool = True, -2501 dialect: DialectType = None, -2502 copy: bool = True, -2503 **opts, -2504 ) -> Select: -2505 """ -2506 Set the ORDER BY expression. -2507 -2508 Example: -2509 >>> Select().from_("tbl").select("x").order_by("x DESC").sql() -2510 'SELECT x FROM tbl ORDER BY x DESC' -2511 -2512 Args: -2513 *expressions: the SQL code strings to parse. -2514 If a `Group` instance is passed, this is used as-is. -2515 If another `Expression` instance is passed, it will be wrapped in a `Order`. -2516 append: if `True`, add to any existing expressions. -2517 Otherwise, this flattens all the `Order` expression into a single expression. -2518 dialect: the dialect used to parse the input expression. -2519 copy: if `False`, modify this expression instance in-place. -2520 opts: other options to use to parse the input expressions. -2521 -2522 Returns: -2523 The modified Select expression. -2524 """ -2525 return _apply_child_list_builder( -2526 *expressions, -2527 instance=self, -2528 arg="order", -2529 append=append, -2530 copy=copy, -2531 prefix="ORDER BY", -2532 into=Order, -2533 dialect=dialect, -2534 **opts, -2535 ) -2536 -2537 def sort_by( -2538 self, -2539 *expressions: t.Optional[ExpOrStr], -2540 append: bool = True, -2541 dialect: DialectType = None, -2542 copy: bool = True, -2543 **opts, -2544 ) -> Select: -2545 """ -2546 Set the SORT BY expression. -2547 -2548 Example: -2549 >>> Select().from_("tbl").select("x").sort_by("x DESC").sql(dialect="hive") -2550 'SELECT x FROM tbl SORT BY x DESC' -2551 -2552 Args: -2553 *expressions: the SQL code strings to parse. -2554 If a `Group` instance is passed, this is used as-is. -2555 If another `Expression` instance is passed, it will be wrapped in a `SORT`. -2556 append: if `True`, add to any existing expressions. -2557 Otherwise, this flattens all the `Order` expression into a single expression. -2558 dialect: the dialect used to parse the input expression. -2559 copy: if `False`, modify this expression instance in-place. -2560 opts: other options to use to parse the input expressions. -2561 -2562 Returns: -2563 The modified Select expression. -2564 """ -2565 return _apply_child_list_builder( -2566 *expressions, -2567 instance=self, -2568 arg="sort", -2569 append=append, -2570 copy=copy, -2571 prefix="SORT BY", -2572 into=Sort, -2573 dialect=dialect, -2574 **opts, -2575 ) -2576 -2577 def cluster_by( -2578 self, -2579 *expressions: t.Optional[ExpOrStr], -2580 append: bool = True, -2581 dialect: DialectType = None, -2582 copy: bool = True, -2583 **opts, -2584 ) -> Select: -2585 """ -2586 Set the CLUSTER BY expression. -2587 -2588 Example: -2589 >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql(dialect="hive") -2590 'SELECT x FROM tbl CLUSTER BY x DESC' -2591 -2592 Args: -2593 *expressions: the SQL code strings to parse. -2594 If a `Group` instance is passed, this is used as-is. -2595 If another `Expression` instance is passed, it will be wrapped in a `Cluster`. -2596 append: if `True`, add to any existing expressions. -2597 Otherwise, this flattens all the `Order` expression into a single expression. -2598 dialect: the dialect used to parse the input expression. -2599 copy: if `False`, modify this expression instance in-place. -2600 opts: other options to use to parse the input expressions. -2601 -2602 Returns: -2603 The modified Select expression. -2604 """ -2605 return _apply_child_list_builder( -2606 *expressions, -2607 instance=self, -2608 arg="cluster", -2609 append=append, -2610 copy=copy, -2611 prefix="CLUSTER BY", -2612 into=Cluster, -2613 dialect=dialect, -2614 **opts, -2615 ) -2616 -2617 def limit( -2618 self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts -2619 ) -> Select: -2620 """ -2621 Set the LIMIT expression. -2622 -2623 Example: -2624 >>> Select().from_("tbl").select("x").limit(10).sql() -2625 'SELECT x FROM tbl LIMIT 10' -2626 -2627 Args: -2628 expression: the SQL code string to parse. -2629 This can also be an integer. -2630 If a `Limit` instance is passed, this is used as-is. -2631 If another `Expression` instance is passed, it will be wrapped in a `Limit`. -2632 dialect: the dialect used to parse the input expression. -2633 copy: if `False`, modify this expression instance in-place. -2634 opts: other options to use to parse the input expressions. -2635 -2636 Returns: -2637 Select: the modified expression. -2638 """ -2639 return _apply_builder( -2640 expression=expression, -2641 instance=self, -2642 arg="limit", -2643 into=Limit, -2644 prefix="LIMIT", -2645 dialect=dialect, -2646 copy=copy, -2647 **opts, -2648 ) -2649 -2650 def offset( -2651 self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts -2652 ) -> Select: -2653 """ -2654 Set the OFFSET expression. -2655 -2656 Example: -2657 >>> Select().from_("tbl").select("x").offset(10).sql() -2658 'SELECT x FROM tbl OFFSET 10' -2659 -2660 Args: -2661 expression: the SQL code string to parse. -2662 This can also be an integer. -2663 If a `Offset` instance is passed, this is used as-is. -2664 If another `Expression` instance is passed, it will be wrapped in a `Offset`. -2665 dialect: the dialect used to parse the input expression. -2666 copy: if `False`, modify this expression instance in-place. -2667 opts: other options to use to parse the input expressions. -2668 -2669 Returns: -2670 The modified Select expression. -2671 """ -2672 return _apply_builder( -2673 expression=expression, -2674 instance=self, -2675 arg="offset", -2676 into=Offset, -2677 prefix="OFFSET", -2678 dialect=dialect, -2679 copy=copy, -2680 **opts, -2681 ) -2682 -2683 def select( -2684 self, -2685 *expressions: t.Optional[ExpOrStr], -2686 append: bool = True, -2687 dialect: DialectType = None, -2688 copy: bool = True, -2689 **opts, -2690 ) -> Select: -2691 """ -2692 Append to or set the SELECT expressions. -2693 -2694 Example: -2695 >>> Select().select("x", "y").sql() -2696 'SELECT x, y' -2697 -2698 Args: -2699 *expressions: the SQL code strings to parse. -2700 If an `Expression` instance is passed, it will be used as-is. -2701 append: if `True`, add to any existing expressions. -2702 Otherwise, this resets the expressions. -2703 dialect: the dialect used to parse the input expressions. -2704 copy: if `False`, modify this expression instance in-place. -2705 opts: other options to use to parse the input expressions. -2706 -2707 Returns: -2708 The modified Select expression. -2709 """ -2710 return _apply_list_builder( -2711 *expressions, -2712 instance=self, -2713 arg="expressions", -2714 append=append, -2715 dialect=dialect, -2716 copy=copy, -2717 **opts, -2718 ) -2719 -2720 def lateral( -2721 self, -2722 *expressions: t.Optional[ExpOrStr], -2723 append: bool = True, -2724 dialect: DialectType = None, -2725 copy: bool = True, -2726 **opts, -2727 ) -> Select: -2728 """ -2729 Append to or set the LATERAL expressions. -2730 -2731 Example: -2732 >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql() -2733 'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z' -2734 -2735 Args: -2736 *expressions: the SQL code strings to parse. -2737 If an `Expression` instance is passed, it will be used as-is. -2738 append: if `True`, add to any existing expressions. -2739 Otherwise, this resets the expressions. -2740 dialect: the dialect used to parse the input expressions. -2741 copy: if `False`, modify this expression instance in-place. -2742 opts: other options to use to parse the input expressions. -2743 -2744 Returns: -2745 The modified Select expression. -2746 """ -2747 return _apply_list_builder( -2748 *expressions, -2749 instance=self, -2750 arg="laterals", -2751 append=append, -2752 into=Lateral, -2753 prefix="LATERAL VIEW", -2754 dialect=dialect, -2755 copy=copy, -2756 **opts, -2757 ) -2758 -2759 def join( -2760 self, -2761 expression: ExpOrStr, -2762 on: t.Optional[ExpOrStr] = None, -2763 using: t.Optional[ExpOrStr | t.List[ExpOrStr]] = None, -2764 append: bool = True, -2765 join_type: t.Optional[str] = None, -2766 join_alias: t.Optional[Identifier | str] = None, -2767 dialect: DialectType = None, -2768 copy: bool = True, -2769 **opts, -2770 ) -> Select: -2771 """ -2772 Append to or set the JOIN expressions. -2773 -2774 Example: -2775 >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql() -2776 'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y' -2777 -2778 >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql() -2779 'SELECT 1 FROM a JOIN b USING (x, y, z)' -2780 -2781 Use `join_type` to change the type of join: -2782 -2783 >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql() -2784 'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y' +2497 return _apply_child_list_builder( +2498 *expressions, +2499 instance=self, +2500 arg="group", +2501 append=append, +2502 copy=copy, +2503 prefix="GROUP BY", +2504 into=Group, +2505 dialect=dialect, +2506 **opts, +2507 ) +2508 +2509 def order_by( +2510 self, +2511 *expressions: t.Optional[ExpOrStr], +2512 append: bool = True, +2513 dialect: DialectType = None, +2514 copy: bool = True, +2515 **opts, +2516 ) -> Select: +2517 """ +2518 Set the ORDER BY expression. +2519 +2520 Example: +2521 >>> Select().from_("tbl").select("x").order_by("x DESC").sql() +2522 'SELECT x FROM tbl ORDER BY x DESC' +2523 +2524 Args: +2525 *expressions: the SQL code strings to parse. +2526 If a `Group` instance is passed, this is used as-is. +2527 If another `Expression` instance is passed, it will be wrapped in a `Order`. +2528 append: if `True`, add to any existing expressions. +2529 Otherwise, this flattens all the `Order` expression into a single expression. +2530 dialect: the dialect used to parse the input expression. +2531 copy: if `False`, modify this expression instance in-place. +2532 opts: other options to use to parse the input expressions. +2533 +2534 Returns: +2535 The modified Select expression. +2536 """ +2537 return _apply_child_list_builder( +2538 *expressions, +2539 instance=self, +2540 arg="order", +2541 append=append, +2542 copy=copy, +2543 prefix="ORDER BY", +2544 into=Order, +2545 dialect=dialect, +2546 **opts, +2547 ) +2548 +2549 def sort_by( +2550 self, +2551 *expressions: t.Optional[ExpOrStr], +2552 append: bool = True, +2553 dialect: DialectType = None, +2554 copy: bool = True, +2555 **opts, +2556 ) -> Select: +2557 """ +2558 Set the SORT BY expression. +2559 +2560 Example: +2561 >>> Select().from_("tbl").select("x").sort_by("x DESC").sql(dialect="hive") +2562 'SELECT x FROM tbl SORT BY x DESC' +2563 +2564 Args: +2565 *expressions: the SQL code strings to parse. +2566 If a `Group` instance is passed, this is used as-is. +2567 If another `Expression` instance is passed, it will be wrapped in a `SORT`. +2568 append: if `True`, add to any existing expressions. +2569 Otherwise, this flattens all the `Order` expression into a single expression. +2570 dialect: the dialect used to parse the input expression. +2571 copy: if `False`, modify this expression instance in-place. +2572 opts: other options to use to parse the input expressions. +2573 +2574 Returns: +2575 The modified Select expression. +2576 """ +2577 return _apply_child_list_builder( +2578 *expressions, +2579 instance=self, +2580 arg="sort", +2581 append=append, +2582 copy=copy, +2583 prefix="SORT BY", +2584 into=Sort, +2585 dialect=dialect, +2586 **opts, +2587 ) +2588 +2589 def cluster_by( +2590 self, +2591 *expressions: t.Optional[ExpOrStr], +2592 append: bool = True, +2593 dialect: DialectType = None, +2594 copy: bool = True, +2595 **opts, +2596 ) -> Select: +2597 """ +2598 Set the CLUSTER BY expression. +2599 +2600 Example: +2601 >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql(dialect="hive") +2602 'SELECT x FROM tbl CLUSTER BY x DESC' +2603 +2604 Args: +2605 *expressions: the SQL code strings to parse. +2606 If a `Group` instance is passed, this is used as-is. +2607 If another `Expression` instance is passed, it will be wrapped in a `Cluster`. +2608 append: if `True`, add to any existing expressions. +2609 Otherwise, this flattens all the `Order` expression into a single expression. +2610 dialect: the dialect used to parse the input expression. +2611 copy: if `False`, modify this expression instance in-place. +2612 opts: other options to use to parse the input expressions. +2613 +2614 Returns: +2615 The modified Select expression. +2616 """ +2617 return _apply_child_list_builder( +2618 *expressions, +2619 instance=self, +2620 arg="cluster", +2621 append=append, +2622 copy=copy, +2623 prefix="CLUSTER BY", +2624 into=Cluster, +2625 dialect=dialect, +2626 **opts, +2627 ) +2628 +2629 def limit( +2630 self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts +2631 ) -> Select: +2632 """ +2633 Set the LIMIT expression. +2634 +2635 Example: +2636 >>> Select().from_("tbl").select("x").limit(10).sql() +2637 'SELECT x FROM tbl LIMIT 10' +2638 +2639 Args: +2640 expression: the SQL code string to parse. +2641 This can also be an integer. +2642 If a `Limit` instance is passed, this is used as-is. +2643 If another `Expression` instance is passed, it will be wrapped in a `Limit`. +2644 dialect: the dialect used to parse the input expression. +2645 copy: if `False`, modify this expression instance in-place. +2646 opts: other options to use to parse the input expressions. +2647 +2648 Returns: +2649 Select: the modified expression. +2650 """ +2651 return _apply_builder( +2652 expression=expression, +2653 instance=self, +2654 arg="limit", +2655 into=Limit, +2656 prefix="LIMIT", +2657 dialect=dialect, +2658 copy=copy, +2659 **opts, +2660 ) +2661 +2662 def offset( +2663 self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts +2664 ) -> Select: +2665 """ +2666 Set the OFFSET expression. +2667 +2668 Example: +2669 >>> Select().from_("tbl").select("x").offset(10).sql() +2670 'SELECT x FROM tbl OFFSET 10' +2671 +2672 Args: +2673 expression: the SQL code string to parse. +2674 This can also be an integer. +2675 If a `Offset` instance is passed, this is used as-is. +2676 If another `Expression` instance is passed, it will be wrapped in a `Offset`. +2677 dialect: the dialect used to parse the input expression. +2678 copy: if `False`, modify this expression instance in-place. +2679 opts: other options to use to parse the input expressions. +2680 +2681 Returns: +2682 The modified Select expression. +2683 """ +2684 return _apply_builder( +2685 expression=expression, +2686 instance=self, +2687 arg="offset", +2688 into=Offset, +2689 prefix="OFFSET", +2690 dialect=dialect, +2691 copy=copy, +2692 **opts, +2693 ) +2694 +2695 def select( +2696 self, +2697 *expressions: t.Optional[ExpOrStr], +2698 append: bool = True, +2699 dialect: DialectType = None, +2700 copy: bool = True, +2701 **opts, +2702 ) -> Select: +2703 """ +2704 Append to or set the SELECT expressions. +2705 +2706 Example: +2707 >>> Select().select("x", "y").sql() +2708 'SELECT x, y' +2709 +2710 Args: +2711 *expressions: the SQL code strings to parse. +2712 If an `Expression` instance is passed, it will be used as-is. +2713 append: if `True`, add to any existing expressions. +2714 Otherwise, this resets the expressions. +2715 dialect: the dialect used to parse the input expressions. +2716 copy: if `False`, modify this expression instance in-place. +2717 opts: other options to use to parse the input expressions. +2718 +2719 Returns: +2720 The modified Select expression. +2721 """ +2722 return _apply_list_builder( +2723 *expressions, +2724 instance=self, +2725 arg="expressions", +2726 append=append, +2727 dialect=dialect, +2728 copy=copy, +2729 **opts, +2730 ) +2731 +2732 def lateral( +2733 self, +2734 *expressions: t.Optional[ExpOrStr], +2735 append: bool = True, +2736 dialect: DialectType = None, +2737 copy: bool = True, +2738 **opts, +2739 ) -> Select: +2740 """ +2741 Append to or set the LATERAL expressions. +2742 +2743 Example: +2744 >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql() +2745 'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z' +2746 +2747 Args: +2748 *expressions: the SQL code strings to parse. +2749 If an `Expression` instance is passed, it will be used as-is. +2750 append: if `True`, add to any existing expressions. +2751 Otherwise, this resets the expressions. +2752 dialect: the dialect used to parse the input expressions. +2753 copy: if `False`, modify this expression instance in-place. +2754 opts: other options to use to parse the input expressions. +2755 +2756 Returns: +2757 The modified Select expression. +2758 """ +2759 return _apply_list_builder( +2760 *expressions, +2761 instance=self, +2762 arg="laterals", +2763 append=append, +2764 into=Lateral, +2765 prefix="LATERAL VIEW", +2766 dialect=dialect, +2767 copy=copy, +2768 **opts, +2769 ) +2770 +2771 def join( +2772 self, +2773 expression: ExpOrStr, +2774 on: t.Optional[ExpOrStr] = None, +2775 using: t.Optional[ExpOrStr | t.List[ExpOrStr]] = None, +2776 append: bool = True, +2777 join_type: t.Optional[str] = None, +2778 join_alias: t.Optional[Identifier | str] = None, +2779 dialect: DialectType = None, +2780 copy: bool = True, +2781 **opts, +2782 ) -> Select: +2783 """ +2784 Append to or set the JOIN expressions. 2785 -2786 Args: -2787 expression: the SQL code string to parse. -2788 If an `Expression` instance is passed, it will be used as-is. -2789 on: optionally specify the join "on" criteria as a SQL string. -2790 If an `Expression` instance is passed, it will be used as-is. -2791 using: optionally specify the join "using" criteria as a SQL string. -2792 If an `Expression` instance is passed, it will be used as-is. -2793 append: if `True`, add to any existing expressions. -2794 Otherwise, this resets the expressions. -2795 join_type: if set, alter the parsed join type. -2796 join_alias: an optional alias for the joined source. -2797 dialect: the dialect used to parse the input expressions. -2798 copy: if `False`, modify this expression instance in-place. -2799 opts: other options to use to parse the input expressions. -2800 -2801 Returns: -2802 Select: the modified expression. -2803 """ -2804 parse_args = {"dialect": dialect, **opts} -2805 -2806 try: -2807 expression = maybe_parse(expression, into=Join, prefix="JOIN", **parse_args) # type: ignore -2808 except ParseError: -2809 expression = maybe_parse(expression, into=(Join, Expression), **parse_args) # type: ignore -2810 -2811 join = expression if isinstance(expression, Join) else Join(this=expression) +2786 Example: +2787 >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql() +2788 'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y' +2789 +2790 >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql() +2791 'SELECT 1 FROM a JOIN b USING (x, y, z)' +2792 +2793 Use `join_type` to change the type of join: +2794 +2795 >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql() +2796 'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y' +2797 +2798 Args: +2799 expression: the SQL code string to parse. +2800 If an `Expression` instance is passed, it will be used as-is. +2801 on: optionally specify the join "on" criteria as a SQL string. +2802 If an `Expression` instance is passed, it will be used as-is. +2803 using: optionally specify the join "using" criteria as a SQL string. +2804 If an `Expression` instance is passed, it will be used as-is. +2805 append: if `True`, add to any existing expressions. +2806 Otherwise, this resets the expressions. +2807 join_type: if set, alter the parsed join type. +2808 join_alias: an optional alias for the joined source. +2809 dialect: the dialect used to parse the input expressions. +2810 copy: if `False`, modify this expression instance in-place. +2811 opts: other options to use to parse the input expressions. 2812 -2813 if isinstance(join.this, Select): -2814 join.this.replace(join.this.subquery()) -2815 -2816 if join_type: -2817 natural: t.Optional[Token] -2818 side: t.Optional[Token] -2819 kind: t.Optional[Token] -2820 -2821 natural, side, kind = maybe_parse(join_type, into="JOIN_TYPE", **parse_args) # type: ignore +2813 Returns: +2814 Select: the modified expression. +2815 """ +2816 parse_args: t.Dict[str, t.Any] = {"dialect": dialect, **opts} +2817 +2818 try: +2819 expression = maybe_parse(expression, into=Join, prefix="JOIN", **parse_args) +2820 except ParseError: +2821 expression = maybe_parse(expression, into=(Join, Expression), **parse_args) 2822 -2823 if natural: -2824 join.set("natural", True) -2825 if side: -2826 join.set("side", side.text) -2827 if kind: -2828 join.set("kind", kind.text) -2829 -2830 if on: -2831 on = and_(*ensure_list(on), dialect=dialect, copy=copy, **opts) -2832 join.set("on", on) -2833 -2834 if using: -2835 join = _apply_list_builder( -2836 *ensure_list(using), -2837 instance=join, -2838 arg="using", -2839 append=append, -2840 copy=copy, -2841 **opts, -2842 ) -2843 -2844 if join_alias: -2845 join.set("this", alias_(join.this, join_alias, table=True)) -2846 -2847 return _apply_list_builder( -2848 join, -2849 instance=self, -2850 arg="joins", -2851 append=append, -2852 copy=copy, -2853 **opts, -2854 ) +2823 join = expression if isinstance(expression, Join) else Join(this=expression) +2824 +2825 if isinstance(join.this, Select): +2826 join.this.replace(join.this.subquery()) +2827 +2828 if join_type: +2829 method: t.Optional[Token] +2830 side: t.Optional[Token] +2831 kind: t.Optional[Token] +2832 +2833 method, side, kind = maybe_parse(join_type, into="JOIN_TYPE", **parse_args) # type: ignore +2834 +2835 if method: +2836 join.set("method", method.text) +2837 if side: +2838 join.set("side", side.text) +2839 if kind: +2840 join.set("kind", kind.text) +2841 +2842 if on: +2843 on = and_(*ensure_list(on), dialect=dialect, copy=copy, **opts) +2844 join.set("on", on) +2845 +2846 if using: +2847 join = _apply_list_builder( +2848 *ensure_list(using), +2849 instance=join, +2850 arg="using", +2851 append=append, +2852 copy=copy, +2853 **opts, +2854 ) 2855 -2856 def where( -2857 self, -2858 *expressions: t.Optional[ExpOrStr], -2859 append: bool = True, -2860 dialect: DialectType = None, -2861 copy: bool = True, -2862 **opts, -2863 ) -> Select: -2864 """ -2865 Append to or set the WHERE expressions. -2866 -2867 Example: -2868 >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql() -2869 "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'" -2870 -2871 Args: -2872 *expressions: the SQL code strings to parse. -2873 If an `Expression` instance is passed, it will be used as-is. -2874 Multiple expressions are combined with an AND operator. -2875 append: if `True`, AND the new expressions to any existing expression. -2876 Otherwise, this resets the expression. -2877 dialect: the dialect used to parse the input expressions. -2878 copy: if `False`, modify this expression instance in-place. -2879 opts: other options to use to parse the input expressions. -2880 -2881 Returns: -2882 Select: the modified expression. -2883 """ -2884 return _apply_conjunction_builder( -2885 *expressions, -2886 instance=self, -2887 arg="where", -2888 append=append, -2889 into=Where, -2890 dialect=dialect, -2891 copy=copy, -2892 **opts, -2893 ) -2894 -2895 def having( -2896 self, -2897 *expressions: t.Optional[ExpOrStr], -2898 append: bool = True, -2899 dialect: DialectType = None, -2900 copy: bool = True, -2901 **opts, -2902 ) -> Select: -2903 """ -2904 Append to or set the HAVING expressions. -2905 -2906 Example: -2907 >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql() -2908 'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3' -2909 -2910 Args: -2911 *expressions: the SQL code strings to parse. -2912 If an `Expression` instance is passed, it will be used as-is. -2913 Multiple expressions are combined with an AND operator. -2914 append: if `True`, AND the new expressions to any existing expression. -2915 Otherwise, this resets the expression. -2916 dialect: the dialect used to parse the input expressions. -2917 copy: if `False`, modify this expression instance in-place. -2918 opts: other options to use to parse the input expressions. -2919 -2920 Returns: -2921 The modified Select expression. -2922 """ -2923 return _apply_conjunction_builder( -2924 *expressions, -2925 instance=self, -2926 arg="having", -2927 append=append, -2928 into=Having, -2929 dialect=dialect, -2930 copy=copy, -2931 **opts, -2932 ) -2933 -2934 def window( -2935 self, -2936 *expressions: t.Optional[ExpOrStr], -2937 append: bool = True, -2938 dialect: DialectType = None, -2939 copy: bool = True, -2940 **opts, -2941 ) -> Select: -2942 return _apply_list_builder( -2943 *expressions, -2944 instance=self, -2945 arg="windows", -2946 append=append, -2947 into=Window, -2948 dialect=dialect, -2949 copy=copy, -2950 **opts, -2951 ) -2952 -2953 def qualify( -2954 self, -2955 *expressions: t.Optional[ExpOrStr], -2956 append: bool = True, -2957 dialect: DialectType = None, -2958 copy: bool = True, -2959 **opts, -2960 ) -> Select: -2961 return _apply_conjunction_builder( -2962 *expressions, -2963 instance=self, -2964 arg="qualify", -2965 append=append, -2966 into=Qualify, -2967 dialect=dialect, -2968 copy=copy, -2969 **opts, -2970 ) -2971 -2972 def distinct( -2973 self, *ons: t.Optional[ExpOrStr], distinct: bool = True, copy: bool = True -2974 ) -> Select: -2975 """ -2976 Set the OFFSET expression. -2977 -2978 Example: -2979 >>> Select().from_("tbl").select("x").distinct().sql() -2980 'SELECT DISTINCT x FROM tbl' -2981 -2982 Args: -2983 ons: the expressions to distinct on -2984 distinct: whether the Select should be distinct -2985 copy: if `False`, modify this expression instance in-place. -2986 -2987 Returns: -2988 Select: the modified expression. -2989 """ -2990 instance = _maybe_copy(self, copy) -2991 on = Tuple(expressions=[maybe_parse(on, copy=copy) for on in ons if on]) if ons else None -2992 instance.set("distinct", Distinct(on=on) if distinct else None) -2993 return instance -2994 -2995 def ctas( -2996 self, -2997 table: ExpOrStr, -2998 properties: t.Optional[t.Dict] = None, -2999 dialect: DialectType = None, -3000 copy: bool = True, -3001 **opts, -3002 ) -> Create: -3003 """ -3004 Convert this expression to a CREATE TABLE AS statement. -3005 -3006 Example: -3007 >>> Select().select("*").from_("tbl").ctas("x").sql() -3008 'CREATE TABLE x AS SELECT * FROM tbl' -3009 -3010 Args: -3011 table: the SQL code string to parse as the table name. -3012 If another `Expression` instance is passed, it will be used as-is. -3013 properties: an optional mapping of table properties -3014 dialect: the dialect used to parse the input table. -3015 copy: if `False`, modify this expression instance in-place. -3016 opts: other options to use to parse the input table. +2856 if join_alias: +2857 join.set("this", alias_(join.this, join_alias, table=True)) +2858 +2859 return _apply_list_builder( +2860 join, +2861 instance=self, +2862 arg="joins", +2863 append=append, +2864 copy=copy, +2865 **opts, +2866 ) +2867 +2868 def where( +2869 self, +2870 *expressions: t.Optional[ExpOrStr], +2871 append: bool = True, +2872 dialect: DialectType = None, +2873 copy: bool = True, +2874 **opts, +2875 ) -> Select: +2876 """ +2877 Append to or set the WHERE expressions. +2878 +2879 Example: +2880 >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql() +2881 "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'" +2882 +2883 Args: +2884 *expressions: the SQL code strings to parse. +2885 If an `Expression` instance is passed, it will be used as-is. +2886 Multiple expressions are combined with an AND operator. +2887 append: if `True`, AND the new expressions to any existing expression. +2888 Otherwise, this resets the expression. +2889 dialect: the dialect used to parse the input expressions. +2890 copy: if `False`, modify this expression instance in-place. +2891 opts: other options to use to parse the input expressions. +2892 +2893 Returns: +2894 Select: the modified expression. +2895 """ +2896 return _apply_conjunction_builder( +2897 *expressions, +2898 instance=self, +2899 arg="where", +2900 append=append, +2901 into=Where, +2902 dialect=dialect, +2903 copy=copy, +2904 **opts, +2905 ) +2906 +2907 def having( +2908 self, +2909 *expressions: t.Optional[ExpOrStr], +2910 append: bool = True, +2911 dialect: DialectType = None, +2912 copy: bool = True, +2913 **opts, +2914 ) -> Select: +2915 """ +2916 Append to or set the HAVING expressions. +2917 +2918 Example: +2919 >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql() +2920 'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3' +2921 +2922 Args: +2923 *expressions: the SQL code strings to parse. +2924 If an `Expression` instance is passed, it will be used as-is. +2925 Multiple expressions are combined with an AND operator. +2926 append: if `True`, AND the new expressions to any existing expression. +2927 Otherwise, this resets the expression. +2928 dialect: the dialect used to parse the input expressions. +2929 copy: if `False`, modify this expression instance in-place. +2930 opts: other options to use to parse the input expressions. +2931 +2932 Returns: +2933 The modified Select expression. +2934 """ +2935 return _apply_conjunction_builder( +2936 *expressions, +2937 instance=self, +2938 arg="having", +2939 append=append, +2940 into=Having, +2941 dialect=dialect, +2942 copy=copy, +2943 **opts, +2944 ) +2945 +2946 def window( +2947 self, +2948 *expressions: t.Optional[ExpOrStr], +2949 append: bool = True, +2950 dialect: DialectType = None, +2951 copy: bool = True, +2952 **opts, +2953 ) -> Select: +2954 return _apply_list_builder( +2955 *expressions, +2956 instance=self, +2957 arg="windows", +2958 append=append, +2959 into=Window, +2960 dialect=dialect, +2961 copy=copy, +2962 **opts, +2963 ) +2964 +2965 def qualify( +2966 self, +2967 *expressions: t.Optional[ExpOrStr], +2968 append: bool = True, +2969 dialect: DialectType = None, +2970 copy: bool = True, +2971 **opts, +2972 ) -> Select: +2973 return _apply_conjunction_builder( +2974 *expressions, +2975 instance=self, +2976 arg="qualify", +2977 append=append, +2978 into=Qualify, +2979 dialect=dialect, +2980 copy=copy, +2981 **opts, +2982 ) +2983 +2984 def distinct( +2985 self, *ons: t.Optional[ExpOrStr], distinct: bool = True, copy: bool = True +2986 ) -> Select: +2987 """ +2988 Set the OFFSET expression. +2989 +2990 Example: +2991 >>> Select().from_("tbl").select("x").distinct().sql() +2992 'SELECT DISTINCT x FROM tbl' +2993 +2994 Args: +2995 ons: the expressions to distinct on +2996 distinct: whether the Select should be distinct +2997 copy: if `False`, modify this expression instance in-place. +2998 +2999 Returns: +3000 Select: the modified expression. +3001 """ +3002 instance = _maybe_copy(self, copy) +3003 on = Tuple(expressions=[maybe_parse(on, copy=copy) for on in ons if on]) if ons else None +3004 instance.set("distinct", Distinct(on=on) if distinct else None) +3005 return instance +3006 +3007 def ctas( +3008 self, +3009 table: ExpOrStr, +3010 properties: t.Optional[t.Dict] = None, +3011 dialect: DialectType = None, +3012 copy: bool = True, +3013 **opts, +3014 ) -> Create: +3015 """ +3016 Convert this expression to a CREATE TABLE AS statement. 3017 -3018 Returns: -3019 The new Create expression. -3020 """ -3021 instance = _maybe_copy(self, copy) -3022 table_expression = maybe_parse( -3023 table, -3024 into=Table, -3025 dialect=dialect, -3026 **opts, -3027 ) -3028 properties_expression = None -3029 if properties: -3030 properties_expression = Properties.from_dict(properties) -3031 -3032 return Create( -3033 this=table_expression, -3034 kind="table", -3035 expression=instance, -3036 properties=properties_expression, -3037 ) -3038 -3039 def lock(self, update: bool = True, copy: bool = True) -> Select: -3040 """ -3041 Set the locking read mode for this expression. -3042 -3043 Examples: -3044 >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql") -3045 "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE" -3046 -3047 >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql") -3048 "SELECT x FROM tbl WHERE x = 'a' FOR SHARE" -3049 -3050 Args: -3051 update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`. -3052 copy: if `False`, modify this expression instance in-place. -3053 -3054 Returns: -3055 The modified expression. -3056 """ -3057 -3058 inst = _maybe_copy(self, copy) -3059 inst.set("locks", [Lock(update=update)]) -3060 -3061 return inst -3062 -3063 @property -3064 def named_selects(self) -> t.List[str]: -3065 return [e.output_name for e in self.expressions if e.alias_or_name] -3066 -3067 @property -3068 def is_star(self) -> bool: -3069 return any(expression.is_star for expression in self.expressions) -3070 -3071 @property -3072 def selects(self) -> t.List[Expression]: -3073 return self.expressions +3018 Example: +3019 >>> Select().select("*").from_("tbl").ctas("x").sql() +3020 'CREATE TABLE x AS SELECT * FROM tbl' +3021 +3022 Args: +3023 table: the SQL code string to parse as the table name. +3024 If another `Expression` instance is passed, it will be used as-is. +3025 properties: an optional mapping of table properties +3026 dialect: the dialect used to parse the input table. +3027 copy: if `False`, modify this expression instance in-place. +3028 opts: other options to use to parse the input table. +3029 +3030 Returns: +3031 The new Create expression. +3032 """ +3033 instance = _maybe_copy(self, copy) +3034 table_expression = maybe_parse( +3035 table, +3036 into=Table, +3037 dialect=dialect, +3038 **opts, +3039 ) +3040 properties_expression = None +3041 if properties: +3042 properties_expression = Properties.from_dict(properties) +3043 +3044 return Create( +3045 this=table_expression, +3046 kind="table", +3047 expression=instance, +3048 properties=properties_expression, +3049 ) +3050 +3051 def lock(self, update: bool = True, copy: bool = True) -> Select: +3052 """ +3053 Set the locking read mode for this expression. +3054 +3055 Examples: +3056 >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql") +3057 "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE" +3058 +3059 >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql") +3060 "SELECT x FROM tbl WHERE x = 'a' FOR SHARE" +3061 +3062 Args: +3063 update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`. +3064 copy: if `False`, modify this expression instance in-place. +3065 +3066 Returns: +3067 The modified expression. +3068 """ +3069 +3070 inst = _maybe_copy(self, copy) +3071 inst.set("locks", [Lock(update=update)]) +3072 +3073 return inst 3074 -3075 -3076class Subquery(DerivedTable, Unionable): -3077 arg_types = { -3078 "this": True, -3079 "alias": False, -3080 "with": False, -3081 **QUERY_MODIFIERS, -3082 } -3083 -3084 def unnest(self): -3085 """ -3086 Returns the first non subquery. -3087 """ -3088 expression = self -3089 while isinstance(expression, Subquery): -3090 expression = expression.this -3091 return expression -3092 -3093 @property -3094 def is_star(self) -> bool: -3095 return self.this.is_star -3096 -3097 @property -3098 def output_name(self) -> str: -3099 return self.alias -3100 -3101 -3102class TableSample(Expression): -3103 arg_types = { -3104 "this": False, -3105 "method": False, -3106 "bucket_numerator": False, -3107 "bucket_denominator": False, -3108 "bucket_field": False, -3109 "percent": False, -3110 "rows": False, -3111 "size": False, -3112 "seed": False, -3113 "kind": False, -3114 } -3115 -3116 -3117class Tag(Expression): -3118 """Tags are used for generating arbitrary sql like SELECT <span>x</span>.""" -3119 -3120 arg_types = { -3121 "this": False, -3122 "prefix": False, -3123 "postfix": False, -3124 } -3125 -3126 -3127class Pivot(Expression): -3128 arg_types = { -3129 "alias": False, -3130 "expressions": True, -3131 "field": True, -3132 "unpivot": True, -3133 "columns": False, -3134 } -3135 -3136 -3137class Window(Expression): -3138 arg_types = { -3139 "this": True, -3140 "partition_by": False, -3141 "order": False, -3142 "spec": False, -3143 "alias": False, -3144 "over": False, -3145 "first": False, -3146 } -3147 -3148 -3149class WindowSpec(Expression): -3150 arg_types = { -3151 "kind": False, -3152 "start": False, -3153 "start_side": False, -3154 "end": False, -3155 "end_side": False, -3156 } -3157 -3158 -3159class Where(Expression): -3160 pass -3161 -3162 -3163class Star(Expression): -3164 arg_types = {"except": False, "replace": False} +3075 @property +3076 def named_selects(self) -> t.List[str]: +3077 return [e.output_name for e in self.expressions if e.alias_or_name] +3078 +3079 @property +3080 def is_star(self) -> bool: +3081 return any(expression.is_star for expression in self.expressions) +3082 +3083 @property +3084 def selects(self) -> t.List[Expression]: +3085 return self.expressions +3086 +3087 +3088class Subquery(DerivedTable, Unionable): +3089 arg_types = { +3090 "this": True, +3091 "alias": False, +3092 "with": False, +3093 **QUERY_MODIFIERS, +3094 } +3095 +3096 def unnest(self): +3097 """ +3098 Returns the first non subquery. +3099 """ +3100 expression = self +3101 while isinstance(expression, Subquery): +3102 expression = expression.this +3103 return expression +3104 +3105 @property +3106 def is_star(self) -> bool: +3107 return self.this.is_star +3108 +3109 @property +3110 def output_name(self) -> str: +3111 return self.alias +3112 +3113 +3114class TableSample(Expression): +3115 arg_types = { +3116 "this": False, +3117 "method": False, +3118 "bucket_numerator": False, +3119 "bucket_denominator": False, +3120 "bucket_field": False, +3121 "percent": False, +3122 "rows": False, +3123 "size": False, +3124 "seed": False, +3125 "kind": False, +3126 } +3127 +3128 +3129class Tag(Expression): +3130 """Tags are used for generating arbitrary sql like SELECT <span>x</span>.""" +3131 +3132 arg_types = { +3133 "this": False, +3134 "prefix": False, +3135 "postfix": False, +3136 } +3137 +3138 +3139# Represents both the standard SQL PIVOT operator and DuckDB's "simplified" PIVOT syntax +3140# https://duckdb.org/docs/sql/statements/pivot +3141class Pivot(Expression): +3142 arg_types = { +3143 "this": False, +3144 "alias": False, +3145 "expressions": True, +3146 "field": False, +3147 "unpivot": False, +3148 "using": False, +3149 "group": False, +3150 "columns": False, +3151 } +3152 +3153 +3154class Window(Expression): +3155 arg_types = { +3156 "this": True, +3157 "partition_by": False, +3158 "order": False, +3159 "spec": False, +3160 "alias": False, +3161 "over": False, +3162 "first": False, +3163 } +3164 3165 -3166 @property -3167 def name(self) -> str: -3168 return "*" -3169 -3170 @property -3171 def output_name(self) -> str: -3172 return self.name -3173 +3166class WindowSpec(Expression): +3167 arg_types = { +3168 "kind": False, +3169 "start": False, +3170 "start_side": False, +3171 "end": False, +3172 "end_side": False, +3173 } 3174 -3175class Parameter(Expression): -3176 arg_types = {"this": True, "wrapped": False} -3177 +3175 +3176class Where(Expression): +3177 pass 3178 -3179class SessionParameter(Expression): -3180 arg_types = {"this": True, "kind": False} -3181 +3179 +3180class Star(Expression): +3181 arg_types = {"except": False, "replace": False} 3182 -3183class Placeholder(Expression): -3184 arg_types = {"this": False, "kind": False} -3185 +3183 @property +3184 def name(self) -> str: +3185 return "*" 3186 -3187class Null(Condition): -3188 arg_types: t.Dict[str, t.Any] = {} -3189 -3190 @property -3191 def name(self) -> str: -3192 return "NULL" -3193 +3187 @property +3188 def output_name(self) -> str: +3189 return self.name +3190 +3191 +3192class Parameter(Expression): +3193 arg_types = {"this": True, "wrapped": False} 3194 -3195class Boolean(Condition): -3196 pass -3197 +3195 +3196class SessionParameter(Expression): +3197 arg_types = {"this": True, "kind": False} 3198 -3199class DataTypeSize(Expression): -3200 arg_types = {"this": True, "expression": False} -3201 +3199 +3200class Placeholder(Expression): +3201 arg_types = {"this": False, "kind": False} 3202 -3203class DataType(Expression): -3204 arg_types = { -3205 "this": True, -3206 "expressions": False, -3207 "nested": False, -3208 "values": False, -3209 "prefix": False, -3210 } +3203 +3204class Null(Condition): +3205 arg_types: t.Dict[str, t.Any] = {} +3206 +3207 @property +3208 def name(self) -> str: +3209 return "NULL" +3210 3211 -3212 class Type(AutoName): -3213 ARRAY = auto() -3214 BIGDECIMAL = auto() -3215 BIGINT = auto() -3216 BIGSERIAL = auto() -3217 BINARY = auto() -3218 BIT = auto() -3219 BOOLEAN = auto() -3220 CHAR = auto() -3221 DATE = auto() -3222 DATETIME = auto() -3223 DATETIME64 = auto() -3224 DECIMAL = auto() -3225 DOUBLE = auto() -3226 FLOAT = auto() -3227 GEOGRAPHY = auto() -3228 GEOMETRY = auto() -3229 HLLSKETCH = auto() -3230 HSTORE = auto() -3231 IMAGE = auto() -3232 INET = auto() -3233 INT = auto() -3234 INT128 = auto() -3235 INT256 = auto() -3236 INTERVAL = auto() -3237 JSON = auto() -3238 JSONB = auto() -3239 LONGBLOB = auto() -3240 LONGTEXT = auto() -3241 MAP = auto() -3242 MEDIUMBLOB = auto() -3243 MEDIUMTEXT = auto() -3244 MONEY = auto() -3245 NCHAR = auto() -3246 NULL = auto() -3247 NULLABLE = auto() -3248 NVARCHAR = auto() -3249 OBJECT = auto() -3250 ROWVERSION = auto() -3251 SERIAL = auto() -3252 SMALLINT = auto() -3253 SMALLMONEY = auto() -3254 SMALLSERIAL = auto() -3255 STRUCT = auto() -3256 SUPER = auto() -3257 TEXT = auto() -3258 TIME = auto() -3259 TIMESTAMP = auto() -3260 TIMESTAMPTZ = auto() -3261 TIMESTAMPLTZ = auto() -3262 TINYINT = auto() -3263 UBIGINT = auto() -3264 UINT = auto() -3265 USMALLINT = auto() -3266 UTINYINT = auto() -3267 UNKNOWN = auto() # Sentinel value, useful for type annotation -3268 UINT128 = auto() -3269 UINT256 = auto() -3270 UNIQUEIDENTIFIER = auto() -3271 UUID = auto() -3272 VARBINARY = auto() -3273 VARCHAR = auto() -3274 VARIANT = auto() -3275 XML = auto() -3276 -3277 TEXT_TYPES = { -3278 Type.CHAR, -3279 Type.NCHAR, -3280 Type.VARCHAR, -3281 Type.NVARCHAR, -3282 Type.TEXT, -3283 } -3284 -3285 INTEGER_TYPES = { -3286 Type.INT, -3287 Type.TINYINT, -3288 Type.SMALLINT, -3289 Type.BIGINT, -3290 Type.INT128, -3291 Type.INT256, -3292 } -3293 -3294 FLOAT_TYPES = { -3295 Type.FLOAT, -3296 Type.DOUBLE, -3297 } -3298 -3299 NUMERIC_TYPES = {*INTEGER_TYPES, *FLOAT_TYPES} -3300 -3301 TEMPORAL_TYPES = { -3302 Type.TIMESTAMP, -3303 Type.TIMESTAMPTZ, -3304 Type.TIMESTAMPLTZ, -3305 Type.DATE, -3306 Type.DATETIME, -3307 Type.DATETIME64, -3308 } -3309 -3310 @classmethod -3311 def build( -3312 cls, dtype: str | DataType | DataType.Type, dialect: DialectType = None, **kwargs -3313 ) -> DataType: -3314 from sqlglot import parse_one -3315 -3316 if isinstance(dtype, str): -3317 if dtype.upper() in cls.Type.__members__: -3318 data_type_exp: t.Optional[Expression] = DataType(this=DataType.Type[dtype.upper()]) -3319 else: -3320 data_type_exp = parse_one(dtype, read=dialect, into=DataType) -3321 -3322 if data_type_exp is None: -3323 raise ValueError(f"Unparsable data type value: {dtype}") -3324 elif isinstance(dtype, DataType.Type): -3325 data_type_exp = DataType(this=dtype) -3326 elif isinstance(dtype, DataType): -3327 return dtype -3328 else: -3329 raise ValueError(f"Invalid data type: {type(dtype)}. Expected str or DataType.Type") -3330 -3331 return DataType(**{**data_type_exp.args, **kwargs}) -3332 -3333 def is_type(self, dtype: DataType.Type) -> bool: -3334 return self.this == dtype -3335 -3336 -3337# https://www.postgresql.org/docs/15/datatype-pseudo.html -3338class PseudoType(Expression): -3339 pass -3340 -3341 -3342# WHERE x <OP> EXISTS|ALL|ANY|SOME(SELECT ...) -3343class SubqueryPredicate(Predicate): -3344 pass -3345 -3346 -3347class All(SubqueryPredicate): -3348 pass -3349 +3212class Boolean(Condition): +3213 pass +3214 +3215 +3216class DataTypeSize(Expression): +3217 arg_types = {"this": True, "expression": False} +3218 +3219 +3220class DataType(Expression): +3221 arg_types = { +3222 "this": True, +3223 "expressions": False, +3224 "nested": False, +3225 "values": False, +3226 "prefix": False, +3227 } +3228 +3229 class Type(AutoName): +3230 ARRAY = auto() +3231 BIGDECIMAL = auto() +3232 BIGINT = auto() +3233 BIGSERIAL = auto() +3234 BINARY = auto() +3235 BIT = auto() +3236 BOOLEAN = auto() +3237 CHAR = auto() +3238 DATE = auto() +3239 DATETIME = auto() +3240 DATETIME64 = auto() +3241 INT4RANGE = auto() +3242 INT4MULTIRANGE = auto() +3243 INT8RANGE = auto() +3244 INT8MULTIRANGE = auto() +3245 NUMRANGE = auto() +3246 NUMMULTIRANGE = auto() +3247 TSRANGE = auto() +3248 TSMULTIRANGE = auto() +3249 TSTZRANGE = auto() +3250 TSTZMULTIRANGE = auto() +3251 DATERANGE = auto() +3252 DATEMULTIRANGE = auto() +3253 DECIMAL = auto() +3254 DOUBLE = auto() +3255 FLOAT = auto() +3256 GEOGRAPHY = auto() +3257 GEOMETRY = auto() +3258 HLLSKETCH = auto() +3259 HSTORE = auto() +3260 IMAGE = auto() +3261 INET = auto() +3262 INT = auto() +3263 INT128 = auto() +3264 INT256 = auto() +3265 INTERVAL = auto() +3266 JSON = auto() +3267 JSONB = auto() +3268 LONGBLOB = auto() +3269 LONGTEXT = auto() +3270 MAP = auto() +3271 MEDIUMBLOB = auto() +3272 MEDIUMTEXT = auto() +3273 MONEY = auto() +3274 NCHAR = auto() +3275 NULL = auto() +3276 NULLABLE = auto() +3277 NVARCHAR = auto() +3278 OBJECT = auto() +3279 ROWVERSION = auto() +3280 SERIAL = auto() +3281 SMALLINT = auto() +3282 SMALLMONEY = auto() +3283 SMALLSERIAL = auto() +3284 STRUCT = auto() +3285 SUPER = auto() +3286 TEXT = auto() +3287 TIME = auto() +3288 TIMESTAMP = auto() +3289 TIMESTAMPTZ = auto() +3290 TIMESTAMPLTZ = auto() +3291 TINYINT = auto() +3292 UBIGINT = auto() +3293 UINT = auto() +3294 USMALLINT = auto() +3295 UTINYINT = auto() +3296 UNKNOWN = auto() # Sentinel value, useful for type annotation +3297 UINT128 = auto() +3298 UINT256 = auto() +3299 UNIQUEIDENTIFIER = auto() +3300 UUID = auto() +3301 VARBINARY = auto() +3302 VARCHAR = auto() +3303 VARIANT = auto() +3304 XML = auto() +3305 +3306 TEXT_TYPES = { +3307 Type.CHAR, +3308 Type.NCHAR, +3309 Type.VARCHAR, +3310 Type.NVARCHAR, +3311 Type.TEXT, +3312 } +3313 +3314 INTEGER_TYPES = { +3315 Type.INT, +3316 Type.TINYINT, +3317 Type.SMALLINT, +3318 Type.BIGINT, +3319 Type.INT128, +3320 Type.INT256, +3321 } +3322 +3323 FLOAT_TYPES = { +3324 Type.FLOAT, +3325 Type.DOUBLE, +3326 } +3327 +3328 NUMERIC_TYPES = {*INTEGER_TYPES, *FLOAT_TYPES} +3329 +3330 TEMPORAL_TYPES = { +3331 Type.TIMESTAMP, +3332 Type.TIMESTAMPTZ, +3333 Type.TIMESTAMPLTZ, +3334 Type.DATE, +3335 Type.DATETIME, +3336 Type.DATETIME64, +3337 } +3338 +3339 @classmethod +3340 def build( +3341 cls, dtype: str | DataType | DataType.Type, dialect: DialectType = None, **kwargs +3342 ) -> DataType: +3343 from sqlglot import parse_one +3344 +3345 if isinstance(dtype, str): +3346 if dtype.upper() in cls.Type.__members__: +3347 data_type_exp: t.Optional[Expression] = DataType(this=DataType.Type[dtype.upper()]) +3348 else: +3349 data_type_exp = parse_one(dtype, read=dialect, into=DataType) 3350 -3351class Any(SubqueryPredicate): -3352 pass -3353 -3354 -3355class Exists(SubqueryPredicate): -3356 pass -3357 -3358 -3359# Commands to interact with the databases or engines. For most of the command -3360# expressions we parse whatever comes after the command's name as a string. -3361class Command(Expression): -3362 arg_types = {"this": True, "expression": False} -3363 +3351 if data_type_exp is None: +3352 raise ValueError(f"Unparsable data type value: {dtype}") +3353 elif isinstance(dtype, DataType.Type): +3354 data_type_exp = DataType(this=dtype) +3355 elif isinstance(dtype, DataType): +3356 return dtype +3357 else: +3358 raise ValueError(f"Invalid data type: {type(dtype)}. Expected str or DataType.Type") +3359 +3360 return DataType(**{**data_type_exp.args, **kwargs}) +3361 +3362 def is_type(self, *dtypes: str | DataType | DataType.Type) -> bool: +3363 return any(self.this == DataType.build(dtype).this for dtype in dtypes) 3364 -3365class Transaction(Expression): -3366 arg_types = {"this": False, "modes": False} -3367 -3368 -3369class Commit(Expression): -3370 arg_types = {"chain": False} -3371 -3372 -3373class Rollback(Expression): -3374 arg_types = {"savepoint": False} +3365 +3366# https://www.postgresql.org/docs/15/datatype-pseudo.html +3367class PseudoType(Expression): +3368 pass +3369 +3370 +3371# WHERE x <OP> EXISTS|ALL|ANY|SOME(SELECT ...) +3372class SubqueryPredicate(Predicate): +3373 pass +3374 3375 -3376 -3377class AlterTable(Expression): -3378 arg_types = {"this": True, "actions": True, "exists": False} +3376class All(SubqueryPredicate): +3377 pass +3378 3379 -3380 -3381class AddConstraint(Expression): -3382 arg_types = {"this": False, "expression": False, "enforced": False} +3380class Any(SubqueryPredicate): +3381 pass +3382 3383 -3384 -3385class DropPartition(Expression): -3386 arg_types = {"expressions": True, "exists": False} +3384class Exists(SubqueryPredicate): +3385 pass +3386 3387 -3388 -3389# Binary expressions like (ADD a b) -3390class Binary(Condition): -3391 arg_types = {"this": True, "expression": True} +3388# Commands to interact with the databases or engines. For most of the command +3389# expressions we parse whatever comes after the command's name as a string. +3390class Command(Expression): +3391 arg_types = {"this": True, "expression": False} 3392 -3393 @property -3394 def left(self): -3395 return self.this +3393 +3394class Transaction(Expression): +3395 arg_types = {"this": False, "modes": False} 3396 -3397 @property -3398 def right(self): -3399 return self.expression +3397 +3398class Commit(Expression): +3399 arg_types = {"chain": False} 3400 3401 -3402class Add(Binary): -3403 pass +3402class Rollback(Expression): +3403 arg_types = {"savepoint": False} 3404 3405 -3406class Connector(Binary): -3407 pass +3406class AlterTable(Expression): +3407 arg_types = {"this": True, "actions": True, "exists": False} 3408 3409 -3410class And(Connector): -3411 pass +3410class AddConstraint(Expression): +3411 arg_types = {"this": False, "expression": False, "enforced": False} 3412 3413 -3414class Or(Connector): -3415 pass +3414class DropPartition(Expression): +3415 arg_types = {"expressions": True, "exists": False} 3416 3417 -3418class BitwiseAnd(Binary): -3419 pass -3420 +3418# Binary expressions like (ADD a b) +3419class Binary(Condition): +3420 arg_types = {"this": True, "expression": True} 3421 -3422class BitwiseLeftShift(Binary): -3423 pass -3424 +3422 @property +3423 def left(self): +3424 return self.this 3425 -3426class BitwiseOr(Binary): -3427 pass -3428 +3426 @property +3427 def right(self): +3428 return self.expression 3429 -3430class BitwiseRightShift(Binary): -3431 pass -3432 +3430 +3431class Add(Binary): +3432 pass 3433 -3434class BitwiseXor(Binary): -3435 pass -3436 +3434 +3435class Connector(Binary): +3436 pass 3437 -3438class Div(Binary): -3439 pass -3440 +3438 +3439class And(Connector): +3440 pass 3441 -3442class Overlaps(Binary): -3443 pass -3444 +3442 +3443class Or(Connector): +3444 pass 3445 -3446class Dot(Binary): -3447 @property -3448 def name(self) -> str: -3449 return self.expression.name +3446 +3447class BitwiseAnd(Binary): +3448 pass +3449 3450 -3451 @classmethod -3452 def build(self, expressions: t.Sequence[Expression]) -> Dot: -3453 """Build a Dot object with a sequence of expressions.""" -3454 if len(expressions) < 2: -3455 raise ValueError(f"Dot requires >= 2 expressions.") -3456 -3457 a, b, *expressions = expressions -3458 dot = Dot(this=a, expression=b) -3459 -3460 for expression in expressions: -3461 dot = Dot(this=dot, expression=expression) +3451class BitwiseLeftShift(Binary): +3452 pass +3453 +3454 +3455class BitwiseOr(Binary): +3456 pass +3457 +3458 +3459class BitwiseRightShift(Binary): +3460 pass +3461 3462 -3463 return dot -3464 +3463class BitwiseXor(Binary): +3464 pass 3465 -3466class DPipe(Binary): -3467 pass -3468 +3466 +3467class Div(Binary): +3468 pass 3469 -3470class EQ(Binary, Predicate): -3471 pass -3472 +3470 +3471class Overlaps(Binary): +3472 pass 3473 -3474class NullSafeEQ(Binary, Predicate): -3475 pass -3476 -3477 -3478class NullSafeNEQ(Binary, Predicate): -3479 pass -3480 -3481 -3482class Distance(Binary): -3483 pass -3484 +3474 +3475class Dot(Binary): +3476 @property +3477 def name(self) -> str: +3478 return self.expression.name +3479 +3480 @classmethod +3481 def build(self, expressions: t.Sequence[Expression]) -> Dot: +3482 """Build a Dot object with a sequence of expressions.""" +3483 if len(expressions) < 2: +3484 raise ValueError(f"Dot requires >= 2 expressions.") 3485 -3486class Escape(Binary): -3487 pass +3486 a, b, *expressions = expressions +3487 dot = Dot(this=a, expression=b) 3488 -3489 -3490class Glob(Binary, Predicate): -3491 pass -3492 +3489 for expression in expressions: +3490 dot = Dot(this=dot, expression=expression) +3491 +3492 return dot 3493 -3494class GT(Binary, Predicate): -3495 pass -3496 +3494 +3495class DPipe(Binary): +3496 pass 3497 -3498class GTE(Binary, Predicate): -3499 pass -3500 +3498 +3499class EQ(Binary, Predicate): +3500 pass 3501 -3502class ILike(Binary, Predicate): -3503 pass -3504 +3502 +3503class NullSafeEQ(Binary, Predicate): +3504 pass 3505 -3506class ILikeAny(Binary, Predicate): -3507 pass -3508 +3506 +3507class NullSafeNEQ(Binary, Predicate): +3508 pass 3509 -3510class IntDiv(Binary): -3511 pass -3512 +3510 +3511class Distance(Binary): +3512 pass 3513 -3514class Is(Binary, Predicate): -3515 pass -3516 +3514 +3515class Escape(Binary): +3516 pass 3517 -3518class Kwarg(Binary): -3519 """Kwarg in special functions like func(kwarg => y).""" -3520 +3518 +3519class Glob(Binary, Predicate): +3520 pass 3521 -3522class Like(Binary, Predicate): -3523 pass -3524 +3522 +3523class GT(Binary, Predicate): +3524 pass 3525 -3526class LikeAny(Binary, Predicate): -3527 pass -3528 +3526 +3527class GTE(Binary, Predicate): +3528 pass 3529 -3530class LT(Binary, Predicate): -3531 pass -3532 +3530 +3531class ILike(Binary, Predicate): +3532 pass 3533 -3534class LTE(Binary, Predicate): -3535 pass -3536 +3534 +3535class ILikeAny(Binary, Predicate): +3536 pass 3537 -3538class Mod(Binary): -3539 pass -3540 +3538 +3539class IntDiv(Binary): +3540 pass 3541 -3542class Mul(Binary): -3543 pass -3544 +3542 +3543class Is(Binary, Predicate): +3544 pass 3545 -3546class NEQ(Binary, Predicate): -3547 pass -3548 +3546 +3547class Kwarg(Binary): +3548 """Kwarg in special functions like func(kwarg => y).""" 3549 -3550class SimilarTo(Binary, Predicate): -3551 pass -3552 +3550 +3551class Like(Binary, Predicate): +3552 pass 3553 -3554class Slice(Binary): -3555 arg_types = {"this": False, "expression": False} -3556 +3554 +3555class LikeAny(Binary, Predicate): +3556 pass 3557 -3558class Sub(Binary): -3559 pass -3560 +3558 +3559class LT(Binary, Predicate): +3560 pass 3561 -3562class ArrayOverlaps(Binary): -3563 pass -3564 +3562 +3563class LTE(Binary, Predicate): +3564 pass 3565 -3566# Unary Expressions -3567# (NOT a) -3568class Unary(Condition): -3569 pass +3566 +3567class Mod(Binary): +3568 pass +3569 3570 -3571 -3572class BitwiseNot(Unary): -3573 pass +3571class Mul(Binary): +3572 pass +3573 3574 -3575 -3576class Not(Unary): -3577 pass +3575class NEQ(Binary, Predicate): +3576 pass +3577 3578 -3579 -3580class Paren(Unary): -3581 arg_types = {"this": True, "with": False} +3579class SimilarTo(Binary, Predicate): +3580 pass +3581 3582 -3583 -3584class Neg(Unary): -3585 pass +3583class Slice(Binary): +3584 arg_types = {"this": False, "expression": False} +3585 3586 -3587 -3588class Alias(Expression): -3589 arg_types = {"this": True, "alias": False} +3587class Sub(Binary): +3588 pass +3589 3590 -3591 @property -3592 def output_name(self) -> str: -3593 return self.alias +3591class ArrayOverlaps(Binary): +3592 pass +3593 3594 -3595 -3596class Aliases(Expression): -3597 arg_types = {"this": True, "expressions": True} -3598 -3599 @property -3600 def aliases(self): -3601 return self.expressions -3602 +3595# Unary Expressions +3596# (NOT a) +3597class Unary(Condition): +3598 pass +3599 +3600 +3601class BitwiseNot(Unary): +3602 pass 3603 -3604class AtTimeZone(Expression): -3605 arg_types = {"this": True, "zone": True} -3606 +3604 +3605class Not(Unary): +3606 pass 3607 -3608class Between(Predicate): -3609 arg_types = {"this": True, "low": True, "high": True} -3610 +3608 +3609class Paren(Unary): +3610 arg_types = {"this": True, "with": False} 3611 -3612class Bracket(Condition): -3613 arg_types = {"this": True, "expressions": True} -3614 +3612 +3613class Neg(Unary): +3614 pass 3615 -3616class Distinct(Expression): -3617 arg_types = {"expressions": False, "on": False} -3618 +3616 +3617class Alias(Expression): +3618 arg_types = {"this": True, "alias": False} 3619 -3620class In(Predicate): -3621 arg_types = { -3622 "this": True, -3623 "expressions": False, -3624 "query": False, -3625 "unnest": False, -3626 "field": False, -3627 "is_global": False, -3628 } -3629 -3630 -3631class TimeUnit(Expression): -3632 """Automatically converts unit arg into a var.""" -3633 -3634 arg_types = {"unit": False} +3620 @property +3621 def output_name(self) -> str: +3622 return self.alias +3623 +3624 +3625class Aliases(Expression): +3626 arg_types = {"this": True, "expressions": True} +3627 +3628 @property +3629 def aliases(self): +3630 return self.expressions +3631 +3632 +3633class AtTimeZone(Expression): +3634 arg_types = {"this": True, "zone": True} 3635 -3636 def __init__(self, **args): -3637 unit = args.get("unit") -3638 if isinstance(unit, (Column, Literal)): -3639 args["unit"] = Var(this=unit.name) -3640 elif isinstance(unit, Week): -3641 unit.set("this", Var(this=unit.this.name)) -3642 -3643 super().__init__(**args) +3636 +3637class Between(Predicate): +3638 arg_types = {"this": True, "low": True, "high": True} +3639 +3640 +3641class Bracket(Condition): +3642 arg_types = {"this": True, "expressions": True} +3643 3644 -3645 -3646class Interval(TimeUnit): -3647 arg_types = {"this": False, "unit": False} +3645class Distinct(Expression): +3646 arg_types = {"expressions": False, "on": False} +3647 3648 -3649 @property -3650 def unit(self) -> t.Optional[Var]: -3651 return self.args.get("unit") -3652 -3653 -3654class IgnoreNulls(Expression): -3655 pass -3656 -3657 -3658class RespectNulls(Expression): -3659 pass -3660 -3661 -3662# Functions -3663class Func(Condition): -3664 """ -3665 The base class for all function expressions. -3666 -3667 Attributes: -3668 is_var_len_args (bool): if set to True the last argument defined in arg_types will be -3669 treated as a variable length argument and the argument's value will be stored as a list. -3670 _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items) -3671 for this function expression. These values are used to map this node to a name during parsing -3672 as well as to provide the function's name during SQL string generation. By default the SQL -3673 name is set to the expression's class name transformed to snake case. -3674 """ -3675 -3676 is_var_len_args = False +3649class In(Predicate): +3650 arg_types = { +3651 "this": True, +3652 "expressions": False, +3653 "query": False, +3654 "unnest": False, +3655 "field": False, +3656 "is_global": False, +3657 } +3658 +3659 +3660class TimeUnit(Expression): +3661 """Automatically converts unit arg into a var.""" +3662 +3663 arg_types = {"unit": False} +3664 +3665 def __init__(self, **args): +3666 unit = args.get("unit") +3667 if isinstance(unit, (Column, Literal)): +3668 args["unit"] = Var(this=unit.name) +3669 elif isinstance(unit, Week): +3670 unit.set("this", Var(this=unit.this.name)) +3671 +3672 super().__init__(**args) +3673 +3674 +3675class Interval(TimeUnit): +3676 arg_types = {"this": False, "unit": False} 3677 -3678 @classmethod -3679 def from_arg_list(cls, args): -3680 if cls.is_var_len_args: -3681 all_arg_keys = list(cls.arg_types) -3682 # If this function supports variable length argument treat the last argument as such. -3683 non_var_len_arg_keys = all_arg_keys[:-1] if cls.is_var_len_args else all_arg_keys -3684 num_non_var = len(non_var_len_arg_keys) +3678 @property +3679 def unit(self) -> t.Optional[Var]: +3680 return self.args.get("unit") +3681 +3682 +3683class IgnoreNulls(Expression): +3684 pass 3685 -3686 args_dict = {arg_key: arg for arg, arg_key in zip(args, non_var_len_arg_keys)} -3687 args_dict[all_arg_keys[-1]] = args[num_non_var:] -3688 else: -3689 args_dict = {arg_key: arg for arg, arg_key in zip(args, cls.arg_types)} +3686 +3687class RespectNulls(Expression): +3688 pass +3689 3690 -3691 return cls(**args_dict) -3692 -3693 @classmethod -3694 def sql_names(cls): -3695 if cls is Func: -3696 raise NotImplementedError( -3697 "SQL name is only supported by concrete function implementations" -3698 ) -3699 if "_sql_names" not in cls.__dict__: -3700 cls._sql_names = [camel_to_snake_case(cls.__name__)] -3701 return cls._sql_names -3702 -3703 @classmethod -3704 def sql_name(cls): -3705 return cls.sql_names()[0] +3691# Functions +3692class Func(Condition): +3693 """ +3694 The base class for all function expressions. +3695 +3696 Attributes: +3697 is_var_len_args (bool): if set to True the last argument defined in arg_types will be +3698 treated as a variable length argument and the argument's value will be stored as a list. +3699 _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items) +3700 for this function expression. These values are used to map this node to a name during parsing +3701 as well as to provide the function's name during SQL string generation. By default the SQL +3702 name is set to the expression's class name transformed to snake case. +3703 """ +3704 +3705 is_var_len_args = False 3706 3707 @classmethod -3708 def default_parser_mappings(cls): -3709 return {name: cls.from_arg_list for name in cls.sql_names()} -3710 -3711 -3712class AggFunc(Func): -3713 pass +3708 def from_arg_list(cls, args): +3709 if cls.is_var_len_args: +3710 all_arg_keys = list(cls.arg_types) +3711 # If this function supports variable length argument treat the last argument as such. +3712 non_var_len_arg_keys = all_arg_keys[:-1] if cls.is_var_len_args else all_arg_keys +3713 num_non_var = len(non_var_len_arg_keys) 3714 -3715 -3716class ParameterizedAgg(AggFunc): -3717 arg_types = {"this": True, "expressions": True, "params": True} -3718 +3715 args_dict = {arg_key: arg for arg, arg_key in zip(args, non_var_len_arg_keys)} +3716 args_dict[all_arg_keys[-1]] = args[num_non_var:] +3717 else: +3718 args_dict = {arg_key: arg for arg, arg_key in zip(args, cls.arg_types)} 3719 -3720class Abs(Func): -3721 pass -3722 -3723 -3724class Anonymous(Func): -3725 arg_types = {"this": True, "expressions": False} -3726 is_var_len_args = True -3727 -3728 -3729# https://docs.snowflake.com/en/sql-reference/functions/hll -3730# https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html -3731class Hll(AggFunc): -3732 arg_types = {"this": True, "expressions": False} -3733 is_var_len_args = True -3734 +3720 return cls(**args_dict) +3721 +3722 @classmethod +3723 def sql_names(cls): +3724 if cls is Func: +3725 raise NotImplementedError( +3726 "SQL name is only supported by concrete function implementations" +3727 ) +3728 if "_sql_names" not in cls.__dict__: +3729 cls._sql_names = [camel_to_snake_case(cls.__name__)] +3730 return cls._sql_names +3731 +3732 @classmethod +3733 def sql_name(cls): +3734 return cls.sql_names()[0] 3735 -3736class ApproxDistinct(AggFunc): -3737 arg_types = {"this": True, "accuracy": False} -3738 _sql_names = ["APPROX_DISTINCT", "APPROX_COUNT_DISTINCT"] +3736 @classmethod +3737 def default_parser_mappings(cls): +3738 return {name: cls.from_arg_list for name in cls.sql_names()} 3739 3740 -3741class Array(Func): -3742 arg_types = {"expressions": False} -3743 is_var_len_args = True +3741class AggFunc(Func): +3742 pass +3743 3744 -3745 -3746# https://docs.snowflake.com/en/sql-reference/functions/to_char -3747class ToChar(Func): -3748 arg_types = {"this": True, "format": False} -3749 -3750 -3751class GenerateSeries(Func): -3752 arg_types = {"start": True, "end": True, "step": False} -3753 -3754 -3755class ArrayAgg(AggFunc): -3756 pass +3745class ParameterizedAgg(AggFunc): +3746 arg_types = {"this": True, "expressions": True, "params": True} +3747 +3748 +3749class Abs(Func): +3750 pass +3751 +3752 +3753class Anonymous(Func): +3754 arg_types = {"this": True, "expressions": False} +3755 is_var_len_args = True +3756 3757 -3758 -3759class ArrayAll(Func): -3760 arg_types = {"this": True, "expression": True} -3761 -3762 -3763class ArrayAny(Func): -3764 arg_types = {"this": True, "expression": True} -3765 -3766 -3767class ArrayConcat(Func): -3768 arg_types = {"this": True, "expressions": False} -3769 is_var_len_args = True -3770 -3771 -3772class ArrayContains(Binary, Func): -3773 pass +3758# https://docs.snowflake.com/en/sql-reference/functions/hll +3759# https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html +3760class Hll(AggFunc): +3761 arg_types = {"this": True, "expressions": False} +3762 is_var_len_args = True +3763 +3764 +3765class ApproxDistinct(AggFunc): +3766 arg_types = {"this": True, "accuracy": False} +3767 _sql_names = ["APPROX_DISTINCT", "APPROX_COUNT_DISTINCT"] +3768 +3769 +3770class Array(Func): +3771 arg_types = {"expressions": False} +3772 is_var_len_args = True +3773 3774 -3775 -3776class ArrayContained(Binary): -3777 pass +3775# https://docs.snowflake.com/en/sql-reference/functions/to_char +3776class ToChar(Func): +3777 arg_types = {"this": True, "format": False} 3778 3779 -3780class ArrayFilter(Func): -3781 arg_types = {"this": True, "expression": True} -3782 _sql_names = ["FILTER", "ARRAY_FILTER"] +3780class GenerateSeries(Func): +3781 arg_types = {"start": True, "end": True, "step": False} +3782 3783 -3784 -3785class ArrayJoin(Func): -3786 arg_types = {"this": True, "expression": True, "null": False} +3784class ArrayAgg(AggFunc): +3785 pass +3786 3787 -3788 -3789class ArraySize(Func): -3790 arg_types = {"this": True, "expression": False} +3788class ArrayAll(Func): +3789 arg_types = {"this": True, "expression": True} +3790 3791 -3792 -3793class ArraySort(Func): -3794 arg_types = {"this": True, "expression": False} +3792class ArrayAny(Func): +3793 arg_types = {"this": True, "expression": True} +3794 3795 -3796 -3797class ArraySum(Func): -3798 pass +3796class ArrayConcat(Func): +3797 arg_types = {"this": True, "expressions": False} +3798 is_var_len_args = True 3799 3800 -3801class ArrayUnionAgg(AggFunc): +3801class ArrayContains(Binary, Func): 3802 pass 3803 3804 -3805class Avg(AggFunc): +3805class ArrayContained(Binary): 3806 pass 3807 3808 -3809class AnyValue(AggFunc): -3810 pass -3811 +3809class ArrayFilter(Func): +3810 arg_types = {"this": True, "expression": True} +3811 _sql_names = ["FILTER", "ARRAY_FILTER"] 3812 -3813class Case(Func): -3814 arg_types = {"this": False, "ifs": True, "default": False} -3815 -3816 def when(self, condition: ExpOrStr, then: ExpOrStr, copy: bool = True, **opts) -> Case: -3817 instance = _maybe_copy(self, copy) -3818 instance.append( -3819 "ifs", -3820 If( -3821 this=maybe_parse(condition, copy=copy, **opts), -3822 true=maybe_parse(then, copy=copy, **opts), -3823 ), -3824 ) -3825 return instance -3826 -3827 def else_(self, condition: ExpOrStr, copy: bool = True, **opts) -> Case: -3828 instance = _maybe_copy(self, copy) -3829 instance.set("default", maybe_parse(condition, copy=copy, **opts)) -3830 return instance -3831 +3813 +3814class ArrayJoin(Func): +3815 arg_types = {"this": True, "expression": True, "null": False} +3816 +3817 +3818class ArraySize(Func): +3819 arg_types = {"this": True, "expression": False} +3820 +3821 +3822class ArraySort(Func): +3823 arg_types = {"this": True, "expression": False} +3824 +3825 +3826class ArraySum(Func): +3827 pass +3828 +3829 +3830class ArrayUnionAgg(AggFunc): +3831 pass 3832 -3833class Cast(Func): -3834 arg_types = {"this": True, "to": True} -3835 -3836 @property -3837 def name(self) -> str: -3838 return self.this.name -3839 -3840 @property -3841 def to(self) -> DataType: -3842 return self.args["to"] -3843 -3844 @property -3845 def output_name(self) -> str: -3846 return self.name -3847 -3848 def is_type(self, dtype: DataType.Type) -> bool: -3849 return self.to.is_type(dtype) -3850 -3851 -3852class CastToStrType(Func): -3853 arg_types = {"this": True, "expression": True} -3854 +3833 +3834class Avg(AggFunc): +3835 pass +3836 +3837 +3838class AnyValue(AggFunc): +3839 pass +3840 +3841 +3842class Case(Func): +3843 arg_types = {"this": False, "ifs": True, "default": False} +3844 +3845 def when(self, condition: ExpOrStr, then: ExpOrStr, copy: bool = True, **opts) -> Case: +3846 instance = _maybe_copy(self, copy) +3847 instance.append( +3848 "ifs", +3849 If( +3850 this=maybe_parse(condition, copy=copy, **opts), +3851 true=maybe_parse(then, copy=copy, **opts), +3852 ), +3853 ) +3854 return instance 3855 -3856class Collate(Binary): -3857 pass -3858 -3859 -3860class TryCast(Cast): -3861 pass -3862 -3863 -3864class Ceil(Func): -3865 arg_types = {"this": True, "decimals": False} -3866 _sql_names = ["CEIL", "CEILING"] -3867 +3856 def else_(self, condition: ExpOrStr, copy: bool = True, **opts) -> Case: +3857 instance = _maybe_copy(self, copy) +3858 instance.set("default", maybe_parse(condition, copy=copy, **opts)) +3859 return instance +3860 +3861 +3862class Cast(Func): +3863 arg_types = {"this": True, "to": True} +3864 +3865 @property +3866 def name(self) -> str: +3867 return self.this.name 3868 -3869class Coalesce(Func): -3870 arg_types = {"this": True, "expressions": False} -3871 is_var_len_args = True +3869 @property +3870 def to(self) -> DataType: +3871 return self.args["to"] 3872 -3873 -3874class Concat(Func): -3875 arg_types = {"expressions": True} -3876 is_var_len_args = True -3877 -3878 -3879class ConcatWs(Concat): -3880 _sql_names = ["CONCAT_WS"] -3881 -3882 -3883class Count(AggFunc): -3884 arg_types = {"this": False} -3885 -3886 -3887class CountIf(AggFunc): -3888 pass -3889 -3890 -3891class CurrentDate(Func): -3892 arg_types = {"this": False} -3893 -3894 -3895class CurrentDatetime(Func): -3896 arg_types = {"this": False} +3873 @property +3874 def output_name(self) -> str: +3875 return self.name +3876 +3877 def is_type(self, *dtypes: str | DataType | DataType.Type) -> bool: +3878 return self.to.is_type(*dtypes) +3879 +3880 +3881class CastToStrType(Func): +3882 arg_types = {"this": True, "expression": True} +3883 +3884 +3885class Collate(Binary): +3886 pass +3887 +3888 +3889class TryCast(Cast): +3890 pass +3891 +3892 +3893class Ceil(Func): +3894 arg_types = {"this": True, "decimals": False} +3895 _sql_names = ["CEIL", "CEILING"] +3896 3897 -3898 -3899class CurrentTime(Func): -3900 arg_types = {"this": False} +3898class Coalesce(Func): +3899 arg_types = {"this": True, "expressions": False} +3900 is_var_len_args = True 3901 3902 -3903class CurrentTimestamp(Func): -3904 arg_types = {"this": False} -3905 +3903class Concat(Func): +3904 arg_types = {"expressions": True} +3905 is_var_len_args = True 3906 -3907class CurrentUser(Func): -3908 arg_types = {"this": False} -3909 +3907 +3908class ConcatWs(Concat): +3909 _sql_names = ["CONCAT_WS"] 3910 -3911class DateAdd(Func, TimeUnit): -3912 arg_types = {"this": True, "expression": True, "unit": False} -3913 +3911 +3912class Count(AggFunc): +3913 arg_types = {"this": False} 3914 -3915class DateSub(Func, TimeUnit): -3916 arg_types = {"this": True, "expression": True, "unit": False} -3917 +3915 +3916class CountIf(AggFunc): +3917 pass 3918 -3919class DateDiff(Func, TimeUnit): -3920 _sql_names = ["DATEDIFF", "DATE_DIFF"] -3921 arg_types = {"this": True, "expression": True, "unit": False} +3919 +3920class CurrentDate(Func): +3921 arg_types = {"this": False} 3922 3923 -3924class DateTrunc(Func): -3925 arg_types = {"unit": True, "this": True, "zone": False} +3924class CurrentDatetime(Func): +3925 arg_types = {"this": False} 3926 3927 -3928class DatetimeAdd(Func, TimeUnit): -3929 arg_types = {"this": True, "expression": True, "unit": False} +3928class CurrentTime(Func): +3929 arg_types = {"this": False} 3930 3931 -3932class DatetimeSub(Func, TimeUnit): -3933 arg_types = {"this": True, "expression": True, "unit": False} +3932class CurrentTimestamp(Func): +3933 arg_types = {"this": False} 3934 3935 -3936class DatetimeDiff(Func, TimeUnit): -3937 arg_types = {"this": True, "expression": True, "unit": False} +3936class CurrentUser(Func): +3937 arg_types = {"this": False} 3938 3939 -3940class DatetimeTrunc(Func, TimeUnit): -3941 arg_types = {"this": True, "unit": True, "zone": False} +3940class DateAdd(Func, TimeUnit): +3941 arg_types = {"this": True, "expression": True, "unit": False} 3942 3943 -3944class DayOfWeek(Func): -3945 _sql_names = ["DAY_OF_WEEK", "DAYOFWEEK"] +3944class DateSub(Func, TimeUnit): +3945 arg_types = {"this": True, "expression": True, "unit": False} 3946 3947 -3948class DayOfMonth(Func): -3949 _sql_names = ["DAY_OF_MONTH", "DAYOFMONTH"] -3950 +3948class DateDiff(Func, TimeUnit): +3949 _sql_names = ["DATEDIFF", "DATE_DIFF"] +3950 arg_types = {"this": True, "expression": True, "unit": False} 3951 -3952class DayOfYear(Func): -3953 _sql_names = ["DAY_OF_YEAR", "DAYOFYEAR"] -3954 +3952 +3953class DateTrunc(Func): +3954 arg_types = {"unit": True, "this": True, "zone": False} 3955 -3956class WeekOfYear(Func): -3957 _sql_names = ["WEEK_OF_YEAR", "WEEKOFYEAR"] -3958 +3956 +3957class DatetimeAdd(Func, TimeUnit): +3958 arg_types = {"this": True, "expression": True, "unit": False} 3959 -3960class LastDateOfMonth(Func): -3961 pass -3962 +3960 +3961class DatetimeSub(Func, TimeUnit): +3962 arg_types = {"this": True, "expression": True, "unit": False} 3963 -3964class Extract(Func): -3965 arg_types = {"this": True, "expression": True} -3966 +3964 +3965class DatetimeDiff(Func, TimeUnit): +3966 arg_types = {"this": True, "expression": True, "unit": False} 3967 -3968class TimestampAdd(Func, TimeUnit): -3969 arg_types = {"this": True, "expression": True, "unit": False} -3970 +3968 +3969class DatetimeTrunc(Func, TimeUnit): +3970 arg_types = {"this": True, "unit": True, "zone": False} 3971 -3972class TimestampSub(Func, TimeUnit): -3973 arg_types = {"this": True, "expression": True, "unit": False} -3974 +3972 +3973class DayOfWeek(Func): +3974 _sql_names = ["DAY_OF_WEEK", "DAYOFWEEK"] 3975 -3976class TimestampDiff(Func, TimeUnit): -3977 arg_types = {"this": True, "expression": True, "unit": False} -3978 +3976 +3977class DayOfMonth(Func): +3978 _sql_names = ["DAY_OF_MONTH", "DAYOFMONTH"] 3979 -3980class TimestampTrunc(Func, TimeUnit): -3981 arg_types = {"this": True, "unit": True, "zone": False} -3982 +3980 +3981class DayOfYear(Func): +3982 _sql_names = ["DAY_OF_YEAR", "DAYOFYEAR"] 3983 -3984class TimeAdd(Func, TimeUnit): -3985 arg_types = {"this": True, "expression": True, "unit": False} -3986 +3984 +3985class WeekOfYear(Func): +3986 _sql_names = ["WEEK_OF_YEAR", "WEEKOFYEAR"] 3987 -3988class TimeSub(Func, TimeUnit): -3989 arg_types = {"this": True, "expression": True, "unit": False} -3990 +3988 +3989class LastDateOfMonth(Func): +3990 pass 3991 -3992class TimeDiff(Func, TimeUnit): -3993 arg_types = {"this": True, "expression": True, "unit": False} -3994 +3992 +3993class Extract(Func): +3994 arg_types = {"this": True, "expression": True} 3995 -3996class TimeTrunc(Func, TimeUnit): -3997 arg_types = {"this": True, "unit": True, "zone": False} -3998 +3996 +3997class TimestampAdd(Func, TimeUnit): +3998 arg_types = {"this": True, "expression": True, "unit": False} 3999 -4000class DateFromParts(Func): -4001 _sql_names = ["DATEFROMPARTS"] -4002 arg_types = {"year": True, "month": True, "day": True} +4000 +4001class TimestampSub(Func, TimeUnit): +4002 arg_types = {"this": True, "expression": True, "unit": False} 4003 4004 -4005class DateStrToDate(Func): -4006 pass +4005class TimestampDiff(Func, TimeUnit): +4006 arg_types = {"this": True, "expression": True, "unit": False} 4007 4008 -4009class DateToDateStr(Func): -4010 pass +4009class TimestampTrunc(Func, TimeUnit): +4010 arg_types = {"this": True, "unit": True, "zone": False} 4011 4012 -4013class DateToDi(Func): -4014 pass +4013class TimeAdd(Func, TimeUnit): +4014 arg_types = {"this": True, "expression": True, "unit": False} 4015 4016 -4017class Day(Func): -4018 pass +4017class TimeSub(Func, TimeUnit): +4018 arg_types = {"this": True, "expression": True, "unit": False} 4019 4020 -4021class Decode(Func): -4022 arg_types = {"this": True, "charset": True, "replace": False} +4021class TimeDiff(Func, TimeUnit): +4022 arg_types = {"this": True, "expression": True, "unit": False} 4023 4024 -4025class DiToDate(Func): -4026 pass +4025class TimeTrunc(Func, TimeUnit): +4026 arg_types = {"this": True, "unit": True, "zone": False} 4027 4028 -4029class Encode(Func): -4030 arg_types = {"this": True, "charset": True} -4031 +4029class DateFromParts(Func): +4030 _sql_names = ["DATEFROMPARTS"] +4031 arg_types = {"year": True, "month": True, "day": True} 4032 -4033class Exp(Func): -4034 pass -4035 +4033 +4034class DateStrToDate(Func): +4035 pass 4036 -4037class Explode(Func): -4038 pass -4039 +4037 +4038class DateToDateStr(Func): +4039 pass 4040 -4041class Floor(Func): -4042 arg_types = {"this": True, "decimals": False} -4043 +4041 +4042class DateToDi(Func): +4043 pass 4044 -4045class FromBase64(Func): -4046 pass -4047 +4045 +4046class Day(Func): +4047 pass 4048 -4049class ToBase64(Func): -4050 pass -4051 +4049 +4050class Decode(Func): +4051 arg_types = {"this": True, "charset": True, "replace": False} 4052 -4053class Greatest(Func): -4054 arg_types = {"this": True, "expressions": False} -4055 is_var_len_args = True +4053 +4054class DiToDate(Func): +4055 pass 4056 4057 -4058class GroupConcat(Func): -4059 arg_types = {"this": True, "separator": False} +4058class Encode(Func): +4059 arg_types = {"this": True, "charset": True} 4060 4061 -4062class Hex(Func): +4062class Exp(Func): 4063 pass 4064 4065 -4066class If(Func): -4067 arg_types = {"this": True, "true": True, "false": False} +4066class Explode(Func): +4067 pass 4068 4069 -4070class IfNull(Func): -4071 arg_types = {"this": True, "expression": False} -4072 _sql_names = ["IFNULL", "NVL"] +4070class Floor(Func): +4071 arg_types = {"this": True, "decimals": False} +4072 4073 -4074 -4075class Initcap(Func): -4076 arg_types = {"this": True, "expression": False} +4074class FromBase64(Func): +4075 pass +4076 4077 -4078 -4079class JSONKeyValue(Expression): -4080 arg_types = {"this": True, "expression": True} +4078class ToBase64(Func): +4079 pass +4080 4081 -4082 -4083class JSONObject(Func): -4084 arg_types = { -4085 "expressions": False, -4086 "null_handling": False, -4087 "unique_keys": False, -4088 "return_type": False, -4089 "format_json": False, -4090 "encoding": False, -4091 } -4092 +4082class Greatest(Func): +4083 arg_types = {"this": True, "expressions": False} +4084 is_var_len_args = True +4085 +4086 +4087class GroupConcat(Func): +4088 arg_types = {"this": True, "separator": False} +4089 +4090 +4091class Hex(Func): +4092 pass 4093 -4094class OpenJSONColumnDef(Expression): -4095 arg_types = {"this": True, "kind": True, "path": False, "as_json": False} -4096 +4094 +4095class If(Func): +4096 arg_types = {"this": True, "true": True, "false": False} 4097 -4098class OpenJSON(Func): -4099 arg_types = {"this": True, "path": False, "expressions": False} -4100 -4101 -4102class JSONBContains(Binary): -4103 _sql_names = ["JSONB_CONTAINS"] -4104 -4105 -4106class JSONExtract(Binary, Func): -4107 _sql_names = ["JSON_EXTRACT"] -4108 -4109 -4110class JSONExtractScalar(JSONExtract): -4111 _sql_names = ["JSON_EXTRACT_SCALAR"] -4112 -4113 -4114class JSONBExtract(JSONExtract): -4115 _sql_names = ["JSONB_EXTRACT"] -4116 -4117 -4118class JSONBExtractScalar(JSONExtract): -4119 _sql_names = ["JSONB_EXTRACT_SCALAR"] -4120 +4098 +4099class IfNull(Func): +4100 arg_types = {"this": True, "expression": False} +4101 _sql_names = ["IFNULL", "NVL"] +4102 +4103 +4104class Initcap(Func): +4105 arg_types = {"this": True, "expression": False} +4106 +4107 +4108class JSONKeyValue(Expression): +4109 arg_types = {"this": True, "expression": True} +4110 +4111 +4112class JSONObject(Func): +4113 arg_types = { +4114 "expressions": False, +4115 "null_handling": False, +4116 "unique_keys": False, +4117 "return_type": False, +4118 "format_json": False, +4119 "encoding": False, +4120 } 4121 -4122class JSONFormat(Func): -4123 arg_types = {"this": False, "options": False} -4124 _sql_names = ["JSON_FORMAT"] +4122 +4123class OpenJSONColumnDef(Expression): +4124 arg_types = {"this": True, "kind": True, "path": False, "as_json": False} 4125 4126 -4127class Least(Func): -4128 arg_types = {"expressions": False} -4129 is_var_len_args = True +4127class OpenJSON(Func): +4128 arg_types = {"this": True, "path": False, "expressions": False} +4129 4130 -4131 -4132class Length(Func): -4133 pass +4131class JSONBContains(Binary): +4132 _sql_names = ["JSONB_CONTAINS"] +4133 4134 -4135 -4136class Levenshtein(Func): -4137 arg_types = { -4138 "this": True, -4139 "expression": False, -4140 "ins_cost": False, -4141 "del_cost": False, -4142 "sub_cost": False, -4143 } -4144 +4135class JSONExtract(Binary, Func): +4136 _sql_names = ["JSON_EXTRACT"] +4137 +4138 +4139class JSONExtractScalar(JSONExtract): +4140 _sql_names = ["JSON_EXTRACT_SCALAR"] +4141 +4142 +4143class JSONBExtract(JSONExtract): +4144 _sql_names = ["JSONB_EXTRACT"] 4145 -4146class Ln(Func): -4147 pass -4148 +4146 +4147class JSONBExtractScalar(JSONExtract): +4148 _sql_names = ["JSONB_EXTRACT_SCALAR"] 4149 -4150class Log(Func): -4151 arg_types = {"this": True, "expression": False} -4152 -4153 -4154class Log2(Func): -4155 pass -4156 -4157 -4158class Log10(Func): -4159 pass +4150 +4151class JSONFormat(Func): +4152 arg_types = {"this": False, "options": False} +4153 _sql_names = ["JSON_FORMAT"] +4154 +4155 +4156class Least(Func): +4157 arg_types = {"expressions": False} +4158 is_var_len_args = True +4159 4160 -4161 -4162class LogicalOr(AggFunc): -4163 _sql_names = ["LOGICAL_OR", "BOOL_OR", "BOOLOR_AGG"] +4161class Left(Func): +4162 arg_types = {"this": True, "expression": True} +4163 4164 -4165 -4166class LogicalAnd(AggFunc): -4167 _sql_names = ["LOGICAL_AND", "BOOL_AND", "BOOLAND_AGG"] +4165class Right(Func): +4166 arg_types = {"this": True, "expression": True} +4167 4168 -4169 -4170class Lower(Func): -4171 _sql_names = ["LOWER", "LCASE"] +4169class Length(Func): +4170 pass +4171 4172 -4173 -4174class Map(Func): -4175 arg_types = {"keys": False, "values": False} -4176 -4177 -4178class StarMap(Func): -4179 pass -4180 +4173class Levenshtein(Func): +4174 arg_types = { +4175 "this": True, +4176 "expression": False, +4177 "ins_cost": False, +4178 "del_cost": False, +4179 "sub_cost": False, +4180 } 4181 -4182class VarMap(Func): -4183 arg_types = {"keys": True, "values": True} -4184 is_var_len_args = True +4182 +4183class Ln(Func): +4184 pass 4185 4186 -4187# https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html -4188class MatchAgainst(Func): -4189 arg_types = {"this": True, "expressions": True, "modifier": False} +4187class Log(Func): +4188 arg_types = {"this": True, "expression": False} +4189 4190 -4191 -4192class Max(AggFunc): -4193 arg_types = {"this": True, "expressions": False} -4194 is_var_len_args = True -4195 -4196 -4197class MD5(Func): -4198 _sql_names = ["MD5"] -4199 -4200 -4201class Min(AggFunc): -4202 arg_types = {"this": True, "expressions": False} -4203 is_var_len_args = True -4204 +4191class Log2(Func): +4192 pass +4193 +4194 +4195class Log10(Func): +4196 pass +4197 +4198 +4199class LogicalOr(AggFunc): +4200 _sql_names = ["LOGICAL_OR", "BOOL_OR", "BOOLOR_AGG"] +4201 +4202 +4203class LogicalAnd(AggFunc): +4204 _sql_names = ["LOGICAL_AND", "BOOL_AND", "BOOLAND_AGG"] 4205 -4206class Month(Func): -4207 pass -4208 +4206 +4207class Lower(Func): +4208 _sql_names = ["LOWER", "LCASE"] 4209 -4210class Nvl2(Func): -4211 arg_types = {"this": True, "true": True, "false": False} -4212 +4210 +4211class Map(Func): +4212 arg_types = {"keys": False, "values": False} 4213 -4214class Posexplode(Func): -4215 pass -4216 +4214 +4215class StarMap(Func): +4216 pass 4217 -4218class Pow(Binary, Func): -4219 _sql_names = ["POWER", "POW"] -4220 -4221 -4222class PercentileCont(AggFunc): -4223 arg_types = {"this": True, "expression": False} -4224 -4225 -4226class PercentileDisc(AggFunc): -4227 arg_types = {"this": True, "expression": False} -4228 -4229 -4230class Quantile(AggFunc): -4231 arg_types = {"this": True, "quantile": True} -4232 -4233 -4234class ApproxQuantile(Quantile): -4235 arg_types = {"this": True, "quantile": True, "accuracy": False, "weight": False} +4218 +4219class VarMap(Func): +4220 arg_types = {"keys": True, "values": True} +4221 is_var_len_args = True +4222 +4223 @property +4224 def keys(self) -> t.List[Expression]: +4225 return self.args["keys"].expressions +4226 +4227 @property +4228 def values(self) -> t.List[Expression]: +4229 return self.args["values"].expressions +4230 +4231 +4232# https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html +4233class MatchAgainst(Func): +4234 arg_types = {"this": True, "expressions": True, "modifier": False} +4235 4236 -4237 -4238class RangeN(Func): -4239 arg_types = {"this": True, "expressions": True, "each": False} +4237class Max(AggFunc): +4238 arg_types = {"this": True, "expressions": False} +4239 is_var_len_args = True 4240 4241 -4242class ReadCSV(Func): -4243 _sql_names = ["READ_CSV"] -4244 is_var_len_args = True -4245 arg_types = {"this": True, "expressions": False} -4246 -4247 -4248class Reduce(Func): -4249 arg_types = {"this": True, "initial": True, "merge": True, "finish": False} +4242class MD5(Func): +4243 _sql_names = ["MD5"] +4244 +4245 +4246class Min(AggFunc): +4247 arg_types = {"this": True, "expressions": False} +4248 is_var_len_args = True +4249 4250 -4251 -4252class RegexpExtract(Func): -4253 arg_types = { -4254 "this": True, -4255 "expression": True, -4256 "position": False, -4257 "occurrence": False, -4258 "group": False, -4259 } -4260 +4251class Month(Func): +4252 pass +4253 +4254 +4255class Nvl2(Func): +4256 arg_types = {"this": True, "true": True, "false": False} +4257 +4258 +4259class Posexplode(Func): +4260 pass 4261 -4262class RegexpLike(Func): -4263 arg_types = {"this": True, "expression": True, "flag": False} -4264 +4262 +4263class Pow(Binary, Func): +4264 _sql_names = ["POWER", "POW"] 4265 -4266class RegexpILike(Func): -4267 arg_types = {"this": True, "expression": True, "flag": False} -4268 +4266 +4267class PercentileCont(AggFunc): +4268 arg_types = {"this": True, "expression": False} 4269 -4270# https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html -4271# limit is the number of times a pattern is applied -4272class RegexpSplit(Func): -4273 arg_types = {"this": True, "expression": True, "limit": False} +4270 +4271class PercentileDisc(AggFunc): +4272 arg_types = {"this": True, "expression": False} +4273 4274 -4275 -4276class Repeat(Func): -4277 arg_types = {"this": True, "times": True} +4275class Quantile(AggFunc): +4276 arg_types = {"this": True, "quantile": True} +4277 4278 -4279 -4280class Round(Func): -4281 arg_types = {"this": True, "decimals": False} +4279class ApproxQuantile(Quantile): +4280 arg_types = {"this": True, "quantile": True, "accuracy": False, "weight": False} +4281 4282 -4283 -4284class RowNumber(Func): -4285 arg_types: t.Dict[str, t.Any] = {} +4283class RangeN(Func): +4284 arg_types = {"this": True, "expressions": True, "each": False} +4285 4286 -4287 -4288class SafeDivide(Func): -4289 arg_types = {"this": True, "expression": True} -4290 +4287class ReadCSV(Func): +4288 _sql_names = ["READ_CSV"] +4289 is_var_len_args = True +4290 arg_types = {"this": True, "expressions": False} 4291 -4292class SetAgg(AggFunc): -4293 pass -4294 +4292 +4293class Reduce(Func): +4294 arg_types = {"this": True, "initial": True, "merge": True, "finish": False} 4295 -4296class SHA(Func): -4297 _sql_names = ["SHA", "SHA1"] -4298 -4299 -4300class SHA2(Func): -4301 _sql_names = ["SHA2"] -4302 arg_types = {"this": True, "length": False} -4303 -4304 -4305class SortArray(Func): -4306 arg_types = {"this": True, "asc": False} -4307 -4308 -4309class Split(Func): -4310 arg_types = {"this": True, "expression": True, "limit": False} -4311 -4312 -4313# Start may be omitted in the case of postgres -4314# https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6 -4315class Substring(Func): -4316 arg_types = {"this": True, "start": False, "length": False} -4317 -4318 -4319class StandardHash(Func): -4320 arg_types = {"this": True, "expression": False} -4321 -4322 -4323class StrPosition(Func): -4324 arg_types = { -4325 "this": True, -4326 "substr": True, -4327 "position": False, -4328 "instance": False, -4329 } -4330 +4296 +4297class RegexpExtract(Func): +4298 arg_types = { +4299 "this": True, +4300 "expression": True, +4301 "position": False, +4302 "occurrence": False, +4303 "group": False, +4304 } +4305 +4306 +4307class RegexpLike(Func): +4308 arg_types = {"this": True, "expression": True, "flag": False} +4309 +4310 +4311class RegexpILike(Func): +4312 arg_types = {"this": True, "expression": True, "flag": False} +4313 +4314 +4315# https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html +4316# limit is the number of times a pattern is applied +4317class RegexpSplit(Func): +4318 arg_types = {"this": True, "expression": True, "limit": False} +4319 +4320 +4321class Repeat(Func): +4322 arg_types = {"this": True, "times": True} +4323 +4324 +4325class Round(Func): +4326 arg_types = {"this": True, "decimals": False} +4327 +4328 +4329class RowNumber(Func): +4330 arg_types: t.Dict[str, t.Any] = {} 4331 -4332class StrToDate(Func): -4333 arg_types = {"this": True, "format": True} -4334 +4332 +4333class SafeDivide(Func): +4334 arg_types = {"this": True, "expression": True} 4335 -4336class StrToTime(Func): -4337 arg_types = {"this": True, "format": True} -4338 +4336 +4337class SetAgg(AggFunc): +4338 pass 4339 -4340# Spark allows unix_timestamp() -4341# https://spark.apache.org/docs/3.1.3/api/python/reference/api/pyspark.sql.functions.unix_timestamp.html -4342class StrToUnix(Func): -4343 arg_types = {"this": False, "format": False} +4340 +4341class SHA(Func): +4342 _sql_names = ["SHA", "SHA1"] +4343 4344 -4345 -4346class NumberToStr(Func): -4347 arg_types = {"this": True, "format": True} +4345class SHA2(Func): +4346 _sql_names = ["SHA2"] +4347 arg_types = {"this": True, "length": False} 4348 4349 -4350class Struct(Func): -4351 arg_types = {"expressions": True} -4352 is_var_len_args = True +4350class SortArray(Func): +4351 arg_types = {"this": True, "asc": False} +4352 4353 -4354 -4355class StructExtract(Func): -4356 arg_types = {"this": True, "expression": True} +4354class Split(Func): +4355 arg_types = {"this": True, "expression": True, "limit": False} +4356 4357 -4358 -4359class Sum(AggFunc): -4360 pass -4361 +4358# Start may be omitted in the case of postgres +4359# https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6 +4360class Substring(Func): +4361 arg_types = {"this": True, "start": False, "length": False} 4362 -4363class Sqrt(Func): -4364 pass -4365 +4363 +4364class StandardHash(Func): +4365 arg_types = {"this": True, "expression": False} 4366 -4367class Stddev(AggFunc): -4368 pass -4369 -4370 -4371class StddevPop(AggFunc): -4372 pass -4373 -4374 -4375class StddevSamp(AggFunc): -4376 pass -4377 -4378 -4379class TimeToStr(Func): -4380 arg_types = {"this": True, "format": True} -4381 -4382 -4383class TimeToTimeStr(Func): -4384 pass -4385 -4386 -4387class TimeToUnix(Func): -4388 pass +4367 +4368class StrPosition(Func): +4369 arg_types = { +4370 "this": True, +4371 "substr": True, +4372 "position": False, +4373 "instance": False, +4374 } +4375 +4376 +4377class StrToDate(Func): +4378 arg_types = {"this": True, "format": True} +4379 +4380 +4381class StrToTime(Func): +4382 arg_types = {"this": True, "format": True} +4383 +4384 +4385# Spark allows unix_timestamp() +4386# https://spark.apache.org/docs/3.1.3/api/python/reference/api/pyspark.sql.functions.unix_timestamp.html +4387class StrToUnix(Func): +4388 arg_types = {"this": False, "format": False} 4389 4390 -4391class TimeStrToDate(Func): -4392 pass +4391class NumberToStr(Func): +4392 arg_types = {"this": True, "format": True} 4393 4394 -4395class TimeStrToTime(Func): -4396 pass -4397 +4395class Struct(Func): +4396 arg_types = {"expressions": True} +4397 is_var_len_args = True 4398 -4399class TimeStrToUnix(Func): -4400 pass -4401 +4399 +4400class StructExtract(Func): +4401 arg_types = {"this": True, "expression": True} 4402 -4403class Trim(Func): -4404 arg_types = { -4405 "this": True, -4406 "expression": False, -4407 "position": False, -4408 "collation": False, -4409 } +4403 +4404class Sum(AggFunc): +4405 pass +4406 +4407 +4408class Sqrt(Func): +4409 pass 4410 4411 -4412class TsOrDsAdd(Func, TimeUnit): -4413 arg_types = {"this": True, "expression": True, "unit": False} +4412class Stddev(AggFunc): +4413 pass 4414 4415 -4416class TsOrDsToDateStr(Func): +4416class StddevPop(AggFunc): 4417 pass 4418 4419 -4420class TsOrDsToDate(Func): -4421 arg_types = {"this": True, "format": False} +4420class StddevSamp(AggFunc): +4421 pass 4422 4423 -4424class TsOrDiToDi(Func): -4425 pass +4424class TimeToStr(Func): +4425 arg_types = {"this": True, "format": True} 4426 4427 -4428class Unhex(Func): +4428class TimeToTimeStr(Func): 4429 pass 4430 4431 -4432class UnixToStr(Func): -4433 arg_types = {"this": True, "format": False} +4432class TimeToUnix(Func): +4433 pass 4434 4435 -4436# https://prestodb.io/docs/current/functions/datetime.html -4437# presto has weird zone/hours/minutes -4438class UnixToTime(Func): -4439 arg_types = {"this": True, "scale": False, "zone": False, "hours": False, "minutes": False} -4440 -4441 SECONDS = Literal.string("seconds") -4442 MILLIS = Literal.string("millis") -4443 MICROS = Literal.string("micros") -4444 -4445 -4446class UnixToTimeStr(Func): -4447 pass -4448 -4449 -4450class Upper(Func): -4451 _sql_names = ["UPPER", "UCASE"] -4452 -4453 -4454class Variance(AggFunc): -4455 _sql_names = ["VARIANCE", "VARIANCE_SAMP", "VAR_SAMP"] +4436class TimeStrToDate(Func): +4437 pass +4438 +4439 +4440class TimeStrToTime(Func): +4441 pass +4442 +4443 +4444class TimeStrToUnix(Func): +4445 pass +4446 +4447 +4448class Trim(Func): +4449 arg_types = { +4450 "this": True, +4451 "expression": False, +4452 "position": False, +4453 "collation": False, +4454 } +4455 4456 -4457 -4458class VariancePop(AggFunc): -4459 _sql_names = ["VARIANCE_POP", "VAR_POP"] +4457class TsOrDsAdd(Func, TimeUnit): +4458 arg_types = {"this": True, "expression": True, "unit": False} +4459 4460 -4461 -4462class Week(Func): -4463 arg_types = {"this": True, "mode": False} +4461class TsOrDsToDateStr(Func): +4462 pass +4463 4464 -4465 -4466class XMLTable(Func): -4467 arg_types = {"this": True, "passing": False, "columns": False, "by_ref": False} +4465class TsOrDsToDate(Func): +4466 arg_types = {"this": True, "format": False} +4467 4468 -4469 -4470class Year(Func): -4471 pass +4469class TsOrDiToDi(Func): +4470 pass +4471 4472 -4473 -4474class Use(Expression): -4475 arg_types = {"this": True, "kind": False} +4473class Unhex(Func): +4474 pass +4475 4476 -4477 -4478class Merge(Expression): -4479 arg_types = {"this": True, "using": True, "on": True, "expressions": True} +4477class UnixToStr(Func): +4478 arg_types = {"this": True, "format": False} +4479 4480 -4481 -4482class When(Func): -4483 arg_types = {"matched": True, "source": False, "condition": False, "then": True} -4484 +4481# https://prestodb.io/docs/current/functions/datetime.html +4482# presto has weird zone/hours/minutes +4483class UnixToTime(Func): +4484 arg_types = {"this": True, "scale": False, "zone": False, "hours": False, "minutes": False} 4485 -4486# https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html -4487# https://learn.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-ver16 -4488class NextValueFor(Func): -4489 arg_types = {"this": True, "order": False} +4486 SECONDS = Literal.string("seconds") +4487 MILLIS = Literal.string("millis") +4488 MICROS = Literal.string("micros") +4489 4490 -4491 -4492def _norm_arg(arg): -4493 return arg.lower() if type(arg) is str else arg +4491class UnixToTimeStr(Func): +4492 pass +4493 4494 -4495 -4496ALL_FUNCTIONS = subclasses(__name__, Func, (AggFunc, Anonymous, Func)) +4495class Upper(Func): +4496 _sql_names = ["UPPER", "UCASE"] 4497 4498 -4499# Helpers -4500@t.overload -4501def maybe_parse( -4502 sql_or_expression: ExpOrStr, -4503 *, -4504 into: t.Type[E], -4505 dialect: DialectType = None, -4506 prefix: t.Optional[str] = None, -4507 copy: bool = False, -4508 **opts, -4509) -> E: -4510 ... -4511 -4512 -4513@t.overload -4514def maybe_parse( -4515 sql_or_expression: str | E, -4516 *, -4517 into: t.Optional[IntoType] = None, -4518 dialect: DialectType = None, -4519 prefix: t.Optional[str] = None, -4520 copy: bool = False, -4521 **opts, -4522) -> E: -4523 ... -4524 +4499class Variance(AggFunc): +4500 _sql_names = ["VARIANCE", "VARIANCE_SAMP", "VAR_SAMP"] +4501 +4502 +4503class VariancePop(AggFunc): +4504 _sql_names = ["VARIANCE_POP", "VAR_POP"] +4505 +4506 +4507class Week(Func): +4508 arg_types = {"this": True, "mode": False} +4509 +4510 +4511class XMLTable(Func): +4512 arg_types = {"this": True, "passing": False, "columns": False, "by_ref": False} +4513 +4514 +4515class Year(Func): +4516 pass +4517 +4518 +4519class Use(Expression): +4520 arg_types = {"this": True, "kind": False} +4521 +4522 +4523class Merge(Expression): +4524 arg_types = {"this": True, "using": True, "on": True, "expressions": True} 4525 -4526def maybe_parse( -4527 sql_or_expression: ExpOrStr, -4528 *, -4529 into: t.Optional[IntoType] = None, -4530 dialect: DialectType = None, -4531 prefix: t.Optional[str] = None, -4532 copy: bool = False, -4533 **opts, -4534) -> Expression: -4535 """Gracefully handle a possible string or expression. +4526 +4527class When(Func): +4528 arg_types = {"matched": True, "source": False, "condition": False, "then": True} +4529 +4530 +4531# https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html +4532# https://learn.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-ver16 +4533class NextValueFor(Func): +4534 arg_types = {"this": True, "order": False} +4535 4536 -4537 Example: -4538 >>> maybe_parse("1") -4539 (LITERAL this: 1, is_string: False) -4540 >>> maybe_parse(to_identifier("x")) -4541 (IDENTIFIER this: x, quoted: False) +4537def _norm_arg(arg): +4538 return arg.lower() if type(arg) is str else arg +4539 +4540 +4541ALL_FUNCTIONS = subclasses(__name__, Func, (AggFunc, Anonymous, Func)) 4542 -4543 Args: -4544 sql_or_expression: the SQL code string or an expression -4545 into: the SQLGlot Expression to parse into -4546 dialect: the dialect used to parse the input expressions (in the case that an -4547 input expression is a SQL string). -4548 prefix: a string to prefix the sql with before it gets parsed -4549 (automatically includes a space) -4550 copy: whether or not to copy the expression. -4551 **opts: other options to use to parse the input expressions (again, in the case -4552 that an input expression is a SQL string). -4553 -4554 Returns: -4555 Expression: the parsed or given expression. -4556 """ -4557 if isinstance(sql_or_expression, Expression): -4558 if copy: -4559 return sql_or_expression.copy() -4560 return sql_or_expression -4561 -4562 import sqlglot -4563 -4564 sql = str(sql_or_expression) -4565 if prefix: -4566 sql = f"{prefix} {sql}" -4567 return sqlglot.parse_one(sql, read=dialect, into=into, **opts) -4568 +4543 +4544# Helpers +4545@t.overload +4546def maybe_parse( +4547 sql_or_expression: ExpOrStr, +4548 *, +4549 into: t.Type[E], +4550 dialect: DialectType = None, +4551 prefix: t.Optional[str] = None, +4552 copy: bool = False, +4553 **opts, +4554) -> E: +4555 ... +4556 +4557 +4558@t.overload +4559def maybe_parse( +4560 sql_or_expression: str | E, +4561 *, +4562 into: t.Optional[IntoType] = None, +4563 dialect: DialectType = None, +4564 prefix: t.Optional[str] = None, +4565 copy: bool = False, +4566 **opts, +4567) -> E: +4568 ... 4569 -4570def _maybe_copy(instance: E, copy: bool = True) -> E: -4571 return instance.copy() if copy else instance -4572 -4573 -4574def _is_wrong_expression(expression, into): -4575 return isinstance(expression, Expression) and not isinstance(expression, into) -4576 -4577 -4578def _apply_builder( -4579 expression, -4580 instance, -4581 arg, -4582 copy=True, -4583 prefix=None, -4584 into=None, -4585 dialect=None, -4586 **opts, -4587): -4588 if _is_wrong_expression(expression, into): -4589 expression = into(this=expression) -4590 instance = _maybe_copy(instance, copy) -4591 expression = maybe_parse( -4592 sql_or_expression=expression, -4593 prefix=prefix, -4594 into=into, -4595 dialect=dialect, -4596 **opts, -4597 ) -4598 instance.set(arg, expression) -4599 return instance -4600 -4601 -4602def _apply_child_list_builder( -4603 *expressions, -4604 instance, -4605 arg, -4606 append=True, -4607 copy=True, -4608 prefix=None, -4609 into=None, -4610 dialect=None, -4611 properties=None, -4612 **opts, -4613): -4614 instance = _maybe_copy(instance, copy) -4615 parsed = [] -4616 for expression in expressions: -4617 if expression is not None: -4618 if _is_wrong_expression(expression, into): -4619 expression = into(expressions=[expression]) -4620 -4621 expression = maybe_parse( -4622 expression, -4623 into=into, -4624 dialect=dialect, -4625 prefix=prefix, -4626 **opts, -4627 ) -4628 parsed.extend(expression.expressions) -4629 -4630 existing = instance.args.get(arg) -4631 if append and existing: -4632 parsed = existing.expressions + parsed -4633 -4634 child = into(expressions=parsed) -4635 for k, v in (properties or {}).items(): -4636 child.set(k, v) -4637 instance.set(arg, child) -4638 -4639 return instance -4640 -4641 -4642def _apply_list_builder( -4643 *expressions, -4644 instance, -4645 arg, -4646 append=True, -4647 copy=True, -4648 prefix=None, -4649 into=None, -4650 dialect=None, -4651 **opts, -4652): -4653 inst = _maybe_copy(instance, copy) -4654 -4655 expressions = [ -4656 maybe_parse( -4657 sql_or_expression=expression, -4658 into=into, -4659 prefix=prefix, -4660 dialect=dialect, -4661 **opts, -4662 ) -4663 for expression in expressions -4664 if expression is not None -4665 ] -4666 -4667 existing_expressions = inst.args.get(arg) -4668 if append and existing_expressions: -4669 expressions = existing_expressions + expressions -4670 -4671 inst.set(arg, expressions) -4672 return inst -4673 -4674 -4675def _apply_conjunction_builder( -4676 *expressions, -4677 instance, -4678 arg, -4679 into=None, -4680 append=True, -4681 copy=True, -4682 dialect=None, -4683 **opts, -4684): -4685 expressions = [exp for exp in expressions if exp is not None and exp != ""] -4686 if not expressions: -4687 return instance -4688 -4689 inst = _maybe_copy(instance, copy) +4570 +4571def maybe_parse( +4572 sql_or_expression: ExpOrStr, +4573 *, +4574 into: t.Optional[IntoType] = None, +4575 dialect: DialectType = None, +4576 prefix: t.Optional[str] = None, +4577 copy: bool = False, +4578 **opts, +4579) -> Expression: +4580 """Gracefully handle a possible string or expression. +4581 +4582 Example: +4583 >>> maybe_parse("1") +4584 (LITERAL this: 1, is_string: False) +4585 >>> maybe_parse(to_identifier("x")) +4586 (IDENTIFIER this: x, quoted: False) +4587 +4588 Args: +4589 sql_or_expression: the SQL code string or an expression +4590 into: the SQLGlot Expression to parse into +4591 dialect: the dialect used to parse the input expressions (in the case that an +4592 input expression is a SQL string). +4593 prefix: a string to prefix the sql with before it gets parsed +4594 (automatically includes a space) +4595 copy: whether or not to copy the expression. +4596 **opts: other options to use to parse the input expressions (again, in the case +4597 that an input expression is a SQL string). +4598 +4599 Returns: +4600 Expression: the parsed or given expression. +4601 """ +4602 if isinstance(sql_or_expression, Expression): +4603 if copy: +4604 return sql_or_expression.copy() +4605 return sql_or_expression +4606 +4607 if sql_or_expression is None: +4608 raise ParseError(f"SQL cannot be None") +4609 +4610 import sqlglot +4611 +4612 sql = str(sql_or_expression) +4613 if prefix: +4614 sql = f"{prefix} {sql}" +4615 +4616 return sqlglot.parse_one(sql, read=dialect, into=into, **opts) +4617 +4618 +4619def _maybe_copy(instance: E, copy: bool = True) -> E: +4620 return instance.copy() if copy else instance +4621 +4622 +4623def _is_wrong_expression(expression, into): +4624 return isinstance(expression, Expression) and not isinstance(expression, into) +4625 +4626 +4627def _apply_builder( +4628 expression, +4629 instance, +4630 arg, +4631 copy=True, +4632 prefix=None, +4633 into=None, +4634 dialect=None, +4635 **opts, +4636): +4637 if _is_wrong_expression(expression, into): +4638 expression = into(this=expression) +4639 instance = _maybe_copy(instance, copy) +4640 expression = maybe_parse( +4641 sql_or_expression=expression, +4642 prefix=prefix, +4643 into=into, +4644 dialect=dialect, +4645 **opts, +4646 ) +4647 instance.set(arg, expression) +4648 return instance +4649 +4650 +4651def _apply_child_list_builder( +4652 *expressions, +4653 instance, +4654 arg, +4655 append=True, +4656 copy=True, +4657 prefix=None, +4658 into=None, +4659 dialect=None, +4660 properties=None, +4661 **opts, +4662): +4663 instance = _maybe_copy(instance, copy) +4664 parsed = [] +4665 for expression in expressions: +4666 if expression is not None: +4667 if _is_wrong_expression(expression, into): +4668 expression = into(expressions=[expression]) +4669 +4670 expression = maybe_parse( +4671 expression, +4672 into=into, +4673 dialect=dialect, +4674 prefix=prefix, +4675 **opts, +4676 ) +4677 parsed.extend(expression.expressions) +4678 +4679 existing = instance.args.get(arg) +4680 if append and existing: +4681 parsed = existing.expressions + parsed +4682 +4683 child = into(expressions=parsed) +4684 for k, v in (properties or {}).items(): +4685 child.set(k, v) +4686 instance.set(arg, child) +4687 +4688 return instance +4689 4690 -4691 existing = inst.args.get(arg) -4692 if append and existing is not None: -4693 expressions = [existing.this if into else existing] + list(expressions) -4694 -4695 node = and_(*expressions, dialect=dialect, copy=copy, **opts) -4696 -4697 inst.set(arg, into(this=node) if into else node) -4698 return inst -4699 -4700 -4701def _apply_cte_builder( -4702 instance: E, -4703 alias: ExpOrStr, -4704 as_: ExpOrStr, -4705 recursive: t.Optional[bool] = None, -4706 append: bool = True, -4707 dialect: DialectType = None, -4708 copy: bool = True, -4709 **opts, -4710) -> E: -4711 alias_expression = maybe_parse(alias, dialect=dialect, into=TableAlias, **opts) -4712 as_expression = maybe_parse(as_, dialect=dialect, **opts) -4713 cte = CTE(this=as_expression, alias=alias_expression) -4714 return _apply_child_list_builder( -4715 cte, -4716 instance=instance, -4717 arg="with", -4718 append=append, -4719 copy=copy, -4720 into=With, -4721 properties={"recursive": recursive or False}, -4722 ) +4691def _apply_list_builder( +4692 *expressions, +4693 instance, +4694 arg, +4695 append=True, +4696 copy=True, +4697 prefix=None, +4698 into=None, +4699 dialect=None, +4700 **opts, +4701): +4702 inst = _maybe_copy(instance, copy) +4703 +4704 expressions = [ +4705 maybe_parse( +4706 sql_or_expression=expression, +4707 into=into, +4708 prefix=prefix, +4709 dialect=dialect, +4710 **opts, +4711 ) +4712 for expression in expressions +4713 if expression is not None +4714 ] +4715 +4716 existing_expressions = inst.args.get(arg) +4717 if append and existing_expressions: +4718 expressions = existing_expressions + expressions +4719 +4720 inst.set(arg, expressions) +4721 return inst +4722 4723 -4724 -4725def _combine( -4726 expressions: t.Sequence[t.Optional[ExpOrStr]], -4727 operator: t.Type[Connector], -4728 dialect: DialectType = None, -4729 copy: bool = True, -4730 **opts, -4731) -> Expression: -4732 conditions = [ -4733 condition(expression, dialect=dialect, copy=copy, **opts) -4734 for expression in expressions -4735 if expression is not None -4736 ] +4724def _apply_conjunction_builder( +4725 *expressions, +4726 instance, +4727 arg, +4728 into=None, +4729 append=True, +4730 copy=True, +4731 dialect=None, +4732 **opts, +4733): +4734 expressions = [exp for exp in expressions if exp is not None and exp != ""] +4735 if not expressions: +4736 return instance 4737 -4738 this, *rest = conditions -4739 if rest: -4740 this = _wrap(this, Connector) -4741 for expression in rest: -4742 this = operator(this=this, expression=_wrap(expression, Connector)) +4738 inst = _maybe_copy(instance, copy) +4739 +4740 existing = inst.args.get(arg) +4741 if append and existing is not None: +4742 expressions = [existing.this if into else existing] + list(expressions) 4743 -4744 return this +4744 node = and_(*expressions, dialect=dialect, copy=copy, **opts) 4745 -4746 -4747def _wrap(expression: E, kind: t.Type[Expression]) -> E | Paren: -4748 return Paren(this=expression) if isinstance(expression, kind) else expression +4746 inst.set(arg, into(this=node) if into else node) +4747 return inst +4748 4749 -4750 -4751def union( -4752 left: ExpOrStr, right: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts -4753) -> Union: -4754 """ -4755 Initializes a syntax tree from one UNION expression. -4756 -4757 Example: -4758 >>> union("SELECT * FROM foo", "SELECT * FROM bla").sql() -4759 'SELECT * FROM foo UNION SELECT * FROM bla' -4760 -4761 Args: -4762 left: the SQL code string corresponding to the left-hand side. -4763 If an `Expression` instance is passed, it will be used as-is. -4764 right: the SQL code string corresponding to the right-hand side. -4765 If an `Expression` instance is passed, it will be used as-is. -4766 distinct: set the DISTINCT flag if and only if this is true. -4767 dialect: the dialect used to parse the input expression. -4768 opts: other options to use to parse the input expressions. -4769 -4770 Returns: -4771 The new Union instance. -4772 """ -4773 left = maybe_parse(sql_or_expression=left, dialect=dialect, **opts) -4774 right = maybe_parse(sql_or_expression=right, dialect=dialect, **opts) -4775 -4776 return Union(this=left, expression=right, distinct=distinct) -4777 -4778 -4779def intersect( -4780 left: ExpOrStr, right: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts -4781) -> Intersect: -4782 """ -4783 Initializes a syntax tree from one INTERSECT expression. -4784 -4785 Example: -4786 >>> intersect("SELECT * FROM foo", "SELECT * FROM bla").sql() -4787 'SELECT * FROM foo INTERSECT SELECT * FROM bla' -4788 -4789 Args: -4790 left: the SQL code string corresponding to the left-hand side. -4791 If an `Expression` instance is passed, it will be used as-is. -4792 right: the SQL code string corresponding to the right-hand side. -4793 If an `Expression` instance is passed, it will be used as-is. -4794 distinct: set the DISTINCT flag if and only if this is true. -4795 dialect: the dialect used to parse the input expression. -4796 opts: other options to use to parse the input expressions. -4797 -4798 Returns: -4799 The new Intersect instance. -4800 """ -4801 left = maybe_parse(sql_or_expression=left, dialect=dialect, **opts) -4802 right = maybe_parse(sql_or_expression=right, dialect=dialect, **opts) -4803 -4804 return Intersect(this=left, expression=right, distinct=distinct) +4750def _apply_cte_builder( +4751 instance: E, +4752 alias: ExpOrStr, +4753 as_: ExpOrStr, +4754 recursive: t.Optional[bool] = None, +4755 append: bool = True, +4756 dialect: DialectType = None, +4757 copy: bool = True, +4758 **opts, +4759) -> E: +4760 alias_expression = maybe_parse(alias, dialect=dialect, into=TableAlias, **opts) +4761 as_expression = maybe_parse(as_, dialect=dialect, **opts) +4762 cte = CTE(this=as_expression, alias=alias_expression) +4763 return _apply_child_list_builder( +4764 cte, +4765 instance=instance, +4766 arg="with", +4767 append=append, +4768 copy=copy, +4769 into=With, +4770 properties={"recursive": recursive or False}, +4771 ) +4772 +4773 +4774def _combine( +4775 expressions: t.Sequence[t.Optional[ExpOrStr]], +4776 operator: t.Type[Connector], +4777 dialect: DialectType = None, +4778 copy: bool = True, +4779 **opts, +4780) -> Expression: +4781 conditions = [ +4782 condition(expression, dialect=dialect, copy=copy, **opts) +4783 for expression in expressions +4784 if expression is not None +4785 ] +4786 +4787 this, *rest = conditions +4788 if rest: +4789 this = _wrap(this, Connector) +4790 for expression in rest: +4791 this = operator(this=this, expression=_wrap(expression, Connector)) +4792 +4793 return this +4794 +4795 +4796def _wrap(expression: E, kind: t.Type[Expression]) -> E | Paren: +4797 return Paren(this=expression) if isinstance(expression, kind) else expression +4798 +4799 +4800def union( +4801 left: ExpOrStr, right: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts +4802) -> Union: +4803 """ +4804 Initializes a syntax tree from one UNION expression. 4805 -4806 -4807def except_( -4808 left: ExpOrStr, right: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts -4809) -> Except: -4810 """ -4811 Initializes a syntax tree from one EXCEPT expression. -4812 -4813 Example: -4814 >>> except_("SELECT * FROM foo", "SELECT * FROM bla").sql() -4815 'SELECT * FROM foo EXCEPT SELECT * FROM bla' -4816 -4817 Args: -4818 left: the SQL code string corresponding to the left-hand side. -4819 If an `Expression` instance is passed, it will be used as-is. -4820 right: the SQL code string corresponding to the right-hand side. -4821 If an `Expression` instance is passed, it will be used as-is. -4822 distinct: set the DISTINCT flag if and only if this is true. -4823 dialect: the dialect used to parse the input expression. -4824 opts: other options to use to parse the input expressions. -4825 -4826 Returns: -4827 The new Except instance. -4828 """ -4829 left = maybe_parse(sql_or_expression=left, dialect=dialect, **opts) -4830 right = maybe_parse(sql_or_expression=right, dialect=dialect, **opts) -4831 -4832 return Except(this=left, expression=right, distinct=distinct) +4806 Example: +4807 >>> union("SELECT * FROM foo", "SELECT * FROM bla").sql() +4808 'SELECT * FROM foo UNION SELECT * FROM bla' +4809 +4810 Args: +4811 left: the SQL code string corresponding to the left-hand side. +4812 If an `Expression` instance is passed, it will be used as-is. +4813 right: the SQL code string corresponding to the right-hand side. +4814 If an `Expression` instance is passed, it will be used as-is. +4815 distinct: set the DISTINCT flag if and only if this is true. +4816 dialect: the dialect used to parse the input expression. +4817 opts: other options to use to parse the input expressions. +4818 +4819 Returns: +4820 The new Union instance. +4821 """ +4822 left = maybe_parse(sql_or_expression=left, dialect=dialect, **opts) +4823 right = maybe_parse(sql_or_expression=right, dialect=dialect, **opts) +4824 +4825 return Union(this=left, expression=right, distinct=distinct) +4826 +4827 +4828def intersect( +4829 left: ExpOrStr, right: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts +4830) -> Intersect: +4831 """ +4832 Initializes a syntax tree from one INTERSECT expression. 4833 -4834 -4835def select(*expressions: ExpOrStr, dialect: DialectType = None, **opts) -> Select: -4836 """ -4837 Initializes a syntax tree from one or multiple SELECT expressions. -4838 -4839 Example: -4840 >>> select("col1", "col2").from_("tbl").sql() -4841 'SELECT col1, col2 FROM tbl' -4842 -4843 Args: -4844 *expressions: the SQL code string to parse as the expressions of a -4845 SELECT statement. If an Expression instance is passed, this is used as-is. -4846 dialect: the dialect used to parse the input expressions (in the case that an -4847 input expression is a SQL string). -4848 **opts: other options to use to parse the input expressions (again, in the case -4849 that an input expression is a SQL string). -4850 -4851 Returns: -4852 Select: the syntax tree for the SELECT statement. -4853 """ -4854 return Select().select(*expressions, dialect=dialect, **opts) +4834 Example: +4835 >>> intersect("SELECT * FROM foo", "SELECT * FROM bla").sql() +4836 'SELECT * FROM foo INTERSECT SELECT * FROM bla' +4837 +4838 Args: +4839 left: the SQL code string corresponding to the left-hand side. +4840 If an `Expression` instance is passed, it will be used as-is. +4841 right: the SQL code string corresponding to the right-hand side. +4842 If an `Expression` instance is passed, it will be used as-is. +4843 distinct: set the DISTINCT flag if and only if this is true. +4844 dialect: the dialect used to parse the input expression. +4845 opts: other options to use to parse the input expressions. +4846 +4847 Returns: +4848 The new Intersect instance. +4849 """ +4850 left = maybe_parse(sql_or_expression=left, dialect=dialect, **opts) +4851 right = maybe_parse(sql_or_expression=right, dialect=dialect, **opts) +4852 +4853 return Intersect(this=left, expression=right, distinct=distinct) +4854 4855 -4856 -4857def from_(expression: ExpOrStr, dialect: DialectType = None, **opts) -> Select: -4858 """ -4859 Initializes a syntax tree from a FROM expression. -4860 -4861 Example: -4862 >>> from_("tbl").select("col1", "col2").sql() -4863 'SELECT col1, col2 FROM tbl' -4864 -4865 Args: -4866 *expression: the SQL code string to parse as the FROM expressions of a -4867 SELECT statement. If an Expression instance is passed, this is used as-is. -4868 dialect: the dialect used to parse the input expression (in the case that the -4869 input expression is a SQL string). -4870 **opts: other options to use to parse the input expressions (again, in the case -4871 that the input expression is a SQL string). -4872 -4873 Returns: -4874 Select: the syntax tree for the SELECT statement. -4875 """ -4876 return Select().from_(expression, dialect=dialect, **opts) -4877 -4878 -4879def update( -4880 table: str | Table, -4881 properties: dict, -4882 where: t.Optional[ExpOrStr] = None, -4883 from_: t.Optional[ExpOrStr] = None, -4884 dialect: DialectType = None, -4885 **opts, -4886) -> Update: -4887 """ -4888 Creates an update statement. -4889 -4890 Example: -4891 >>> update("my_table", {"x": 1, "y": "2", "z": None}, from_="baz", where="id > 1").sql() -4892 "UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1" -4893 -4894 Args: -4895 *properties: dictionary of properties to set which are -4896 auto converted to sql objects eg None -> NULL -4897 where: sql conditional parsed into a WHERE statement -4898 from_: sql statement parsed into a FROM statement -4899 dialect: the dialect used to parse the input expressions. -4900 **opts: other options to use to parse the input expressions. -4901 -4902 Returns: -4903 Update: the syntax tree for the UPDATE statement. -4904 """ -4905 update_expr = Update(this=maybe_parse(table, into=Table, dialect=dialect)) -4906 update_expr.set( -4907 "expressions", -4908 [ -4909 EQ(this=maybe_parse(k, dialect=dialect, **opts), expression=convert(v)) -4910 for k, v in properties.items() -4911 ], -4912 ) -4913 if from_: -4914 update_expr.set( -4915 "from", -4916 maybe_parse(from_, into=From, dialect=dialect, prefix="FROM", **opts), -4917 ) -4918 if isinstance(where, Condition): -4919 where = Where(this=where) -4920 if where: -4921 update_expr.set( -4922 "where", -4923 maybe_parse(where, into=Where, dialect=dialect, prefix="WHERE", **opts), -4924 ) -4925 return update_expr +4856def except_( +4857 left: ExpOrStr, right: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts +4858) -> Except: +4859 """ +4860 Initializes a syntax tree from one EXCEPT expression. +4861 +4862 Example: +4863 >>> except_("SELECT * FROM foo", "SELECT * FROM bla").sql() +4864 'SELECT * FROM foo EXCEPT SELECT * FROM bla' +4865 +4866 Args: +4867 left: the SQL code string corresponding to the left-hand side. +4868 If an `Expression` instance is passed, it will be used as-is. +4869 right: the SQL code string corresponding to the right-hand side. +4870 If an `Expression` instance is passed, it will be used as-is. +4871 distinct: set the DISTINCT flag if and only if this is true. +4872 dialect: the dialect used to parse the input expression. +4873 opts: other options to use to parse the input expressions. +4874 +4875 Returns: +4876 The new Except instance. +4877 """ +4878 left = maybe_parse(sql_or_expression=left, dialect=dialect, **opts) +4879 right = maybe_parse(sql_or_expression=right, dialect=dialect, **opts) +4880 +4881 return Except(this=left, expression=right, distinct=distinct) +4882 +4883 +4884def select(*expressions: ExpOrStr, dialect: DialectType = None, **opts) -> Select: +4885 """ +4886 Initializes a syntax tree from one or multiple SELECT expressions. +4887 +4888 Example: +4889 >>> select("col1", "col2").from_("tbl").sql() +4890 'SELECT col1, col2 FROM tbl' +4891 +4892 Args: +4893 *expressions: the SQL code string to parse as the expressions of a +4894 SELECT statement. If an Expression instance is passed, this is used as-is. +4895 dialect: the dialect used to parse the input expressions (in the case that an +4896 input expression is a SQL string). +4897 **opts: other options to use to parse the input expressions (again, in the case +4898 that an input expression is a SQL string). +4899 +4900 Returns: +4901 Select: the syntax tree for the SELECT statement. +4902 """ +4903 return Select().select(*expressions, dialect=dialect, **opts) +4904 +4905 +4906def from_(expression: ExpOrStr, dialect: DialectType = None, **opts) -> Select: +4907 """ +4908 Initializes a syntax tree from a FROM expression. +4909 +4910 Example: +4911 >>> from_("tbl").select("col1", "col2").sql() +4912 'SELECT col1, col2 FROM tbl' +4913 +4914 Args: +4915 *expression: the SQL code string to parse as the FROM expressions of a +4916 SELECT statement. If an Expression instance is passed, this is used as-is. +4917 dialect: the dialect used to parse the input expression (in the case that the +4918 input expression is a SQL string). +4919 **opts: other options to use to parse the input expressions (again, in the case +4920 that the input expression is a SQL string). +4921 +4922 Returns: +4923 Select: the syntax tree for the SELECT statement. +4924 """ +4925 return Select().from_(expression, dialect=dialect, **opts) 4926 4927 -4928def delete( -4929 table: ExpOrStr, -4930 where: t.Optional[ExpOrStr] = None, -4931 returning: t.Optional[ExpOrStr] = None, -4932 dialect: DialectType = None, -4933 **opts, -4934) -> Delete: -4935 """ -4936 Builds a delete statement. -4937 -4938 Example: -4939 >>> delete("my_table", where="id > 1").sql() -4940 'DELETE FROM my_table WHERE id > 1' -4941 -4942 Args: -4943 where: sql conditional parsed into a WHERE statement -4944 returning: sql conditional parsed into a RETURNING statement -4945 dialect: the dialect used to parse the input expressions. -4946 **opts: other options to use to parse the input expressions. -4947 -4948 Returns: -4949 Delete: the syntax tree for the DELETE statement. -4950 """ -4951 delete_expr = Delete().delete(table, dialect=dialect, copy=False, **opts) -4952 if where: -4953 delete_expr = delete_expr.where(where, dialect=dialect, copy=False, **opts) -4954 if returning: -4955 delete_expr = delete_expr.returning(returning, dialect=dialect, copy=False, **opts) -4956 return delete_expr -4957 -4958 -4959def insert( -4960 expression: ExpOrStr, -4961 into: ExpOrStr, -4962 columns: t.Optional[t.Sequence[ExpOrStr]] = None, -4963 overwrite: t.Optional[bool] = None, -4964 dialect: DialectType = None, -4965 copy: bool = True, -4966 **opts, -4967) -> Insert: -4968 """ -4969 Builds an INSERT statement. -4970 -4971 Example: -4972 >>> insert("VALUES (1, 2, 3)", "tbl").sql() -4973 'INSERT INTO tbl VALUES (1, 2, 3)' -4974 -4975 Args: -4976 expression: the sql string or expression of the INSERT statement -4977 into: the tbl to insert data to. -4978 columns: optionally the table's column names. -4979 overwrite: whether to INSERT OVERWRITE or not. -4980 dialect: the dialect used to parse the input expressions. -4981 copy: whether or not to copy the expression. -4982 **opts: other options to use to parse the input expressions. -4983 -4984 Returns: -4985 Insert: the syntax tree for the INSERT statement. -4986 """ -4987 expr = maybe_parse(expression, dialect=dialect, copy=copy, **opts) -4988 this: Table | Schema = maybe_parse(into, into=Table, dialect=dialect, copy=copy, **opts) -4989 -4990 if columns: -4991 this = _apply_list_builder( -4992 *columns, -4993 instance=Schema(this=this), -4994 arg="expressions", -4995 into=Identifier, -4996 copy=False, -4997 dialect=dialect, -4998 **opts, -4999 ) -5000 -5001 return Insert(this=this, expression=expr, overwrite=overwrite) -5002 -5003 -5004def condition( -5005 expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts -5006) -> Condition: -5007 """ -5008 Initialize a logical condition expression. -5009 -5010 Example: -5011 >>> condition("x=1").sql() -5012 'x = 1' -5013 -5014 This is helpful for composing larger logical syntax trees: -5015 >>> where = condition("x=1") -5016 >>> where = where.and_("y=1") -5017 >>> Select().from_("tbl").select("*").where(where).sql() -5018 'SELECT * FROM tbl WHERE x = 1 AND y = 1' +4928def update( +4929 table: str | Table, +4930 properties: dict, +4931 where: t.Optional[ExpOrStr] = None, +4932 from_: t.Optional[ExpOrStr] = None, +4933 dialect: DialectType = None, +4934 **opts, +4935) -> Update: +4936 """ +4937 Creates an update statement. +4938 +4939 Example: +4940 >>> update("my_table", {"x": 1, "y": "2", "z": None}, from_="baz", where="id > 1").sql() +4941 "UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1" +4942 +4943 Args: +4944 *properties: dictionary of properties to set which are +4945 auto converted to sql objects eg None -> NULL +4946 where: sql conditional parsed into a WHERE statement +4947 from_: sql statement parsed into a FROM statement +4948 dialect: the dialect used to parse the input expressions. +4949 **opts: other options to use to parse the input expressions. +4950 +4951 Returns: +4952 Update: the syntax tree for the UPDATE statement. +4953 """ +4954 update_expr = Update(this=maybe_parse(table, into=Table, dialect=dialect)) +4955 update_expr.set( +4956 "expressions", +4957 [ +4958 EQ(this=maybe_parse(k, dialect=dialect, **opts), expression=convert(v)) +4959 for k, v in properties.items() +4960 ], +4961 ) +4962 if from_: +4963 update_expr.set( +4964 "from", +4965 maybe_parse(from_, into=From, dialect=dialect, prefix="FROM", **opts), +4966 ) +4967 if isinstance(where, Condition): +4968 where = Where(this=where) +4969 if where: +4970 update_expr.set( +4971 "where", +4972 maybe_parse(where, into=Where, dialect=dialect, prefix="WHERE", **opts), +4973 ) +4974 return update_expr +4975 +4976 +4977def delete( +4978 table: ExpOrStr, +4979 where: t.Optional[ExpOrStr] = None, +4980 returning: t.Optional[ExpOrStr] = None, +4981 dialect: DialectType = None, +4982 **opts, +4983) -> Delete: +4984 """ +4985 Builds a delete statement. +4986 +4987 Example: +4988 >>> delete("my_table", where="id > 1").sql() +4989 'DELETE FROM my_table WHERE id > 1' +4990 +4991 Args: +4992 where: sql conditional parsed into a WHERE statement +4993 returning: sql conditional parsed into a RETURNING statement +4994 dialect: the dialect used to parse the input expressions. +4995 **opts: other options to use to parse the input expressions. +4996 +4997 Returns: +4998 Delete: the syntax tree for the DELETE statement. +4999 """ +5000 delete_expr = Delete().delete(table, dialect=dialect, copy=False, **opts) +5001 if where: +5002 delete_expr = delete_expr.where(where, dialect=dialect, copy=False, **opts) +5003 if returning: +5004 delete_expr = delete_expr.returning(returning, dialect=dialect, copy=False, **opts) +5005 return delete_expr +5006 +5007 +5008def insert( +5009 expression: ExpOrStr, +5010 into: ExpOrStr, +5011 columns: t.Optional[t.Sequence[ExpOrStr]] = None, +5012 overwrite: t.Optional[bool] = None, +5013 dialect: DialectType = None, +5014 copy: bool = True, +5015 **opts, +5016) -> Insert: +5017 """ +5018 Builds an INSERT statement. 5019 -5020 Args: -5021 *expression: the SQL code string to parse. -5022 If an Expression instance is passed, this is used as-is. -5023 dialect: the dialect used to parse the input expression (in the case that the -5024 input expression is a SQL string). -5025 copy: Whether or not to copy `expression` (only applies to expressions). -5026 **opts: other options to use to parse the input expressions (again, in the case -5027 that the input expression is a SQL string). -5028 -5029 Returns: -5030 The new Condition instance -5031 """ -5032 return maybe_parse( -5033 expression, -5034 into=Condition, -5035 dialect=dialect, -5036 copy=copy, -5037 **opts, -5038 ) -5039 -5040 -5041def and_( -5042 *expressions: t.Optional[ExpOrStr], dialect: DialectType = None, copy: bool = True, **opts -5043) -> Condition: -5044 """ -5045 Combine multiple conditions with an AND logical operator. -5046 -5047 Example: -5048 >>> and_("x=1", and_("y=1", "z=1")).sql() -5049 'x = 1 AND (y = 1 AND z = 1)' -5050 -5051 Args: -5052 *expressions: the SQL code strings to parse. -5053 If an Expression instance is passed, this is used as-is. -5054 dialect: the dialect used to parse the input expression. -5055 copy: whether or not to copy `expressions` (only applies to Expressions). -5056 **opts: other options to use to parse the input expressions. -5057 -5058 Returns: -5059 And: the new condition -5060 """ -5061 return t.cast(Condition, _combine(expressions, And, dialect, copy=copy, **opts)) +5020 Example: +5021 >>> insert("VALUES (1, 2, 3)", "tbl").sql() +5022 'INSERT INTO tbl VALUES (1, 2, 3)' +5023 +5024 Args: +5025 expression: the sql string or expression of the INSERT statement +5026 into: the tbl to insert data to. +5027 columns: optionally the table's column names. +5028 overwrite: whether to INSERT OVERWRITE or not. +5029 dialect: the dialect used to parse the input expressions. +5030 copy: whether or not to copy the expression. +5031 **opts: other options to use to parse the input expressions. +5032 +5033 Returns: +5034 Insert: the syntax tree for the INSERT statement. +5035 """ +5036 expr = maybe_parse(expression, dialect=dialect, copy=copy, **opts) +5037 this: Table | Schema = maybe_parse(into, into=Table, dialect=dialect, copy=copy, **opts) +5038 +5039 if columns: +5040 this = _apply_list_builder( +5041 *columns, +5042 instance=Schema(this=this), +5043 arg="expressions", +5044 into=Identifier, +5045 copy=False, +5046 dialect=dialect, +5047 **opts, +5048 ) +5049 +5050 return Insert(this=this, expression=expr, overwrite=overwrite) +5051 +5052 +5053def condition( +5054 expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts +5055) -> Condition: +5056 """ +5057 Initialize a logical condition expression. +5058 +5059 Example: +5060 >>> condition("x=1").sql() +5061 'x = 1' 5062 -5063 -5064def or_( -5065 *expressions: t.Optional[ExpOrStr], dialect: DialectType = None, copy: bool = True, **opts -5066) -> Condition: -5067 """ -5068 Combine multiple conditions with an OR logical operator. -5069 -5070 Example: -5071 >>> or_("x=1", or_("y=1", "z=1")).sql() -5072 'x = 1 OR (y = 1 OR z = 1)' -5073 -5074 Args: -5075 *expressions: the SQL code strings to parse. -5076 If an Expression instance is passed, this is used as-is. -5077 dialect: the dialect used to parse the input expression. -5078 copy: whether or not to copy `expressions` (only applies to Expressions). -5079 **opts: other options to use to parse the input expressions. -5080 -5081 Returns: -5082 Or: the new condition -5083 """ -5084 return t.cast(Condition, _combine(expressions, Or, dialect, copy=copy, **opts)) -5085 -5086 -5087def not_(expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts) -> Not: -5088 """ -5089 Wrap a condition with a NOT operator. -5090 -5091 Example: -5092 >>> not_("this_suit='black'").sql() -5093 "NOT this_suit = 'black'" -5094 -5095 Args: -5096 expression: the SQL code string to parse. -5097 If an Expression instance is passed, this is used as-is. -5098 dialect: the dialect used to parse the input expression. -5099 copy: whether to copy the expression or not. -5100 **opts: other options to use to parse the input expressions. -5101 -5102 Returns: -5103 The new condition. -5104 """ -5105 this = condition( -5106 expression, -5107 dialect=dialect, -5108 copy=copy, -5109 **opts, -5110 ) -5111 return Not(this=_wrap(this, Connector)) +5063 This is helpful for composing larger logical syntax trees: +5064 >>> where = condition("x=1") +5065 >>> where = where.and_("y=1") +5066 >>> Select().from_("tbl").select("*").where(where).sql() +5067 'SELECT * FROM tbl WHERE x = 1 AND y = 1' +5068 +5069 Args: +5070 *expression: the SQL code string to parse. +5071 If an Expression instance is passed, this is used as-is. +5072 dialect: the dialect used to parse the input expression (in the case that the +5073 input expression is a SQL string). +5074 copy: Whether or not to copy `expression` (only applies to expressions). +5075 **opts: other options to use to parse the input expressions (again, in the case +5076 that the input expression is a SQL string). +5077 +5078 Returns: +5079 The new Condition instance +5080 """ +5081 return maybe_parse( +5082 expression, +5083 into=Condition, +5084 dialect=dialect, +5085 copy=copy, +5086 **opts, +5087 ) +5088 +5089 +5090def and_( +5091 *expressions: t.Optional[ExpOrStr], dialect: DialectType = None, copy: bool = True, **opts +5092) -> Condition: +5093 """ +5094 Combine multiple conditions with an AND logical operator. +5095 +5096 Example: +5097 >>> and_("x=1", and_("y=1", "z=1")).sql() +5098 'x = 1 AND (y = 1 AND z = 1)' +5099 +5100 Args: +5101 *expressions: the SQL code strings to parse. +5102 If an Expression instance is passed, this is used as-is. +5103 dialect: the dialect used to parse the input expression. +5104 copy: whether or not to copy `expressions` (only applies to Expressions). +5105 **opts: other options to use to parse the input expressions. +5106 +5107 Returns: +5108 And: the new condition +5109 """ +5110 return t.cast(Condition, _combine(expressions, And, dialect, copy=copy, **opts)) +5111 5112 -5113 -5114def paren(expression: ExpOrStr, copy: bool = True) -> Paren: -5115 """ -5116 Wrap an expression in parentheses. -5117 -5118 Example: -5119 >>> paren("5 + 3").sql() -5120 '(5 + 3)' -5121 -5122 Args: -5123 expression: the SQL code string to parse. -5124 If an Expression instance is passed, this is used as-is. -5125 copy: whether to copy the expression or not. -5126 -5127 Returns: -5128 The wrapped expression. -5129 """ -5130 return Paren(this=maybe_parse(expression, copy=copy)) -5131 -5132 -5133SAFE_IDENTIFIER_RE = re.compile(r"^[_a-zA-Z][\w]*$") +5113def or_( +5114 *expressions: t.Optional[ExpOrStr], dialect: DialectType = None, copy: bool = True, **opts +5115) -> Condition: +5116 """ +5117 Combine multiple conditions with an OR logical operator. +5118 +5119 Example: +5120 >>> or_("x=1", or_("y=1", "z=1")).sql() +5121 'x = 1 OR (y = 1 OR z = 1)' +5122 +5123 Args: +5124 *expressions: the SQL code strings to parse. +5125 If an Expression instance is passed, this is used as-is. +5126 dialect: the dialect used to parse the input expression. +5127 copy: whether or not to copy `expressions` (only applies to Expressions). +5128 **opts: other options to use to parse the input expressions. +5129 +5130 Returns: +5131 Or: the new condition +5132 """ +5133 return t.cast(Condition, _combine(expressions, Or, dialect, copy=copy, **opts)) 5134 5135 -5136@t.overload -5137def to_identifier(name: None, quoted: t.Optional[bool] = None, copy: bool = True) -> None: -5138 ... +5136def not_(expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts) -> Not: +5137 """ +5138 Wrap a condition with a NOT operator. 5139 -5140 -5141@t.overload -5142def to_identifier( -5143 name: str | Identifier, quoted: t.Optional[bool] = None, copy: bool = True -5144) -> Identifier: -5145 ... -5146 -5147 -5148def to_identifier(name, quoted=None, copy=True): -5149 """Builds an identifier. +5140 Example: +5141 >>> not_("this_suit='black'").sql() +5142 "NOT this_suit = 'black'" +5143 +5144 Args: +5145 expression: the SQL code string to parse. +5146 If an Expression instance is passed, this is used as-is. +5147 dialect: the dialect used to parse the input expression. +5148 copy: whether to copy the expression or not. +5149 **opts: other options to use to parse the input expressions. 5150 -5151 Args: -5152 name: The name to turn into an identifier. -5153 quoted: Whether or not force quote the identifier. -5154 copy: Whether or not to copy a passed in Identefier node. -5155 -5156 Returns: -5157 The identifier ast node. -5158 """ -5159 -5160 if name is None: -5161 return None +5151 Returns: +5152 The new condition. +5153 """ +5154 this = condition( +5155 expression, +5156 dialect=dialect, +5157 copy=copy, +5158 **opts, +5159 ) +5160 return Not(this=_wrap(this, Connector)) +5161 5162 -5163 if isinstance(name, Identifier): -5164 identifier = _maybe_copy(name, copy) -5165 elif isinstance(name, str): -5166 identifier = Identifier( -5167 this=name, -5168 quoted=not SAFE_IDENTIFIER_RE.match(name) if quoted is None else quoted, -5169 ) -5170 else: -5171 raise ValueError(f"Name needs to be a string or an Identifier, got: {name.__class__}") -5172 return identifier -5173 -5174 -5175INTERVAL_STRING_RE = re.compile(r"\s*([0-9]+)\s*([a-zA-Z]+)\s*") -5176 -5177 -5178def to_interval(interval: str | Literal) -> Interval: -5179 """Builds an interval expression from a string like '1 day' or '5 months'.""" -5180 if isinstance(interval, Literal): -5181 if not interval.is_string: -5182 raise ValueError("Invalid interval string.") +5163def paren(expression: ExpOrStr, copy: bool = True) -> Paren: +5164 """ +5165 Wrap an expression in parentheses. +5166 +5167 Example: +5168 >>> paren("5 + 3").sql() +5169 '(5 + 3)' +5170 +5171 Args: +5172 expression: the SQL code string to parse. +5173 If an Expression instance is passed, this is used as-is. +5174 copy: whether to copy the expression or not. +5175 +5176 Returns: +5177 The wrapped expression. +5178 """ +5179 return Paren(this=maybe_parse(expression, copy=copy)) +5180 +5181 +5182SAFE_IDENTIFIER_RE = re.compile(r"^[_a-zA-Z][\w]*$") 5183 -5184 interval = interval.this -5185 -5186 interval_parts = INTERVAL_STRING_RE.match(interval) # type: ignore -5187 -5188 if not interval_parts: -5189 raise ValueError("Invalid interval string.") -5190 -5191 return Interval( -5192 this=Literal.string(interval_parts.group(1)), -5193 unit=Var(this=interval_parts.group(2)), -5194 ) +5184 +5185@t.overload +5186def to_identifier(name: None, quoted: t.Optional[bool] = None, copy: bool = True) -> None: +5187 ... +5188 +5189 +5190@t.overload +5191def to_identifier( +5192 name: str | Identifier, quoted: t.Optional[bool] = None, copy: bool = True +5193) -> Identifier: +5194 ... 5195 5196 -5197@t.overload -5198def to_table(sql_path: str | Table, **kwargs) -> Table: -5199 ... -5200 -5201 -5202@t.overload -5203def to_table(sql_path: None, **kwargs) -> None: -5204 ... -5205 -5206 -5207def to_table( -5208 sql_path: t.Optional[str | Table], dialect: DialectType = None, **kwargs -5209) -> t.Optional[Table]: -5210 """ -5211 Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional. -5212 If a table is passed in then that table is returned. -5213 -5214 Args: -5215 sql_path: a `[catalog].[schema].[table]` string. -5216 dialect: the source dialect according to which the table name will be parsed. -5217 kwargs: the kwargs to instantiate the resulting `Table` expression with. -5218 -5219 Returns: -5220 A table expression. -5221 """ -5222 if sql_path is None or isinstance(sql_path, Table): -5223 return sql_path -5224 if not isinstance(sql_path, str): -5225 raise ValueError(f"Invalid type provided for a table: {type(sql_path)}") +5197def to_identifier(name, quoted=None, copy=True): +5198 """Builds an identifier. +5199 +5200 Args: +5201 name: The name to turn into an identifier. +5202 quoted: Whether or not force quote the identifier. +5203 copy: Whether or not to copy a passed in Identefier node. +5204 +5205 Returns: +5206 The identifier ast node. +5207 """ +5208 +5209 if name is None: +5210 return None +5211 +5212 if isinstance(name, Identifier): +5213 identifier = _maybe_copy(name, copy) +5214 elif isinstance(name, str): +5215 identifier = Identifier( +5216 this=name, +5217 quoted=not SAFE_IDENTIFIER_RE.match(name) if quoted is None else quoted, +5218 ) +5219 else: +5220 raise ValueError(f"Name needs to be a string or an Identifier, got: {name.__class__}") +5221 return identifier +5222 +5223 +5224INTERVAL_STRING_RE = re.compile(r"\s*([0-9]+)\s*([a-zA-Z]+)\s*") +5225 5226 -5227 table = maybe_parse(sql_path, into=Table, dialect=dialect) -5228 if table: -5229 for k, v in kwargs.items(): -5230 table.set(k, v) -5231 -5232 return table -5233 +5227def to_interval(interval: str | Literal) -> Interval: +5228 """Builds an interval expression from a string like '1 day' or '5 months'.""" +5229 if isinstance(interval, Literal): +5230 if not interval.is_string: +5231 raise ValueError("Invalid interval string.") +5232 +5233 interval = interval.this 5234 -5235def to_column(sql_path: str | Column, **kwargs) -> Column: -5236 """ -5237 Create a column from a `[table].[column]` sql path. Schema is optional. -5238 -5239 If a column is passed in then that column is returned. -5240 -5241 Args: -5242 sql_path: `[table].[column]` string -5243 Returns: -5244 Table: A column expression -5245 """ -5246 if sql_path is None or isinstance(sql_path, Column): -5247 return sql_path -5248 if not isinstance(sql_path, str): -5249 raise ValueError(f"Invalid type provided for column: {type(sql_path)}") -5250 return column(*reversed(sql_path.split(".")), **kwargs) # type: ignore -5251 -5252 -5253def alias_( -5254 expression: ExpOrStr, -5255 alias: str | Identifier, -5256 table: bool | t.Sequence[str | Identifier] = False, -5257 quoted: t.Optional[bool] = None, -5258 dialect: DialectType = None, -5259 copy: bool = True, -5260 **opts, -5261): -5262 """Create an Alias expression. -5263 -5264 Example: -5265 >>> alias_('foo', 'bar').sql() -5266 'foo AS bar' +5235 interval_parts = INTERVAL_STRING_RE.match(interval) # type: ignore +5236 +5237 if not interval_parts: +5238 raise ValueError("Invalid interval string.") +5239 +5240 return Interval( +5241 this=Literal.string(interval_parts.group(1)), +5242 unit=Var(this=interval_parts.group(2)), +5243 ) +5244 +5245 +5246@t.overload +5247def to_table(sql_path: str | Table, **kwargs) -> Table: +5248 ... +5249 +5250 +5251@t.overload +5252def to_table(sql_path: None, **kwargs) -> None: +5253 ... +5254 +5255 +5256def to_table( +5257 sql_path: t.Optional[str | Table], dialect: DialectType = None, **kwargs +5258) -> t.Optional[Table]: +5259 """ +5260 Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional. +5261 If a table is passed in then that table is returned. +5262 +5263 Args: +5264 sql_path: a `[catalog].[schema].[table]` string. +5265 dialect: the source dialect according to which the table name will be parsed. +5266 kwargs: the kwargs to instantiate the resulting `Table` expression with. 5267 -5268 >>> alias_('(select 1, 2)', 'bar', table=['a', 'b']).sql() -5269 '(SELECT 1, 2) AS bar(a, b)' -5270 -5271 Args: -5272 expression: the SQL code strings to parse. -5273 If an Expression instance is passed, this is used as-is. -5274 alias: the alias name to use. If the name has -5275 special characters it is quoted. -5276 table: Whether or not to create a table alias, can also be a list of columns. -5277 quoted: whether or not to quote the alias -5278 dialect: the dialect used to parse the input expression. -5279 copy: Whether or not to copy the expression. -5280 **opts: other options to use to parse the input expressions. -5281 -5282 Returns: -5283 Alias: the aliased expression -5284 """ -5285 exp = maybe_parse(expression, dialect=dialect, copy=copy, **opts) -5286 alias = to_identifier(alias, quoted=quoted) +5268 Returns: +5269 A table expression. +5270 """ +5271 if sql_path is None or isinstance(sql_path, Table): +5272 return sql_path +5273 if not isinstance(sql_path, str): +5274 raise ValueError(f"Invalid type provided for a table: {type(sql_path)}") +5275 +5276 table = maybe_parse(sql_path, into=Table, dialect=dialect) +5277 if table: +5278 for k, v in kwargs.items(): +5279 table.set(k, v) +5280 +5281 return table +5282 +5283 +5284def to_column(sql_path: str | Column, **kwargs) -> Column: +5285 """ +5286 Create a column from a `[table].[column]` sql path. Schema is optional. 5287 -5288 if table: -5289 table_alias = TableAlias(this=alias) -5290 exp.set("alias", table_alias) -5291 -5292 if not isinstance(table, bool): -5293 for column in table: -5294 table_alias.append("columns", to_identifier(column, quoted=quoted)) -5295 -5296 return exp -5297 -5298 # We don't set the "alias" arg for Window expressions, because that would add an IDENTIFIER node in -5299 # the AST, representing a "named_window" [1] construct (eg. bigquery). What we want is an ALIAS node -5300 # for the complete Window expression. -5301 # -5302 # [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls -5303 -5304 if "alias" in exp.arg_types and not isinstance(exp, Window): -5305 exp.set("alias", alias) -5306 return exp -5307 return Alias(this=exp, alias=alias) -5308 -5309 -5310def subquery( -5311 expression: ExpOrStr, -5312 alias: t.Optional[Identifier | str] = None, -5313 dialect: DialectType = None, -5314 **opts, -5315) -> Select: -5316 """ -5317 Build a subquery expression. -5318 -5319 Example: -5320 >>> subquery('select x from tbl', 'bar').select('x').sql() -5321 'SELECT x FROM (SELECT x FROM tbl) AS bar' -5322 -5323 Args: -5324 expression: the SQL code strings to parse. -5325 If an Expression instance is passed, this is used as-is. -5326 alias: the alias name to use. +5288 If a column is passed in then that column is returned. +5289 +5290 Args: +5291 sql_path: `[table].[column]` string +5292 Returns: +5293 Table: A column expression +5294 """ +5295 if sql_path is None or isinstance(sql_path, Column): +5296 return sql_path +5297 if not isinstance(sql_path, str): +5298 raise ValueError(f"Invalid type provided for column: {type(sql_path)}") +5299 return column(*reversed(sql_path.split(".")), **kwargs) # type: ignore +5300 +5301 +5302def alias_( +5303 expression: ExpOrStr, +5304 alias: str | Identifier, +5305 table: bool | t.Sequence[str | Identifier] = False, +5306 quoted: t.Optional[bool] = None, +5307 dialect: DialectType = None, +5308 copy: bool = True, +5309 **opts, +5310): +5311 """Create an Alias expression. +5312 +5313 Example: +5314 >>> alias_('foo', 'bar').sql() +5315 'foo AS bar' +5316 +5317 >>> alias_('(select 1, 2)', 'bar', table=['a', 'b']).sql() +5318 '(SELECT 1, 2) AS bar(a, b)' +5319 +5320 Args: +5321 expression: the SQL code strings to parse. +5322 If an Expression instance is passed, this is used as-is. +5323 alias: the alias name to use. If the name has +5324 special characters it is quoted. +5325 table: Whether or not to create a table alias, can also be a list of columns. +5326 quoted: whether or not to quote the alias 5327 dialect: the dialect used to parse the input expression. -5328 **opts: other options to use to parse the input expressions. -5329 -5330 Returns: -5331 A new Select instance with the subquery expression included. -5332 """ -5333 -5334 expression = maybe_parse(expression, dialect=dialect, **opts).subquery(alias) -5335 return Select().from_(expression, dialect=dialect, **opts) +5328 copy: Whether or not to copy the expression. +5329 **opts: other options to use to parse the input expressions. +5330 +5331 Returns: +5332 Alias: the aliased expression +5333 """ +5334 exp = maybe_parse(expression, dialect=dialect, copy=copy, **opts) +5335 alias = to_identifier(alias, quoted=quoted) 5336 -5337 -5338def column( -5339 col: str | Identifier, -5340 table: t.Optional[str | Identifier] = None, -5341 db: t.Optional[str | Identifier] = None, -5342 catalog: t.Optional[str | Identifier] = None, -5343 quoted: t.Optional[bool] = None, -5344) -> Column: -5345 """ -5346 Build a Column. -5347 -5348 Args: -5349 col: Column name. -5350 table: Table name. -5351 db: Database name. -5352 catalog: Catalog name. -5353 quoted: Whether to force quotes on the column's identifiers. -5354 -5355 Returns: -5356 The new Column instance. -5357 """ -5358 return Column( -5359 this=to_identifier(col, quoted=quoted), -5360 table=to_identifier(table, quoted=quoted), -5361 db=to_identifier(db, quoted=quoted), -5362 catalog=to_identifier(catalog, quoted=quoted), -5363 ) -5364 -5365 -5366def cast(expression: ExpOrStr, to: str | DataType | DataType.Type, **opts) -> Cast: -5367 """Cast an expression to a data type. -5368 -5369 Example: -5370 >>> cast('x + 1', 'int').sql() -5371 'CAST(x + 1 AS INT)' -5372 -5373 Args: -5374 expression: The expression to cast. -5375 to: The datatype to cast to. -5376 -5377 Returns: -5378 The new Cast instance. -5379 """ -5380 expression = maybe_parse(expression, **opts) -5381 return Cast(this=expression, to=DataType.build(to, **opts)) +5337 if table: +5338 table_alias = TableAlias(this=alias) +5339 exp.set("alias", table_alias) +5340 +5341 if not isinstance(table, bool): +5342 for column in table: +5343 table_alias.append("columns", to_identifier(column, quoted=quoted)) +5344 +5345 return exp +5346 +5347 # We don't set the "alias" arg for Window expressions, because that would add an IDENTIFIER node in +5348 # the AST, representing a "named_window" [1] construct (eg. bigquery). What we want is an ALIAS node +5349 # for the complete Window expression. +5350 # +5351 # [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls +5352 +5353 if "alias" in exp.arg_types and not isinstance(exp, Window): +5354 exp.set("alias", alias) +5355 return exp +5356 return Alias(this=exp, alias=alias) +5357 +5358 +5359def subquery( +5360 expression: ExpOrStr, +5361 alias: t.Optional[Identifier | str] = None, +5362 dialect: DialectType = None, +5363 **opts, +5364) -> Select: +5365 """ +5366 Build a subquery expression. +5367 +5368 Example: +5369 >>> subquery('select x from tbl', 'bar').select('x').sql() +5370 'SELECT x FROM (SELECT x FROM tbl) AS bar' +5371 +5372 Args: +5373 expression: the SQL code strings to parse. +5374 If an Expression instance is passed, this is used as-is. +5375 alias: the alias name to use. +5376 dialect: the dialect used to parse the input expression. +5377 **opts: other options to use to parse the input expressions. +5378 +5379 Returns: +5380 A new Select instance with the subquery expression included. +5381 """ 5382 -5383 -5384def table_( -5385 table: Identifier | str, -5386 db: t.Optional[Identifier | str] = None, -5387 catalog: t.Optional[Identifier | str] = None, -5388 quoted: t.Optional[bool] = None, -5389 alias: t.Optional[Identifier | str] = None, -5390) -> Table: -5391 """Build a Table. -5392 -5393 Args: -5394 table: Table name. -5395 db: Database name. -5396 catalog: Catalog name. -5397 quote: Whether to force quotes on the table's identifiers. -5398 alias: Table's alias. -5399 -5400 Returns: -5401 The new Table instance. -5402 """ -5403 return Table( -5404 this=to_identifier(table, quoted=quoted), -5405 db=to_identifier(db, quoted=quoted), -5406 catalog=to_identifier(catalog, quoted=quoted), -5407 alias=TableAlias(this=to_identifier(alias)) if alias else None, -5408 ) -5409 -5410 -5411def values( -5412 values: t.Iterable[t.Tuple[t.Any, ...]], -5413 alias: t.Optional[str] = None, -5414 columns: t.Optional[t.Iterable[str] | t.Dict[str, DataType]] = None, -5415) -> Values: -5416 """Build VALUES statement. +5383 expression = maybe_parse(expression, dialect=dialect, **opts).subquery(alias) +5384 return Select().from_(expression, dialect=dialect, **opts) +5385 +5386 +5387def column( +5388 col: str | Identifier, +5389 table: t.Optional[str | Identifier] = None, +5390 db: t.Optional[str | Identifier] = None, +5391 catalog: t.Optional[str | Identifier] = None, +5392 quoted: t.Optional[bool] = None, +5393) -> Column: +5394 """ +5395 Build a Column. +5396 +5397 Args: +5398 col: Column name. +5399 table: Table name. +5400 db: Database name. +5401 catalog: Catalog name. +5402 quoted: Whether to force quotes on the column's identifiers. +5403 +5404 Returns: +5405 The new Column instance. +5406 """ +5407 return Column( +5408 this=to_identifier(col, quoted=quoted), +5409 table=to_identifier(table, quoted=quoted), +5410 db=to_identifier(db, quoted=quoted), +5411 catalog=to_identifier(catalog, quoted=quoted), +5412 ) +5413 +5414 +5415def cast(expression: ExpOrStr, to: str | DataType | DataType.Type, **opts) -> Cast: +5416 """Cast an expression to a data type. 5417 5418 Example: -5419 >>> values([(1, '2')]).sql() -5420 "VALUES (1, '2')" +5419 >>> cast('x + 1', 'int').sql() +5420 'CAST(x + 1 AS INT)' 5421 5422 Args: -5423 values: values statements that will be converted to SQL -5424 alias: optional alias -5425 columns: Optional list of ordered column names or ordered dictionary of column names to types. -5426 If either are provided then an alias is also required. -5427 -5428 Returns: -5429 Values: the Values expression object -5430 """ -5431 if columns and not alias: -5432 raise ValueError("Alias is required when providing columns") -5433 -5434 return Values( -5435 expressions=[convert(tup) for tup in values], -5436 alias=( -5437 TableAlias(this=to_identifier(alias), columns=[to_identifier(x) for x in columns]) -5438 if columns -5439 else (TableAlias(this=to_identifier(alias)) if alias else None) -5440 ), -5441 ) -5442 -5443 -5444def var(name: t.Optional[ExpOrStr]) -> Var: -5445 """Build a SQL variable. -5446 -5447 Example: -5448 >>> repr(var('x')) -5449 '(VAR this: x)' -5450 -5451 >>> repr(var(column('x', table='y'))) -5452 '(VAR this: x)' -5453 -5454 Args: -5455 name: The name of the var or an expression who's name will become the var. -5456 -5457 Returns: -5458 The new variable node. -5459 """ -5460 if not name: -5461 raise ValueError("Cannot convert empty name into var.") -5462 -5463 if isinstance(name, Expression): -5464 name = name.name -5465 return Var(this=name) +5423 expression: The expression to cast. +5424 to: The datatype to cast to. +5425 +5426 Returns: +5427 The new Cast instance. +5428 """ +5429 expression = maybe_parse(expression, **opts) +5430 return Cast(this=expression, to=DataType.build(to, **opts)) +5431 +5432 +5433def table_( +5434 table: Identifier | str, +5435 db: t.Optional[Identifier | str] = None, +5436 catalog: t.Optional[Identifier | str] = None, +5437 quoted: t.Optional[bool] = None, +5438 alias: t.Optional[Identifier | str] = None, +5439) -> Table: +5440 """Build a Table. +5441 +5442 Args: +5443 table: Table name. +5444 db: Database name. +5445 catalog: Catalog name. +5446 quote: Whether to force quotes on the table's identifiers. +5447 alias: Table's alias. +5448 +5449 Returns: +5450 The new Table instance. +5451 """ +5452 return Table( +5453 this=to_identifier(table, quoted=quoted), +5454 db=to_identifier(db, quoted=quoted), +5455 catalog=to_identifier(catalog, quoted=quoted), +5456 alias=TableAlias(this=to_identifier(alias)) if alias else None, +5457 ) +5458 +5459 +5460def values( +5461 values: t.Iterable[t.Tuple[t.Any, ...]], +5462 alias: t.Optional[str] = None, +5463 columns: t.Optional[t.Iterable[str] | t.Dict[str, DataType]] = None, +5464) -> Values: +5465 """Build VALUES statement. 5466 -5467 -5468def rename_table(old_name: str | Table, new_name: str | Table) -> AlterTable: -5469 """Build ALTER TABLE... RENAME... expression +5467 Example: +5468 >>> values([(1, '2')]).sql() +5469 "VALUES (1, '2')" 5470 5471 Args: -5472 old_name: The old name of the table -5473 new_name: The new name of the table -5474 -5475 Returns: -5476 Alter table expression -5477 """ -5478 old_table = to_table(old_name) -5479 new_table = to_table(new_name) -5480 return AlterTable( -5481 this=old_table, -5482 actions=[ -5483 RenameTable(this=new_table), -5484 ], -5485 ) -5486 -5487 -5488def convert(value: t.Any, copy: bool = False) -> Expression: -5489 """Convert a python value into an expression object. -5490 -5491 Raises an error if a conversion is not possible. +5472 values: values statements that will be converted to SQL +5473 alias: optional alias +5474 columns: Optional list of ordered column names or ordered dictionary of column names to types. +5475 If either are provided then an alias is also required. +5476 +5477 Returns: +5478 Values: the Values expression object +5479 """ +5480 if columns and not alias: +5481 raise ValueError("Alias is required when providing columns") +5482 +5483 return Values( +5484 expressions=[convert(tup) for tup in values], +5485 alias=( +5486 TableAlias(this=to_identifier(alias), columns=[to_identifier(x) for x in columns]) +5487 if columns +5488 else (TableAlias(this=to_identifier(alias)) if alias else None) +5489 ), +5490 ) +5491 5492 -5493 Args: -5494 value: A python object. -5495 copy: Whether or not to copy `value` (only applies to Expressions and collections). -5496 -5497 Returns: -5498 Expression: the equivalent expression object. -5499 """ -5500 if isinstance(value, Expression): -5501 return _maybe_copy(value, copy) -5502 if isinstance(value, str): -5503 return Literal.string(value) -5504 if isinstance(value, bool): -5505 return Boolean(this=value) -5506 if value is None or (isinstance(value, float) and math.isnan(value)): -5507 return NULL -5508 if isinstance(value, numbers.Number): -5509 return Literal.number(value) -5510 if isinstance(value, datetime.datetime): -5511 datetime_literal = Literal.string( -5512 (value if value.tzinfo else value.replace(tzinfo=datetime.timezone.utc)).isoformat() -5513 ) -5514 return TimeStrToTime(this=datetime_literal) -5515 if isinstance(value, datetime.date): -5516 date_literal = Literal.string(value.strftime("%Y-%m-%d")) -5517 return DateStrToDate(this=date_literal) -5518 if isinstance(value, tuple): -5519 return Tuple(expressions=[convert(v, copy=copy) for v in value]) -5520 if isinstance(value, list): -5521 return Array(expressions=[convert(v, copy=copy) for v in value]) -5522 if isinstance(value, dict): -5523 return Map( -5524 keys=[convert(k, copy=copy) for k in value], -5525 values=[convert(v, copy=copy) for v in value.values()], -5526 ) -5527 raise ValueError(f"Cannot convert {value}") -5528 -5529 -5530def replace_children(expression: Expression, fun: t.Callable, *args, **kwargs) -> None: -5531 """ -5532 Replace children of an expression with the result of a lambda fun(child) -> exp. -5533 """ -5534 for k, v in expression.args.items(): -5535 is_list_arg = type(v) is list +5493def var(name: t.Optional[ExpOrStr]) -> Var: +5494 """Build a SQL variable. +5495 +5496 Example: +5497 >>> repr(var('x')) +5498 '(VAR this: x)' +5499 +5500 >>> repr(var(column('x', table='y'))) +5501 '(VAR this: x)' +5502 +5503 Args: +5504 name: The name of the var or an expression who's name will become the var. +5505 +5506 Returns: +5507 The new variable node. +5508 """ +5509 if not name: +5510 raise ValueError("Cannot convert empty name into var.") +5511 +5512 if isinstance(name, Expression): +5513 name = name.name +5514 return Var(this=name) +5515 +5516 +5517def rename_table(old_name: str | Table, new_name: str | Table) -> AlterTable: +5518 """Build ALTER TABLE... RENAME... expression +5519 +5520 Args: +5521 old_name: The old name of the table +5522 new_name: The new name of the table +5523 +5524 Returns: +5525 Alter table expression +5526 """ +5527 old_table = to_table(old_name) +5528 new_table = to_table(new_name) +5529 return AlterTable( +5530 this=old_table, +5531 actions=[ +5532 RenameTable(this=new_table), +5533 ], +5534 ) +5535 5536 -5537 child_nodes = v if is_list_arg else [v] -5538 new_child_nodes = [] +5537def convert(value: t.Any, copy: bool = False) -> Expression: +5538 """Convert a python value into an expression object. 5539 -5540 for cn in child_nodes: -5541 if isinstance(cn, Expression): -5542 for child_node in ensure_collection(fun(cn, *args, **kwargs)): -5543 new_child_nodes.append(child_node) -5544 child_node.parent = expression -5545 child_node.arg_key = k -5546 else: -5547 new_child_nodes.append(cn) -5548 -5549 expression.args[k] = new_child_nodes if is_list_arg else seq_get(new_child_nodes, 0) -5550 -5551 -5552def column_table_names(expression: Expression) -> t.List[str]: -5553 """ -5554 Return all table names referenced through columns in an expression. -5555 -5556 Example: -5557 >>> import sqlglot -5558 >>> column_table_names(sqlglot.parse_one("a.b AND c.d AND c.e")) -5559 ['c', 'a'] -5560 -5561 Args: -5562 expression: expression to find table names. -5563 -5564 Returns: -5565 A list of unique names. -5566 """ -5567 return list(dict.fromkeys(column.table for column in expression.find_all(Column))) -5568 -5569 -5570def table_name(table: Table | str) -> str: -5571 """Get the full name of a table as a string. -5572 -5573 Args: -5574 table: table expression node or string. -5575 -5576 Examples: -5577 >>> from sqlglot import exp, parse_one -5578 >>> table_name(parse_one("select * from a.b.c").find(exp.Table)) -5579 'a.b.c' -5580 -5581 Returns: -5582 The table name. -5583 """ -5584 -5585 table = maybe_parse(table, into=Table) -5586 -5587 if not table: -5588 raise ValueError(f"Cannot parse {table}") -5589 -5590 return ".".join(part for part in (table.text("catalog"), table.text("db"), table.name) if part) -5591 -5592 -5593def replace_tables(expression: E, mapping: t.Dict[str, str]) -> E: -5594 """Replace all tables in expression according to the mapping. -5595 -5596 Args: -5597 expression: expression node to be transformed and replaced. -5598 mapping: mapping of table names. +5540 Raises an error if a conversion is not possible. +5541 +5542 Args: +5543 value: A python object. +5544 copy: Whether or not to copy `value` (only applies to Expressions and collections). +5545 +5546 Returns: +5547 Expression: the equivalent expression object. +5548 """ +5549 if isinstance(value, Expression): +5550 return _maybe_copy(value, copy) +5551 if isinstance(value, str): +5552 return Literal.string(value) +5553 if isinstance(value, bool): +5554 return Boolean(this=value) +5555 if value is None or (isinstance(value, float) and math.isnan(value)): +5556 return NULL +5557 if isinstance(value, numbers.Number): +5558 return Literal.number(value) +5559 if isinstance(value, datetime.datetime): +5560 datetime_literal = Literal.string( +5561 (value if value.tzinfo else value.replace(tzinfo=datetime.timezone.utc)).isoformat() +5562 ) +5563 return TimeStrToTime(this=datetime_literal) +5564 if isinstance(value, datetime.date): +5565 date_literal = Literal.string(value.strftime("%Y-%m-%d")) +5566 return DateStrToDate(this=date_literal) +5567 if isinstance(value, tuple): +5568 return Tuple(expressions=[convert(v, copy=copy) for v in value]) +5569 if isinstance(value, list): +5570 return Array(expressions=[convert(v, copy=copy) for v in value]) +5571 if isinstance(value, dict): +5572 return Map( +5573 keys=[convert(k, copy=copy) for k in value], +5574 values=[convert(v, copy=copy) for v in value.values()], +5575 ) +5576 raise ValueError(f"Cannot convert {value}") +5577 +5578 +5579def replace_children(expression: Expression, fun: t.Callable, *args, **kwargs) -> None: +5580 """ +5581 Replace children of an expression with the result of a lambda fun(child) -> exp. +5582 """ +5583 for k, v in expression.args.items(): +5584 is_list_arg = type(v) is list +5585 +5586 child_nodes = v if is_list_arg else [v] +5587 new_child_nodes = [] +5588 +5589 for cn in child_nodes: +5590 if isinstance(cn, Expression): +5591 for child_node in ensure_collection(fun(cn, *args, **kwargs)): +5592 new_child_nodes.append(child_node) +5593 child_node.parent = expression +5594 child_node.arg_key = k +5595 else: +5596 new_child_nodes.append(cn) +5597 +5598 expression.args[k] = new_child_nodes if is_list_arg else seq_get(new_child_nodes, 0) 5599 -5600 Examples: -5601 >>> from sqlglot import exp, parse_one -5602 >>> replace_tables(parse_one("select * from a.b"), {"a.b": "c"}).sql() -5603 'SELECT * FROM c' +5600 +5601def column_table_names(expression: Expression) -> t.List[str]: +5602 """ +5603 Return all table names referenced through columns in an expression. 5604 -5605 Returns: -5606 The mapped expression. -5607 """ -5608 -5609 def _replace_tables(node: Expression) -> Expression: -5610 if isinstance(node, Table): -5611 new_name = mapping.get(table_name(node)) -5612 if new_name: -5613 return to_table( -5614 new_name, -5615 **{k: v for k, v in node.args.items() if k not in ("this", "db", "catalog")}, -5616 ) -5617 return node +5605 Example: +5606 >>> import sqlglot +5607 >>> column_table_names(sqlglot.parse_one("a.b AND c.d AND c.e")) +5608 ['c', 'a'] +5609 +5610 Args: +5611 expression: expression to find table names. +5612 +5613 Returns: +5614 A list of unique names. +5615 """ +5616 return list(dict.fromkeys(column.table for column in expression.find_all(Column))) +5617 5618 -5619 return expression.transform(_replace_tables) -5620 +5619def table_name(table: Table | str) -> str: +5620 """Get the full name of a table as a string. 5621 -5622def replace_placeholders(expression: Expression, *args, **kwargs) -> Expression: -5623 """Replace placeholders in an expression. +5622 Args: +5623 table: table expression node or string. 5624 -5625 Args: -5626 expression: expression node to be transformed and replaced. -5627 args: positional names that will substitute unnamed placeholders in the given order. -5628 kwargs: keyword arguments that will substitute named placeholders. +5625 Examples: +5626 >>> from sqlglot import exp, parse_one +5627 >>> table_name(parse_one("select * from a.b.c").find(exp.Table)) +5628 'a.b.c' 5629 -5630 Examples: -5631 >>> from sqlglot import exp, parse_one -5632 >>> replace_placeholders( -5633 ... parse_one("select * from :tbl where ? = ?"), -5634 ... exp.to_identifier("str_col"), "b", tbl=exp.to_identifier("foo") -5635 ... ).sql() -5636 "SELECT * FROM foo WHERE str_col = 'b'" -5637 -5638 Returns: -5639 The mapped expression. -5640 """ +5630 Returns: +5631 The table name. +5632 """ +5633 +5634 table = maybe_parse(table, into=Table) +5635 +5636 if not table: +5637 raise ValueError(f"Cannot parse {table}") +5638 +5639 return ".".join(part for part in (table.text("catalog"), table.text("db"), table.name) if part) +5640 5641 -5642 def _replace_placeholders(node: Expression, args, **kwargs) -> Expression: -5643 if isinstance(node, Placeholder): -5644 if node.name: -5645 new_name = kwargs.get(node.name) -5646 if new_name: -5647 return convert(new_name) -5648 else: -5649 try: -5650 return convert(next(args)) -5651 except StopIteration: -5652 pass -5653 return node -5654 -5655 return expression.transform(_replace_placeholders, iter(args), **kwargs) -5656 +5642def replace_tables(expression: E, mapping: t.Dict[str, str]) -> E: +5643 """Replace all tables in expression according to the mapping. +5644 +5645 Args: +5646 expression: expression node to be transformed and replaced. +5647 mapping: mapping of table names. +5648 +5649 Examples: +5650 >>> from sqlglot import exp, parse_one +5651 >>> replace_tables(parse_one("select * from a.b"), {"a.b": "c"}).sql() +5652 'SELECT * FROM c' +5653 +5654 Returns: +5655 The mapped expression. +5656 """ 5657 -5658def expand( -5659 expression: Expression, sources: t.Dict[str, Subqueryable], copy: bool = True -5660) -> Expression: -5661 """Transforms an expression by expanding all referenced sources into subqueries. -5662 -5663 Examples: -5664 >>> from sqlglot import parse_one -5665 >>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y")}).sql() -5666 'SELECT * FROM (SELECT * FROM y) AS z /* source: x */' +5658 def _replace_tables(node: Expression) -> Expression: +5659 if isinstance(node, Table): +5660 new_name = mapping.get(table_name(node)) +5661 if new_name: +5662 return to_table( +5663 new_name, +5664 **{k: v for k, v in node.args.items() if k not in ("this", "db", "catalog")}, +5665 ) +5666 return node 5667 -5668 >>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y"), "y": parse_one("select * from z")}).sql() -5669 'SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */' +5668 return expression.transform(_replace_tables) +5669 5670 -5671 Args: -5672 expression: The expression to expand. -5673 sources: A dictionary of name to Subqueryables. -5674 copy: Whether or not to copy the expression during transformation. Defaults to True. -5675 -5676 Returns: -5677 The transformed expression. -5678 """ -5679 -5680 def _expand(node: Expression): -5681 if isinstance(node, Table): -5682 name = table_name(node) -5683 source = sources.get(name) -5684 if source: -5685 subquery = source.subquery(node.alias or name) -5686 subquery.comments = [f"source: {name}"] -5687 return subquery.transform(_expand, copy=False) -5688 return node -5689 -5690 return expression.transform(_expand, copy=copy) -5691 -5692 -5693def func(name: str, *args, dialect: DialectType = None, **kwargs) -> Func: -5694 """ -5695 Returns a Func expression. -5696 -5697 Examples: -5698 >>> func("abs", 5).sql() -5699 'ABS(5)' -5700 -5701 >>> func("cast", this=5, to=DataType.build("DOUBLE")).sql() -5702 'CAST(5 AS DOUBLE)' +5671def replace_placeholders(expression: Expression, *args, **kwargs) -> Expression: +5672 """Replace placeholders in an expression. +5673 +5674 Args: +5675 expression: expression node to be transformed and replaced. +5676 args: positional names that will substitute unnamed placeholders in the given order. +5677 kwargs: keyword arguments that will substitute named placeholders. +5678 +5679 Examples: +5680 >>> from sqlglot import exp, parse_one +5681 >>> replace_placeholders( +5682 ... parse_one("select * from :tbl where ? = ?"), +5683 ... exp.to_identifier("str_col"), "b", tbl=exp.to_identifier("foo") +5684 ... ).sql() +5685 "SELECT * FROM foo WHERE str_col = 'b'" +5686 +5687 Returns: +5688 The mapped expression. +5689 """ +5690 +5691 def _replace_placeholders(node: Expression, args, **kwargs) -> Expression: +5692 if isinstance(node, Placeholder): +5693 if node.name: +5694 new_name = kwargs.get(node.name) +5695 if new_name: +5696 return convert(new_name) +5697 else: +5698 try: +5699 return convert(next(args)) +5700 except StopIteration: +5701 pass +5702 return node 5703 -5704 Args: -5705 name: the name of the function to build. -5706 args: the args used to instantiate the function of interest. -5707 dialect: the source dialect. -5708 kwargs: the kwargs used to instantiate the function of interest. -5709 -5710 Note: -5711 The arguments `args` and `kwargs` are mutually exclusive. -5712 -5713 Returns: -5714 An instance of the function of interest, or an anonymous function, if `name` doesn't -5715 correspond to an existing `sqlglot.expressions.Func` class. -5716 """ -5717 if args and kwargs: -5718 raise ValueError("Can't use both args and kwargs to instantiate a function.") +5704 return expression.transform(_replace_placeholders, iter(args), **kwargs) +5705 +5706 +5707def expand( +5708 expression: Expression, sources: t.Dict[str, Subqueryable], copy: bool = True +5709) -> Expression: +5710 """Transforms an expression by expanding all referenced sources into subqueries. +5711 +5712 Examples: +5713 >>> from sqlglot import parse_one +5714 >>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y")}).sql() +5715 'SELECT * FROM (SELECT * FROM y) AS z /* source: x */' +5716 +5717 >>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y"), "y": parse_one("select * from z")}).sql() +5718 'SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */' 5719 -5720 from sqlglot.dialects.dialect import Dialect -5721 -5722 converted: t.List[Expression] = [maybe_parse(arg, dialect=dialect) for arg in args] -5723 kwargs = {key: maybe_parse(value, dialect=dialect) for key, value in kwargs.items()} +5720 Args: +5721 expression: The expression to expand. +5722 sources: A dictionary of name to Subqueryables. +5723 copy: Whether or not to copy the expression during transformation. Defaults to True. 5724 -5725 parser = Dialect.get_or_raise(dialect)().parser() -5726 from_args_list = parser.FUNCTIONS.get(name.upper()) -5727 -5728 if from_args_list: -5729 function = from_args_list(converted) if converted else from_args_list.__self__(**kwargs) # type: ignore -5730 else: -5731 kwargs = kwargs or {"expressions": converted} -5732 function = Anonymous(this=name, **kwargs) -5733 -5734 for error_message in function.error_messages(converted): -5735 raise ValueError(error_message) -5736 -5737 return function +5725 Returns: +5726 The transformed expression. +5727 """ +5728 +5729 def _expand(node: Expression): +5730 if isinstance(node, Table): +5731 name = table_name(node) +5732 source = sources.get(name) +5733 if source: +5734 subquery = source.subquery(node.alias or name) +5735 subquery.comments = [f"source: {name}"] +5736 return subquery.transform(_expand, copy=False) +5737 return node 5738 -5739 -5740def true() -> Boolean: -5741 """ -5742 Returns a true Boolean expression. -5743 """ -5744 return Boolean(this=True) +5739 return expression.transform(_expand, copy=copy) +5740 +5741 +5742def func(name: str, *args, dialect: DialectType = None, **kwargs) -> Func: +5743 """ +5744 Returns a Func expression. 5745 -5746 -5747def false() -> Boolean: -5748 """ -5749 Returns a false Boolean expression. -5750 """ -5751 return Boolean(this=False) +5746 Examples: +5747 >>> func("abs", 5).sql() +5748 'ABS(5)' +5749 +5750 >>> func("cast", this=5, to=DataType.build("DOUBLE")).sql() +5751 'CAST(5 AS DOUBLE)' 5752 -5753 -5754def null() -> Null: -5755 """ -5756 Returns a Null expression. -5757 """ -5758 return Null() -5759 -5760 -5761# TODO: deprecate this -5762TRUE = Boolean(this=True) -5763FALSE = Boolean(this=False) -5764NULL = Null() +5753 Args: +5754 name: the name of the function to build. +5755 args: the args used to instantiate the function of interest. +5756 dialect: the source dialect. +5757 kwargs: the kwargs used to instantiate the function of interest. +5758 +5759 Note: +5760 The arguments `args` and `kwargs` are mutually exclusive. +5761 +5762 Returns: +5763 An instance of the function of interest, or an anonymous function, if `name` doesn't +5764 correspond to an existing `sqlglot.expressions.Func` class. +5765 """ +5766 if args and kwargs: +5767 raise ValueError("Can't use both args and kwargs to instantiate a function.") +5768 +5769 from sqlglot.dialects.dialect import Dialect +5770 +5771 converted: t.List[Expression] = [maybe_parse(arg, dialect=dialect) for arg in args] +5772 kwargs = {key: maybe_parse(value, dialect=dialect) for key, value in kwargs.items()} +5773 +5774 parser = Dialect.get_or_raise(dialect)().parser() +5775 from_args_list = parser.FUNCTIONS.get(name.upper()) +5776 +5777 if from_args_list: +5778 function = from_args_list(converted) if converted else from_args_list.__self__(**kwargs) # type: ignore +5779 else: +5780 kwargs = kwargs or {"expressions": converted} +5781 function = Anonymous(this=name, **kwargs) +5782 +5783 for error_message in function.error_messages(converted): +5784 raise ValueError(error_message) +5785 +5786 return function +5787 +5788 +5789def true() -> Boolean: +5790 """ +5791 Returns a true Boolean expression. +5792 """ +5793 return Boolean(this=True) +5794 +5795 +5796def false() -> Boolean: +5797 """ +5798 Returns a false Boolean expression. +5799 """ +5800 return Boolean(this=False) +5801 +5802 +5803def null() -> Null: +5804 """ +5805 Returns a Null expression. +5806 """ +5807 return Null() +5808 +5809 +5810# TODO: deprecate this +5811TRUE = Boolean(this=True) +5812FALSE = Boolean(this=False) +5813NULL = Null() @@ -10802,7 +10911,7 @@ to check that the provided arguments don't exceed the function argument limit.671 dialect: DialectType = None, 672 copy: bool = True, 673 **opts, -674 ) -> Expression: +674 ) -> Condition: 675 """ 676 AND this condition with one or multiple expressions. 677 @@ -10828,7 +10937,7 @@ to check that the provided arguments don't exceed the function argument limit.697 dialect: DialectType = None, 698 copy: bool = True, 699 **opts, -700 ) -> Expression: +700 ) -> Condition: 701 """ 702 OR this condition with one or multiple expressions. 703 @@ -11004,7 +11113,7 @@ to check that the provided arguments don't exceed the function argument limit. def - and_( self, *expressions: Union[str, sqlglot.expressions.Expression, NoneType], dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, copy: bool = True, **opts) -> sqlglot.expressions.Expression: + and_( self, *expressions: Union[str, sqlglot.expressions.Expression, NoneType], dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, copy: bool = True, **opts) -> sqlglot.expressions.Condition: @@ -11016,7 +11125,7 @@ to check that the provided arguments don't exceed the function argument limit.671 dialect: DialectType = None, 672 copy: bool = True, 673 **opts, -674 ) -> Expression: +674 ) -> Condition: 675 """ 676 AND this condition with one or multiple expressions. 677 @@ -11074,7 +11183,7 @@ If an Expression instance is passed, it w
                      def - or_( self, *expressions: Union[str, sqlglot.expressions.Expression, NoneType], dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, copy: bool = True, **opts) -> sqlglot.expressions.Expression: + or_( self, *expressions: Union[str, sqlglot.expressions.Expression, NoneType], dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, copy: bool = True, **opts) -> sqlglot.expressions.Condition: @@ -11086,7 +11195,7 @@ If an Expression instance is passed, it w 697 dialect: DialectType = None, 698 copy: bool = True, 699 **opts, -700 ) -> Expression: +700 ) -> Condition: 701 """ 702 OR this condition with one or multiple expressions. 703 @@ -11529,16 +11638,15 @@ If an Expression instance is passed, it w 875 table_alias = self.args.get("alias") 876 if not table_alias: 877 return [] -878 column_list = table_alias.assert_is(TableAlias).args.get("columns") or [] -879 return [c.name for c in column_list] -880 -881 @property -882 def selects(self): -883 return self.this.selects if isinstance(self.this, Subqueryable) else [] -884 -885 @property -886 def named_selects(self): -887 return [select.output_name for select in self.selects] +878 return [c.name for c in table_alias.args.get("columns") or []] +879 +880 @property +881 def selects(self): +882 return self.this.selects if isinstance(self.this, Subqueryable) else [] +883 +884 @property +885 def named_selects(self): +886 return [select.output_name for select in self.selects]
                      @@ -11602,75 +11710,75 @@ If an Expression instance is passed, it w -
                      890class Unionable(Expression):
                      -891    def union(
                      -892        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      -893    ) -> Unionable:
                      -894        """
                      -895        Builds a UNION expression.
                      -896
                      -897        Example:
                      -898            >>> import sqlglot
                      -899            >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()
                      -900            'SELECT * FROM foo UNION SELECT * FROM bla'
                      -901
                      -902        Args:
                      -903            expression: the SQL code string.
                      -904                If an `Expression` instance is passed, it will be used as-is.
                      -905            distinct: set the DISTINCT flag if and only if this is true.
                      -906            dialect: the dialect used to parse the input expression.
                      -907            opts: other options to use to parse the input expressions.
                      -908
                      -909        Returns:
                      -910            The new Union expression.
                      -911        """
                      -912        return union(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                      -913
                      -914    def intersect(
                      -915        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      -916    ) -> Unionable:
                      -917        """
                      -918        Builds an INTERSECT expression.
                      -919
                      -920        Example:
                      -921            >>> import sqlglot
                      -922            >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()
                      -923            'SELECT * FROM foo INTERSECT SELECT * FROM bla'
                      -924
                      -925        Args:
                      -926            expression: the SQL code string.
                      -927                If an `Expression` instance is passed, it will be used as-is.
                      -928            distinct: set the DISTINCT flag if and only if this is true.
                      -929            dialect: the dialect used to parse the input expression.
                      -930            opts: other options to use to parse the input expressions.
                      -931
                      -932        Returns:
                      -933            The new Intersect expression.
                      -934        """
                      -935        return intersect(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                      -936
                      -937    def except_(
                      -938        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      -939    ) -> Unionable:
                      -940        """
                      -941        Builds an EXCEPT expression.
                      -942
                      -943        Example:
                      -944            >>> import sqlglot
                      -945            >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()
                      -946            'SELECT * FROM foo EXCEPT SELECT * FROM bla'
                      -947
                      -948        Args:
                      -949            expression: the SQL code string.
                      -950                If an `Expression` instance is passed, it will be used as-is.
                      -951            distinct: set the DISTINCT flag if and only if this is true.
                      -952            dialect: the dialect used to parse the input expression.
                      -953            opts: other options to use to parse the input expressions.
                      -954
                      -955        Returns:
                      -956            The new Except expression.
                      -957        """
                      -958        return except_(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                      +            
                      889class Unionable(Expression):
                      +890    def union(
                      +891        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      +892    ) -> Unionable:
                      +893        """
                      +894        Builds a UNION expression.
                      +895
                      +896        Example:
                      +897            >>> import sqlglot
                      +898            >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()
                      +899            'SELECT * FROM foo UNION SELECT * FROM bla'
                      +900
                      +901        Args:
                      +902            expression: the SQL code string.
                      +903                If an `Expression` instance is passed, it will be used as-is.
                      +904            distinct: set the DISTINCT flag if and only if this is true.
                      +905            dialect: the dialect used to parse the input expression.
                      +906            opts: other options to use to parse the input expressions.
                      +907
                      +908        Returns:
                      +909            The new Union expression.
                      +910        """
                      +911        return union(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                      +912
                      +913    def intersect(
                      +914        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      +915    ) -> Unionable:
                      +916        """
                      +917        Builds an INTERSECT expression.
                      +918
                      +919        Example:
                      +920            >>> import sqlglot
                      +921            >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()
                      +922            'SELECT * FROM foo INTERSECT SELECT * FROM bla'
                      +923
                      +924        Args:
                      +925            expression: the SQL code string.
                      +926                If an `Expression` instance is passed, it will be used as-is.
                      +927            distinct: set the DISTINCT flag if and only if this is true.
                      +928            dialect: the dialect used to parse the input expression.
                      +929            opts: other options to use to parse the input expressions.
                      +930
                      +931        Returns:
                      +932            The new Intersect expression.
                      +933        """
                      +934        return intersect(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                      +935
                      +936    def except_(
                      +937        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      +938    ) -> Unionable:
                      +939        """
                      +940        Builds an EXCEPT expression.
                      +941
                      +942        Example:
                      +943            >>> import sqlglot
                      +944            >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()
                      +945            'SELECT * FROM foo EXCEPT SELECT * FROM bla'
                      +946
                      +947        Args:
                      +948            expression: the SQL code string.
                      +949                If an `Expression` instance is passed, it will be used as-is.
                      +950            distinct: set the DISTINCT flag if and only if this is true.
                      +951            dialect: the dialect used to parse the input expression.
                      +952            opts: other options to use to parse the input expressions.
                      +953
                      +954        Returns:
                      +955            The new Except expression.
                      +956        """
                      +957        return except_(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                       
                      @@ -11687,28 +11795,28 @@ If an Expression instance is passed, it w
                      -
                      891    def union(
                      -892        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      -893    ) -> Unionable:
                      -894        """
                      -895        Builds a UNION expression.
                      -896
                      -897        Example:
                      -898            >>> import sqlglot
                      -899            >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()
                      -900            'SELECT * FROM foo UNION SELECT * FROM bla'
                      -901
                      -902        Args:
                      -903            expression: the SQL code string.
                      -904                If an `Expression` instance is passed, it will be used as-is.
                      -905            distinct: set the DISTINCT flag if and only if this is true.
                      -906            dialect: the dialect used to parse the input expression.
                      -907            opts: other options to use to parse the input expressions.
                      -908
                      -909        Returns:
                      -910            The new Union expression.
                      -911        """
                      -912        return union(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                      +            
                      890    def union(
                      +891        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      +892    ) -> Unionable:
                      +893        """
                      +894        Builds a UNION expression.
                      +895
                      +896        Example:
                      +897            >>> import sqlglot
                      +898            >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()
                      +899            'SELECT * FROM foo UNION SELECT * FROM bla'
                      +900
                      +901        Args:
                      +902            expression: the SQL code string.
                      +903                If an `Expression` instance is passed, it will be used as-is.
                      +904            distinct: set the DISTINCT flag if and only if this is true.
                      +905            dialect: the dialect used to parse the input expression.
                      +906            opts: other options to use to parse the input expressions.
                      +907
                      +908        Returns:
                      +909            The new Union expression.
                      +910        """
                      +911        return union(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                       
                      @@ -11755,28 +11863,28 @@ If an Expression instance is passed, it w
                      -
                      914    def intersect(
                      -915        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      -916    ) -> Unionable:
                      -917        """
                      -918        Builds an INTERSECT expression.
                      -919
                      -920        Example:
                      -921            >>> import sqlglot
                      -922            >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()
                      -923            'SELECT * FROM foo INTERSECT SELECT * FROM bla'
                      -924
                      -925        Args:
                      -926            expression: the SQL code string.
                      -927                If an `Expression` instance is passed, it will be used as-is.
                      -928            distinct: set the DISTINCT flag if and only if this is true.
                      -929            dialect: the dialect used to parse the input expression.
                      -930            opts: other options to use to parse the input expressions.
                      -931
                      -932        Returns:
                      -933            The new Intersect expression.
                      -934        """
                      -935        return intersect(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                      +            
                      913    def intersect(
                      +914        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      +915    ) -> Unionable:
                      +916        """
                      +917        Builds an INTERSECT expression.
                      +918
                      +919        Example:
                      +920            >>> import sqlglot
                      +921            >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()
                      +922            'SELECT * FROM foo INTERSECT SELECT * FROM bla'
                      +923
                      +924        Args:
                      +925            expression: the SQL code string.
                      +926                If an `Expression` instance is passed, it will be used as-is.
                      +927            distinct: set the DISTINCT flag if and only if this is true.
                      +928            dialect: the dialect used to parse the input expression.
                      +929            opts: other options to use to parse the input expressions.
                      +930
                      +931        Returns:
                      +932            The new Intersect expression.
                      +933        """
                      +934        return intersect(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                       
                      @@ -11823,28 +11931,28 @@ If an Expression instance is passed, it w
                      -
                      937    def except_(
                      -938        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      -939    ) -> Unionable:
                      -940        """
                      -941        Builds an EXCEPT expression.
                      -942
                      -943        Example:
                      -944            >>> import sqlglot
                      -945            >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()
                      -946            'SELECT * FROM foo EXCEPT SELECT * FROM bla'
                      -947
                      -948        Args:
                      -949            expression: the SQL code string.
                      -950                If an `Expression` instance is passed, it will be used as-is.
                      -951            distinct: set the DISTINCT flag if and only if this is true.
                      -952            dialect: the dialect used to parse the input expression.
                      -953            opts: other options to use to parse the input expressions.
                      -954
                      -955        Returns:
                      -956            The new Except expression.
                      -957        """
                      -958        return except_(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                      +            
                      936    def except_(
                      +937        self, expression: ExpOrStr, distinct: bool = True, dialect: DialectType = None, **opts
                      +938    ) -> Unionable:
                      +939        """
                      +940        Builds an EXCEPT expression.
                      +941
                      +942        Example:
                      +943            >>> import sqlglot
                      +944            >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()
                      +945            'SELECT * FROM foo EXCEPT SELECT * FROM bla'
                      +946
                      +947        Args:
                      +948            expression: the SQL code string.
                      +949                If an `Expression` instance is passed, it will be used as-is.
                      +950            distinct: set the DISTINCT flag if and only if this is true.
                      +951            dialect: the dialect used to parse the input expression.
                      +952            opts: other options to use to parse the input expressions.
                      +953
                      +954        Returns:
                      +955            The new Except expression.
                      +956        """
                      +957        return except_(left=self, right=expression, distinct=distinct, dialect=dialect, **opts)
                       
                      @@ -11938,11 +12046,11 @@ If an Expression instance is passed, it w
                      -
                      961class UDTF(DerivedTable, Unionable):
                      -962    @property
                      -963    def selects(self):
                      -964        alias = self.args.get("alias")
                      -965        return alias.columns if alias else []
                      +            
                      960class UDTF(DerivedTable, Unionable):
                      +961    @property
                      +962    def selects(self):
                      +963        alias = self.args.get("alias")
                      +964        return alias.columns if alias else []
                       
                      @@ -12012,14 +12120,14 @@ If an Expression instance is passed, it w
                      -
                      968class Cache(Expression):
                      -969    arg_types = {
                      -970        "with": False,
                      -971        "this": True,
                      -972        "lazy": False,
                      -973        "options": False,
                      -974        "expression": False,
                      -975    }
                      +            
                      967class Cache(Expression):
                      +968    arg_types = {
                      +969        "with": False,
                      +970        "this": True,
                      +971        "lazy": False,
                      +972        "options": False,
                      +973        "expression": False,
                      +974    }
                       
                      @@ -12083,8 +12191,8 @@ If an Expression instance is passed, it w
                      -
                      978class Uncache(Expression):
                      -979    arg_types = {"this": True, "exists": False}
                      +            
                      977class Uncache(Expression):
                      +978    arg_types = {"this": True, "exists": False}
                       
                      @@ -12148,21 +12256,21 @@ If an Expression instance is passed, it w
                      -
                      982class Create(Expression):
                      -983    arg_types = {
                      -984        "with": False,
                      -985        "this": True,
                      -986        "kind": True,
                      -987        "expression": False,
                      -988        "exists": False,
                      -989        "properties": False,
                      -990        "replace": False,
                      -991        "unique": False,
                      -992        "indexes": False,
                      -993        "no_schema_binding": False,
                      -994        "begin": False,
                      -995        "clone": False,
                      -996    }
                      +            
                      981class Create(Expression):
                      +982    arg_types = {
                      +983        "with": False,
                      +984        "this": True,
                      +985        "kind": True,
                      +986        "expression": False,
                      +987        "exists": False,
                      +988        "properties": False,
                      +989        "replace": False,
                      +990        "unique": False,
                      +991        "indexes": False,
                      +992        "no_schema_binding": False,
                      +993        "begin": False,
                      +994        "clone": False,
                      +995    }
                       
                      @@ -12226,13 +12334,13 @@ If an Expression instance is passed, it w
                      -
                      1000class Clone(Expression):
                      -1001    arg_types = {
                      -1002        "this": True,
                      -1003        "when": False,
                      -1004        "kind": False,
                      -1005        "expression": False,
                      -1006    }
                      +            
                       999class Clone(Expression):
                      +1000    arg_types = {
                      +1001        "this": True,
                      +1002        "when": False,
                      +1003        "kind": False,
                      +1004        "expression": False,
                      +1005    }
                       
                      @@ -12296,8 +12404,8 @@ If an Expression instance is passed, it w
                      -
                      1009class Describe(Expression):
                      -1010    arg_types = {"this": True, "kind": False}
                      +            
                      1008class Describe(Expression):
                      +1009    arg_types = {"this": True, "kind": False}
                       
                      @@ -12361,8 +12469,8 @@ If an Expression instance is passed, it w
                      -
                      1013class Pragma(Expression):
                      -1014    pass
                      +            
                      1012class Pragma(Expression):
                      +1013    pass
                       
                      @@ -12426,8 +12534,8 @@ If an Expression instance is passed, it w
                      -
                      1017class Set(Expression):
                      -1018    arg_types = {"expressions": False}
                      +            
                      1016class Set(Expression):
                      +1017    arg_types = {"expressions": False}
                       
                      @@ -12491,14 +12599,14 @@ If an Expression instance is passed, it w
                      -
                      1021class SetItem(Expression):
                      -1022    arg_types = {
                      -1023        "this": False,
                      -1024        "expressions": False,
                      -1025        "kind": False,
                      -1026        "collate": False,  # MySQL SET NAMES statement
                      -1027        "global": False,
                      -1028    }
                      +            
                      1020class SetItem(Expression):
                      +1021    arg_types = {
                      +1022        "this": False,
                      +1023        "expressions": False,
                      +1024        "kind": False,
                      +1025        "collate": False,  # MySQL SET NAMES statement
                      +1026        "global": False,
                      +1027    }
                       
                      @@ -12562,24 +12670,24 @@ If an Expression instance is passed, it w
                      -
                      1031class Show(Expression):
                      -1032    arg_types = {
                      -1033        "this": True,
                      -1034        "target": False,
                      -1035        "offset": False,
                      -1036        "limit": False,
                      -1037        "like": False,
                      -1038        "where": False,
                      -1039        "db": False,
                      -1040        "full": False,
                      -1041        "mutex": False,
                      -1042        "query": False,
                      -1043        "channel": False,
                      -1044        "global": False,
                      -1045        "log": False,
                      -1046        "position": False,
                      -1047        "types": False,
                      -1048    }
                      +            
                      1030class Show(Expression):
                      +1031    arg_types = {
                      +1032        "this": True,
                      +1033        "target": False,
                      +1034        "offset": False,
                      +1035        "limit": False,
                      +1036        "like": False,
                      +1037        "where": False,
                      +1038        "db": False,
                      +1039        "full": False,
                      +1040        "mutex": False,
                      +1041        "query": False,
                      +1042        "channel": False,
                      +1043        "global": False,
                      +1044        "log": False,
                      +1045        "position": False,
                      +1046        "types": False,
                      +1047    }
                       
                      @@ -12643,8 +12751,8 @@ If an Expression instance is passed, it w
                      -
                      1051class UserDefinedFunction(Expression):
                      -1052    arg_types = {"this": True, "expressions": False, "wrapped": False}
                      +            
                      1050class UserDefinedFunction(Expression):
                      +1051    arg_types = {"this": True, "expressions": False, "wrapped": False}
                       
                      @@ -12708,8 +12816,8 @@ If an Expression instance is passed, it w
                      -
                      1055class CharacterSet(Expression):
                      -1056    arg_types = {"this": True, "default": False}
                      +            
                      1054class CharacterSet(Expression):
                      +1055    arg_types = {"this": True, "default": False}
                       
                      @@ -12773,12 +12881,12 @@ If an Expression instance is passed, it w
                      -
                      1059class With(Expression):
                      -1060    arg_types = {"expressions": True, "recursive": False}
                      -1061
                      -1062    @property
                      -1063    def recursive(self) -> bool:
                      -1064        return bool(self.args.get("recursive"))
                      +            
                      1058class With(Expression):
                      +1059    arg_types = {"expressions": True, "recursive": False}
                      +1060
                      +1061    @property
                      +1062    def recursive(self) -> bool:
                      +1063        return bool(self.args.get("recursive"))
                       
                      @@ -12842,8 +12950,8 @@ If an Expression instance is passed, it w
                      -
                      1067class WithinGroup(Expression):
                      -1068    arg_types = {"this": True, "expression": False}
                      +            
                      1066class WithinGroup(Expression):
                      +1067    arg_types = {"this": True, "expression": False}
                       
                      @@ -12907,8 +13015,8 @@ If an Expression instance is passed, it w
                      -
                      1071class CTE(DerivedTable):
                      -1072    arg_types = {"this": True, "alias": True}
                      +            
                      1070class CTE(DerivedTable):
                      +1071    arg_types = {"this": True, "alias": True}
                       
                      @@ -12972,12 +13080,12 @@ If an Expression instance is passed, it w
                      -
                      1075class TableAlias(Expression):
                      -1076    arg_types = {"this": False, "columns": False}
                      -1077
                      -1078    @property
                      -1079    def columns(self):
                      -1080        return self.args.get("columns") or []
                      +            
                      1074class TableAlias(Expression):
                      +1075    arg_types = {"this": False, "columns": False}
                      +1076
                      +1077    @property
                      +1078    def columns(self):
                      +1079        return self.args.get("columns") or []
                       
                      @@ -13041,8 +13149,8 @@ If an Expression instance is passed, it w
                      -
                      1083class BitString(Condition):
                      -1084    pass
                      +            
                      1082class BitString(Condition):
                      +1083    pass
                       
                      @@ -13121,8 +13229,8 @@ If an Expression instance is passed, it w
                      -
                      1087class HexString(Condition):
                      -1088    pass
                      +            
                      1086class HexString(Condition):
                      +1087    pass
                       
                      @@ -13201,8 +13309,8 @@ If an Expression instance is passed, it w
                      -
                      1091class ByteString(Condition):
                      -1092    pass
                      +            
                      1090class ByteString(Condition):
                      +1091    pass
                       
                      @@ -13281,8 +13389,8 @@ If an Expression instance is passed, it w
                      -
                      1095class RawString(Condition):
                      -1096    pass
                      +            
                      1094class RawString(Condition):
                      +1095    pass
                       
                      @@ -13361,45 +13469,45 @@ If an Expression instance is passed, it w
                      -
                      1099class Column(Condition):
                      -1100    arg_types = {"this": True, "table": False, "db": False, "catalog": False, "join_mark": False}
                      -1101
                      -1102    @property
                      -1103    def table(self) -> str:
                      -1104        return self.text("table")
                      -1105
                      -1106    @property
                      -1107    def db(self) -> str:
                      -1108        return self.text("db")
                      -1109
                      -1110    @property
                      -1111    def catalog(self) -> str:
                      -1112        return self.text("catalog")
                      -1113
                      -1114    @property
                      -1115    def output_name(self) -> str:
                      -1116        return self.name
                      -1117
                      -1118    @property
                      -1119    def parts(self) -> t.List[Identifier]:
                      -1120        """Return the parts of a column in order catalog, db, table, name."""
                      -1121        return [
                      -1122            t.cast(Identifier, self.args[part])
                      -1123            for part in ("catalog", "db", "table", "this")
                      -1124            if self.args.get(part)
                      -1125        ]
                      -1126
                      -1127    def to_dot(self) -> Dot:
                      -1128        """Converts the column into a dot expression."""
                      -1129        parts = self.parts
                      -1130        parent = self.parent
                      -1131
                      -1132        while parent:
                      -1133            if isinstance(parent, Dot):
                      -1134                parts.append(parent.expression)
                      -1135            parent = parent.parent
                      -1136
                      -1137        return Dot.build(parts)
                      +            
                      1098class Column(Condition):
                      +1099    arg_types = {"this": True, "table": False, "db": False, "catalog": False, "join_mark": False}
                      +1100
                      +1101    @property
                      +1102    def table(self) -> str:
                      +1103        return self.text("table")
                      +1104
                      +1105    @property
                      +1106    def db(self) -> str:
                      +1107        return self.text("db")
                      +1108
                      +1109    @property
                      +1110    def catalog(self) -> str:
                      +1111        return self.text("catalog")
                      +1112
                      +1113    @property
                      +1114    def output_name(self) -> str:
                      +1115        return self.name
                      +1116
                      +1117    @property
                      +1118    def parts(self) -> t.List[Identifier]:
                      +1119        """Return the parts of a column in order catalog, db, table, name."""
                      +1120        return [
                      +1121            t.cast(Identifier, self.args[part])
                      +1122            for part in ("catalog", "db", "table", "this")
                      +1123            if self.args.get(part)
                      +1124        ]
                      +1125
                      +1126    def to_dot(self) -> Dot:
                      +1127        """Converts the column into a dot expression."""
                      +1128        parts = self.parts
                      +1129        parent = self.parent
                      +1130
                      +1131        while parent:
                      +1132            if isinstance(parent, Dot):
                      +1133                parts.append(parent.expression)
                      +1134            parent = parent.parent
                      +1135
                      +1136        return Dot.build(parts)
                       
                      @@ -13459,17 +13567,17 @@ If an Expression instance is passed, it w
                      -
                      1127    def to_dot(self) -> Dot:
                      -1128        """Converts the column into a dot expression."""
                      -1129        parts = self.parts
                      -1130        parent = self.parent
                      -1131
                      -1132        while parent:
                      -1133            if isinstance(parent, Dot):
                      -1134                parts.append(parent.expression)
                      -1135            parent = parent.parent
                      -1136
                      -1137        return Dot.build(parts)
                      +            
                      1126    def to_dot(self) -> Dot:
                      +1127        """Converts the column into a dot expression."""
                      +1128        parts = self.parts
                      +1129        parent = self.parent
                      +1130
                      +1131        while parent:
                      +1132            if isinstance(parent, Dot):
                      +1133                parts.append(parent.expression)
                      +1134            parent = parent.parent
                      +1135
                      +1136        return Dot.build(parts)
                       
                      @@ -13550,8 +13658,8 @@ If an Expression instance is passed, it w
                      -
                      1140class ColumnPosition(Expression):
                      -1141    arg_types = {"this": False, "position": True}
                      +            
                      1139class ColumnPosition(Expression):
                      +1140    arg_types = {"this": False, "position": True}
                       
                      @@ -13615,18 +13723,18 @@ If an Expression instance is passed, it w
                      -
                      1144class ColumnDef(Expression):
                      -1145    arg_types = {
                      -1146        "this": True,
                      -1147        "kind": False,
                      -1148        "constraints": False,
                      -1149        "exists": False,
                      -1150        "position": False,
                      -1151    }
                      -1152
                      -1153    @property
                      -1154    def constraints(self) -> t.List[ColumnConstraint]:
                      -1155        return self.args.get("constraints") or []
                      +            
                      1143class ColumnDef(Expression):
                      +1144    arg_types = {
                      +1145        "this": True,
                      +1146        "kind": False,
                      +1147        "constraints": False,
                      +1148        "exists": False,
                      +1149        "position": False,
                      +1150    }
                      +1151
                      +1152    @property
                      +1153    def constraints(self) -> t.List[ColumnConstraint]:
                      +1154        return self.args.get("constraints") or []
                       
                      @@ -13690,15 +13798,15 @@ If an Expression instance is passed, it w
                      -
                      1158class AlterColumn(Expression):
                      -1159    arg_types = {
                      -1160        "this": True,
                      -1161        "dtype": False,
                      -1162        "collate": False,
                      -1163        "using": False,
                      -1164        "default": False,
                      -1165        "drop": False,
                      -1166    }
                      +            
                      1157class AlterColumn(Expression):
                      +1158    arg_types = {
                      +1159        "this": True,
                      +1160        "dtype": False,
                      +1161        "collate": False,
                      +1162        "using": False,
                      +1163        "default": False,
                      +1164        "drop": False,
                      +1165    }
                       
                      @@ -13762,8 +13870,8 @@ If an Expression instance is passed, it w
                      -
                      1169class RenameTable(Expression):
                      -1170    pass
                      +            
                      1168class RenameTable(Expression):
                      +1169    pass
                       
                      @@ -13827,8 +13935,8 @@ If an Expression instance is passed, it w
                      -
                      1173class SetTag(Expression):
                      -1174    arg_types = {"expressions": True, "unset": False}
                      +            
                      1172class SetTag(Expression):
                      +1173    arg_types = {"expressions": True, "unset": False}
                       
                      @@ -13892,8 +14000,8 @@ If an Expression instance is passed, it w
                      -
                      1177class Comment(Expression):
                      -1178    arg_types = {"this": True, "kind": True, "expression": True, "exists": False}
                      +            
                      1176class Comment(Expression):
                      +1177    arg_types = {"this": True, "kind": True, "expression": True, "exists": False}
                       
                      @@ -13957,14 +14065,14 @@ If an Expression instance is passed, it w
                      -
                      1182class MergeTreeTTLAction(Expression):
                      -1183    arg_types = {
                      -1184        "this": True,
                      -1185        "delete": False,
                      -1186        "recompress": False,
                      -1187        "to_disk": False,
                      -1188        "to_volume": False,
                      -1189    }
                      +            
                      1181class MergeTreeTTLAction(Expression):
                      +1182    arg_types = {
                      +1183        "this": True,
                      +1184        "delete": False,
                      +1185        "recompress": False,
                      +1186        "to_disk": False,
                      +1187        "to_volume": False,
                      +1188    }
                       
                      @@ -14028,13 +14136,13 @@ If an Expression instance is passed, it w
                      -
                      1193class MergeTreeTTL(Expression):
                      -1194    arg_types = {
                      -1195        "expressions": True,
                      -1196        "where": False,
                      -1197        "group": False,
                      -1198        "aggregates": False,
                      -1199    }
                      +            
                      1192class MergeTreeTTL(Expression):
                      +1193    arg_types = {
                      +1194        "expressions": True,
                      +1195        "where": False,
                      +1196        "group": False,
                      +1197        "aggregates": False,
                      +1198    }
                       
                      @@ -14098,12 +14206,12 @@ If an Expression instance is passed, it w
                      -
                      1202class ColumnConstraint(Expression):
                      -1203    arg_types = {"this": False, "kind": True}
                      -1204
                      -1205    @property
                      -1206    def kind(self) -> ColumnConstraintKind:
                      -1207        return self.args["kind"]
                      +            
                      1201class ColumnConstraint(Expression):
                      +1202    arg_types = {"this": False, "kind": True}
                      +1203
                      +1204    @property
                      +1205    def kind(self) -> ColumnConstraintKind:
                      +1206        return self.args["kind"]
                       
                      @@ -14167,8 +14275,8 @@ If an Expression instance is passed, it w
                      -
                      1210class ColumnConstraintKind(Expression):
                      -1211    pass
                      +            
                      1209class ColumnConstraintKind(Expression):
                      +1210    pass
                       
                      @@ -14232,8 +14340,8 @@ If an Expression instance is passed, it w
                      -
                      1214class AutoIncrementColumnConstraint(ColumnConstraintKind):
                      -1215    pass
                      +            
                      1213class AutoIncrementColumnConstraint(ColumnConstraintKind):
                      +1214    pass
                       
                      @@ -14297,8 +14405,8 @@ If an Expression instance is passed, it w
                      -
                      1218class CaseSpecificColumnConstraint(ColumnConstraintKind):
                      -1219    arg_types = {"not_": True}
                      +            
                      1217class CaseSpecificColumnConstraint(ColumnConstraintKind):
                      +1218    arg_types = {"not_": True}
                       
                      @@ -14362,8 +14470,8 @@ If an Expression instance is passed, it w
                      -
                      1222class CharacterSetColumnConstraint(ColumnConstraintKind):
                      -1223    arg_types = {"this": True}
                      +            
                      1221class CharacterSetColumnConstraint(ColumnConstraintKind):
                      +1222    arg_types = {"this": True}
                       
                      @@ -14427,8 +14535,8 @@ If an Expression instance is passed, it w
                      -
                      1226class CheckColumnConstraint(ColumnConstraintKind):
                      -1227    pass
                      +            
                      1225class CheckColumnConstraint(ColumnConstraintKind):
                      +1226    pass
                       
                      @@ -14492,8 +14600,8 @@ If an Expression instance is passed, it w
                      -
                      1230class CollateColumnConstraint(ColumnConstraintKind):
                      -1231    pass
                      +            
                      1229class CollateColumnConstraint(ColumnConstraintKind):
                      +1230    pass
                       
                      @@ -14557,8 +14665,8 @@ If an Expression instance is passed, it w
                      -
                      1234class CommentColumnConstraint(ColumnConstraintKind):
                      -1235    pass
                      +            
                      1233class CommentColumnConstraint(ColumnConstraintKind):
                      +1234    pass
                       
                      @@ -14622,8 +14730,8 @@ If an Expression instance is passed, it w
                      -
                      1238class CompressColumnConstraint(ColumnConstraintKind):
                      -1239    pass
                      +            
                      1237class CompressColumnConstraint(ColumnConstraintKind):
                      +1238    pass
                       
                      @@ -14687,8 +14795,8 @@ If an Expression instance is passed, it w
                      -
                      1242class DateFormatColumnConstraint(ColumnConstraintKind):
                      -1243    arg_types = {"this": True}
                      +            
                      1241class DateFormatColumnConstraint(ColumnConstraintKind):
                      +1242    arg_types = {"this": True}
                       
                      @@ -14752,8 +14860,8 @@ If an Expression instance is passed, it w
                      -
                      1246class DefaultColumnConstraint(ColumnConstraintKind):
                      -1247    pass
                      +            
                      1245class DefaultColumnConstraint(ColumnConstraintKind):
                      +1246    pass
                       
                      @@ -14817,8 +14925,8 @@ If an Expression instance is passed, it w
                      -
                      1250class EncodeColumnConstraint(ColumnConstraintKind):
                      -1251    pass
                      +            
                      1249class EncodeColumnConstraint(ColumnConstraintKind):
                      +1250    pass
                       
                      @@ -14882,18 +14990,18 @@ If an Expression instance is passed, it w
                      -
                      1254class GeneratedAsIdentityColumnConstraint(ColumnConstraintKind):
                      -1255    # this: True -> ALWAYS, this: False -> BY DEFAULT
                      -1256    arg_types = {
                      -1257        "this": False,
                      -1258        "expression": False,
                      -1259        "on_null": False,
                      -1260        "start": False,
                      -1261        "increment": False,
                      -1262        "minvalue": False,
                      -1263        "maxvalue": False,
                      -1264        "cycle": False,
                      -1265    }
                      +            
                      1253class GeneratedAsIdentityColumnConstraint(ColumnConstraintKind):
                      +1254    # this: True -> ALWAYS, this: False -> BY DEFAULT
                      +1255    arg_types = {
                      +1256        "this": False,
                      +1257        "expression": False,
                      +1258        "on_null": False,
                      +1259        "start": False,
                      +1260        "increment": False,
                      +1261        "minvalue": False,
                      +1262        "maxvalue": False,
                      +1263        "cycle": False,
                      +1264    }
                       
                      @@ -14957,8 +15065,8 @@ If an Expression instance is passed, it w
                      -
                      1268class InlineLengthColumnConstraint(ColumnConstraintKind):
                      -1269    pass
                      +            
                      1267class InlineLengthColumnConstraint(ColumnConstraintKind):
                      +1268    pass
                       
                      @@ -15022,8 +15130,8 @@ If an Expression instance is passed, it w
                      -
                      1272class NotNullColumnConstraint(ColumnConstraintKind):
                      -1273    arg_types = {"allow_null": False}
                      +            
                      1271class NotNullColumnConstraint(ColumnConstraintKind):
                      +1272    arg_types = {"allow_null": False}
                       
                      @@ -15087,8 +15195,8 @@ If an Expression instance is passed, it w
                      -
                      1277class OnUpdateColumnConstraint(ColumnConstraintKind):
                      -1278    pass
                      +            
                      1276class OnUpdateColumnConstraint(ColumnConstraintKind):
                      +1277    pass
                       
                      @@ -15152,8 +15260,8 @@ If an Expression instance is passed, it w
                      -
                      1281class PrimaryKeyColumnConstraint(ColumnConstraintKind):
                      -1282    arg_types = {"desc": False}
                      +            
                      1280class PrimaryKeyColumnConstraint(ColumnConstraintKind):
                      +1281    arg_types = {"desc": False}
                       
                      @@ -15217,8 +15325,8 @@ If an Expression instance is passed, it w
                      -
                      1285class TitleColumnConstraint(ColumnConstraintKind):
                      -1286    pass
                      +            
                      1284class TitleColumnConstraint(ColumnConstraintKind):
                      +1285    pass
                       
                      @@ -15282,8 +15390,8 @@ If an Expression instance is passed, it w
                      -
                      1289class UniqueColumnConstraint(ColumnConstraintKind):
                      -1290    arg_types: t.Dict[str, t.Any] = {}
                      +            
                      1288class UniqueColumnConstraint(ColumnConstraintKind):
                      +1289    arg_types = {"this": False}
                       
                      @@ -15347,8 +15455,8 @@ If an Expression instance is passed, it w
                      -
                      1293class UppercaseColumnConstraint(ColumnConstraintKind):
                      -1294    arg_types: t.Dict[str, t.Any] = {}
                      +            
                      1292class UppercaseColumnConstraint(ColumnConstraintKind):
                      +1293    arg_types: t.Dict[str, t.Any] = {}
                       
                      @@ -15412,8 +15520,8 @@ If an Expression instance is passed, it w
                      -
                      1297class PathColumnConstraint(ColumnConstraintKind):
                      -1298    pass
                      +            
                      1296class PathColumnConstraint(ColumnConstraintKind):
                      +1297    pass
                       
                      @@ -15477,8 +15585,8 @@ If an Expression instance is passed, it w
                      -
                      1301class Constraint(Expression):
                      -1302    arg_types = {"this": True, "expressions": True}
                      +            
                      1300class Constraint(Expression):
                      +1301    arg_types = {"this": True, "expressions": True}
                       
                      @@ -15542,115 +15650,115 @@ If an Expression instance is passed, it w
                      -
                      1305class Delete(Expression):
                      -1306    arg_types = {"with": False, "this": False, "using": False, "where": False, "returning": False}
                      -1307
                      -1308    def delete(
                      -1309        self,
                      -1310        table: ExpOrStr,
                      -1311        dialect: DialectType = None,
                      -1312        copy: bool = True,
                      -1313        **opts,
                      -1314    ) -> Delete:
                      -1315        """
                      -1316        Create a DELETE expression or replace the table on an existing DELETE expression.
                      -1317
                      -1318        Example:
                      -1319            >>> delete("tbl").sql()
                      -1320            'DELETE FROM tbl'
                      -1321
                      -1322        Args:
                      -1323            table: the table from which to delete.
                      -1324            dialect: the dialect used to parse the input expression.
                      -1325            copy: if `False`, modify this expression instance in-place.
                      -1326            opts: other options to use to parse the input expressions.
                      -1327
                      -1328        Returns:
                      -1329            Delete: the modified expression.
                      -1330        """
                      -1331        return _apply_builder(
                      -1332            expression=table,
                      -1333            instance=self,
                      -1334            arg="this",
                      -1335            dialect=dialect,
                      -1336            into=Table,
                      -1337            copy=copy,
                      -1338            **opts,
                      -1339        )
                      -1340
                      -1341    def where(
                      -1342        self,
                      -1343        *expressions: t.Optional[ExpOrStr],
                      -1344        append: bool = True,
                      -1345        dialect: DialectType = None,
                      -1346        copy: bool = True,
                      -1347        **opts,
                      -1348    ) -> Delete:
                      -1349        """
                      -1350        Append to or set the WHERE expressions.
                      -1351
                      -1352        Example:
                      -1353            >>> delete("tbl").where("x = 'a' OR x < 'b'").sql()
                      -1354            "DELETE FROM tbl WHERE x = 'a' OR x < 'b'"
                      -1355
                      -1356        Args:
                      -1357            *expressions: the SQL code strings to parse.
                      -1358                If an `Expression` instance is passed, it will be used as-is.
                      -1359                Multiple expressions are combined with an AND operator.
                      -1360            append: if `True`, AND the new expressions to any existing expression.
                      -1361                Otherwise, this resets the expression.
                      -1362            dialect: the dialect used to parse the input expressions.
                      -1363            copy: if `False`, modify this expression instance in-place.
                      -1364            opts: other options to use to parse the input expressions.
                      -1365
                      -1366        Returns:
                      -1367            Delete: the modified expression.
                      -1368        """
                      -1369        return _apply_conjunction_builder(
                      -1370            *expressions,
                      -1371            instance=self,
                      -1372            arg="where",
                      -1373            append=append,
                      -1374            into=Where,
                      -1375            dialect=dialect,
                      -1376            copy=copy,
                      -1377            **opts,
                      -1378        )
                      -1379
                      -1380    def returning(
                      -1381        self,
                      -1382        expression: ExpOrStr,
                      -1383        dialect: DialectType = None,
                      -1384        copy: bool = True,
                      -1385        **opts,
                      -1386    ) -> Delete:
                      -1387        """
                      -1388        Set the RETURNING expression. Not supported by all dialects.
                      -1389
                      -1390        Example:
                      -1391            >>> delete("tbl").returning("*", dialect="postgres").sql()
                      -1392            'DELETE FROM tbl RETURNING *'
                      -1393
                      -1394        Args:
                      -1395            expression: the SQL code strings to parse.
                      -1396                If an `Expression` instance is passed, it will be used as-is.
                      -1397            dialect: the dialect used to parse the input expressions.
                      -1398            copy: if `False`, modify this expression instance in-place.
                      -1399            opts: other options to use to parse the input expressions.
                      -1400
                      -1401        Returns:
                      -1402            Delete: the modified expression.
                      -1403        """
                      -1404        return _apply_builder(
                      -1405            expression=expression,
                      -1406            instance=self,
                      -1407            arg="returning",
                      -1408            prefix="RETURNING",
                      -1409            dialect=dialect,
                      -1410            copy=copy,
                      -1411            into=Returning,
                      -1412            **opts,
                      -1413        )
                      +            
                      1304class Delete(Expression):
                      +1305    arg_types = {"with": False, "this": False, "using": False, "where": False, "returning": False}
                      +1306
                      +1307    def delete(
                      +1308        self,
                      +1309        table: ExpOrStr,
                      +1310        dialect: DialectType = None,
                      +1311        copy: bool = True,
                      +1312        **opts,
                      +1313    ) -> Delete:
                      +1314        """
                      +1315        Create a DELETE expression or replace the table on an existing DELETE expression.
                      +1316
                      +1317        Example:
                      +1318            >>> delete("tbl").sql()
                      +1319            'DELETE FROM tbl'
                      +1320
                      +1321        Args:
                      +1322            table: the table from which to delete.
                      +1323            dialect: the dialect used to parse the input expression.
                      +1324            copy: if `False`, modify this expression instance in-place.
                      +1325            opts: other options to use to parse the input expressions.
                      +1326
                      +1327        Returns:
                      +1328            Delete: the modified expression.
                      +1329        """
                      +1330        return _apply_builder(
                      +1331            expression=table,
                      +1332            instance=self,
                      +1333            arg="this",
                      +1334            dialect=dialect,
                      +1335            into=Table,
                      +1336            copy=copy,
                      +1337            **opts,
                      +1338        )
                      +1339
                      +1340    def where(
                      +1341        self,
                      +1342        *expressions: t.Optional[ExpOrStr],
                      +1343        append: bool = True,
                      +1344        dialect: DialectType = None,
                      +1345        copy: bool = True,
                      +1346        **opts,
                      +1347    ) -> Delete:
                      +1348        """
                      +1349        Append to or set the WHERE expressions.
                      +1350
                      +1351        Example:
                      +1352            >>> delete("tbl").where("x = 'a' OR x < 'b'").sql()
                      +1353            "DELETE FROM tbl WHERE x = 'a' OR x < 'b'"
                      +1354
                      +1355        Args:
                      +1356            *expressions: the SQL code strings to parse.
                      +1357                If an `Expression` instance is passed, it will be used as-is.
                      +1358                Multiple expressions are combined with an AND operator.
                      +1359            append: if `True`, AND the new expressions to any existing expression.
                      +1360                Otherwise, this resets the expression.
                      +1361            dialect: the dialect used to parse the input expressions.
                      +1362            copy: if `False`, modify this expression instance in-place.
                      +1363            opts: other options to use to parse the input expressions.
                      +1364
                      +1365        Returns:
                      +1366            Delete: the modified expression.
                      +1367        """
                      +1368        return _apply_conjunction_builder(
                      +1369            *expressions,
                      +1370            instance=self,
                      +1371            arg="where",
                      +1372            append=append,
                      +1373            into=Where,
                      +1374            dialect=dialect,
                      +1375            copy=copy,
                      +1376            **opts,
                      +1377        )
                      +1378
                      +1379    def returning(
                      +1380        self,
                      +1381        expression: ExpOrStr,
                      +1382        dialect: DialectType = None,
                      +1383        copy: bool = True,
                      +1384        **opts,
                      +1385    ) -> Delete:
                      +1386        """
                      +1387        Set the RETURNING expression. Not supported by all dialects.
                      +1388
                      +1389        Example:
                      +1390            >>> delete("tbl").returning("*", dialect="postgres").sql()
                      +1391            'DELETE FROM tbl RETURNING *'
                      +1392
                      +1393        Args:
                      +1394            expression: the SQL code strings to parse.
                      +1395                If an `Expression` instance is passed, it will be used as-is.
                      +1396            dialect: the dialect used to parse the input expressions.
                      +1397            copy: if `False`, modify this expression instance in-place.
                      +1398            opts: other options to use to parse the input expressions.
                      +1399
                      +1400        Returns:
                      +1401            Delete: the modified expression.
                      +1402        """
                      +1403        return _apply_builder(
                      +1404            expression=expression,
                      +1405            instance=self,
                      +1406            arg="returning",
                      +1407            prefix="RETURNING",
                      +1408            dialect=dialect,
                      +1409            copy=copy,
                      +1410            into=Returning,
                      +1411            **opts,
                      +1412        )
                       
                      @@ -15667,38 +15775,38 @@ If an Expression instance is passed, it w
                      -
                      1308    def delete(
                      -1309        self,
                      -1310        table: ExpOrStr,
                      -1311        dialect: DialectType = None,
                      -1312        copy: bool = True,
                      -1313        **opts,
                      -1314    ) -> Delete:
                      -1315        """
                      -1316        Create a DELETE expression or replace the table on an existing DELETE expression.
                      -1317
                      -1318        Example:
                      -1319            >>> delete("tbl").sql()
                      -1320            'DELETE FROM tbl'
                      -1321
                      -1322        Args:
                      -1323            table: the table from which to delete.
                      -1324            dialect: the dialect used to parse the input expression.
                      -1325            copy: if `False`, modify this expression instance in-place.
                      -1326            opts: other options to use to parse the input expressions.
                      -1327
                      -1328        Returns:
                      -1329            Delete: the modified expression.
                      -1330        """
                      -1331        return _apply_builder(
                      -1332            expression=table,
                      -1333            instance=self,
                      -1334            arg="this",
                      -1335            dialect=dialect,
                      -1336            into=Table,
                      -1337            copy=copy,
                      -1338            **opts,
                      -1339        )
                      +            
                      1307    def delete(
                      +1308        self,
                      +1309        table: ExpOrStr,
                      +1310        dialect: DialectType = None,
                      +1311        copy: bool = True,
                      +1312        **opts,
                      +1313    ) -> Delete:
                      +1314        """
                      +1315        Create a DELETE expression or replace the table on an existing DELETE expression.
                      +1316
                      +1317        Example:
                      +1318            >>> delete("tbl").sql()
                      +1319            'DELETE FROM tbl'
                      +1320
                      +1321        Args:
                      +1322            table: the table from which to delete.
                      +1323            dialect: the dialect used to parse the input expression.
                      +1324            copy: if `False`, modify this expression instance in-place.
                      +1325            opts: other options to use to parse the input expressions.
                      +1326
                      +1327        Returns:
                      +1328            Delete: the modified expression.
                      +1329        """
                      +1330        return _apply_builder(
                      +1331            expression=table,
                      +1332            instance=self,
                      +1333            arg="this",
                      +1334            dialect=dialect,
                      +1335            into=Table,
                      +1336            copy=copy,
                      +1337            **opts,
                      +1338        )
                       
                      @@ -15743,44 +15851,44 @@ If an Expression instance is passed, it w
                      -
                      1341    def where(
                      -1342        self,
                      -1343        *expressions: t.Optional[ExpOrStr],
                      -1344        append: bool = True,
                      -1345        dialect: DialectType = None,
                      -1346        copy: bool = True,
                      -1347        **opts,
                      -1348    ) -> Delete:
                      -1349        """
                      -1350        Append to or set the WHERE expressions.
                      -1351
                      -1352        Example:
                      -1353            >>> delete("tbl").where("x = 'a' OR x < 'b'").sql()
                      -1354            "DELETE FROM tbl WHERE x = 'a' OR x < 'b'"
                      -1355
                      -1356        Args:
                      -1357            *expressions: the SQL code strings to parse.
                      -1358                If an `Expression` instance is passed, it will be used as-is.
                      -1359                Multiple expressions are combined with an AND operator.
                      -1360            append: if `True`, AND the new expressions to any existing expression.
                      -1361                Otherwise, this resets the expression.
                      -1362            dialect: the dialect used to parse the input expressions.
                      -1363            copy: if `False`, modify this expression instance in-place.
                      -1364            opts: other options to use to parse the input expressions.
                      -1365
                      -1366        Returns:
                      -1367            Delete: the modified expression.
                      -1368        """
                      -1369        return _apply_conjunction_builder(
                      -1370            *expressions,
                      -1371            instance=self,
                      -1372            arg="where",
                      -1373            append=append,
                      -1374            into=Where,
                      -1375            dialect=dialect,
                      -1376            copy=copy,
                      -1377            **opts,
                      -1378        )
                      +            
                      1340    def where(
                      +1341        self,
                      +1342        *expressions: t.Optional[ExpOrStr],
                      +1343        append: bool = True,
                      +1344        dialect: DialectType = None,
                      +1345        copy: bool = True,
                      +1346        **opts,
                      +1347    ) -> Delete:
                      +1348        """
                      +1349        Append to or set the WHERE expressions.
                      +1350
                      +1351        Example:
                      +1352            >>> delete("tbl").where("x = 'a' OR x < 'b'").sql()
                      +1353            "DELETE FROM tbl WHERE x = 'a' OR x < 'b'"
                      +1354
                      +1355        Args:
                      +1356            *expressions: the SQL code strings to parse.
                      +1357                If an `Expression` instance is passed, it will be used as-is.
                      +1358                Multiple expressions are combined with an AND operator.
                      +1359            append: if `True`, AND the new expressions to any existing expression.
                      +1360                Otherwise, this resets the expression.
                      +1361            dialect: the dialect used to parse the input expressions.
                      +1362            copy: if `False`, modify this expression instance in-place.
                      +1363            opts: other options to use to parse the input expressions.
                      +1364
                      +1365        Returns:
                      +1366            Delete: the modified expression.
                      +1367        """
                      +1368        return _apply_conjunction_builder(
                      +1369            *expressions,
                      +1370            instance=self,
                      +1371            arg="where",
                      +1372            append=append,
                      +1373            into=Where,
                      +1374            dialect=dialect,
                      +1375            copy=copy,
                      +1376            **opts,
                      +1377        )
                       
                      @@ -15829,40 +15937,40 @@ Otherwise, this resets the expression.
                    • -
                      1380    def returning(
                      -1381        self,
                      -1382        expression: ExpOrStr,
                      -1383        dialect: DialectType = None,
                      -1384        copy: bool = True,
                      -1385        **opts,
                      -1386    ) -> Delete:
                      -1387        """
                      -1388        Set the RETURNING expression. Not supported by all dialects.
                      -1389
                      -1390        Example:
                      -1391            >>> delete("tbl").returning("*", dialect="postgres").sql()
                      -1392            'DELETE FROM tbl RETURNING *'
                      -1393
                      -1394        Args:
                      -1395            expression: the SQL code strings to parse.
                      -1396                If an `Expression` instance is passed, it will be used as-is.
                      -1397            dialect: the dialect used to parse the input expressions.
                      -1398            copy: if `False`, modify this expression instance in-place.
                      -1399            opts: other options to use to parse the input expressions.
                      -1400
                      -1401        Returns:
                      -1402            Delete: the modified expression.
                      -1403        """
                      -1404        return _apply_builder(
                      -1405            expression=expression,
                      -1406            instance=self,
                      -1407            arg="returning",
                      -1408            prefix="RETURNING",
                      -1409            dialect=dialect,
                      -1410            copy=copy,
                      -1411            into=Returning,
                      -1412            **opts,
                      -1413        )
                      +            
                      1379    def returning(
                      +1380        self,
                      +1381        expression: ExpOrStr,
                      +1382        dialect: DialectType = None,
                      +1383        copy: bool = True,
                      +1384        **opts,
                      +1385    ) -> Delete:
                      +1386        """
                      +1387        Set the RETURNING expression. Not supported by all dialects.
                      +1388
                      +1389        Example:
                      +1390            >>> delete("tbl").returning("*", dialect="postgres").sql()
                      +1391            'DELETE FROM tbl RETURNING *'
                      +1392
                      +1393        Args:
                      +1394            expression: the SQL code strings to parse.
                      +1395                If an `Expression` instance is passed, it will be used as-is.
                      +1396            dialect: the dialect used to parse the input expressions.
                      +1397            copy: if `False`, modify this expression instance in-place.
                      +1398            opts: other options to use to parse the input expressions.
                      +1399
                      +1400        Returns:
                      +1401            Delete: the modified expression.
                      +1402        """
                      +1403        return _apply_builder(
                      +1404            expression=expression,
                      +1405            instance=self,
                      +1406            arg="returning",
                      +1407            prefix="RETURNING",
                      +1408            dialect=dialect,
                      +1409            copy=copy,
                      +1410            into=Returning,
                      +1411            **opts,
                      +1412        )
                       
                      @@ -15955,17 +16063,17 @@ If an Expression instance is passed, it w
                      -
                      1416class Drop(Expression):
                      -1417    arg_types = {
                      -1418        "this": False,
                      -1419        "kind": False,
                      -1420        "exists": False,
                      -1421        "temporary": False,
                      -1422        "materialized": False,
                      -1423        "cascade": False,
                      -1424        "constraints": False,
                      -1425        "purge": False,
                      -1426    }
                      +            
                      1415class Drop(Expression):
                      +1416    arg_types = {
                      +1417        "this": False,
                      +1418        "kind": False,
                      +1419        "exists": False,
                      +1420        "temporary": False,
                      +1421        "materialized": False,
                      +1422        "cascade": False,
                      +1423        "constraints": False,
                      +1424        "purge": False,
                      +1425    }
                       
                      @@ -16029,8 +16137,8 @@ If an Expression instance is passed, it w
                      -
                      1429class Filter(Expression):
                      -1430    arg_types = {"this": True, "expression": True}
                      +            
                      1428class Filter(Expression):
                      +1429    arg_types = {"this": True, "expression": True}
                       
                      @@ -16094,8 +16202,8 @@ If an Expression instance is passed, it w
                      -
                      1433class Check(Expression):
                      -1434    pass
                      +            
                      1432class Check(Expression):
                      +1433    pass
                       
                      @@ -16159,9 +16267,9 @@ If an Expression instance is passed, it w
                      -
                      1437class Directory(Expression):
                      -1438    # https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html
                      -1439    arg_types = {"this": True, "local": False, "row_format": False}
                      +            
                      1436class Directory(Expression):
                      +1437    # https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html
                      +1438    arg_types = {"this": True, "local": False, "row_format": False}
                       
                      @@ -16225,13 +16333,13 @@ If an Expression instance is passed, it w
                      -
                      1442class ForeignKey(Expression):
                      -1443    arg_types = {
                      -1444        "expressions": True,
                      -1445        "reference": False,
                      -1446        "delete": False,
                      -1447        "update": False,
                      -1448    }
                      +            
                      1441class ForeignKey(Expression):
                      +1442    arg_types = {
                      +1443        "expressions": True,
                      +1444        "reference": False,
                      +1445        "delete": False,
                      +1446        "update": False,
                      +1447    }
                       
                      @@ -16295,8 +16403,8 @@ If an Expression instance is passed, it w
                      -
                      1451class PrimaryKey(Expression):
                      -1452    arg_types = {"expressions": True, "options": False}
                      +            
                      1450class PrimaryKey(Expression):
                      +1451    arg_types = {"expressions": True, "options": False}
                       
                      @@ -16345,71 +16453,6 @@ If an Expression instance is passed, it w
                      dump
                      load
                      -
                      - - - -
                      - -
                      - - class - Unique(Expression): - - - -
                      - -
                      1455class Unique(Expression):
                      -1456    arg_types = {"expressions": True}
                      -
                      - - - - - @@ -16425,8 +16468,8 @@ If an Expression instance is passed, it w -
                      1461class Into(Expression):
                      -1462    arg_types = {"this": True, "temporary": False, "unlogged": False}
                      +            
                      1456class Into(Expression):
                      +1457    arg_types = {"this": True, "temporary": False, "unlogged": False}
                       
                      @@ -16490,14 +16533,14 @@ If an Expression instance is passed, it w
                      -
                      1465class From(Expression):
                      -1466    @property
                      -1467    def name(self) -> str:
                      -1468        return self.this.name
                      -1469
                      -1470    @property
                      -1471    def alias_or_name(self) -> str:
                      -1472        return self.this.alias_or_name
                      +            
                      1460class From(Expression):
                      +1461    @property
                      +1462    def name(self) -> str:
                      +1463        return self.this.name
                      +1464
                      +1465    @property
                      +1466    def alias_or_name(self) -> str:
                      +1467        return self.this.alias_or_name
                       
                      @@ -16561,8 +16604,8 @@ If an Expression instance is passed, it w
                      -
                      1475class Having(Expression):
                      -1476    pass
                      +            
                      1470class Having(Expression):
                      +1471    pass
                       
                      @@ -16626,8 +16669,8 @@ If an Expression instance is passed, it w
                      -
                      1479class Hint(Expression):
                      -1480    arg_types = {"expressions": True}
                      +            
                      1474class Hint(Expression):
                      +1475    arg_types = {"expressions": True}
                       
                      @@ -16691,8 +16734,8 @@ If an Expression instance is passed, it w
                      -
                      1483class JoinHint(Expression):
                      -1484    arg_types = {"this": True, "expressions": True}
                      +            
                      1478class JoinHint(Expression):
                      +1479    arg_types = {"this": True, "expressions": True}
                       
                      @@ -16756,22 +16799,22 @@ If an Expression instance is passed, it w
                      -
                      1487class Identifier(Expression):
                      -1488    arg_types = {"this": True, "quoted": False}
                      -1489
                      -1490    @property
                      -1491    def quoted(self) -> bool:
                      -1492        return bool(self.args.get("quoted"))
                      -1493
                      -1494    @property
                      -1495    def hashable_args(self) -> t.Any:
                      -1496        if self.quoted and any(char.isupper() for char in self.this):
                      -1497            return (self.this, self.quoted)
                      -1498        return self.this.lower()
                      -1499
                      -1500    @property
                      -1501    def output_name(self) -> str:
                      -1502        return self.name
                      +            
                      1482class Identifier(Expression):
                      +1483    arg_types = {"this": True, "quoted": False}
                      +1484
                      +1485    @property
                      +1486    def quoted(self) -> bool:
                      +1487        return bool(self.args.get("quoted"))
                      +1488
                      +1489    @property
                      +1490    def hashable_args(self) -> t.Any:
                      +1491        if self.quoted and any(char.isupper() for char in self.this):
                      +1492            return (self.this, self.quoted)
                      +1493        return self.this.lower()
                      +1494
                      +1495    @property
                      +1496    def output_name(self) -> str:
                      +1497        return self.name
                       
                      @@ -16864,16 +16907,17 @@ If an Expression instance is passed, it w
                      -
                      1505class Index(Expression):
                      -1506    arg_types = {
                      -1507        "this": False,
                      -1508        "table": False,
                      -1509        "where": False,
                      -1510        "columns": False,
                      -1511        "unique": False,
                      -1512        "primary": False,
                      -1513        "amp": False,  # teradata
                      -1514    }
                      +            
                      1500class Index(Expression):
                      +1501    arg_types = {
                      +1502        "this": False,
                      +1503        "table": False,
                      +1504        "where": False,
                      +1505        "columns": False,
                      +1506        "unique": False,
                      +1507        "primary": False,
                      +1508        "amp": False,  # teradata
                      +1509        "partition_by": False,  # teradata
                      +1510    }
                       
                      @@ -16937,54 +16981,54 @@ If an Expression instance is passed, it w
                      -
                      1517class Insert(Expression):
                      -1518    arg_types = {
                      -1519        "with": False,
                      -1520        "this": True,
                      -1521        "expression": False,
                      -1522        "conflict": False,
                      -1523        "returning": False,
                      -1524        "overwrite": False,
                      -1525        "exists": False,
                      -1526        "partition": False,
                      -1527        "alternative": False,
                      -1528    }
                      -1529
                      -1530    def with_(
                      -1531        self,
                      -1532        alias: ExpOrStr,
                      -1533        as_: ExpOrStr,
                      -1534        recursive: t.Optional[bool] = None,
                      -1535        append: bool = True,
                      -1536        dialect: DialectType = None,
                      -1537        copy: bool = True,
                      -1538        **opts,
                      -1539    ) -> Insert:
                      -1540        """
                      -1541        Append to or set the common table expressions.
                      +            
                      1513class Insert(Expression):
                      +1514    arg_types = {
                      +1515        "with": False,
                      +1516        "this": True,
                      +1517        "expression": False,
                      +1518        "conflict": False,
                      +1519        "returning": False,
                      +1520        "overwrite": False,
                      +1521        "exists": False,
                      +1522        "partition": False,
                      +1523        "alternative": False,
                      +1524    }
                      +1525
                      +1526    def with_(
                      +1527        self,
                      +1528        alias: ExpOrStr,
                      +1529        as_: ExpOrStr,
                      +1530        recursive: t.Optional[bool] = None,
                      +1531        append: bool = True,
                      +1532        dialect: DialectType = None,
                      +1533        copy: bool = True,
                      +1534        **opts,
                      +1535    ) -> Insert:
                      +1536        """
                      +1537        Append to or set the common table expressions.
                      +1538
                      +1539        Example:
                      +1540            >>> insert("SELECT x FROM cte", "t").with_("cte", as_="SELECT * FROM tbl").sql()
                      +1541            'WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte'
                       1542
                      -1543        Example:
                      -1544            >>> insert("SELECT x FROM cte", "t").with_("cte", as_="SELECT * FROM tbl").sql()
                      -1545            'WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte'
                      -1546
                      -1547        Args:
                      -1548            alias: the SQL code string to parse as the table name.
                      -1549                If an `Expression` instance is passed, this is used as-is.
                      -1550            as_: the SQL code string to parse as the table expression.
                      -1551                If an `Expression` instance is passed, it will be used as-is.
                      -1552            recursive: set the RECURSIVE part of the expression. Defaults to `False`.
                      -1553            append: if `True`, add to any existing expressions.
                      -1554                Otherwise, this resets the expressions.
                      -1555            dialect: the dialect used to parse the input expression.
                      -1556            copy: if `False`, modify this expression instance in-place.
                      -1557            opts: other options to use to parse the input expressions.
                      -1558
                      -1559        Returns:
                      -1560            The modified expression.
                      -1561        """
                      -1562        return _apply_cte_builder(
                      -1563            self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts
                      -1564        )
                      +1543        Args:
                      +1544            alias: the SQL code string to parse as the table name.
                      +1545                If an `Expression` instance is passed, this is used as-is.
                      +1546            as_: the SQL code string to parse as the table expression.
                      +1547                If an `Expression` instance is passed, it will be used as-is.
                      +1548            recursive: set the RECURSIVE part of the expression. Defaults to `False`.
                      +1549            append: if `True`, add to any existing expressions.
                      +1550                Otherwise, this resets the expressions.
                      +1551            dialect: the dialect used to parse the input expression.
                      +1552            copy: if `False`, modify this expression instance in-place.
                      +1553            opts: other options to use to parse the input expressions.
                      +1554
                      +1555        Returns:
                      +1556            The modified expression.
                      +1557        """
                      +1558        return _apply_cte_builder(
                      +1559            self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts
                      +1560        )
                       
                      @@ -17001,41 +17045,41 @@ If an Expression instance is passed, it w
                      -
                      1530    def with_(
                      -1531        self,
                      -1532        alias: ExpOrStr,
                      -1533        as_: ExpOrStr,
                      -1534        recursive: t.Optional[bool] = None,
                      -1535        append: bool = True,
                      -1536        dialect: DialectType = None,
                      -1537        copy: bool = True,
                      -1538        **opts,
                      -1539    ) -> Insert:
                      -1540        """
                      -1541        Append to or set the common table expressions.
                      +            
                      1526    def with_(
                      +1527        self,
                      +1528        alias: ExpOrStr,
                      +1529        as_: ExpOrStr,
                      +1530        recursive: t.Optional[bool] = None,
                      +1531        append: bool = True,
                      +1532        dialect: DialectType = None,
                      +1533        copy: bool = True,
                      +1534        **opts,
                      +1535    ) -> Insert:
                      +1536        """
                      +1537        Append to or set the common table expressions.
                      +1538
                      +1539        Example:
                      +1540            >>> insert("SELECT x FROM cte", "t").with_("cte", as_="SELECT * FROM tbl").sql()
                      +1541            'WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte'
                       1542
                      -1543        Example:
                      -1544            >>> insert("SELECT x FROM cte", "t").with_("cte", as_="SELECT * FROM tbl").sql()
                      -1545            'WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte'
                      -1546
                      -1547        Args:
                      -1548            alias: the SQL code string to parse as the table name.
                      -1549                If an `Expression` instance is passed, this is used as-is.
                      -1550            as_: the SQL code string to parse as the table expression.
                      -1551                If an `Expression` instance is passed, it will be used as-is.
                      -1552            recursive: set the RECURSIVE part of the expression. Defaults to `False`.
                      -1553            append: if `True`, add to any existing expressions.
                      -1554                Otherwise, this resets the expressions.
                      -1555            dialect: the dialect used to parse the input expression.
                      -1556            copy: if `False`, modify this expression instance in-place.
                      -1557            opts: other options to use to parse the input expressions.
                      -1558
                      -1559        Returns:
                      -1560            The modified expression.
                      -1561        """
                      -1562        return _apply_cte_builder(
                      -1563            self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts
                      -1564        )
                      +1543        Args:
                      +1544            alias: the SQL code string to parse as the table name.
                      +1545                If an `Expression` instance is passed, this is used as-is.
                      +1546            as_: the SQL code string to parse as the table expression.
                      +1547                If an `Expression` instance is passed, it will be used as-is.
                      +1548            recursive: set the RECURSIVE part of the expression. Defaults to `False`.
                      +1549            append: if `True`, add to any existing expressions.
                      +1550                Otherwise, this resets the expressions.
                      +1551            dialect: the dialect used to parse the input expression.
                      +1552            copy: if `False`, modify this expression instance in-place.
                      +1553            opts: other options to use to parse the input expressions.
                      +1554
                      +1555        Returns:
                      +1556            The modified expression.
                      +1557        """
                      +1558        return _apply_cte_builder(
                      +1559            self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts
                      +1560        )
                       
                      @@ -17133,14 +17177,14 @@ Otherwise, this resets the expressions.
                      -
                      1567class OnConflict(Expression):
                      -1568    arg_types = {
                      -1569        "duplicate": False,
                      -1570        "expressions": False,
                      -1571        "nothing": False,
                      -1572        "key": False,
                      -1573        "constraint": False,
                      -1574    }
                      +            
                      1563class OnConflict(Expression):
                      +1564    arg_types = {
                      +1565        "duplicate": False,
                      +1566        "expressions": False,
                      +1567        "nothing": False,
                      +1568        "key": False,
                      +1569        "constraint": False,
                      +1570    }
                       
                      @@ -17204,8 +17248,8 @@ Otherwise, this resets the expressions.
                      -
                      1577class Returning(Expression):
                      -1578    arg_types = {"expressions": True}
                      +            
                      1573class Returning(Expression):
                      +1574    arg_types = {"expressions": True}
                       
                      @@ -17269,8 +17313,8 @@ Otherwise, this resets the expressions.
                      -
                      1582class Introducer(Expression):
                      -1583    arg_types = {"this": True, "expression": True}
                      +            
                      1578class Introducer(Expression):
                      +1579    arg_types = {"this": True, "expression": True}
                       
                      @@ -17334,8 +17378,8 @@ Otherwise, this resets the expressions.
                      -
                      1587class National(Expression):
                      -1588    pass
                      +            
                      1583class National(Expression):
                      +1584    pass
                       
                      @@ -17399,16 +17443,16 @@ Otherwise, this resets the expressions.
                      -
                      1591class LoadData(Expression):
                      -1592    arg_types = {
                      -1593        "this": True,
                      -1594        "local": False,
                      -1595        "overwrite": False,
                      -1596        "inpath": True,
                      -1597        "partition": False,
                      -1598        "input_format": False,
                      -1599        "serde": False,
                      -1600    }
                      +            
                      1587class LoadData(Expression):
                      +1588    arg_types = {
                      +1589        "this": True,
                      +1590        "local": False,
                      +1591        "overwrite": False,
                      +1592        "inpath": True,
                      +1593        "partition": False,
                      +1594        "input_format": False,
                      +1595        "serde": False,
                      +1596    }
                       
                      @@ -17472,8 +17516,8 @@ Otherwise, this resets the expressions.
                      -
                      1603class Partition(Expression):
                      -1604    arg_types = {"expressions": True}
                      +            
                      1599class Partition(Expression):
                      +1600    arg_types = {"expressions": True}
                       
                      @@ -17537,13 +17581,13 @@ Otherwise, this resets the expressions.
                      -
                      1607class Fetch(Expression):
                      -1608    arg_types = {
                      -1609        "direction": False,
                      -1610        "count": False,
                      -1611        "percent": False,
                      -1612        "with_ties": False,
                      -1613    }
                      +            
                      1603class Fetch(Expression):
                      +1604    arg_types = {
                      +1605        "direction": False,
                      +1606        "count": False,
                      +1607        "percent": False,
                      +1608        "with_ties": False,
                      +1609    }
                       
                      @@ -17607,14 +17651,14 @@ Otherwise, this resets the expressions.
                      -
                      1616class Group(Expression):
                      -1617    arg_types = {
                      -1618        "expressions": False,
                      -1619        "grouping_sets": False,
                      -1620        "cube": False,
                      -1621        "rollup": False,
                      -1622        "totals": False,
                      -1623    }
                      +            
                      1612class Group(Expression):
                      +1613    arg_types = {
                      +1614        "expressions": False,
                      +1615        "grouping_sets": False,
                      +1616        "cube": False,
                      +1617        "rollup": False,
                      +1618        "totals": False,
                      +1619    }
                       
                      @@ -17678,8 +17722,8 @@ Otherwise, this resets the expressions.
                      -
                      1626class Lambda(Expression):
                      -1627    arg_types = {"this": True, "expressions": True}
                      +            
                      1622class Lambda(Expression):
                      +1623    arg_types = {"this": True, "expressions": True}
                       
                      @@ -17743,8 +17787,8 @@ Otherwise, this resets the expressions.
                      -
                      1630class Limit(Expression):
                      -1631    arg_types = {"this": False, "expression": True}
                      +            
                      1626class Limit(Expression):
                      +1627    arg_types = {"this": False, "expression": True}
                       
                      @@ -17808,24 +17852,24 @@ Otherwise, this resets the expressions.
                      -
                      1634class Literal(Condition):
                      -1635    arg_types = {"this": True, "is_string": True}
                      +            
                      1630class Literal(Condition):
                      +1631    arg_types = {"this": True, "is_string": True}
                      +1632
                      +1633    @property
                      +1634    def hashable_args(self) -> t.Any:
                      +1635        return (self.this, self.args.get("is_string"))
                       1636
                      -1637    @property
                      -1638    def hashable_args(self) -> t.Any:
                      -1639        return (self.this, self.args.get("is_string"))
                      +1637    @classmethod
                      +1638    def number(cls, number) -> Literal:
                      +1639        return cls(this=str(number), is_string=False)
                       1640
                       1641    @classmethod
                      -1642    def number(cls, number) -> Literal:
                      -1643        return cls(this=str(number), is_string=False)
                      +1642    def string(cls, string) -> Literal:
                      +1643        return cls(this=str(string), is_string=True)
                       1644
                      -1645    @classmethod
                      -1646    def string(cls, string) -> Literal:
                      -1647        return cls(this=str(string), is_string=True)
                      -1648
                      -1649    @property
                      -1650    def output_name(self) -> str:
                      -1651        return self.name
                      +1645    @property
                      +1646    def output_name(self) -> str:
                      +1647        return self.name
                       
                      @@ -17843,9 +17887,9 @@ Otherwise, this resets the expressions.
                      -
                      1641    @classmethod
                      -1642    def number(cls, number) -> Literal:
                      -1643        return cls(this=str(number), is_string=False)
                      +            
                      1637    @classmethod
                      +1638    def number(cls, number) -> Literal:
                      +1639        return cls(this=str(number), is_string=False)
                       
                      @@ -17864,9 +17908,9 @@ Otherwise, this resets the expressions.
                      -
                      1645    @classmethod
                      -1646    def string(cls, string) -> Literal:
                      -1647        return cls(this=str(string), is_string=True)
                      +            
                      1641    @classmethod
                      +1642    def string(cls, string) -> Literal:
                      +1643        return cls(this=str(string), is_string=True)
                       
                      @@ -17975,17 +18019,21 @@ Otherwise, this resets the expressions.
                      -
                      1654class Join(Expression):
                      -1655    arg_types = {
                      -1656        "this": True,
                      -1657        "on": False,
                      -1658        "side": False,
                      -1659        "kind": False,
                      -1660        "using": False,
                      -1661        "natural": False,
                      -1662        "global": False,
                      -1663        "hint": False,
                      -1664    }
                      +            
                      1650class Join(Expression):
                      +1651    arg_types = {
                      +1652        "this": True,
                      +1653        "on": False,
                      +1654        "side": False,
                      +1655        "kind": False,
                      +1656        "using": False,
                      +1657        "method": False,
                      +1658        "global": False,
                      +1659        "hint": False,
                      +1660    }
                      +1661
                      +1662    @property
                      +1663    def method(self) -> str:
                      +1664        return self.text("method").upper()
                       1665
                       1666    @property
                       1667    def kind(self) -> str:
                      @@ -20302,6 +20350,201 @@ Otherwise, this resets the expression.
                                       
                      dump
                      load
                      +
                      + +
                      +
                      +
                      + +
                      + + class + DictProperty(Property): + + + +
                      + +
                      1921class DictProperty(Property):
                      +1922    arg_types = {"this": True, "kind": True, "settings": False}
                      +
                      + + + + + +
                      +
                      + +
                      + + class + DictSubProperty(Property): + + + +
                      + +
                      1925class DictSubProperty(Property):
                      +1926    pass
                      +
                      + + + + + +
                      +
                      + +
                      + + class + DictRange(Property): + + + +
                      + +
                      1929class DictRange(Property):
                      +1930    arg_types = {"this": True, "min": True, "max": True}
                      +
                      + + + + + @@ -20317,8 +20560,8 @@ Otherwise, this resets the expression. -
                      1921class LikeProperty(Property):
                      -1922    arg_types = {"this": True, "expressions": False}
                      +            
                      1933class LikeProperty(Property):
                      +1934    arg_types = {"this": True, "expressions": False}
                       
                      @@ -20382,8 +20625,8 @@ Otherwise, this resets the expression.
                      -
                      1925class LocationProperty(Property):
                      -1926    arg_types = {"this": True}
                      +            
                      1937class LocationProperty(Property):
                      +1938    arg_types = {"this": True}
                       
                      @@ -20447,14 +20690,14 @@ Otherwise, this resets the expression.
                      -
                      1929class LockingProperty(Property):
                      -1930    arg_types = {
                      -1931        "this": False,
                      -1932        "kind": True,
                      -1933        "for_or_in": True,
                      -1934        "lock_type": True,
                      -1935        "override": False,
                      -1936    }
                      +            
                      1941class LockingProperty(Property):
                      +1942    arg_types = {
                      +1943        "this": False,
                      +1944        "kind": True,
                      +1945        "for_or_in": True,
                      +1946        "lock_type": True,
                      +1947        "override": False,
                      +1948    }
                       
                      @@ -20518,8 +20761,8 @@ Otherwise, this resets the expression.
                      -
                      1939class LogProperty(Property):
                      -1940    arg_types = {"no": True}
                      +            
                      1951class LogProperty(Property):
                      +1952    arg_types = {"no": True}
                       
                      @@ -20583,8 +20826,8 @@ Otherwise, this resets the expression.
                      -
                      1943class MaterializedProperty(Property):
                      -1944    arg_types = {"this": False}
                      +            
                      1955class MaterializedProperty(Property):
                      +1956    arg_types = {"this": False}
                       
                      @@ -20648,8 +20891,8 @@ Otherwise, this resets the expression.
                      -
                      1947class MergeBlockRatioProperty(Property):
                      -1948    arg_types = {"this": False, "no": False, "default": False, "percent": False}
                      +            
                      1959class MergeBlockRatioProperty(Property):
                      +1960    arg_types = {"this": False, "no": False, "default": False, "percent": False}
                       
                      @@ -20713,8 +20956,8 @@ Otherwise, this resets the expression.
                      -
                      1951class NoPrimaryIndexProperty(Property):
                      -1952    arg_types = {}
                      +            
                      1963class NoPrimaryIndexProperty(Property):
                      +1964    arg_types = {}
                       
                      @@ -20778,8 +21021,8 @@ Otherwise, this resets the expression.
                      -
                      1955class OnCommitProperty(Property):
                      -1956    arg_type = {"delete": False}
                      +            
                      1967class OnCommitProperty(Property):
                      +1968    arg_type = {"delete": False}
                       
                      @@ -20843,8 +21086,8 @@ Otherwise, this resets the expression.
                      -
                      1959class PartitionedByProperty(Property):
                      -1960    arg_types = {"this": True}
                      +            
                      1971class PartitionedByProperty(Property):
                      +1972    arg_types = {"this": True}
                       
                      @@ -20908,8 +21151,8 @@ Otherwise, this resets the expression.
                      -
                      1963class ReturnsProperty(Property):
                      -1964    arg_types = {"this": True, "is_table": False, "table": False}
                      +            
                      1975class ReturnsProperty(Property):
                      +1976    arg_types = {"this": True, "is_table": False, "table": False}
                       
                      @@ -20973,8 +21216,8 @@ Otherwise, this resets the expression.
                      -
                      1967class RowFormatProperty(Property):
                      -1968    arg_types = {"this": True}
                      +            
                      1979class RowFormatProperty(Property):
                      +1980    arg_types = {"this": True}
                       
                      @@ -21038,17 +21281,17 @@ Otherwise, this resets the expression.
                      -
                      1971class RowFormatDelimitedProperty(Property):
                      -1972    # https://cwiki.apache.org/confluence/display/hive/languagemanual+dml
                      -1973    arg_types = {
                      -1974        "fields": False,
                      -1975        "escaped": False,
                      -1976        "collection_items": False,
                      -1977        "map_keys": False,
                      -1978        "lines": False,
                      -1979        "null": False,
                      -1980        "serde": False,
                      -1981    }
                      +            
                      1983class RowFormatDelimitedProperty(Property):
                      +1984    # https://cwiki.apache.org/confluence/display/hive/languagemanual+dml
                      +1985    arg_types = {
                      +1986        "fields": False,
                      +1987        "escaped": False,
                      +1988        "collection_items": False,
                      +1989        "map_keys": False,
                      +1990        "lines": False,
                      +1991        "null": False,
                      +1992        "serde": False,
                      +1993    }
                       
                      @@ -21112,8 +21355,8 @@ Otherwise, this resets the expression.
                      -
                      1984class RowFormatSerdeProperty(Property):
                      -1985    arg_types = {"this": True}
                      +            
                      1996class RowFormatSerdeProperty(Property):
                      +1997    arg_types = {"this": True}
                       
                      @@ -21177,8 +21420,8 @@ Otherwise, this resets the expression.
                      -
                      1988class SchemaCommentProperty(Property):
                      -1989    arg_types = {"this": True}
                      +            
                      2000class SchemaCommentProperty(Property):
                      +2001    arg_types = {"this": True}
                       
                      @@ -21242,8 +21485,8 @@ Otherwise, this resets the expression.
                      -
                      1992class SerdeProperties(Property):
                      -1993    arg_types = {"expressions": True}
                      +            
                      2004class SerdeProperties(Property):
                      +2005    arg_types = {"expressions": True}
                       
                      @@ -21307,8 +21550,8 @@ Otherwise, this resets the expression.
                      -
                      1996class SetProperty(Property):
                      -1997    arg_types = {"multi": True}
                      +            
                      2008class SetProperty(Property):
                      +2009    arg_types = {"multi": True}
                       
                      @@ -21372,8 +21615,8 @@ Otherwise, this resets the expression.
                      -
                      2000class SettingsProperty(Property):
                      -2001    arg_types = {"expressions": True}
                      +            
                      2012class SettingsProperty(Property):
                      +2013    arg_types = {"expressions": True}
                       
                      @@ -21437,8 +21680,8 @@ Otherwise, this resets the expression.
                      -
                      2004class SortKeyProperty(Property):
                      -2005    arg_types = {"this": True, "compound": False}
                      +            
                      2016class SortKeyProperty(Property):
                      +2017    arg_types = {"this": True, "compound": False}
                       
                      @@ -21502,8 +21745,8 @@ Otherwise, this resets the expression.
                      -
                      2008class SqlSecurityProperty(Property):
                      -2009    arg_types = {"definer": True}
                      +            
                      2020class SqlSecurityProperty(Property):
                      +2021    arg_types = {"definer": True}
                       
                      @@ -21567,8 +21810,8 @@ Otherwise, this resets the expression.
                      -
                      2012class StabilityProperty(Property):
                      -2013    arg_types = {"this": True}
                      +            
                      2024class StabilityProperty(Property):
                      +2025    arg_types = {"this": True}
                       
                      @@ -21632,8 +21875,8 @@ Otherwise, this resets the expression.
                      -
                      2016class TemporaryProperty(Property):
                      -2017    arg_types = {}
                      +            
                      2028class TemporaryProperty(Property):
                      +2029    arg_types = {}
                       
                      @@ -21697,8 +21940,8 @@ Otherwise, this resets the expression.
                      -
                      2020class TransientProperty(Property):
                      -2021    arg_types = {"this": False}
                      +            
                      2032class TransientProperty(Property):
                      +2033    arg_types = {"this": False}
                       
                      @@ -21762,8 +22005,8 @@ Otherwise, this resets the expression.
                      -
                      2024class VolatileProperty(Property):
                      -2025    arg_types = {"this": False}
                      +            
                      2036class VolatileProperty(Property):
                      +2037    arg_types = {"this": False}
                       
                      @@ -21827,8 +22070,8 @@ Otherwise, this resets the expression.
                      -
                      2028class WithDataProperty(Property):
                      -2029    arg_types = {"no": True, "statistics": False}
                      +            
                      2040class WithDataProperty(Property):
                      +2041    arg_types = {"no": True, "statistics": False}
                       
                      @@ -21892,8 +22135,8 @@ Otherwise, this resets the expression.
                      -
                      2032class WithJournalTableProperty(Property):
                      -2033    arg_types = {"this": True}
                      +            
                      2044class WithJournalTableProperty(Property):
                      +2045    arg_types = {"this": True}
                       
                      @@ -21957,65 +22200,65 @@ Otherwise, this resets the expression.
                      -
                      2036class Properties(Expression):
                      -2037    arg_types = {"expressions": True}
                      -2038
                      -2039    NAME_TO_PROPERTY = {
                      -2040        "ALGORITHM": AlgorithmProperty,
                      -2041        "AUTO_INCREMENT": AutoIncrementProperty,
                      -2042        "CHARACTER SET": CharacterSetProperty,
                      -2043        "COLLATE": CollateProperty,
                      -2044        "COMMENT": SchemaCommentProperty,
                      -2045        "DEFINER": DefinerProperty,
                      -2046        "DISTKEY": DistKeyProperty,
                      -2047        "DISTSTYLE": DistStyleProperty,
                      -2048        "ENGINE": EngineProperty,
                      -2049        "EXECUTE AS": ExecuteAsProperty,
                      -2050        "FORMAT": FileFormatProperty,
                      -2051        "LANGUAGE": LanguageProperty,
                      -2052        "LOCATION": LocationProperty,
                      -2053        "PARTITIONED_BY": PartitionedByProperty,
                      -2054        "RETURNS": ReturnsProperty,
                      -2055        "ROW_FORMAT": RowFormatProperty,
                      -2056        "SORTKEY": SortKeyProperty,
                      -2057    }
                      -2058
                      -2059    PROPERTY_TO_NAME = {v: k for k, v in NAME_TO_PROPERTY.items()}
                      -2060
                      -2061    # CREATE property locations
                      -2062    # Form: schema specified
                      -2063    #   create [POST_CREATE]
                      -2064    #     table a [POST_NAME]
                      -2065    #     (b int) [POST_SCHEMA]
                      -2066    #     with ([POST_WITH])
                      -2067    #     index (b) [POST_INDEX]
                      -2068    #
                      -2069    # Form: alias selection
                      -2070    #   create [POST_CREATE]
                      -2071    #     table a [POST_NAME]
                      -2072    #     as [POST_ALIAS] (select * from b) [POST_EXPRESSION]
                      -2073    #     index (c) [POST_INDEX]
                      -2074    class Location(AutoName):
                      -2075        POST_CREATE = auto()
                      -2076        POST_NAME = auto()
                      -2077        POST_SCHEMA = auto()
                      -2078        POST_WITH = auto()
                      -2079        POST_ALIAS = auto()
                      -2080        POST_EXPRESSION = auto()
                      -2081        POST_INDEX = auto()
                      -2082        UNSUPPORTED = auto()
                      -2083
                      -2084    @classmethod
                      -2085    def from_dict(cls, properties_dict: t.Dict) -> Properties:
                      -2086        expressions = []
                      -2087        for key, value in properties_dict.items():
                      -2088            property_cls = cls.NAME_TO_PROPERTY.get(key.upper())
                      -2089            if property_cls:
                      -2090                expressions.append(property_cls(this=convert(value)))
                      -2091            else:
                      -2092                expressions.append(Property(this=Literal.string(key), value=convert(value)))
                      -2093
                      -2094        return cls(expressions=expressions)
                      +            
                      2048class Properties(Expression):
                      +2049    arg_types = {"expressions": True}
                      +2050
                      +2051    NAME_TO_PROPERTY = {
                      +2052        "ALGORITHM": AlgorithmProperty,
                      +2053        "AUTO_INCREMENT": AutoIncrementProperty,
                      +2054        "CHARACTER SET": CharacterSetProperty,
                      +2055        "COLLATE": CollateProperty,
                      +2056        "COMMENT": SchemaCommentProperty,
                      +2057        "DEFINER": DefinerProperty,
                      +2058        "DISTKEY": DistKeyProperty,
                      +2059        "DISTSTYLE": DistStyleProperty,
                      +2060        "ENGINE": EngineProperty,
                      +2061        "EXECUTE AS": ExecuteAsProperty,
                      +2062        "FORMAT": FileFormatProperty,
                      +2063        "LANGUAGE": LanguageProperty,
                      +2064        "LOCATION": LocationProperty,
                      +2065        "PARTITIONED_BY": PartitionedByProperty,
                      +2066        "RETURNS": ReturnsProperty,
                      +2067        "ROW_FORMAT": RowFormatProperty,
                      +2068        "SORTKEY": SortKeyProperty,
                      +2069    }
                      +2070
                      +2071    PROPERTY_TO_NAME = {v: k for k, v in NAME_TO_PROPERTY.items()}
                      +2072
                      +2073    # CREATE property locations
                      +2074    # Form: schema specified
                      +2075    #   create [POST_CREATE]
                      +2076    #     table a [POST_NAME]
                      +2077    #     (b int) [POST_SCHEMA]
                      +2078    #     with ([POST_WITH])
                      +2079    #     index (b) [POST_INDEX]
                      +2080    #
                      +2081    # Form: alias selection
                      +2082    #   create [POST_CREATE]
                      +2083    #     table a [POST_NAME]
                      +2084    #     as [POST_ALIAS] (select * from b) [POST_EXPRESSION]
                      +2085    #     index (c) [POST_INDEX]
                      +2086    class Location(AutoName):
                      +2087        POST_CREATE = auto()
                      +2088        POST_NAME = auto()
                      +2089        POST_SCHEMA = auto()
                      +2090        POST_WITH = auto()
                      +2091        POST_ALIAS = auto()
                      +2092        POST_EXPRESSION = auto()
                      +2093        POST_INDEX = auto()
                      +2094        UNSUPPORTED = auto()
                      +2095
                      +2096    @classmethod
                      +2097    def from_dict(cls, properties_dict: t.Dict) -> Properties:
                      +2098        expressions = []
                      +2099        for key, value in properties_dict.items():
                      +2100            property_cls = cls.NAME_TO_PROPERTY.get(key.upper())
                      +2101            if property_cls:
                      +2102                expressions.append(property_cls(this=convert(value)))
                      +2103            else:
                      +2104                expressions.append(Property(this=Literal.string(key), value=convert(value)))
                      +2105
                      +2106        return cls(expressions=expressions)
                       
                      @@ -22033,17 +22276,17 @@ Otherwise, this resets the expression.
                      -
                      2084    @classmethod
                      -2085    def from_dict(cls, properties_dict: t.Dict) -> Properties:
                      -2086        expressions = []
                      -2087        for key, value in properties_dict.items():
                      -2088            property_cls = cls.NAME_TO_PROPERTY.get(key.upper())
                      -2089            if property_cls:
                      -2090                expressions.append(property_cls(this=convert(value)))
                      -2091            else:
                      -2092                expressions.append(Property(this=Literal.string(key), value=convert(value)))
                      -2093
                      -2094        return cls(expressions=expressions)
                      +            
                      2096    @classmethod
                      +2097    def from_dict(cls, properties_dict: t.Dict) -> Properties:
                      +2098        expressions = []
                      +2099        for key, value in properties_dict.items():
                      +2100            property_cls = cls.NAME_TO_PROPERTY.get(key.upper())
                      +2101            if property_cls:
                      +2102                expressions.append(property_cls(this=convert(value)))
                      +2103            else:
                      +2104                expressions.append(Property(this=Literal.string(key), value=convert(value)))
                      +2105
                      +2106        return cls(expressions=expressions)
                       
                      @@ -22108,15 +22351,15 @@ Otherwise, this resets the expression.
                      -
                      2074    class Location(AutoName):
                      -2075        POST_CREATE = auto()
                      -2076        POST_NAME = auto()
                      -2077        POST_SCHEMA = auto()
                      -2078        POST_WITH = auto()
                      -2079        POST_ALIAS = auto()
                      -2080        POST_EXPRESSION = auto()
                      -2081        POST_INDEX = auto()
                      -2082        UNSUPPORTED = auto()
                      +            
                      2086    class Location(AutoName):
                      +2087        POST_CREATE = auto()
                      +2088        POST_NAME = auto()
                      +2089        POST_SCHEMA = auto()
                      +2090        POST_WITH = auto()
                      +2091        POST_ALIAS = auto()
                      +2092        POST_EXPRESSION = auto()
                      +2093        POST_INDEX = auto()
                      +2094        UNSUPPORTED = auto()
                       
                      @@ -22242,8 +22485,8 @@ Otherwise, this resets the expression.
                      -
                      2097class Qualify(Expression):
                      -2098    pass
                      +            
                      2109class Qualify(Expression):
                      +2110    pass
                       
                      @@ -22307,8 +22550,8 @@ Otherwise, this resets the expression.
                      -
                      2102class Return(Expression):
                      -2103    pass
                      +            
                      2114class Return(Expression):
                      +2115    pass
                       
                      @@ -22372,8 +22615,8 @@ Otherwise, this resets the expression.
                      -
                      2106class Reference(Expression):
                      -2107    arg_types = {"this": True, "expressions": False, "options": False}
                      +            
                      2118class Reference(Expression):
                      +2119    arg_types = {"this": True, "expressions": False, "options": False}
                       
                      @@ -22437,17 +22680,17 @@ Otherwise, this resets the expression.
                      -
                      2110class Tuple(Expression):
                      -2111    arg_types = {"expressions": False}
                      -2112
                      -2113    def isin(
                      -2114        self, *expressions: t.Any, query: t.Optional[ExpOrStr] = None, copy: bool = True, **opts
                      -2115    ) -> In:
                      -2116        return In(
                      -2117            this=_maybe_copy(self, copy),
                      -2118            expressions=[convert(e, copy=copy) for e in expressions],
                      -2119            query=maybe_parse(query, copy=copy, **opts) if query else None,
                      -2120        )
                      +            
                      2122class Tuple(Expression):
                      +2123    arg_types = {"expressions": False}
                      +2124
                      +2125    def isin(
                      +2126        self, *expressions: t.Any, query: t.Optional[ExpOrStr] = None, copy: bool = True, **opts
                      +2127    ) -> In:
                      +2128        return In(
                      +2129            this=_maybe_copy(self, copy),
                      +2130            expressions=[convert(e, copy=copy) for e in expressions],
                      +2131            query=maybe_parse(query, copy=copy, **opts) if query else None,
                      +2132        )
                       
                      @@ -22464,14 +22707,14 @@ Otherwise, this resets the expression.
                      -
                      2113    def isin(
                      -2114        self, *expressions: t.Any, query: t.Optional[ExpOrStr] = None, copy: bool = True, **opts
                      -2115    ) -> In:
                      -2116        return In(
                      -2117            this=_maybe_copy(self, copy),
                      -2118            expressions=[convert(e, copy=copy) for e in expressions],
                      -2119            query=maybe_parse(query, copy=copy, **opts) if query else None,
                      -2120        )
                      +            
                      2125    def isin(
                      +2126        self, *expressions: t.Any, query: t.Optional[ExpOrStr] = None, copy: bool = True, **opts
                      +2127    ) -> In:
                      +2128        return In(
                      +2129            this=_maybe_copy(self, copy),
                      +2130            expressions=[convert(e, copy=copy) for e in expressions],
                      +2131            query=maybe_parse(query, copy=copy, **opts) if query else None,
                      +2132        )
                       
                      @@ -22536,84 +22779,84 @@ Otherwise, this resets the expression.
                      -
                      2123class Subqueryable(Unionable):
                      -2124    def subquery(self, alias: t.Optional[ExpOrStr] = None, copy: bool = True) -> Subquery:
                      -2125        """
                      -2126        Convert this expression to an aliased expression that can be used as a Subquery.
                      -2127
                      -2128        Example:
                      -2129            >>> subquery = Select().select("x").from_("tbl").subquery()
                      -2130            >>> Select().select("x").from_(subquery).sql()
                      -2131            'SELECT x FROM (SELECT x FROM tbl)'
                      -2132
                      -2133        Args:
                      -2134            alias (str | Identifier): an optional alias for the subquery
                      -2135            copy (bool): if `False`, modify this expression instance in-place.
                      -2136
                      -2137        Returns:
                      -2138            Alias: the subquery
                      -2139        """
                      -2140        instance = _maybe_copy(self, copy)
                      -2141        if not isinstance(alias, Expression):
                      -2142            alias = TableAlias(this=to_identifier(alias)) if alias else None
                      -2143
                      -2144        return Subquery(this=instance, alias=alias)
                      -2145
                      -2146    def limit(
                      -2147        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      -2148    ) -> Select:
                      -2149        raise NotImplementedError
                      -2150
                      -2151    @property
                      -2152    def ctes(self):
                      -2153        with_ = self.args.get("with")
                      -2154        if not with_:
                      -2155            return []
                      -2156        return with_.expressions
                      +            
                      2135class Subqueryable(Unionable):
                      +2136    def subquery(self, alias: t.Optional[ExpOrStr] = None, copy: bool = True) -> Subquery:
                      +2137        """
                      +2138        Convert this expression to an aliased expression that can be used as a Subquery.
                      +2139
                      +2140        Example:
                      +2141            >>> subquery = Select().select("x").from_("tbl").subquery()
                      +2142            >>> Select().select("x").from_(subquery).sql()
                      +2143            'SELECT x FROM (SELECT x FROM tbl)'
                      +2144
                      +2145        Args:
                      +2146            alias (str | Identifier): an optional alias for the subquery
                      +2147            copy (bool): if `False`, modify this expression instance in-place.
                      +2148
                      +2149        Returns:
                      +2150            Alias: the subquery
                      +2151        """
                      +2152        instance = _maybe_copy(self, copy)
                      +2153        if not isinstance(alias, Expression):
                      +2154            alias = TableAlias(this=to_identifier(alias)) if alias else None
                      +2155
                      +2156        return Subquery(this=instance, alias=alias)
                       2157
                      -2158    @property
                      -2159    def selects(self):
                      -2160        raise NotImplementedError("Subqueryable objects must implement `selects`")
                      -2161
                      -2162    @property
                      -2163    def named_selects(self):
                      -2164        raise NotImplementedError("Subqueryable objects must implement `named_selects`")
                      -2165
                      -2166    def with_(
                      -2167        self,
                      -2168        alias: ExpOrStr,
                      -2169        as_: ExpOrStr,
                      -2170        recursive: t.Optional[bool] = None,
                      -2171        append: bool = True,
                      -2172        dialect: DialectType = None,
                      -2173        copy: bool = True,
                      -2174        **opts,
                      -2175    ) -> Subqueryable:
                      -2176        """
                      -2177        Append to or set the common table expressions.
                      -2178
                      -2179        Example:
                      -2180            >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()
                      -2181            'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'
                      -2182
                      -2183        Args:
                      -2184            alias: the SQL code string to parse as the table name.
                      -2185                If an `Expression` instance is passed, this is used as-is.
                      -2186            as_: the SQL code string to parse as the table expression.
                      -2187                If an `Expression` instance is passed, it will be used as-is.
                      -2188            recursive: set the RECURSIVE part of the expression. Defaults to `False`.
                      -2189            append: if `True`, add to any existing expressions.
                      -2190                Otherwise, this resets the expressions.
                      -2191            dialect: the dialect used to parse the input expression.
                      -2192            copy: if `False`, modify this expression instance in-place.
                      -2193            opts: other options to use to parse the input expressions.
                      +2158    def limit(
                      +2159        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      +2160    ) -> Select:
                      +2161        raise NotImplementedError
                      +2162
                      +2163    @property
                      +2164    def ctes(self):
                      +2165        with_ = self.args.get("with")
                      +2166        if not with_:
                      +2167            return []
                      +2168        return with_.expressions
                      +2169
                      +2170    @property
                      +2171    def selects(self):
                      +2172        raise NotImplementedError("Subqueryable objects must implement `selects`")
                      +2173
                      +2174    @property
                      +2175    def named_selects(self):
                      +2176        raise NotImplementedError("Subqueryable objects must implement `named_selects`")
                      +2177
                      +2178    def with_(
                      +2179        self,
                      +2180        alias: ExpOrStr,
                      +2181        as_: ExpOrStr,
                      +2182        recursive: t.Optional[bool] = None,
                      +2183        append: bool = True,
                      +2184        dialect: DialectType = None,
                      +2185        copy: bool = True,
                      +2186        **opts,
                      +2187    ) -> Subqueryable:
                      +2188        """
                      +2189        Append to or set the common table expressions.
                      +2190
                      +2191        Example:
                      +2192            >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()
                      +2193            'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'
                       2194
                      -2195        Returns:
                      -2196            The modified expression.
                      -2197        """
                      -2198        return _apply_cte_builder(
                      -2199            self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts
                      -2200        )
                      +2195        Args:
                      +2196            alias: the SQL code string to parse as the table name.
                      +2197                If an `Expression` instance is passed, this is used as-is.
                      +2198            as_: the SQL code string to parse as the table expression.
                      +2199                If an `Expression` instance is passed, it will be used as-is.
                      +2200            recursive: set the RECURSIVE part of the expression. Defaults to `False`.
                      +2201            append: if `True`, add to any existing expressions.
                      +2202                Otherwise, this resets the expressions.
                      +2203            dialect: the dialect used to parse the input expression.
                      +2204            copy: if `False`, modify this expression instance in-place.
                      +2205            opts: other options to use to parse the input expressions.
                      +2206
                      +2207        Returns:
                      +2208            The modified expression.
                      +2209        """
                      +2210        return _apply_cte_builder(
                      +2211            self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts
                      +2212        )
                       
                      @@ -22630,27 +22873,27 @@ Otherwise, this resets the expression.
                      -
                      2124    def subquery(self, alias: t.Optional[ExpOrStr] = None, copy: bool = True) -> Subquery:
                      -2125        """
                      -2126        Convert this expression to an aliased expression that can be used as a Subquery.
                      -2127
                      -2128        Example:
                      -2129            >>> subquery = Select().select("x").from_("tbl").subquery()
                      -2130            >>> Select().select("x").from_(subquery).sql()
                      -2131            'SELECT x FROM (SELECT x FROM tbl)'
                      -2132
                      -2133        Args:
                      -2134            alias (str | Identifier): an optional alias for the subquery
                      -2135            copy (bool): if `False`, modify this expression instance in-place.
                      -2136
                      -2137        Returns:
                      -2138            Alias: the subquery
                      -2139        """
                      -2140        instance = _maybe_copy(self, copy)
                      -2141        if not isinstance(alias, Expression):
                      -2142            alias = TableAlias(this=to_identifier(alias)) if alias else None
                      -2143
                      -2144        return Subquery(this=instance, alias=alias)
                      +            
                      2136    def subquery(self, alias: t.Optional[ExpOrStr] = None, copy: bool = True) -> Subquery:
                      +2137        """
                      +2138        Convert this expression to an aliased expression that can be used as a Subquery.
                      +2139
                      +2140        Example:
                      +2141            >>> subquery = Select().select("x").from_("tbl").subquery()
                      +2142            >>> Select().select("x").from_(subquery).sql()
                      +2143            'SELECT x FROM (SELECT x FROM tbl)'
                      +2144
                      +2145        Args:
                      +2146            alias (str | Identifier): an optional alias for the subquery
                      +2147            copy (bool): if `False`, modify this expression instance in-place.
                      +2148
                      +2149        Returns:
                      +2150            Alias: the subquery
                      +2151        """
                      +2152        instance = _maybe_copy(self, copy)
                      +2153        if not isinstance(alias, Expression):
                      +2154            alias = TableAlias(this=to_identifier(alias)) if alias else None
                      +2155
                      +2156        return Subquery(this=instance, alias=alias)
                       
                      @@ -22694,10 +22937,10 @@ Otherwise, this resets the expression.
                      -
                      2146    def limit(
                      -2147        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      -2148    ) -> Select:
                      -2149        raise NotImplementedError
                      +            
                      2158    def limit(
                      +2159        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      +2160    ) -> Select:
                      +2161        raise NotImplementedError
                       
                      @@ -22715,41 +22958,41 @@ Otherwise, this resets the expression.
                      -
                      2166    def with_(
                      -2167        self,
                      -2168        alias: ExpOrStr,
                      -2169        as_: ExpOrStr,
                      -2170        recursive: t.Optional[bool] = None,
                      -2171        append: bool = True,
                      -2172        dialect: DialectType = None,
                      -2173        copy: bool = True,
                      -2174        **opts,
                      -2175    ) -> Subqueryable:
                      -2176        """
                      -2177        Append to or set the common table expressions.
                      -2178
                      -2179        Example:
                      -2180            >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()
                      -2181            'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'
                      -2182
                      -2183        Args:
                      -2184            alias: the SQL code string to parse as the table name.
                      -2185                If an `Expression` instance is passed, this is used as-is.
                      -2186            as_: the SQL code string to parse as the table expression.
                      -2187                If an `Expression` instance is passed, it will be used as-is.
                      -2188            recursive: set the RECURSIVE part of the expression. Defaults to `False`.
                      -2189            append: if `True`, add to any existing expressions.
                      -2190                Otherwise, this resets the expressions.
                      -2191            dialect: the dialect used to parse the input expression.
                      -2192            copy: if `False`, modify this expression instance in-place.
                      -2193            opts: other options to use to parse the input expressions.
                      +            
                      2178    def with_(
                      +2179        self,
                      +2180        alias: ExpOrStr,
                      +2181        as_: ExpOrStr,
                      +2182        recursive: t.Optional[bool] = None,
                      +2183        append: bool = True,
                      +2184        dialect: DialectType = None,
                      +2185        copy: bool = True,
                      +2186        **opts,
                      +2187    ) -> Subqueryable:
                      +2188        """
                      +2189        Append to or set the common table expressions.
                      +2190
                      +2191        Example:
                      +2192            >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()
                      +2193            'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'
                       2194
                      -2195        Returns:
                      -2196            The modified expression.
                      -2197        """
                      -2198        return _apply_cte_builder(
                      -2199            self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts
                      -2200        )
                      +2195        Args:
                      +2196            alias: the SQL code string to parse as the table name.
                      +2197                If an `Expression` instance is passed, this is used as-is.
                      +2198            as_: the SQL code string to parse as the table expression.
                      +2199                If an `Expression` instance is passed, it will be used as-is.
                      +2200            recursive: set the RECURSIVE part of the expression. Defaults to `False`.
                      +2201            append: if `True`, add to any existing expressions.
                      +2202                Otherwise, this resets the expressions.
                      +2203            dialect: the dialect used to parse the input expression.
                      +2204            copy: if `False`, modify this expression instance in-place.
                      +2205            opts: other options to use to parse the input expressions.
                      +2206
                      +2207        Returns:
                      +2208            The modified expression.
                      +2209        """
                      +2210        return _apply_cte_builder(
                      +2211            self, alias, as_, recursive=recursive, append=append, dialect=dialect, copy=copy, **opts
                      +2212        )
                       
                      @@ -22853,35 +23096,35 @@ Otherwise, this resets the expressions.
                      -
                      2226class Table(Expression):
                      -2227    arg_types = {
                      -2228        "this": True,
                      -2229        "alias": False,
                      -2230        "db": False,
                      -2231        "catalog": False,
                      -2232        "laterals": False,
                      -2233        "joins": False,
                      -2234        "pivots": False,
                      -2235        "hints": False,
                      -2236        "system_time": False,
                      -2237    }
                      -2238
                      -2239    @property
                      -2240    def db(self) -> str:
                      -2241        return self.text("db")
                      -2242
                      -2243    @property
                      -2244    def catalog(self) -> str:
                      -2245        return self.text("catalog")
                      -2246
                      -2247    @property
                      -2248    def parts(self) -> t.List[Identifier]:
                      -2249        """Return the parts of a table in order catalog, db, table."""
                      -2250        return [
                      -2251            t.cast(Identifier, self.args[part])
                      -2252            for part in ("catalog", "db", "this")
                      -2253            if self.args.get(part)
                      -2254        ]
                      +            
                      2238class Table(Expression):
                      +2239    arg_types = {
                      +2240        "this": True,
                      +2241        "alias": False,
                      +2242        "db": False,
                      +2243        "catalog": False,
                      +2244        "laterals": False,
                      +2245        "joins": False,
                      +2246        "pivots": False,
                      +2247        "hints": False,
                      +2248        "system_time": False,
                      +2249    }
                      +2250
                      +2251    @property
                      +2252    def db(self) -> str:
                      +2253        return self.text("db")
                      +2254
                      +2255    @property
                      +2256    def catalog(self) -> str:
                      +2257        return self.text("catalog")
                      +2258
                      +2259    @property
                      +2260    def parts(self) -> t.List[Identifier]:
                      +2261        """Return the parts of a table in order catalog, db, table."""
                      +2262        return [
                      +2263            t.cast(Identifier, self.args[part])
                      +2264            for part in ("catalog", "db", "this")
                      +2265            if self.args.get(part)
                      +2266        ]
                       
                      @@ -22958,12 +23201,12 @@ Otherwise, this resets the expressions.
                      -
                      2258class SystemTime(Expression):
                      -2259    arg_types = {
                      -2260        "this": False,
                      -2261        "expression": False,
                      -2262        "kind": True,
                      -2263    }
                      +            
                      2270class SystemTime(Expression):
                      +2271    arg_types = {
                      +2272        "this": False,
                      +2273        "expression": False,
                      +2274        "kind": True,
                      +2275    }
                       
                      @@ -23027,96 +23270,96 @@ Otherwise, this resets the expressions.
                      -
                      2266class Union(Subqueryable):
                      -2267    arg_types = {
                      -2268        "with": False,
                      -2269        "this": True,
                      -2270        "expression": True,
                      -2271        "distinct": False,
                      -2272        **QUERY_MODIFIERS,
                      -2273    }
                      -2274
                      -2275    def limit(
                      -2276        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      -2277    ) -> Select:
                      -2278        """
                      -2279        Set the LIMIT expression.
                      -2280
                      -2281        Example:
                      -2282            >>> select("1").union(select("1")).limit(1).sql()
                      -2283            'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'
                      -2284
                      -2285        Args:
                      -2286            expression: the SQL code string to parse.
                      -2287                This can also be an integer.
                      -2288                If a `Limit` instance is passed, this is used as-is.
                      -2289                If another `Expression` instance is passed, it will be wrapped in a `Limit`.
                      -2290            dialect: the dialect used to parse the input expression.
                      -2291            copy: if `False`, modify this expression instance in-place.
                      -2292            opts: other options to use to parse the input expressions.
                      -2293
                      -2294        Returns:
                      -2295            The limited subqueryable.
                      -2296        """
                      -2297        return (
                      -2298            select("*")
                      -2299            .from_(self.subquery(alias="_l_0", copy=copy))
                      -2300            .limit(expression, dialect=dialect, copy=False, **opts)
                      -2301        )
                      -2302
                      -2303    def select(
                      -2304        self,
                      -2305        *expressions: t.Optional[ExpOrStr],
                      -2306        append: bool = True,
                      -2307        dialect: DialectType = None,
                      -2308        copy: bool = True,
                      -2309        **opts,
                      -2310    ) -> Union:
                      -2311        """Append to or set the SELECT of the union recursively.
                      -2312
                      -2313        Example:
                      -2314            >>> from sqlglot import parse_one
                      -2315            >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()
                      -2316            'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'
                      -2317
                      -2318        Args:
                      -2319            *expressions: the SQL code strings to parse.
                      -2320                If an `Expression` instance is passed, it will be used as-is.
                      -2321            append: if `True`, add to any existing expressions.
                      -2322                Otherwise, this resets the expressions.
                      -2323            dialect: the dialect used to parse the input expressions.
                      -2324            copy: if `False`, modify this expression instance in-place.
                      -2325            opts: other options to use to parse the input expressions.
                      -2326
                      -2327        Returns:
                      -2328            Union: the modified expression.
                      -2329        """
                      -2330        this = self.copy() if copy else self
                      -2331        this.this.unnest().select(*expressions, append=append, dialect=dialect, copy=False, **opts)
                      -2332        this.expression.unnest().select(
                      -2333            *expressions, append=append, dialect=dialect, copy=False, **opts
                      -2334        )
                      -2335        return this
                      -2336
                      -2337    @property
                      -2338    def named_selects(self):
                      -2339        return self.this.unnest().named_selects
                      -2340
                      -2341    @property
                      -2342    def is_star(self) -> bool:
                      -2343        return self.this.is_star or self.expression.is_star
                      -2344
                      -2345    @property
                      -2346    def selects(self):
                      -2347        return self.this.unnest().selects
                      +            
                      2278class Union(Subqueryable):
                      +2279    arg_types = {
                      +2280        "with": False,
                      +2281        "this": True,
                      +2282        "expression": True,
                      +2283        "distinct": False,
                      +2284        **QUERY_MODIFIERS,
                      +2285    }
                      +2286
                      +2287    def limit(
                      +2288        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      +2289    ) -> Select:
                      +2290        """
                      +2291        Set the LIMIT expression.
                      +2292
                      +2293        Example:
                      +2294            >>> select("1").union(select("1")).limit(1).sql()
                      +2295            'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'
                      +2296
                      +2297        Args:
                      +2298            expression: the SQL code string to parse.
                      +2299                This can also be an integer.
                      +2300                If a `Limit` instance is passed, this is used as-is.
                      +2301                If another `Expression` instance is passed, it will be wrapped in a `Limit`.
                      +2302            dialect: the dialect used to parse the input expression.
                      +2303            copy: if `False`, modify this expression instance in-place.
                      +2304            opts: other options to use to parse the input expressions.
                      +2305
                      +2306        Returns:
                      +2307            The limited subqueryable.
                      +2308        """
                      +2309        return (
                      +2310            select("*")
                      +2311            .from_(self.subquery(alias="_l_0", copy=copy))
                      +2312            .limit(expression, dialect=dialect, copy=False, **opts)
                      +2313        )
                      +2314
                      +2315    def select(
                      +2316        self,
                      +2317        *expressions: t.Optional[ExpOrStr],
                      +2318        append: bool = True,
                      +2319        dialect: DialectType = None,
                      +2320        copy: bool = True,
                      +2321        **opts,
                      +2322    ) -> Union:
                      +2323        """Append to or set the SELECT of the union recursively.
                      +2324
                      +2325        Example:
                      +2326            >>> from sqlglot import parse_one
                      +2327            >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()
                      +2328            'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'
                      +2329
                      +2330        Args:
                      +2331            *expressions: the SQL code strings to parse.
                      +2332                If an `Expression` instance is passed, it will be used as-is.
                      +2333            append: if `True`, add to any existing expressions.
                      +2334                Otherwise, this resets the expressions.
                      +2335            dialect: the dialect used to parse the input expressions.
                      +2336            copy: if `False`, modify this expression instance in-place.
                      +2337            opts: other options to use to parse the input expressions.
                      +2338
                      +2339        Returns:
                      +2340            Union: the modified expression.
                      +2341        """
                      +2342        this = self.copy() if copy else self
                      +2343        this.this.unnest().select(*expressions, append=append, dialect=dialect, copy=False, **opts)
                      +2344        this.expression.unnest().select(
                      +2345            *expressions, append=append, dialect=dialect, copy=False, **opts
                      +2346        )
                      +2347        return this
                       2348
                       2349    @property
                      -2350    def left(self):
                      -2351        return self.this
                      +2350    def named_selects(self):
                      +2351        return self.this.unnest().named_selects
                       2352
                       2353    @property
                      -2354    def right(self):
                      -2355        return self.expression
                      +2354    def is_star(self) -> bool:
                      +2355        return self.this.is_star or self.expression.is_star
                      +2356
                      +2357    @property
                      +2358    def selects(self):
                      +2359        return self.this.unnest().selects
                      +2360
                      +2361    @property
                      +2362    def left(self):
                      +2363        return self.this
                      +2364
                      +2365    @property
                      +2366    def right(self):
                      +2367        return self.expression
                       
                      @@ -23133,33 +23376,33 @@ Otherwise, this resets the expressions.
                      -
                      2275    def limit(
                      -2276        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      -2277    ) -> Select:
                      -2278        """
                      -2279        Set the LIMIT expression.
                      -2280
                      -2281        Example:
                      -2282            >>> select("1").union(select("1")).limit(1).sql()
                      -2283            'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'
                      -2284
                      -2285        Args:
                      -2286            expression: the SQL code string to parse.
                      -2287                This can also be an integer.
                      -2288                If a `Limit` instance is passed, this is used as-is.
                      -2289                If another `Expression` instance is passed, it will be wrapped in a `Limit`.
                      -2290            dialect: the dialect used to parse the input expression.
                      -2291            copy: if `False`, modify this expression instance in-place.
                      -2292            opts: other options to use to parse the input expressions.
                      -2293
                      -2294        Returns:
                      -2295            The limited subqueryable.
                      -2296        """
                      -2297        return (
                      -2298            select("*")
                      -2299            .from_(self.subquery(alias="_l_0", copy=copy))
                      -2300            .limit(expression, dialect=dialect, copy=False, **opts)
                      -2301        )
                      +            
                      2287    def limit(
                      +2288        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      +2289    ) -> Select:
                      +2290        """
                      +2291        Set the LIMIT expression.
                      +2292
                      +2293        Example:
                      +2294            >>> select("1").union(select("1")).limit(1).sql()
                      +2295            'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'
                      +2296
                      +2297        Args:
                      +2298            expression: the SQL code string to parse.
                      +2299                This can also be an integer.
                      +2300                If a `Limit` instance is passed, this is used as-is.
                      +2301                If another `Expression` instance is passed, it will be wrapped in a `Limit`.
                      +2302            dialect: the dialect used to parse the input expression.
                      +2303            copy: if `False`, modify this expression instance in-place.
                      +2304            opts: other options to use to parse the input expressions.
                      +2305
                      +2306        Returns:
                      +2307            The limited subqueryable.
                      +2308        """
                      +2309        return (
                      +2310            select("*")
                      +2311            .from_(self.subquery(alias="_l_0", copy=copy))
                      +2312            .limit(expression, dialect=dialect, copy=False, **opts)
                      +2313        )
                       
                      @@ -23207,39 +23450,39 @@ If another Expression instance is passed,
                      -
                      2303    def select(
                      -2304        self,
                      -2305        *expressions: t.Optional[ExpOrStr],
                      -2306        append: bool = True,
                      -2307        dialect: DialectType = None,
                      -2308        copy: bool = True,
                      -2309        **opts,
                      -2310    ) -> Union:
                      -2311        """Append to or set the SELECT of the union recursively.
                      -2312
                      -2313        Example:
                      -2314            >>> from sqlglot import parse_one
                      -2315            >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()
                      -2316            'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'
                      -2317
                      -2318        Args:
                      -2319            *expressions: the SQL code strings to parse.
                      -2320                If an `Expression` instance is passed, it will be used as-is.
                      -2321            append: if `True`, add to any existing expressions.
                      -2322                Otherwise, this resets the expressions.
                      -2323            dialect: the dialect used to parse the input expressions.
                      -2324            copy: if `False`, modify this expression instance in-place.
                      -2325            opts: other options to use to parse the input expressions.
                      -2326
                      -2327        Returns:
                      -2328            Union: the modified expression.
                      -2329        """
                      -2330        this = self.copy() if copy else self
                      -2331        this.this.unnest().select(*expressions, append=append, dialect=dialect, copy=False, **opts)
                      -2332        this.expression.unnest().select(
                      -2333            *expressions, append=append, dialect=dialect, copy=False, **opts
                      -2334        )
                      -2335        return this
                      +            
                      2315    def select(
                      +2316        self,
                      +2317        *expressions: t.Optional[ExpOrStr],
                      +2318        append: bool = True,
                      +2319        dialect: DialectType = None,
                      +2320        copy: bool = True,
                      +2321        **opts,
                      +2322    ) -> Union:
                      +2323        """Append to or set the SELECT of the union recursively.
                      +2324
                      +2325        Example:
                      +2326            >>> from sqlglot import parse_one
                      +2327            >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()
                      +2328            'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'
                      +2329
                      +2330        Args:
                      +2331            *expressions: the SQL code strings to parse.
                      +2332                If an `Expression` instance is passed, it will be used as-is.
                      +2333            append: if `True`, add to any existing expressions.
                      +2334                Otherwise, this resets the expressions.
                      +2335            dialect: the dialect used to parse the input expressions.
                      +2336            copy: if `False`, modify this expression instance in-place.
                      +2337            opts: other options to use to parse the input expressions.
                      +2338
                      +2339        Returns:
                      +2340            Union: the modified expression.
                      +2341        """
                      +2342        this = self.copy() if copy else self
                      +2343        this.this.unnest().select(*expressions, append=append, dialect=dialect, copy=False, **opts)
                      +2344        this.expression.unnest().select(
                      +2345            *expressions, append=append, dialect=dialect, copy=False, **opts
                      +2346        )
                      +2347        return this
                       
                      @@ -23358,8 +23601,8 @@ Otherwise, this resets the expressions.
                      -
                      2358class Except(Union):
                      -2359    pass
                      +            
                      2370class Except(Union):
                      +2371    pass
                       
                      @@ -23439,8 +23682,8 @@ Otherwise, this resets the expressions.
                      -
                      2362class Intersect(Union):
                      -2363    pass
                      +            
                      2374class Intersect(Union):
                      +2375    pass
                       
                      @@ -23520,13 +23763,13 @@ Otherwise, this resets the expressions.
                      -
                      2366class Unnest(UDTF):
                      -2367    arg_types = {
                      -2368        "expressions": True,
                      -2369        "ordinality": False,
                      -2370        "alias": False,
                      -2371        "offset": False,
                      -2372    }
                      +            
                      2378class Unnest(UDTF):
                      +2379    arg_types = {
                      +2380        "expressions": True,
                      +2381        "ordinality": False,
                      +2382        "alias": False,
                      +2383        "offset": False,
                      +2384    }
                       
                      @@ -23596,15 +23839,15 @@ Otherwise, this resets the expressions.
                      -
                      2375class Update(Expression):
                      -2376    arg_types = {
                      -2377        "with": False,
                      -2378        "this": False,
                      -2379        "expressions": True,
                      -2380        "from": False,
                      -2381        "where": False,
                      -2382        "returning": False,
                      -2383    }
                      +            
                      2387class Update(Expression):
                      +2388    arg_types = {
                      +2389        "with": False,
                      +2390        "this": False,
                      +2391        "expressions": True,
                      +2392        "from": False,
                      +2393        "where": False,
                      +2394        "returning": False,
                      +2395    }
                       
                      @@ -23668,12 +23911,12 @@ Otherwise, this resets the expressions.
                      -
                      2386class Values(UDTF):
                      -2387    arg_types = {
                      -2388        "expressions": True,
                      -2389        "ordinality": False,
                      -2390        "alias": False,
                      -2391    }
                      +            
                      2398class Values(UDTF):
                      +2399    arg_types = {
                      +2400        "expressions": True,
                      +2401        "ordinality": False,
                      +2402        "alias": False,
                      +2403    }
                       
                      @@ -23743,8 +23986,8 @@ Otherwise, this resets the expressions.
                      -
                      2394class Var(Expression):
                      -2395    pass
                      +            
                      2406class Var(Expression):
                      +2407    pass
                       
                      @@ -23808,8 +24051,8 @@ Otherwise, this resets the expressions.
                      -
                      2398class Schema(Expression):
                      -2399    arg_types = {"this": False, "expressions": False}
                      +            
                      2410class Schema(Expression):
                      +2411    arg_types = {"this": False, "expressions": False}
                       
                      @@ -23873,8 +24116,8 @@ Otherwise, this resets the expressions.
                      -
                      2404class Lock(Expression):
                      -2405    arg_types = {"update": True, "expressions": False, "wait": False}
                      +            
                      2416class Lock(Expression):
                      +2417    arg_types = {"update": True, "expressions": False, "wait": False}
                       
                      @@ -23938,673 +24181,673 @@ Otherwise, this resets the expressions.
                      -
                      2408class Select(Subqueryable):
                      -2409    arg_types = {
                      -2410        "with": False,
                      -2411        "kind": False,
                      -2412        "expressions": False,
                      -2413        "hint": False,
                      -2414        "distinct": False,
                      -2415        "struct": False,  # https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#return_query_results_as_a_value_table
                      -2416        "value": False,
                      -2417        "into": False,
                      -2418        "from": False,
                      -2419        **QUERY_MODIFIERS,
                      -2420    }
                      -2421
                      -2422    def from_(
                      -2423        self, expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts
                      -2424    ) -> Select:
                      -2425        """
                      -2426        Set the FROM expression.
                      -2427
                      -2428        Example:
                      -2429            >>> Select().from_("tbl").select("x").sql()
                      -2430            'SELECT x FROM tbl'
                      -2431
                      -2432        Args:
                      -2433            expression : the SQL code strings to parse.
                      -2434                If a `From` instance is passed, this is used as-is.
                      -2435                If another `Expression` instance is passed, it will be wrapped in a `From`.
                      -2436            dialect: the dialect used to parse the input expression.
                      -2437            copy: if `False`, modify this expression instance in-place.
                      -2438            opts: other options to use to parse the input expressions.
                      +            
                      2420class Select(Subqueryable):
                      +2421    arg_types = {
                      +2422        "with": False,
                      +2423        "kind": False,
                      +2424        "expressions": False,
                      +2425        "hint": False,
                      +2426        "distinct": False,
                      +2427        "struct": False,  # https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#return_query_results_as_a_value_table
                      +2428        "value": False,
                      +2429        "into": False,
                      +2430        "from": False,
                      +2431        **QUERY_MODIFIERS,
                      +2432    }
                      +2433
                      +2434    def from_(
                      +2435        self, expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts
                      +2436    ) -> Select:
                      +2437        """
                      +2438        Set the FROM expression.
                       2439
                      -2440        Returns:
                      -2441            The modified Select expression.
                      -2442        """
                      -2443        return _apply_builder(
                      -2444            expression=expression,
                      -2445            instance=self,
                      -2446            arg="from",
                      -2447            into=From,
                      -2448            prefix="FROM",
                      -2449            dialect=dialect,
                      -2450            copy=copy,
                      -2451            **opts,
                      -2452        )
                      -2453
                      -2454    def group_by(
                      -2455        self,
                      -2456        *expressions: t.Optional[ExpOrStr],
                      -2457        append: bool = True,
                      -2458        dialect: DialectType = None,
                      -2459        copy: bool = True,
                      -2460        **opts,
                      -2461    ) -> Select:
                      -2462        """
                      -2463        Set the GROUP BY expression.
                      -2464
                      -2465        Example:
                      -2466            >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()
                      -2467            'SELECT x, COUNT(1) FROM tbl GROUP BY x'
                      -2468
                      -2469        Args:
                      -2470            *expressions: the SQL code strings to parse.
                      -2471                If a `Group` instance is passed, this is used as-is.
                      -2472                If another `Expression` instance is passed, it will be wrapped in a `Group`.
                      -2473                If nothing is passed in then a group by is not applied to the expression
                      -2474            append: if `True`, add to any existing expressions.
                      -2475                Otherwise, this flattens all the `Group` expression into a single expression.
                      -2476            dialect: the dialect used to parse the input expression.
                      -2477            copy: if `False`, modify this expression instance in-place.
                      -2478            opts: other options to use to parse the input expressions.
                      -2479
                      -2480        Returns:
                      -2481            The modified Select expression.
                      -2482        """
                      -2483        if not expressions:
                      -2484            return self if not copy else self.copy()
                      -2485
                      -2486        return _apply_child_list_builder(
                      -2487            *expressions,
                      -2488            instance=self,
                      -2489            arg="group",
                      -2490            append=append,
                      -2491            copy=copy,
                      -2492            prefix="GROUP BY",
                      -2493            into=Group,
                      -2494            dialect=dialect,
                      -2495            **opts,
                      -2496        )
                      +2440        Example:
                      +2441            >>> Select().from_("tbl").select("x").sql()
                      +2442            'SELECT x FROM tbl'
                      +2443
                      +2444        Args:
                      +2445            expression : the SQL code strings to parse.
                      +2446                If a `From` instance is passed, this is used as-is.
                      +2447                If another `Expression` instance is passed, it will be wrapped in a `From`.
                      +2448            dialect: the dialect used to parse the input expression.
                      +2449            copy: if `False`, modify this expression instance in-place.
                      +2450            opts: other options to use to parse the input expressions.
                      +2451
                      +2452        Returns:
                      +2453            The modified Select expression.
                      +2454        """
                      +2455        return _apply_builder(
                      +2456            expression=expression,
                      +2457            instance=self,
                      +2458            arg="from",
                      +2459            into=From,
                      +2460            prefix="FROM",
                      +2461            dialect=dialect,
                      +2462            copy=copy,
                      +2463            **opts,
                      +2464        )
                      +2465
                      +2466    def group_by(
                      +2467        self,
                      +2468        *expressions: t.Optional[ExpOrStr],
                      +2469        append: bool = True,
                      +2470        dialect: DialectType = None,
                      +2471        copy: bool = True,
                      +2472        **opts,
                      +2473    ) -> Select:
                      +2474        """
                      +2475        Set the GROUP BY expression.
                      +2476
                      +2477        Example:
                      +2478            >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()
                      +2479            'SELECT x, COUNT(1) FROM tbl GROUP BY x'
                      +2480
                      +2481        Args:
                      +2482            *expressions: the SQL code strings to parse.
                      +2483                If a `Group` instance is passed, this is used as-is.
                      +2484                If another `Expression` instance is passed, it will be wrapped in a `Group`.
                      +2485                If nothing is passed in then a group by is not applied to the expression
                      +2486            append: if `True`, add to any existing expressions.
                      +2487                Otherwise, this flattens all the `Group` expression into a single expression.
                      +2488            dialect: the dialect used to parse the input expression.
                      +2489            copy: if `False`, modify this expression instance in-place.
                      +2490            opts: other options to use to parse the input expressions.
                      +2491
                      +2492        Returns:
                      +2493            The modified Select expression.
                      +2494        """
                      +2495        if not expressions:
                      +2496            return self if not copy else self.copy()
                       2497
                      -2498    def order_by(
                      -2499        self,
                      -2500        *expressions: t.Optional[ExpOrStr],
                      -2501        append: bool = True,
                      -2502        dialect: DialectType = None,
                      -2503        copy: bool = True,
                      -2504        **opts,
                      -2505    ) -> Select:
                      -2506        """
                      -2507        Set the ORDER BY expression.
                      -2508
                      -2509        Example:
                      -2510            >>> Select().from_("tbl").select("x").order_by("x DESC").sql()
                      -2511            'SELECT x FROM tbl ORDER BY x DESC'
                      -2512
                      -2513        Args:
                      -2514            *expressions: the SQL code strings to parse.
                      -2515                If a `Group` instance is passed, this is used as-is.
                      -2516                If another `Expression` instance is passed, it will be wrapped in a `Order`.
                      -2517            append: if `True`, add to any existing expressions.
                      -2518                Otherwise, this flattens all the `Order` expression into a single expression.
                      -2519            dialect: the dialect used to parse the input expression.
                      -2520            copy: if `False`, modify this expression instance in-place.
                      -2521            opts: other options to use to parse the input expressions.
                      -2522
                      -2523        Returns:
                      -2524            The modified Select expression.
                      -2525        """
                      -2526        return _apply_child_list_builder(
                      -2527            *expressions,
                      -2528            instance=self,
                      -2529            arg="order",
                      -2530            append=append,
                      -2531            copy=copy,
                      -2532            prefix="ORDER BY",
                      -2533            into=Order,
                      -2534            dialect=dialect,
                      -2535            **opts,
                      -2536        )
                      -2537
                      -2538    def sort_by(
                      -2539        self,
                      -2540        *expressions: t.Optional[ExpOrStr],
                      -2541        append: bool = True,
                      -2542        dialect: DialectType = None,
                      -2543        copy: bool = True,
                      -2544        **opts,
                      -2545    ) -> Select:
                      -2546        """
                      -2547        Set the SORT BY expression.
                      -2548
                      -2549        Example:
                      -2550            >>> Select().from_("tbl").select("x").sort_by("x DESC").sql(dialect="hive")
                      -2551            'SELECT x FROM tbl SORT BY x DESC'
                      -2552
                      -2553        Args:
                      -2554            *expressions: the SQL code strings to parse.
                      -2555                If a `Group` instance is passed, this is used as-is.
                      -2556                If another `Expression` instance is passed, it will be wrapped in a `SORT`.
                      -2557            append: if `True`, add to any existing expressions.
                      -2558                Otherwise, this flattens all the `Order` expression into a single expression.
                      -2559            dialect: the dialect used to parse the input expression.
                      -2560            copy: if `False`, modify this expression instance in-place.
                      -2561            opts: other options to use to parse the input expressions.
                      -2562
                      -2563        Returns:
                      -2564            The modified Select expression.
                      -2565        """
                      -2566        return _apply_child_list_builder(
                      -2567            *expressions,
                      -2568            instance=self,
                      -2569            arg="sort",
                      -2570            append=append,
                      -2571            copy=copy,
                      -2572            prefix="SORT BY",
                      -2573            into=Sort,
                      -2574            dialect=dialect,
                      -2575            **opts,
                      -2576        )
                      -2577
                      -2578    def cluster_by(
                      -2579        self,
                      -2580        *expressions: t.Optional[ExpOrStr],
                      -2581        append: bool = True,
                      -2582        dialect: DialectType = None,
                      -2583        copy: bool = True,
                      -2584        **opts,
                      -2585    ) -> Select:
                      -2586        """
                      -2587        Set the CLUSTER BY expression.
                      -2588
                      -2589        Example:
                      -2590            >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql(dialect="hive")
                      -2591            'SELECT x FROM tbl CLUSTER BY x DESC'
                      -2592
                      -2593        Args:
                      -2594            *expressions: the SQL code strings to parse.
                      -2595                If a `Group` instance is passed, this is used as-is.
                      -2596                If another `Expression` instance is passed, it will be wrapped in a `Cluster`.
                      -2597            append: if `True`, add to any existing expressions.
                      -2598                Otherwise, this flattens all the `Order` expression into a single expression.
                      -2599            dialect: the dialect used to parse the input expression.
                      -2600            copy: if `False`, modify this expression instance in-place.
                      -2601            opts: other options to use to parse the input expressions.
                      -2602
                      -2603        Returns:
                      -2604            The modified Select expression.
                      -2605        """
                      -2606        return _apply_child_list_builder(
                      -2607            *expressions,
                      -2608            instance=self,
                      -2609            arg="cluster",
                      -2610            append=append,
                      -2611            copy=copy,
                      -2612            prefix="CLUSTER BY",
                      -2613            into=Cluster,
                      -2614            dialect=dialect,
                      -2615            **opts,
                      -2616        )
                      -2617
                      -2618    def limit(
                      -2619        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      -2620    ) -> Select:
                      -2621        """
                      -2622        Set the LIMIT expression.
                      -2623
                      -2624        Example:
                      -2625            >>> Select().from_("tbl").select("x").limit(10).sql()
                      -2626            'SELECT x FROM tbl LIMIT 10'
                      -2627
                      -2628        Args:
                      -2629            expression: the SQL code string to parse.
                      -2630                This can also be an integer.
                      -2631                If a `Limit` instance is passed, this is used as-is.
                      -2632                If another `Expression` instance is passed, it will be wrapped in a `Limit`.
                      -2633            dialect: the dialect used to parse the input expression.
                      -2634            copy: if `False`, modify this expression instance in-place.
                      -2635            opts: other options to use to parse the input expressions.
                      -2636
                      -2637        Returns:
                      -2638            Select: the modified expression.
                      -2639        """
                      -2640        return _apply_builder(
                      -2641            expression=expression,
                      -2642            instance=self,
                      -2643            arg="limit",
                      -2644            into=Limit,
                      -2645            prefix="LIMIT",
                      -2646            dialect=dialect,
                      -2647            copy=copy,
                      -2648            **opts,
                      -2649        )
                      -2650
                      -2651    def offset(
                      -2652        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      -2653    ) -> Select:
                      -2654        """
                      -2655        Set the OFFSET expression.
                      -2656
                      -2657        Example:
                      -2658            >>> Select().from_("tbl").select("x").offset(10).sql()
                      -2659            'SELECT x FROM tbl OFFSET 10'
                      -2660
                      -2661        Args:
                      -2662            expression: the SQL code string to parse.
                      -2663                This can also be an integer.
                      -2664                If a `Offset` instance is passed, this is used as-is.
                      -2665                If another `Expression` instance is passed, it will be wrapped in a `Offset`.
                      -2666            dialect: the dialect used to parse the input expression.
                      -2667            copy: if `False`, modify this expression instance in-place.
                      -2668            opts: other options to use to parse the input expressions.
                      -2669
                      -2670        Returns:
                      -2671            The modified Select expression.
                      -2672        """
                      -2673        return _apply_builder(
                      -2674            expression=expression,
                      -2675            instance=self,
                      -2676            arg="offset",
                      -2677            into=Offset,
                      -2678            prefix="OFFSET",
                      -2679            dialect=dialect,
                      -2680            copy=copy,
                      -2681            **opts,
                      -2682        )
                      -2683
                      -2684    def select(
                      -2685        self,
                      -2686        *expressions: t.Optional[ExpOrStr],
                      -2687        append: bool = True,
                      -2688        dialect: DialectType = None,
                      -2689        copy: bool = True,
                      -2690        **opts,
                      -2691    ) -> Select:
                      -2692        """
                      -2693        Append to or set the SELECT expressions.
                      -2694
                      -2695        Example:
                      -2696            >>> Select().select("x", "y").sql()
                      -2697            'SELECT x, y'
                      -2698
                      -2699        Args:
                      -2700            *expressions: the SQL code strings to parse.
                      -2701                If an `Expression` instance is passed, it will be used as-is.
                      -2702            append: if `True`, add to any existing expressions.
                      -2703                Otherwise, this resets the expressions.
                      -2704            dialect: the dialect used to parse the input expressions.
                      -2705            copy: if `False`, modify this expression instance in-place.
                      -2706            opts: other options to use to parse the input expressions.
                      -2707
                      -2708        Returns:
                      -2709            The modified Select expression.
                      -2710        """
                      -2711        return _apply_list_builder(
                      -2712            *expressions,
                      -2713            instance=self,
                      -2714            arg="expressions",
                      -2715            append=append,
                      -2716            dialect=dialect,
                      -2717            copy=copy,
                      -2718            **opts,
                      -2719        )
                      -2720
                      -2721    def lateral(
                      -2722        self,
                      -2723        *expressions: t.Optional[ExpOrStr],
                      -2724        append: bool = True,
                      -2725        dialect: DialectType = None,
                      -2726        copy: bool = True,
                      -2727        **opts,
                      -2728    ) -> Select:
                      -2729        """
                      -2730        Append to or set the LATERAL expressions.
                      -2731
                      -2732        Example:
                      -2733            >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()
                      -2734            'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'
                      -2735
                      -2736        Args:
                      -2737            *expressions: the SQL code strings to parse.
                      -2738                If an `Expression` instance is passed, it will be used as-is.
                      -2739            append: if `True`, add to any existing expressions.
                      -2740                Otherwise, this resets the expressions.
                      -2741            dialect: the dialect used to parse the input expressions.
                      -2742            copy: if `False`, modify this expression instance in-place.
                      -2743            opts: other options to use to parse the input expressions.
                      -2744
                      -2745        Returns:
                      -2746            The modified Select expression.
                      -2747        """
                      -2748        return _apply_list_builder(
                      -2749            *expressions,
                      -2750            instance=self,
                      -2751            arg="laterals",
                      -2752            append=append,
                      -2753            into=Lateral,
                      -2754            prefix="LATERAL VIEW",
                      -2755            dialect=dialect,
                      -2756            copy=copy,
                      -2757            **opts,
                      -2758        )
                      -2759
                      -2760    def join(
                      -2761        self,
                      -2762        expression: ExpOrStr,
                      -2763        on: t.Optional[ExpOrStr] = None,
                      -2764        using: t.Optional[ExpOrStr | t.List[ExpOrStr]] = None,
                      -2765        append: bool = True,
                      -2766        join_type: t.Optional[str] = None,
                      -2767        join_alias: t.Optional[Identifier | str] = None,
                      -2768        dialect: DialectType = None,
                      -2769        copy: bool = True,
                      -2770        **opts,
                      -2771    ) -> Select:
                      -2772        """
                      -2773        Append to or set the JOIN expressions.
                      -2774
                      -2775        Example:
                      -2776            >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()
                      -2777            'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'
                      -2778
                      -2779            >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()
                      -2780            'SELECT 1 FROM a JOIN b USING (x, y, z)'
                      -2781
                      -2782            Use `join_type` to change the type of join:
                      -2783
                      -2784            >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()
                      -2785            'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'
                      +2498        return _apply_child_list_builder(
                      +2499            *expressions,
                      +2500            instance=self,
                      +2501            arg="group",
                      +2502            append=append,
                      +2503            copy=copy,
                      +2504            prefix="GROUP BY",
                      +2505            into=Group,
                      +2506            dialect=dialect,
                      +2507            **opts,
                      +2508        )
                      +2509
                      +2510    def order_by(
                      +2511        self,
                      +2512        *expressions: t.Optional[ExpOrStr],
                      +2513        append: bool = True,
                      +2514        dialect: DialectType = None,
                      +2515        copy: bool = True,
                      +2516        **opts,
                      +2517    ) -> Select:
                      +2518        """
                      +2519        Set the ORDER BY expression.
                      +2520
                      +2521        Example:
                      +2522            >>> Select().from_("tbl").select("x").order_by("x DESC").sql()
                      +2523            'SELECT x FROM tbl ORDER BY x DESC'
                      +2524
                      +2525        Args:
                      +2526            *expressions: the SQL code strings to parse.
                      +2527                If a `Group` instance is passed, this is used as-is.
                      +2528                If another `Expression` instance is passed, it will be wrapped in a `Order`.
                      +2529            append: if `True`, add to any existing expressions.
                      +2530                Otherwise, this flattens all the `Order` expression into a single expression.
                      +2531            dialect: the dialect used to parse the input expression.
                      +2532            copy: if `False`, modify this expression instance in-place.
                      +2533            opts: other options to use to parse the input expressions.
                      +2534
                      +2535        Returns:
                      +2536            The modified Select expression.
                      +2537        """
                      +2538        return _apply_child_list_builder(
                      +2539            *expressions,
                      +2540            instance=self,
                      +2541            arg="order",
                      +2542            append=append,
                      +2543            copy=copy,
                      +2544            prefix="ORDER BY",
                      +2545            into=Order,
                      +2546            dialect=dialect,
                      +2547            **opts,
                      +2548        )
                      +2549
                      +2550    def sort_by(
                      +2551        self,
                      +2552        *expressions: t.Optional[ExpOrStr],
                      +2553        append: bool = True,
                      +2554        dialect: DialectType = None,
                      +2555        copy: bool = True,
                      +2556        **opts,
                      +2557    ) -> Select:
                      +2558        """
                      +2559        Set the SORT BY expression.
                      +2560
                      +2561        Example:
                      +2562            >>> Select().from_("tbl").select("x").sort_by("x DESC").sql(dialect="hive")
                      +2563            'SELECT x FROM tbl SORT BY x DESC'
                      +2564
                      +2565        Args:
                      +2566            *expressions: the SQL code strings to parse.
                      +2567                If a `Group` instance is passed, this is used as-is.
                      +2568                If another `Expression` instance is passed, it will be wrapped in a `SORT`.
                      +2569            append: if `True`, add to any existing expressions.
                      +2570                Otherwise, this flattens all the `Order` expression into a single expression.
                      +2571            dialect: the dialect used to parse the input expression.
                      +2572            copy: if `False`, modify this expression instance in-place.
                      +2573            opts: other options to use to parse the input expressions.
                      +2574
                      +2575        Returns:
                      +2576            The modified Select expression.
                      +2577        """
                      +2578        return _apply_child_list_builder(
                      +2579            *expressions,
                      +2580            instance=self,
                      +2581            arg="sort",
                      +2582            append=append,
                      +2583            copy=copy,
                      +2584            prefix="SORT BY",
                      +2585            into=Sort,
                      +2586            dialect=dialect,
                      +2587            **opts,
                      +2588        )
                      +2589
                      +2590    def cluster_by(
                      +2591        self,
                      +2592        *expressions: t.Optional[ExpOrStr],
                      +2593        append: bool = True,
                      +2594        dialect: DialectType = None,
                      +2595        copy: bool = True,
                      +2596        **opts,
                      +2597    ) -> Select:
                      +2598        """
                      +2599        Set the CLUSTER BY expression.
                      +2600
                      +2601        Example:
                      +2602            >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql(dialect="hive")
                      +2603            'SELECT x FROM tbl CLUSTER BY x DESC'
                      +2604
                      +2605        Args:
                      +2606            *expressions: the SQL code strings to parse.
                      +2607                If a `Group` instance is passed, this is used as-is.
                      +2608                If another `Expression` instance is passed, it will be wrapped in a `Cluster`.
                      +2609            append: if `True`, add to any existing expressions.
                      +2610                Otherwise, this flattens all the `Order` expression into a single expression.
                      +2611            dialect: the dialect used to parse the input expression.
                      +2612            copy: if `False`, modify this expression instance in-place.
                      +2613            opts: other options to use to parse the input expressions.
                      +2614
                      +2615        Returns:
                      +2616            The modified Select expression.
                      +2617        """
                      +2618        return _apply_child_list_builder(
                      +2619            *expressions,
                      +2620            instance=self,
                      +2621            arg="cluster",
                      +2622            append=append,
                      +2623            copy=copy,
                      +2624            prefix="CLUSTER BY",
                      +2625            into=Cluster,
                      +2626            dialect=dialect,
                      +2627            **opts,
                      +2628        )
                      +2629
                      +2630    def limit(
                      +2631        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      +2632    ) -> Select:
                      +2633        """
                      +2634        Set the LIMIT expression.
                      +2635
                      +2636        Example:
                      +2637            >>> Select().from_("tbl").select("x").limit(10).sql()
                      +2638            'SELECT x FROM tbl LIMIT 10'
                      +2639
                      +2640        Args:
                      +2641            expression: the SQL code string to parse.
                      +2642                This can also be an integer.
                      +2643                If a `Limit` instance is passed, this is used as-is.
                      +2644                If another `Expression` instance is passed, it will be wrapped in a `Limit`.
                      +2645            dialect: the dialect used to parse the input expression.
                      +2646            copy: if `False`, modify this expression instance in-place.
                      +2647            opts: other options to use to parse the input expressions.
                      +2648
                      +2649        Returns:
                      +2650            Select: the modified expression.
                      +2651        """
                      +2652        return _apply_builder(
                      +2653            expression=expression,
                      +2654            instance=self,
                      +2655            arg="limit",
                      +2656            into=Limit,
                      +2657            prefix="LIMIT",
                      +2658            dialect=dialect,
                      +2659            copy=copy,
                      +2660            **opts,
                      +2661        )
                      +2662
                      +2663    def offset(
                      +2664        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      +2665    ) -> Select:
                      +2666        """
                      +2667        Set the OFFSET expression.
                      +2668
                      +2669        Example:
                      +2670            >>> Select().from_("tbl").select("x").offset(10).sql()
                      +2671            'SELECT x FROM tbl OFFSET 10'
                      +2672
                      +2673        Args:
                      +2674            expression: the SQL code string to parse.
                      +2675                This can also be an integer.
                      +2676                If a `Offset` instance is passed, this is used as-is.
                      +2677                If another `Expression` instance is passed, it will be wrapped in a `Offset`.
                      +2678            dialect: the dialect used to parse the input expression.
                      +2679            copy: if `False`, modify this expression instance in-place.
                      +2680            opts: other options to use to parse the input expressions.
                      +2681
                      +2682        Returns:
                      +2683            The modified Select expression.
                      +2684        """
                      +2685        return _apply_builder(
                      +2686            expression=expression,
                      +2687            instance=self,
                      +2688            arg="offset",
                      +2689            into=Offset,
                      +2690            prefix="OFFSET",
                      +2691            dialect=dialect,
                      +2692            copy=copy,
                      +2693            **opts,
                      +2694        )
                      +2695
                      +2696    def select(
                      +2697        self,
                      +2698        *expressions: t.Optional[ExpOrStr],
                      +2699        append: bool = True,
                      +2700        dialect: DialectType = None,
                      +2701        copy: bool = True,
                      +2702        **opts,
                      +2703    ) -> Select:
                      +2704        """
                      +2705        Append to or set the SELECT expressions.
                      +2706
                      +2707        Example:
                      +2708            >>> Select().select("x", "y").sql()
                      +2709            'SELECT x, y'
                      +2710
                      +2711        Args:
                      +2712            *expressions: the SQL code strings to parse.
                      +2713                If an `Expression` instance is passed, it will be used as-is.
                      +2714            append: if `True`, add to any existing expressions.
                      +2715                Otherwise, this resets the expressions.
                      +2716            dialect: the dialect used to parse the input expressions.
                      +2717            copy: if `False`, modify this expression instance in-place.
                      +2718            opts: other options to use to parse the input expressions.
                      +2719
                      +2720        Returns:
                      +2721            The modified Select expression.
                      +2722        """
                      +2723        return _apply_list_builder(
                      +2724            *expressions,
                      +2725            instance=self,
                      +2726            arg="expressions",
                      +2727            append=append,
                      +2728            dialect=dialect,
                      +2729            copy=copy,
                      +2730            **opts,
                      +2731        )
                      +2732
                      +2733    def lateral(
                      +2734        self,
                      +2735        *expressions: t.Optional[ExpOrStr],
                      +2736        append: bool = True,
                      +2737        dialect: DialectType = None,
                      +2738        copy: bool = True,
                      +2739        **opts,
                      +2740    ) -> Select:
                      +2741        """
                      +2742        Append to or set the LATERAL expressions.
                      +2743
                      +2744        Example:
                      +2745            >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()
                      +2746            'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'
                      +2747
                      +2748        Args:
                      +2749            *expressions: the SQL code strings to parse.
                      +2750                If an `Expression` instance is passed, it will be used as-is.
                      +2751            append: if `True`, add to any existing expressions.
                      +2752                Otherwise, this resets the expressions.
                      +2753            dialect: the dialect used to parse the input expressions.
                      +2754            copy: if `False`, modify this expression instance in-place.
                      +2755            opts: other options to use to parse the input expressions.
                      +2756
                      +2757        Returns:
                      +2758            The modified Select expression.
                      +2759        """
                      +2760        return _apply_list_builder(
                      +2761            *expressions,
                      +2762            instance=self,
                      +2763            arg="laterals",
                      +2764            append=append,
                      +2765            into=Lateral,
                      +2766            prefix="LATERAL VIEW",
                      +2767            dialect=dialect,
                      +2768            copy=copy,
                      +2769            **opts,
                      +2770        )
                      +2771
                      +2772    def join(
                      +2773        self,
                      +2774        expression: ExpOrStr,
                      +2775        on: t.Optional[ExpOrStr] = None,
                      +2776        using: t.Optional[ExpOrStr | t.List[ExpOrStr]] = None,
                      +2777        append: bool = True,
                      +2778        join_type: t.Optional[str] = None,
                      +2779        join_alias: t.Optional[Identifier | str] = None,
                      +2780        dialect: DialectType = None,
                      +2781        copy: bool = True,
                      +2782        **opts,
                      +2783    ) -> Select:
                      +2784        """
                      +2785        Append to or set the JOIN expressions.
                       2786
                      -2787        Args:
                      -2788            expression: the SQL code string to parse.
                      -2789                If an `Expression` instance is passed, it will be used as-is.
                      -2790            on: optionally specify the join "on" criteria as a SQL string.
                      -2791                If an `Expression` instance is passed, it will be used as-is.
                      -2792            using: optionally specify the join "using" criteria as a SQL string.
                      -2793                If an `Expression` instance is passed, it will be used as-is.
                      -2794            append: if `True`, add to any existing expressions.
                      -2795                Otherwise, this resets the expressions.
                      -2796            join_type: if set, alter the parsed join type.
                      -2797            join_alias: an optional alias for the joined source.
                      -2798            dialect: the dialect used to parse the input expressions.
                      -2799            copy: if `False`, modify this expression instance in-place.
                      -2800            opts: other options to use to parse the input expressions.
                      -2801
                      -2802        Returns:
                      -2803            Select: the modified expression.
                      -2804        """
                      -2805        parse_args = {"dialect": dialect, **opts}
                      -2806
                      -2807        try:
                      -2808            expression = maybe_parse(expression, into=Join, prefix="JOIN", **parse_args)  # type: ignore
                      -2809        except ParseError:
                      -2810            expression = maybe_parse(expression, into=(Join, Expression), **parse_args)  # type: ignore
                      -2811
                      -2812        join = expression if isinstance(expression, Join) else Join(this=expression)
                      +2787        Example:
                      +2788            >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()
                      +2789            'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'
                      +2790
                      +2791            >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()
                      +2792            'SELECT 1 FROM a JOIN b USING (x, y, z)'
                      +2793
                      +2794            Use `join_type` to change the type of join:
                      +2795
                      +2796            >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()
                      +2797            'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'
                      +2798
                      +2799        Args:
                      +2800            expression: the SQL code string to parse.
                      +2801                If an `Expression` instance is passed, it will be used as-is.
                      +2802            on: optionally specify the join "on" criteria as a SQL string.
                      +2803                If an `Expression` instance is passed, it will be used as-is.
                      +2804            using: optionally specify the join "using" criteria as a SQL string.
                      +2805                If an `Expression` instance is passed, it will be used as-is.
                      +2806            append: if `True`, add to any existing expressions.
                      +2807                Otherwise, this resets the expressions.
                      +2808            join_type: if set, alter the parsed join type.
                      +2809            join_alias: an optional alias for the joined source.
                      +2810            dialect: the dialect used to parse the input expressions.
                      +2811            copy: if `False`, modify this expression instance in-place.
                      +2812            opts: other options to use to parse the input expressions.
                       2813
                      -2814        if isinstance(join.this, Select):
                      -2815            join.this.replace(join.this.subquery())
                      -2816
                      -2817        if join_type:
                      -2818            natural: t.Optional[Token]
                      -2819            side: t.Optional[Token]
                      -2820            kind: t.Optional[Token]
                      -2821
                      -2822            natural, side, kind = maybe_parse(join_type, into="JOIN_TYPE", **parse_args)  # type: ignore
                      +2814        Returns:
                      +2815            Select: the modified expression.
                      +2816        """
                      +2817        parse_args: t.Dict[str, t.Any] = {"dialect": dialect, **opts}
                      +2818
                      +2819        try:
                      +2820            expression = maybe_parse(expression, into=Join, prefix="JOIN", **parse_args)
                      +2821        except ParseError:
                      +2822            expression = maybe_parse(expression, into=(Join, Expression), **parse_args)
                       2823
                      -2824            if natural:
                      -2825                join.set("natural", True)
                      -2826            if side:
                      -2827                join.set("side", side.text)
                      -2828            if kind:
                      -2829                join.set("kind", kind.text)
                      -2830
                      -2831        if on:
                      -2832            on = and_(*ensure_list(on), dialect=dialect, copy=copy, **opts)
                      -2833            join.set("on", on)
                      -2834
                      -2835        if using:
                      -2836            join = _apply_list_builder(
                      -2837                *ensure_list(using),
                      -2838                instance=join,
                      -2839                arg="using",
                      -2840                append=append,
                      -2841                copy=copy,
                      -2842                **opts,
                      -2843            )
                      -2844
                      -2845        if join_alias:
                      -2846            join.set("this", alias_(join.this, join_alias, table=True))
                      -2847
                      -2848        return _apply_list_builder(
                      -2849            join,
                      -2850            instance=self,
                      -2851            arg="joins",
                      -2852            append=append,
                      -2853            copy=copy,
                      -2854            **opts,
                      -2855        )
                      +2824        join = expression if isinstance(expression, Join) else Join(this=expression)
                      +2825
                      +2826        if isinstance(join.this, Select):
                      +2827            join.this.replace(join.this.subquery())
                      +2828
                      +2829        if join_type:
                      +2830            method: t.Optional[Token]
                      +2831            side: t.Optional[Token]
                      +2832            kind: t.Optional[Token]
                      +2833
                      +2834            method, side, kind = maybe_parse(join_type, into="JOIN_TYPE", **parse_args)  # type: ignore
                      +2835
                      +2836            if method:
                      +2837                join.set("method", method.text)
                      +2838            if side:
                      +2839                join.set("side", side.text)
                      +2840            if kind:
                      +2841                join.set("kind", kind.text)
                      +2842
                      +2843        if on:
                      +2844            on = and_(*ensure_list(on), dialect=dialect, copy=copy, **opts)
                      +2845            join.set("on", on)
                      +2846
                      +2847        if using:
                      +2848            join = _apply_list_builder(
                      +2849                *ensure_list(using),
                      +2850                instance=join,
                      +2851                arg="using",
                      +2852                append=append,
                      +2853                copy=copy,
                      +2854                **opts,
                      +2855            )
                       2856
                      -2857    def where(
                      -2858        self,
                      -2859        *expressions: t.Optional[ExpOrStr],
                      -2860        append: bool = True,
                      -2861        dialect: DialectType = None,
                      -2862        copy: bool = True,
                      -2863        **opts,
                      -2864    ) -> Select:
                      -2865        """
                      -2866        Append to or set the WHERE expressions.
                      -2867
                      -2868        Example:
                      -2869            >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()
                      -2870            "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"
                      -2871
                      -2872        Args:
                      -2873            *expressions: the SQL code strings to parse.
                      -2874                If an `Expression` instance is passed, it will be used as-is.
                      -2875                Multiple expressions are combined with an AND operator.
                      -2876            append: if `True`, AND the new expressions to any existing expression.
                      -2877                Otherwise, this resets the expression.
                      -2878            dialect: the dialect used to parse the input expressions.
                      -2879            copy: if `False`, modify this expression instance in-place.
                      -2880            opts: other options to use to parse the input expressions.
                      -2881
                      -2882        Returns:
                      -2883            Select: the modified expression.
                      -2884        """
                      -2885        return _apply_conjunction_builder(
                      -2886            *expressions,
                      -2887            instance=self,
                      -2888            arg="where",
                      -2889            append=append,
                      -2890            into=Where,
                      -2891            dialect=dialect,
                      -2892            copy=copy,
                      -2893            **opts,
                      -2894        )
                      -2895
                      -2896    def having(
                      -2897        self,
                      -2898        *expressions: t.Optional[ExpOrStr],
                      -2899        append: bool = True,
                      -2900        dialect: DialectType = None,
                      -2901        copy: bool = True,
                      -2902        **opts,
                      -2903    ) -> Select:
                      -2904        """
                      -2905        Append to or set the HAVING expressions.
                      -2906
                      -2907        Example:
                      -2908            >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()
                      -2909            'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'
                      -2910
                      -2911        Args:
                      -2912            *expressions: the SQL code strings to parse.
                      -2913                If an `Expression` instance is passed, it will be used as-is.
                      -2914                Multiple expressions are combined with an AND operator.
                      -2915            append: if `True`, AND the new expressions to any existing expression.
                      -2916                Otherwise, this resets the expression.
                      -2917            dialect: the dialect used to parse the input expressions.
                      -2918            copy: if `False`, modify this expression instance in-place.
                      -2919            opts: other options to use to parse the input expressions.
                      -2920
                      -2921        Returns:
                      -2922            The modified Select expression.
                      -2923        """
                      -2924        return _apply_conjunction_builder(
                      -2925            *expressions,
                      -2926            instance=self,
                      -2927            arg="having",
                      -2928            append=append,
                      -2929            into=Having,
                      -2930            dialect=dialect,
                      -2931            copy=copy,
                      -2932            **opts,
                      -2933        )
                      -2934
                      -2935    def window(
                      -2936        self,
                      -2937        *expressions: t.Optional[ExpOrStr],
                      -2938        append: bool = True,
                      -2939        dialect: DialectType = None,
                      -2940        copy: bool = True,
                      -2941        **opts,
                      -2942    ) -> Select:
                      -2943        return _apply_list_builder(
                      -2944            *expressions,
                      -2945            instance=self,
                      -2946            arg="windows",
                      -2947            append=append,
                      -2948            into=Window,
                      -2949            dialect=dialect,
                      -2950            copy=copy,
                      -2951            **opts,
                      -2952        )
                      -2953
                      -2954    def qualify(
                      -2955        self,
                      -2956        *expressions: t.Optional[ExpOrStr],
                      -2957        append: bool = True,
                      -2958        dialect: DialectType = None,
                      -2959        copy: bool = True,
                      -2960        **opts,
                      -2961    ) -> Select:
                      -2962        return _apply_conjunction_builder(
                      -2963            *expressions,
                      -2964            instance=self,
                      -2965            arg="qualify",
                      -2966            append=append,
                      -2967            into=Qualify,
                      -2968            dialect=dialect,
                      -2969            copy=copy,
                      -2970            **opts,
                      -2971        )
                      -2972
                      -2973    def distinct(
                      -2974        self, *ons: t.Optional[ExpOrStr], distinct: bool = True, copy: bool = True
                      -2975    ) -> Select:
                      -2976        """
                      -2977        Set the OFFSET expression.
                      -2978
                      -2979        Example:
                      -2980            >>> Select().from_("tbl").select("x").distinct().sql()
                      -2981            'SELECT DISTINCT x FROM tbl'
                      -2982
                      -2983        Args:
                      -2984            ons: the expressions to distinct on
                      -2985            distinct: whether the Select should be distinct
                      -2986            copy: if `False`, modify this expression instance in-place.
                      -2987
                      -2988        Returns:
                      -2989            Select: the modified expression.
                      -2990        """
                      -2991        instance = _maybe_copy(self, copy)
                      -2992        on = Tuple(expressions=[maybe_parse(on, copy=copy) for on in ons if on]) if ons else None
                      -2993        instance.set("distinct", Distinct(on=on) if distinct else None)
                      -2994        return instance
                      -2995
                      -2996    def ctas(
                      -2997        self,
                      -2998        table: ExpOrStr,
                      -2999        properties: t.Optional[t.Dict] = None,
                      -3000        dialect: DialectType = None,
                      -3001        copy: bool = True,
                      -3002        **opts,
                      -3003    ) -> Create:
                      -3004        """
                      -3005        Convert this expression to a CREATE TABLE AS statement.
                      -3006
                      -3007        Example:
                      -3008            >>> Select().select("*").from_("tbl").ctas("x").sql()
                      -3009            'CREATE TABLE x AS SELECT * FROM tbl'
                      -3010
                      -3011        Args:
                      -3012            table: the SQL code string to parse as the table name.
                      -3013                If another `Expression` instance is passed, it will be used as-is.
                      -3014            properties: an optional mapping of table properties
                      -3015            dialect: the dialect used to parse the input table.
                      -3016            copy: if `False`, modify this expression instance in-place.
                      -3017            opts: other options to use to parse the input table.
                      +2857        if join_alias:
                      +2858            join.set("this", alias_(join.this, join_alias, table=True))
                      +2859
                      +2860        return _apply_list_builder(
                      +2861            join,
                      +2862            instance=self,
                      +2863            arg="joins",
                      +2864            append=append,
                      +2865            copy=copy,
                      +2866            **opts,
                      +2867        )
                      +2868
                      +2869    def where(
                      +2870        self,
                      +2871        *expressions: t.Optional[ExpOrStr],
                      +2872        append: bool = True,
                      +2873        dialect: DialectType = None,
                      +2874        copy: bool = True,
                      +2875        **opts,
                      +2876    ) -> Select:
                      +2877        """
                      +2878        Append to or set the WHERE expressions.
                      +2879
                      +2880        Example:
                      +2881            >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()
                      +2882            "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"
                      +2883
                      +2884        Args:
                      +2885            *expressions: the SQL code strings to parse.
                      +2886                If an `Expression` instance is passed, it will be used as-is.
                      +2887                Multiple expressions are combined with an AND operator.
                      +2888            append: if `True`, AND the new expressions to any existing expression.
                      +2889                Otherwise, this resets the expression.
                      +2890            dialect: the dialect used to parse the input expressions.
                      +2891            copy: if `False`, modify this expression instance in-place.
                      +2892            opts: other options to use to parse the input expressions.
                      +2893
                      +2894        Returns:
                      +2895            Select: the modified expression.
                      +2896        """
                      +2897        return _apply_conjunction_builder(
                      +2898            *expressions,
                      +2899            instance=self,
                      +2900            arg="where",
                      +2901            append=append,
                      +2902            into=Where,
                      +2903            dialect=dialect,
                      +2904            copy=copy,
                      +2905            **opts,
                      +2906        )
                      +2907
                      +2908    def having(
                      +2909        self,
                      +2910        *expressions: t.Optional[ExpOrStr],
                      +2911        append: bool = True,
                      +2912        dialect: DialectType = None,
                      +2913        copy: bool = True,
                      +2914        **opts,
                      +2915    ) -> Select:
                      +2916        """
                      +2917        Append to or set the HAVING expressions.
                      +2918
                      +2919        Example:
                      +2920            >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()
                      +2921            'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'
                      +2922
                      +2923        Args:
                      +2924            *expressions: the SQL code strings to parse.
                      +2925                If an `Expression` instance is passed, it will be used as-is.
                      +2926                Multiple expressions are combined with an AND operator.
                      +2927            append: if `True`, AND the new expressions to any existing expression.
                      +2928                Otherwise, this resets the expression.
                      +2929            dialect: the dialect used to parse the input expressions.
                      +2930            copy: if `False`, modify this expression instance in-place.
                      +2931            opts: other options to use to parse the input expressions.
                      +2932
                      +2933        Returns:
                      +2934            The modified Select expression.
                      +2935        """
                      +2936        return _apply_conjunction_builder(
                      +2937            *expressions,
                      +2938            instance=self,
                      +2939            arg="having",
                      +2940            append=append,
                      +2941            into=Having,
                      +2942            dialect=dialect,
                      +2943            copy=copy,
                      +2944            **opts,
                      +2945        )
                      +2946
                      +2947    def window(
                      +2948        self,
                      +2949        *expressions: t.Optional[ExpOrStr],
                      +2950        append: bool = True,
                      +2951        dialect: DialectType = None,
                      +2952        copy: bool = True,
                      +2953        **opts,
                      +2954    ) -> Select:
                      +2955        return _apply_list_builder(
                      +2956            *expressions,
                      +2957            instance=self,
                      +2958            arg="windows",
                      +2959            append=append,
                      +2960            into=Window,
                      +2961            dialect=dialect,
                      +2962            copy=copy,
                      +2963            **opts,
                      +2964        )
                      +2965
                      +2966    def qualify(
                      +2967        self,
                      +2968        *expressions: t.Optional[ExpOrStr],
                      +2969        append: bool = True,
                      +2970        dialect: DialectType = None,
                      +2971        copy: bool = True,
                      +2972        **opts,
                      +2973    ) -> Select:
                      +2974        return _apply_conjunction_builder(
                      +2975            *expressions,
                      +2976            instance=self,
                      +2977            arg="qualify",
                      +2978            append=append,
                      +2979            into=Qualify,
                      +2980            dialect=dialect,
                      +2981            copy=copy,
                      +2982            **opts,
                      +2983        )
                      +2984
                      +2985    def distinct(
                      +2986        self, *ons: t.Optional[ExpOrStr], distinct: bool = True, copy: bool = True
                      +2987    ) -> Select:
                      +2988        """
                      +2989        Set the OFFSET expression.
                      +2990
                      +2991        Example:
                      +2992            >>> Select().from_("tbl").select("x").distinct().sql()
                      +2993            'SELECT DISTINCT x FROM tbl'
                      +2994
                      +2995        Args:
                      +2996            ons: the expressions to distinct on
                      +2997            distinct: whether the Select should be distinct
                      +2998            copy: if `False`, modify this expression instance in-place.
                      +2999
                      +3000        Returns:
                      +3001            Select: the modified expression.
                      +3002        """
                      +3003        instance = _maybe_copy(self, copy)
                      +3004        on = Tuple(expressions=[maybe_parse(on, copy=copy) for on in ons if on]) if ons else None
                      +3005        instance.set("distinct", Distinct(on=on) if distinct else None)
                      +3006        return instance
                      +3007
                      +3008    def ctas(
                      +3009        self,
                      +3010        table: ExpOrStr,
                      +3011        properties: t.Optional[t.Dict] = None,
                      +3012        dialect: DialectType = None,
                      +3013        copy: bool = True,
                      +3014        **opts,
                      +3015    ) -> Create:
                      +3016        """
                      +3017        Convert this expression to a CREATE TABLE AS statement.
                       3018
                      -3019        Returns:
                      -3020            The new Create expression.
                      -3021        """
                      -3022        instance = _maybe_copy(self, copy)
                      -3023        table_expression = maybe_parse(
                      -3024            table,
                      -3025            into=Table,
                      -3026            dialect=dialect,
                      -3027            **opts,
                      -3028        )
                      -3029        properties_expression = None
                      -3030        if properties:
                      -3031            properties_expression = Properties.from_dict(properties)
                      -3032
                      -3033        return Create(
                      -3034            this=table_expression,
                      -3035            kind="table",
                      -3036            expression=instance,
                      -3037            properties=properties_expression,
                      -3038        )
                      -3039
                      -3040    def lock(self, update: bool = True, copy: bool = True) -> Select:
                      -3041        """
                      -3042        Set the locking read mode for this expression.
                      -3043
                      -3044        Examples:
                      -3045            >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")
                      -3046            "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"
                      -3047
                      -3048            >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")
                      -3049            "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"
                      -3050
                      -3051        Args:
                      -3052            update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.
                      -3053            copy: if `False`, modify this expression instance in-place.
                      -3054
                      -3055        Returns:
                      -3056            The modified expression.
                      -3057        """
                      -3058
                      -3059        inst = _maybe_copy(self, copy)
                      -3060        inst.set("locks", [Lock(update=update)])
                      -3061
                      -3062        return inst
                      -3063
                      -3064    @property
                      -3065    def named_selects(self) -> t.List[str]:
                      -3066        return [e.output_name for e in self.expressions if e.alias_or_name]
                      -3067
                      -3068    @property
                      -3069    def is_star(self) -> bool:
                      -3070        return any(expression.is_star for expression in self.expressions)
                      -3071
                      -3072    @property
                      -3073    def selects(self) -> t.List[Expression]:
                      -3074        return self.expressions
                      +3019        Example:
                      +3020            >>> Select().select("*").from_("tbl").ctas("x").sql()
                      +3021            'CREATE TABLE x AS SELECT * FROM tbl'
                      +3022
                      +3023        Args:
                      +3024            table: the SQL code string to parse as the table name.
                      +3025                If another `Expression` instance is passed, it will be used as-is.
                      +3026            properties: an optional mapping of table properties
                      +3027            dialect: the dialect used to parse the input table.
                      +3028            copy: if `False`, modify this expression instance in-place.
                      +3029            opts: other options to use to parse the input table.
                      +3030
                      +3031        Returns:
                      +3032            The new Create expression.
                      +3033        """
                      +3034        instance = _maybe_copy(self, copy)
                      +3035        table_expression = maybe_parse(
                      +3036            table,
                      +3037            into=Table,
                      +3038            dialect=dialect,
                      +3039            **opts,
                      +3040        )
                      +3041        properties_expression = None
                      +3042        if properties:
                      +3043            properties_expression = Properties.from_dict(properties)
                      +3044
                      +3045        return Create(
                      +3046            this=table_expression,
                      +3047            kind="table",
                      +3048            expression=instance,
                      +3049            properties=properties_expression,
                      +3050        )
                      +3051
                      +3052    def lock(self, update: bool = True, copy: bool = True) -> Select:
                      +3053        """
                      +3054        Set the locking read mode for this expression.
                      +3055
                      +3056        Examples:
                      +3057            >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")
                      +3058            "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"
                      +3059
                      +3060            >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")
                      +3061            "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"
                      +3062
                      +3063        Args:
                      +3064            update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.
                      +3065            copy: if `False`, modify this expression instance in-place.
                      +3066
                      +3067        Returns:
                      +3068            The modified expression.
                      +3069        """
                      +3070
                      +3071        inst = _maybe_copy(self, copy)
                      +3072        inst.set("locks", [Lock(update=update)])
                      +3073
                      +3074        return inst
                      +3075
                      +3076    @property
                      +3077    def named_selects(self) -> t.List[str]:
                      +3078        return [e.output_name for e in self.expressions if e.alias_or_name]
                      +3079
                      +3080    @property
                      +3081    def is_star(self) -> bool:
                      +3082        return any(expression.is_star for expression in self.expressions)
                      +3083
                      +3084    @property
                      +3085    def selects(self) -> t.List[Expression]:
                      +3086        return self.expressions
                       
                      @@ -24621,37 +24864,37 @@ Otherwise, this resets the expressions.
                      -
                      2422    def from_(
                      -2423        self, expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts
                      -2424    ) -> Select:
                      -2425        """
                      -2426        Set the FROM expression.
                      -2427
                      -2428        Example:
                      -2429            >>> Select().from_("tbl").select("x").sql()
                      -2430            'SELECT x FROM tbl'
                      -2431
                      -2432        Args:
                      -2433            expression : the SQL code strings to parse.
                      -2434                If a `From` instance is passed, this is used as-is.
                      -2435                If another `Expression` instance is passed, it will be wrapped in a `From`.
                      -2436            dialect: the dialect used to parse the input expression.
                      -2437            copy: if `False`, modify this expression instance in-place.
                      -2438            opts: other options to use to parse the input expressions.
                      +            
                      2434    def from_(
                      +2435        self, expression: ExpOrStr, dialect: DialectType = None, copy: bool = True, **opts
                      +2436    ) -> Select:
                      +2437        """
                      +2438        Set the FROM expression.
                       2439
                      -2440        Returns:
                      -2441            The modified Select expression.
                      -2442        """
                      -2443        return _apply_builder(
                      -2444            expression=expression,
                      -2445            instance=self,
                      -2446            arg="from",
                      -2447            into=From,
                      -2448            prefix="FROM",
                      -2449            dialect=dialect,
                      -2450            copy=copy,
                      -2451            **opts,
                      -2452        )
                      +2440        Example:
                      +2441            >>> Select().from_("tbl").select("x").sql()
                      +2442            'SELECT x FROM tbl'
                      +2443
                      +2444        Args:
                      +2445            expression : the SQL code strings to parse.
                      +2446                If a `From` instance is passed, this is used as-is.
                      +2447                If another `Expression` instance is passed, it will be wrapped in a `From`.
                      +2448            dialect: the dialect used to parse the input expression.
                      +2449            copy: if `False`, modify this expression instance in-place.
                      +2450            opts: other options to use to parse the input expressions.
                      +2451
                      +2452        Returns:
                      +2453            The modified Select expression.
                      +2454        """
                      +2455        return _apply_builder(
                      +2456            expression=expression,
                      +2457            instance=self,
                      +2458            arg="from",
                      +2459            into=From,
                      +2460            prefix="FROM",
                      +2461            dialect=dialect,
                      +2462            copy=copy,
                      +2463            **opts,
                      +2464        )
                       
                      @@ -24698,49 +24941,49 @@ If another Expression instance is passed,
                      -
                      2454    def group_by(
                      -2455        self,
                      -2456        *expressions: t.Optional[ExpOrStr],
                      -2457        append: bool = True,
                      -2458        dialect: DialectType = None,
                      -2459        copy: bool = True,
                      -2460        **opts,
                      -2461    ) -> Select:
                      -2462        """
                      -2463        Set the GROUP BY expression.
                      -2464
                      -2465        Example:
                      -2466            >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()
                      -2467            'SELECT x, COUNT(1) FROM tbl GROUP BY x'
                      -2468
                      -2469        Args:
                      -2470            *expressions: the SQL code strings to parse.
                      -2471                If a `Group` instance is passed, this is used as-is.
                      -2472                If another `Expression` instance is passed, it will be wrapped in a `Group`.
                      -2473                If nothing is passed in then a group by is not applied to the expression
                      -2474            append: if `True`, add to any existing expressions.
                      -2475                Otherwise, this flattens all the `Group` expression into a single expression.
                      -2476            dialect: the dialect used to parse the input expression.
                      -2477            copy: if `False`, modify this expression instance in-place.
                      -2478            opts: other options to use to parse the input expressions.
                      -2479
                      -2480        Returns:
                      -2481            The modified Select expression.
                      -2482        """
                      -2483        if not expressions:
                      -2484            return self if not copy else self.copy()
                      -2485
                      -2486        return _apply_child_list_builder(
                      -2487            *expressions,
                      -2488            instance=self,
                      -2489            arg="group",
                      -2490            append=append,
                      -2491            copy=copy,
                      -2492            prefix="GROUP BY",
                      -2493            into=Group,
                      -2494            dialect=dialect,
                      -2495            **opts,
                      -2496        )
                      +            
                      2466    def group_by(
                      +2467        self,
                      +2468        *expressions: t.Optional[ExpOrStr],
                      +2469        append: bool = True,
                      +2470        dialect: DialectType = None,
                      +2471        copy: bool = True,
                      +2472        **opts,
                      +2473    ) -> Select:
                      +2474        """
                      +2475        Set the GROUP BY expression.
                      +2476
                      +2477        Example:
                      +2478            >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()
                      +2479            'SELECT x, COUNT(1) FROM tbl GROUP BY x'
                      +2480
                      +2481        Args:
                      +2482            *expressions: the SQL code strings to parse.
                      +2483                If a `Group` instance is passed, this is used as-is.
                      +2484                If another `Expression` instance is passed, it will be wrapped in a `Group`.
                      +2485                If nothing is passed in then a group by is not applied to the expression
                      +2486            append: if `True`, add to any existing expressions.
                      +2487                Otherwise, this flattens all the `Group` expression into a single expression.
                      +2488            dialect: the dialect used to parse the input expression.
                      +2489            copy: if `False`, modify this expression instance in-place.
                      +2490            opts: other options to use to parse the input expressions.
                      +2491
                      +2492        Returns:
                      +2493            The modified Select expression.
                      +2494        """
                      +2495        if not expressions:
                      +2496            return self if not copy else self.copy()
                      +2497
                      +2498        return _apply_child_list_builder(
                      +2499            *expressions,
                      +2500            instance=self,
                      +2501            arg="group",
                      +2502            append=append,
                      +2503            copy=copy,
                      +2504            prefix="GROUP BY",
                      +2505            into=Group,
                      +2506            dialect=dialect,
                      +2507            **opts,
                      +2508        )
                       
                      @@ -24790,45 +25033,45 @@ Otherwise, this flattens all the Group express
                      -
                      2498    def order_by(
                      -2499        self,
                      -2500        *expressions: t.Optional[ExpOrStr],
                      -2501        append: bool = True,
                      -2502        dialect: DialectType = None,
                      -2503        copy: bool = True,
                      -2504        **opts,
                      -2505    ) -> Select:
                      -2506        """
                      -2507        Set the ORDER BY expression.
                      -2508
                      -2509        Example:
                      -2510            >>> Select().from_("tbl").select("x").order_by("x DESC").sql()
                      -2511            'SELECT x FROM tbl ORDER BY x DESC'
                      -2512
                      -2513        Args:
                      -2514            *expressions: the SQL code strings to parse.
                      -2515                If a `Group` instance is passed, this is used as-is.
                      -2516                If another `Expression` instance is passed, it will be wrapped in a `Order`.
                      -2517            append: if `True`, add to any existing expressions.
                      -2518                Otherwise, this flattens all the `Order` expression into a single expression.
                      -2519            dialect: the dialect used to parse the input expression.
                      -2520            copy: if `False`, modify this expression instance in-place.
                      -2521            opts: other options to use to parse the input expressions.
                      -2522
                      -2523        Returns:
                      -2524            The modified Select expression.
                      -2525        """
                      -2526        return _apply_child_list_builder(
                      -2527            *expressions,
                      -2528            instance=self,
                      -2529            arg="order",
                      -2530            append=append,
                      -2531            copy=copy,
                      -2532            prefix="ORDER BY",
                      -2533            into=Order,
                      -2534            dialect=dialect,
                      -2535            **opts,
                      -2536        )
                      +            
                      2510    def order_by(
                      +2511        self,
                      +2512        *expressions: t.Optional[ExpOrStr],
                      +2513        append: bool = True,
                      +2514        dialect: DialectType = None,
                      +2515        copy: bool = True,
                      +2516        **opts,
                      +2517    ) -> Select:
                      +2518        """
                      +2519        Set the ORDER BY expression.
                      +2520
                      +2521        Example:
                      +2522            >>> Select().from_("tbl").select("x").order_by("x DESC").sql()
                      +2523            'SELECT x FROM tbl ORDER BY x DESC'
                      +2524
                      +2525        Args:
                      +2526            *expressions: the SQL code strings to parse.
                      +2527                If a `Group` instance is passed, this is used as-is.
                      +2528                If another `Expression` instance is passed, it will be wrapped in a `Order`.
                      +2529            append: if `True`, add to any existing expressions.
                      +2530                Otherwise, this flattens all the `Order` expression into a single expression.
                      +2531            dialect: the dialect used to parse the input expression.
                      +2532            copy: if `False`, modify this expression instance in-place.
                      +2533            opts: other options to use to parse the input expressions.
                      +2534
                      +2535        Returns:
                      +2536            The modified Select expression.
                      +2537        """
                      +2538        return _apply_child_list_builder(
                      +2539            *expressions,
                      +2540            instance=self,
                      +2541            arg="order",
                      +2542            append=append,
                      +2543            copy=copy,
                      +2544            prefix="ORDER BY",
                      +2545            into=Order,
                      +2546            dialect=dialect,
                      +2547            **opts,
                      +2548        )
                       
                      @@ -24877,45 +25120,45 @@ Otherwise, this flattens all the Order express
                      -
                      2538    def sort_by(
                      -2539        self,
                      -2540        *expressions: t.Optional[ExpOrStr],
                      -2541        append: bool = True,
                      -2542        dialect: DialectType = None,
                      -2543        copy: bool = True,
                      -2544        **opts,
                      -2545    ) -> Select:
                      -2546        """
                      -2547        Set the SORT BY expression.
                      -2548
                      -2549        Example:
                      -2550            >>> Select().from_("tbl").select("x").sort_by("x DESC").sql(dialect="hive")
                      -2551            'SELECT x FROM tbl SORT BY x DESC'
                      -2552
                      -2553        Args:
                      -2554            *expressions: the SQL code strings to parse.
                      -2555                If a `Group` instance is passed, this is used as-is.
                      -2556                If another `Expression` instance is passed, it will be wrapped in a `SORT`.
                      -2557            append: if `True`, add to any existing expressions.
                      -2558                Otherwise, this flattens all the `Order` expression into a single expression.
                      -2559            dialect: the dialect used to parse the input expression.
                      -2560            copy: if `False`, modify this expression instance in-place.
                      -2561            opts: other options to use to parse the input expressions.
                      -2562
                      -2563        Returns:
                      -2564            The modified Select expression.
                      -2565        """
                      -2566        return _apply_child_list_builder(
                      -2567            *expressions,
                      -2568            instance=self,
                      -2569            arg="sort",
                      -2570            append=append,
                      -2571            copy=copy,
                      -2572            prefix="SORT BY",
                      -2573            into=Sort,
                      -2574            dialect=dialect,
                      -2575            **opts,
                      -2576        )
                      +            
                      2550    def sort_by(
                      +2551        self,
                      +2552        *expressions: t.Optional[ExpOrStr],
                      +2553        append: bool = True,
                      +2554        dialect: DialectType = None,
                      +2555        copy: bool = True,
                      +2556        **opts,
                      +2557    ) -> Select:
                      +2558        """
                      +2559        Set the SORT BY expression.
                      +2560
                      +2561        Example:
                      +2562            >>> Select().from_("tbl").select("x").sort_by("x DESC").sql(dialect="hive")
                      +2563            'SELECT x FROM tbl SORT BY x DESC'
                      +2564
                      +2565        Args:
                      +2566            *expressions: the SQL code strings to parse.
                      +2567                If a `Group` instance is passed, this is used as-is.
                      +2568                If another `Expression` instance is passed, it will be wrapped in a `SORT`.
                      +2569            append: if `True`, add to any existing expressions.
                      +2570                Otherwise, this flattens all the `Order` expression into a single expression.
                      +2571            dialect: the dialect used to parse the input expression.
                      +2572            copy: if `False`, modify this expression instance in-place.
                      +2573            opts: other options to use to parse the input expressions.
                      +2574
                      +2575        Returns:
                      +2576            The modified Select expression.
                      +2577        """
                      +2578        return _apply_child_list_builder(
                      +2579            *expressions,
                      +2580            instance=self,
                      +2581            arg="sort",
                      +2582            append=append,
                      +2583            copy=copy,
                      +2584            prefix="SORT BY",
                      +2585            into=Sort,
                      +2586            dialect=dialect,
                      +2587            **opts,
                      +2588        )
                       
                      @@ -24964,45 +25207,45 @@ Otherwise, this flattens all the Order express
                      -
                      2578    def cluster_by(
                      -2579        self,
                      -2580        *expressions: t.Optional[ExpOrStr],
                      -2581        append: bool = True,
                      -2582        dialect: DialectType = None,
                      -2583        copy: bool = True,
                      -2584        **opts,
                      -2585    ) -> Select:
                      -2586        """
                      -2587        Set the CLUSTER BY expression.
                      -2588
                      -2589        Example:
                      -2590            >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql(dialect="hive")
                      -2591            'SELECT x FROM tbl CLUSTER BY x DESC'
                      -2592
                      -2593        Args:
                      -2594            *expressions: the SQL code strings to parse.
                      -2595                If a `Group` instance is passed, this is used as-is.
                      -2596                If another `Expression` instance is passed, it will be wrapped in a `Cluster`.
                      -2597            append: if `True`, add to any existing expressions.
                      -2598                Otherwise, this flattens all the `Order` expression into a single expression.
                      -2599            dialect: the dialect used to parse the input expression.
                      -2600            copy: if `False`, modify this expression instance in-place.
                      -2601            opts: other options to use to parse the input expressions.
                      -2602
                      -2603        Returns:
                      -2604            The modified Select expression.
                      -2605        """
                      -2606        return _apply_child_list_builder(
                      -2607            *expressions,
                      -2608            instance=self,
                      -2609            arg="cluster",
                      -2610            append=append,
                      -2611            copy=copy,
                      -2612            prefix="CLUSTER BY",
                      -2613            into=Cluster,
                      -2614            dialect=dialect,
                      -2615            **opts,
                      -2616        )
                      +            
                      2590    def cluster_by(
                      +2591        self,
                      +2592        *expressions: t.Optional[ExpOrStr],
                      +2593        append: bool = True,
                      +2594        dialect: DialectType = None,
                      +2595        copy: bool = True,
                      +2596        **opts,
                      +2597    ) -> Select:
                      +2598        """
                      +2599        Set the CLUSTER BY expression.
                      +2600
                      +2601        Example:
                      +2602            >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql(dialect="hive")
                      +2603            'SELECT x FROM tbl CLUSTER BY x DESC'
                      +2604
                      +2605        Args:
                      +2606            *expressions: the SQL code strings to parse.
                      +2607                If a `Group` instance is passed, this is used as-is.
                      +2608                If another `Expression` instance is passed, it will be wrapped in a `Cluster`.
                      +2609            append: if `True`, add to any existing expressions.
                      +2610                Otherwise, this flattens all the `Order` expression into a single expression.
                      +2611            dialect: the dialect used to parse the input expression.
                      +2612            copy: if `False`, modify this expression instance in-place.
                      +2613            opts: other options to use to parse the input expressions.
                      +2614
                      +2615        Returns:
                      +2616            The modified Select expression.
                      +2617        """
                      +2618        return _apply_child_list_builder(
                      +2619            *expressions,
                      +2620            instance=self,
                      +2621            arg="cluster",
                      +2622            append=append,
                      +2623            copy=copy,
                      +2624            prefix="CLUSTER BY",
                      +2625            into=Cluster,
                      +2626            dialect=dialect,
                      +2627            **opts,
                      +2628        )
                       
                      @@ -25051,38 +25294,38 @@ Otherwise, this flattens all the Order express
                      -
                      2618    def limit(
                      -2619        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      -2620    ) -> Select:
                      -2621        """
                      -2622        Set the LIMIT expression.
                      -2623
                      -2624        Example:
                      -2625            >>> Select().from_("tbl").select("x").limit(10).sql()
                      -2626            'SELECT x FROM tbl LIMIT 10'
                      -2627
                      -2628        Args:
                      -2629            expression: the SQL code string to parse.
                      -2630                This can also be an integer.
                      -2631                If a `Limit` instance is passed, this is used as-is.
                      -2632                If another `Expression` instance is passed, it will be wrapped in a `Limit`.
                      -2633            dialect: the dialect used to parse the input expression.
                      -2634            copy: if `False`, modify this expression instance in-place.
                      -2635            opts: other options to use to parse the input expressions.
                      -2636
                      -2637        Returns:
                      -2638            Select: the modified expression.
                      -2639        """
                      -2640        return _apply_builder(
                      -2641            expression=expression,
                      -2642            instance=self,
                      -2643            arg="limit",
                      -2644            into=Limit,
                      -2645            prefix="LIMIT",
                      -2646            dialect=dialect,
                      -2647            copy=copy,
                      -2648            **opts,
                      -2649        )
                      +            
                      2630    def limit(
                      +2631        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      +2632    ) -> Select:
                      +2633        """
                      +2634        Set the LIMIT expression.
                      +2635
                      +2636        Example:
                      +2637            >>> Select().from_("tbl").select("x").limit(10).sql()
                      +2638            'SELECT x FROM tbl LIMIT 10'
                      +2639
                      +2640        Args:
                      +2641            expression: the SQL code string to parse.
                      +2642                This can also be an integer.
                      +2643                If a `Limit` instance is passed, this is used as-is.
                      +2644                If another `Expression` instance is passed, it will be wrapped in a `Limit`.
                      +2645            dialect: the dialect used to parse the input expression.
                      +2646            copy: if `False`, modify this expression instance in-place.
                      +2647            opts: other options to use to parse the input expressions.
                      +2648
                      +2649        Returns:
                      +2650            Select: the modified expression.
                      +2651        """
                      +2652        return _apply_builder(
                      +2653            expression=expression,
                      +2654            instance=self,
                      +2655            arg="limit",
                      +2656            into=Limit,
                      +2657            prefix="LIMIT",
                      +2658            dialect=dialect,
                      +2659            copy=copy,
                      +2660            **opts,
                      +2661        )
                       
                      @@ -25130,38 +25373,38 @@ If another Expression instance is passed,
                      -
                      2651    def offset(
                      -2652        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      -2653    ) -> Select:
                      -2654        """
                      -2655        Set the OFFSET expression.
                      -2656
                      -2657        Example:
                      -2658            >>> Select().from_("tbl").select("x").offset(10).sql()
                      -2659            'SELECT x FROM tbl OFFSET 10'
                      -2660
                      -2661        Args:
                      -2662            expression: the SQL code string to parse.
                      -2663                This can also be an integer.
                      -2664                If a `Offset` instance is passed, this is used as-is.
                      -2665                If another `Expression` instance is passed, it will be wrapped in a `Offset`.
                      -2666            dialect: the dialect used to parse the input expression.
                      -2667            copy: if `False`, modify this expression instance in-place.
                      -2668            opts: other options to use to parse the input expressions.
                      -2669
                      -2670        Returns:
                      -2671            The modified Select expression.
                      -2672        """
                      -2673        return _apply_builder(
                      -2674            expression=expression,
                      -2675            instance=self,
                      -2676            arg="offset",
                      -2677            into=Offset,
                      -2678            prefix="OFFSET",
                      -2679            dialect=dialect,
                      -2680            copy=copy,
                      -2681            **opts,
                      -2682        )
                      +            
                      2663    def offset(
                      +2664        self, expression: ExpOrStr | int, dialect: DialectType = None, copy: bool = True, **opts
                      +2665    ) -> Select:
                      +2666        """
                      +2667        Set the OFFSET expression.
                      +2668
                      +2669        Example:
                      +2670            >>> Select().from_("tbl").select("x").offset(10).sql()
                      +2671            'SELECT x FROM tbl OFFSET 10'
                      +2672
                      +2673        Args:
                      +2674            expression: the SQL code string to parse.
                      +2675                This can also be an integer.
                      +2676                If a `Offset` instance is passed, this is used as-is.
                      +2677                If another `Expression` instance is passed, it will be wrapped in a `Offset`.
                      +2678            dialect: the dialect used to parse the input expression.
                      +2679            copy: if `False`, modify this expression instance in-place.
                      +2680            opts: other options to use to parse the input expressions.
                      +2681
                      +2682        Returns:
                      +2683            The modified Select expression.
                      +2684        """
                      +2685        return _apply_builder(
                      +2686            expression=expression,
                      +2687            instance=self,
                      +2688            arg="offset",
                      +2689            into=Offset,
                      +2690            prefix="OFFSET",
                      +2691            dialect=dialect,
                      +2692            copy=copy,
                      +2693            **opts,
                      +2694        )
                       
                      @@ -25209,42 +25452,42 @@ If another Expression instance is passed,
                      -
                      2684    def select(
                      -2685        self,
                      -2686        *expressions: t.Optional[ExpOrStr],
                      -2687        append: bool = True,
                      -2688        dialect: DialectType = None,
                      -2689        copy: bool = True,
                      -2690        **opts,
                      -2691    ) -> Select:
                      -2692        """
                      -2693        Append to or set the SELECT expressions.
                      -2694
                      -2695        Example:
                      -2696            >>> Select().select("x", "y").sql()
                      -2697            'SELECT x, y'
                      -2698
                      -2699        Args:
                      -2700            *expressions: the SQL code strings to parse.
                      -2701                If an `Expression` instance is passed, it will be used as-is.
                      -2702            append: if `True`, add to any existing expressions.
                      -2703                Otherwise, this resets the expressions.
                      -2704            dialect: the dialect used to parse the input expressions.
                      -2705            copy: if `False`, modify this expression instance in-place.
                      -2706            opts: other options to use to parse the input expressions.
                      -2707
                      -2708        Returns:
                      -2709            The modified Select expression.
                      -2710        """
                      -2711        return _apply_list_builder(
                      -2712            *expressions,
                      -2713            instance=self,
                      -2714            arg="expressions",
                      -2715            append=append,
                      -2716            dialect=dialect,
                      -2717            copy=copy,
                      -2718            **opts,
                      -2719        )
                      +            
                      2696    def select(
                      +2697        self,
                      +2698        *expressions: t.Optional[ExpOrStr],
                      +2699        append: bool = True,
                      +2700        dialect: DialectType = None,
                      +2701        copy: bool = True,
                      +2702        **opts,
                      +2703    ) -> Select:
                      +2704        """
                      +2705        Append to or set the SELECT expressions.
                      +2706
                      +2707        Example:
                      +2708            >>> Select().select("x", "y").sql()
                      +2709            'SELECT x, y'
                      +2710
                      +2711        Args:
                      +2712            *expressions: the SQL code strings to parse.
                      +2713                If an `Expression` instance is passed, it will be used as-is.
                      +2714            append: if `True`, add to any existing expressions.
                      +2715                Otherwise, this resets the expressions.
                      +2716            dialect: the dialect used to parse the input expressions.
                      +2717            copy: if `False`, modify this expression instance in-place.
                      +2718            opts: other options to use to parse the input expressions.
                      +2719
                      +2720        Returns:
                      +2721            The modified Select expression.
                      +2722        """
                      +2723        return _apply_list_builder(
                      +2724            *expressions,
                      +2725            instance=self,
                      +2726            arg="expressions",
                      +2727            append=append,
                      +2728            dialect=dialect,
                      +2729            copy=copy,
                      +2730            **opts,
                      +2731        )
                       
                      @@ -25292,44 +25535,44 @@ Otherwise, this resets the expressions.
                      -
                      2721    def lateral(
                      -2722        self,
                      -2723        *expressions: t.Optional[ExpOrStr],
                      -2724        append: bool = True,
                      -2725        dialect: DialectType = None,
                      -2726        copy: bool = True,
                      -2727        **opts,
                      -2728    ) -> Select:
                      -2729        """
                      -2730        Append to or set the LATERAL expressions.
                      -2731
                      -2732        Example:
                      -2733            >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()
                      -2734            'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'
                      -2735
                      -2736        Args:
                      -2737            *expressions: the SQL code strings to parse.
                      -2738                If an `Expression` instance is passed, it will be used as-is.
                      -2739            append: if `True`, add to any existing expressions.
                      -2740                Otherwise, this resets the expressions.
                      -2741            dialect: the dialect used to parse the input expressions.
                      -2742            copy: if `False`, modify this expression instance in-place.
                      -2743            opts: other options to use to parse the input expressions.
                      -2744
                      -2745        Returns:
                      -2746            The modified Select expression.
                      -2747        """
                      -2748        return _apply_list_builder(
                      -2749            *expressions,
                      -2750            instance=self,
                      -2751            arg="laterals",
                      -2752            append=append,
                      -2753            into=Lateral,
                      -2754            prefix="LATERAL VIEW",
                      -2755            dialect=dialect,
                      -2756            copy=copy,
                      -2757            **opts,
                      -2758        )
                      +            
                      2733    def lateral(
                      +2734        self,
                      +2735        *expressions: t.Optional[ExpOrStr],
                      +2736        append: bool = True,
                      +2737        dialect: DialectType = None,
                      +2738        copy: bool = True,
                      +2739        **opts,
                      +2740    ) -> Select:
                      +2741        """
                      +2742        Append to or set the LATERAL expressions.
                      +2743
                      +2744        Example:
                      +2745            >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()
                      +2746            'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'
                      +2747
                      +2748        Args:
                      +2749            *expressions: the SQL code strings to parse.
                      +2750                If an `Expression` instance is passed, it will be used as-is.
                      +2751            append: if `True`, add to any existing expressions.
                      +2752                Otherwise, this resets the expressions.
                      +2753            dialect: the dialect used to parse the input expressions.
                      +2754            copy: if `False`, modify this expression instance in-place.
                      +2755            opts: other options to use to parse the input expressions.
                      +2756
                      +2757        Returns:
                      +2758            The modified Select expression.
                      +2759        """
                      +2760        return _apply_list_builder(
                      +2761            *expressions,
                      +2762            instance=self,
                      +2763            arg="laterals",
                      +2764            append=append,
                      +2765            into=Lateral,
                      +2766            prefix="LATERAL VIEW",
                      +2767            dialect=dialect,
                      +2768            copy=copy,
                      +2769            **opts,
                      +2770        )
                       
                      @@ -25377,102 +25620,102 @@ Otherwise, this resets the expressions.
                      -
                      2760    def join(
                      -2761        self,
                      -2762        expression: ExpOrStr,
                      -2763        on: t.Optional[ExpOrStr] = None,
                      -2764        using: t.Optional[ExpOrStr | t.List[ExpOrStr]] = None,
                      -2765        append: bool = True,
                      -2766        join_type: t.Optional[str] = None,
                      -2767        join_alias: t.Optional[Identifier | str] = None,
                      -2768        dialect: DialectType = None,
                      -2769        copy: bool = True,
                      -2770        **opts,
                      -2771    ) -> Select:
                      -2772        """
                      -2773        Append to or set the JOIN expressions.
                      -2774
                      -2775        Example:
                      -2776            >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()
                      -2777            'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'
                      -2778
                      -2779            >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()
                      -2780            'SELECT 1 FROM a JOIN b USING (x, y, z)'
                      -2781
                      -2782            Use `join_type` to change the type of join:
                      -2783
                      -2784            >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()
                      -2785            'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'
                      +            
                      2772    def join(
                      +2773        self,
                      +2774        expression: ExpOrStr,
                      +2775        on: t.Optional[ExpOrStr] = None,
                      +2776        using: t.Optional[ExpOrStr | t.List[ExpOrStr]] = None,
                      +2777        append: bool = True,
                      +2778        join_type: t.Optional[str] = None,
                      +2779        join_alias: t.Optional[Identifier | str] = None,
                      +2780        dialect: DialectType = None,
                      +2781        copy: bool = True,
                      +2782        **opts,
                      +2783    ) -> Select:
                      +2784        """
                      +2785        Append to or set the JOIN expressions.
                       2786
                      -2787        Args:
                      -2788            expression: the SQL code string to parse.
                      -2789                If an `Expression` instance is passed, it will be used as-is.
                      -2790            on: optionally specify the join "on" criteria as a SQL string.
                      -2791                If an `Expression` instance is passed, it will be used as-is.
                      -2792            using: optionally specify the join "using" criteria as a SQL string.
                      -2793                If an `Expression` instance is passed, it will be used as-is.
                      -2794            append: if `True`, add to any existing expressions.
                      -2795                Otherwise, this resets the expressions.
                      -2796            join_type: if set, alter the parsed join type.
                      -2797            join_alias: an optional alias for the joined source.
                      -2798            dialect: the dialect used to parse the input expressions.
                      -2799            copy: if `False`, modify this expression instance in-place.
                      -2800            opts: other options to use to parse the input expressions.
                      -2801
                      -2802        Returns:
                      -2803            Select: the modified expression.
                      -2804        """
                      -2805        parse_args = {"dialect": dialect, **opts}
                      -2806
                      -2807        try:
                      -2808            expression = maybe_parse(expression, into=Join, prefix="JOIN", **parse_args)  # type: ignore
                      -2809        except ParseError:
                      -2810            expression = maybe_parse(expression, into=(Join, Expression), **parse_args)  # type: ignore
                      -2811
                      -2812        join = expression if isinstance(expression, Join) else Join(this=expression)
                      +2787        Example:
                      +2788            >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()
                      +2789            'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'
                      +2790
                      +2791            >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()
                      +2792            'SELECT 1 FROM a JOIN b USING (x, y, z)'
                      +2793
                      +2794            Use `join_type` to change the type of join:
                      +2795
                      +2796            >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()
                      +2797            'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'
                      +2798
                      +2799        Args:
                      +2800            expression: the SQL code string to parse.
                      +2801                If an `Expression` instance is passed, it will be used as-is.
                      +2802            on: optionally specify the join "on" criteria as a SQL string.
                      +2803                If an `Expression` instance is passed, it will be used as-is.
                      +2804            using: optionally specify the join "using" criteria as a SQL string.
                      +2805                If an `Expression` instance is passed, it will be used as-is.
                      +2806            append: if `True`, add to any existing expressions.
                      +2807                Otherwise, this resets the expressions.
                      +2808            join_type: if set, alter the parsed join type.
                      +2809            join_alias: an optional alias for the joined source.
                      +2810            dialect: the dialect used to parse the input expressions.
                      +2811            copy: if `False`, modify this expression instance in-place.
                      +2812            opts: other options to use to parse the input expressions.
                       2813
                      -2814        if isinstance(join.this, Select):
                      -2815            join.this.replace(join.this.subquery())
                      -2816
                      -2817        if join_type:
                      -2818            natural: t.Optional[Token]
                      -2819            side: t.Optional[Token]
                      -2820            kind: t.Optional[Token]
                      -2821
                      -2822            natural, side, kind = maybe_parse(join_type, into="JOIN_TYPE", **parse_args)  # type: ignore
                      +2814        Returns:
                      +2815            Select: the modified expression.
                      +2816        """
                      +2817        parse_args: t.Dict[str, t.Any] = {"dialect": dialect, **opts}
                      +2818
                      +2819        try:
                      +2820            expression = maybe_parse(expression, into=Join, prefix="JOIN", **parse_args)
                      +2821        except ParseError:
                      +2822            expression = maybe_parse(expression, into=(Join, Expression), **parse_args)
                       2823
                      -2824            if natural:
                      -2825                join.set("natural", True)
                      -2826            if side:
                      -2827                join.set("side", side.text)
                      -2828            if kind:
                      -2829                join.set("kind", kind.text)
                      -2830
                      -2831        if on:
                      -2832            on = and_(*ensure_list(on), dialect=dialect, copy=copy, **opts)
                      -2833            join.set("on", on)
                      -2834
                      -2835        if using:
                      -2836            join = _apply_list_builder(
                      -2837                *ensure_list(using),
                      -2838                instance=join,
                      -2839                arg="using",
                      -2840                append=append,
                      -2841                copy=copy,
                      -2842                **opts,
                      -2843            )
                      -2844
                      -2845        if join_alias:
                      -2846            join.set("this", alias_(join.this, join_alias, table=True))
                      -2847
                      -2848        return _apply_list_builder(
                      -2849            join,
                      -2850            instance=self,
                      -2851            arg="joins",
                      -2852            append=append,
                      -2853            copy=copy,
                      -2854            **opts,
                      -2855        )
                      +2824        join = expression if isinstance(expression, Join) else Join(this=expression)
                      +2825
                      +2826        if isinstance(join.this, Select):
                      +2827            join.this.replace(join.this.subquery())
                      +2828
                      +2829        if join_type:
                      +2830            method: t.Optional[Token]
                      +2831            side: t.Optional[Token]
                      +2832            kind: t.Optional[Token]
                      +2833
                      +2834            method, side, kind = maybe_parse(join_type, into="JOIN_TYPE", **parse_args)  # type: ignore
                      +2835
                      +2836            if method:
                      +2837                join.set("method", method.text)
                      +2838            if side:
                      +2839                join.set("side", side.text)
                      +2840            if kind:
                      +2841                join.set("kind", kind.text)
                      +2842
                      +2843        if on:
                      +2844            on = and_(*ensure_list(on), dialect=dialect, copy=copy, **opts)
                      +2845            join.set("on", on)
                      +2846
                      +2847        if using:
                      +2848            join = _apply_list_builder(
                      +2849                *ensure_list(using),
                      +2850                instance=join,
                      +2851                arg="using",
                      +2852                append=append,
                      +2853                copy=copy,
                      +2854                **opts,
                      +2855            )
                      +2856
                      +2857        if join_alias:
                      +2858            join.set("this", alias_(join.this, join_alias, table=True))
                      +2859
                      +2860        return _apply_list_builder(
                      +2861            join,
                      +2862            instance=self,
                      +2863            arg="joins",
                      +2864            append=append,
                      +2865            copy=copy,
                      +2866            **opts,
                      +2867        )
                       
                      @@ -25540,44 +25783,44 @@ Otherwise, this resets the expressions.
                      -
                      2857    def where(
                      -2858        self,
                      -2859        *expressions: t.Optional[ExpOrStr],
                      -2860        append: bool = True,
                      -2861        dialect: DialectType = None,
                      -2862        copy: bool = True,
                      -2863        **opts,
                      -2864    ) -> Select:
                      -2865        """
                      -2866        Append to or set the WHERE expressions.
                      -2867
                      -2868        Example:
                      -2869            >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()
                      -2870            "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"
                      -2871
                      -2872        Args:
                      -2873            *expressions: the SQL code strings to parse.
                      -2874                If an `Expression` instance is passed, it will be used as-is.
                      -2875                Multiple expressions are combined with an AND operator.
                      -2876            append: if `True`, AND the new expressions to any existing expression.
                      -2877                Otherwise, this resets the expression.
                      -2878            dialect: the dialect used to parse the input expressions.
                      -2879            copy: if `False`, modify this expression instance in-place.
                      -2880            opts: other options to use to parse the input expressions.
                      -2881
                      -2882        Returns:
                      -2883            Select: the modified expression.
                      -2884        """
                      -2885        return _apply_conjunction_builder(
                      -2886            *expressions,
                      -2887            instance=self,
                      -2888            arg="where",
                      -2889            append=append,
                      -2890            into=Where,
                      -2891            dialect=dialect,
                      -2892            copy=copy,
                      -2893            **opts,
                      -2894        )
                      +            
                      2869    def where(
                      +2870        self,
                      +2871        *expressions: t.Optional[ExpOrStr],
                      +2872        append: bool = True,
                      +2873        dialect: DialectType = None,
                      +2874        copy: bool = True,
                      +2875        **opts,
                      +2876    ) -> Select:
                      +2877        """
                      +2878        Append to or set the WHERE expressions.
                      +2879
                      +2880        Example:
                      +2881            >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()
                      +2882            "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"
                      +2883
                      +2884        Args:
                      +2885            *expressions: the SQL code strings to parse.
                      +2886                If an `Expression` instance is passed, it will be used as-is.
                      +2887                Multiple expressions are combined with an AND operator.
                      +2888            append: if `True`, AND the new expressions to any existing expression.
                      +2889                Otherwise, this resets the expression.
                      +2890            dialect: the dialect used to parse the input expressions.
                      +2891            copy: if `False`, modify this expression instance in-place.
                      +2892            opts: other options to use to parse the input expressions.
                      +2893
                      +2894        Returns:
                      +2895            Select: the modified expression.
                      +2896        """
                      +2897        return _apply_conjunction_builder(
                      +2898            *expressions,
                      +2899            instance=self,
                      +2900            arg="where",
                      +2901            append=append,
                      +2902            into=Where,
                      +2903            dialect=dialect,
                      +2904            copy=copy,
                      +2905            **opts,
                      +2906        )
                       
                      @@ -25626,44 +25869,44 @@ Otherwise, this resets the expression.
                      -
                      2896    def having(
                      -2897        self,
                      -2898        *expressions: t.Optional[ExpOrStr],
                      -2899        append: bool = True,
                      -2900        dialect: DialectType = None,
                      -2901        copy: bool = True,
                      -2902        **opts,
                      -2903    ) -> Select:
                      -2904        """
                      -2905        Append to or set the HAVING expressions.
                      -2906
                      -2907        Example:
                      -2908            >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()
                      -2909            'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'
                      -2910
                      -2911        Args:
                      -2912            *expressions: the SQL code strings to parse.
                      -2913                If an `Expression` instance is passed, it will be used as-is.
                      -2914                Multiple expressions are combined with an AND operator.
                      -2915            append: if `True`, AND the new expressions to any existing expression.
                      -2916                Otherwise, this resets the expression.
                      -2917            dialect: the dialect used to parse the input expressions.
                      -2918            copy: if `False`, modify this expression instance in-place.
                      -2919            opts: other options to use to parse the input expressions.
                      -2920
                      -2921        Returns:
                      -2922            The modified Select expression.
                      -2923        """
                      -2924        return _apply_conjunction_builder(
                      -2925            *expressions,
                      -2926            instance=self,
                      -2927            arg="having",
                      -2928            append=append,
                      -2929            into=Having,
                      -2930            dialect=dialect,
                      -2931            copy=copy,
                      -2932            **opts,
                      -2933        )
                      +            
                      2908    def having(
                      +2909        self,
                      +2910        *expressions: t.Optional[ExpOrStr],
                      +2911        append: bool = True,
                      +2912        dialect: DialectType = None,
                      +2913        copy: bool = True,
                      +2914        **opts,
                      +2915    ) -> Select:
                      +2916        """
                      +2917        Append to or set the HAVING expressions.
                      +2918
                      +2919        Example:
                      +2920            >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()
                      +2921            'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'
                      +2922
                      +2923        Args:
                      +2924            *expressions: the SQL code strings to parse.
                      +2925                If an `Expression` instance is passed, it will be used as-is.
                      +2926                Multiple expressions are combined with an AND operator.
                      +2927            append: if `True`, AND the new expressions to any existing expression.
                      +2928                Otherwise, this resets the expression.
                      +2929            dialect: the dialect used to parse the input expressions.
                      +2930            copy: if `False`, modify this expression instance in-place.
                      +2931            opts: other options to use to parse the input expressions.
                      +2932
                      +2933        Returns:
                      +2934            The modified Select expression.
                      +2935        """
                      +2936        return _apply_conjunction_builder(
                      +2937            *expressions,
                      +2938            instance=self,
                      +2939            arg="having",
                      +2940            append=append,
                      +2941            into=Having,
                      +2942            dialect=dialect,
                      +2943            copy=copy,
                      +2944            **opts,
                      +2945        )
                       
                      @@ -25712,24 +25955,24 @@ Otherwise, this resets the expression.
                      -
                      2935    def window(
                      -2936        self,
                      -2937        *expressions: t.Optional[ExpOrStr],
                      -2938        append: bool = True,
                      -2939        dialect: DialectType = None,
                      -2940        copy: bool = True,
                      -2941        **opts,
                      -2942    ) -> Select:
                      -2943        return _apply_list_builder(
                      -2944            *expressions,
                      -2945            instance=self,
                      -2946            arg="windows",
                      -2947            append=append,
                      -2948            into=Window,
                      -2949            dialect=dialect,
                      -2950            copy=copy,
                      -2951            **opts,
                      -2952        )
                      +            
                      2947    def window(
                      +2948        self,
                      +2949        *expressions: t.Optional[ExpOrStr],
                      +2950        append: bool = True,
                      +2951        dialect: DialectType = None,
                      +2952        copy: bool = True,
                      +2953        **opts,
                      +2954    ) -> Select:
                      +2955        return _apply_list_builder(
                      +2956            *expressions,
                      +2957            instance=self,
                      +2958            arg="windows",
                      +2959            append=append,
                      +2960            into=Window,
                      +2961            dialect=dialect,
                      +2962            copy=copy,
                      +2963            **opts,
                      +2964        )
                       
                      @@ -25747,24 +25990,24 @@ Otherwise, this resets the expression.
                      -
                      2954    def qualify(
                      -2955        self,
                      -2956        *expressions: t.Optional[ExpOrStr],
                      -2957        append: bool = True,
                      -2958        dialect: DialectType = None,
                      -2959        copy: bool = True,
                      -2960        **opts,
                      -2961    ) -> Select:
                      -2962        return _apply_conjunction_builder(
                      -2963            *expressions,
                      -2964            instance=self,
                      -2965            arg="qualify",
                      -2966            append=append,
                      -2967            into=Qualify,
                      -2968            dialect=dialect,
                      -2969            copy=copy,
                      -2970            **opts,
                      -2971        )
                      +            
                      2966    def qualify(
                      +2967        self,
                      +2968        *expressions: t.Optional[ExpOrStr],
                      +2969        append: bool = True,
                      +2970        dialect: DialectType = None,
                      +2971        copy: bool = True,
                      +2972        **opts,
                      +2973    ) -> Select:
                      +2974        return _apply_conjunction_builder(
                      +2975            *expressions,
                      +2976            instance=self,
                      +2977            arg="qualify",
                      +2978            append=append,
                      +2979            into=Qualify,
                      +2980            dialect=dialect,
                      +2981            copy=copy,
                      +2982            **opts,
                      +2983        )
                       
                      @@ -25782,28 +26025,28 @@ Otherwise, this resets the expression.
                      -
                      2973    def distinct(
                      -2974        self, *ons: t.Optional[ExpOrStr], distinct: bool = True, copy: bool = True
                      -2975    ) -> Select:
                      -2976        """
                      -2977        Set the OFFSET expression.
                      -2978
                      -2979        Example:
                      -2980            >>> Select().from_("tbl").select("x").distinct().sql()
                      -2981            'SELECT DISTINCT x FROM tbl'
                      -2982
                      -2983        Args:
                      -2984            ons: the expressions to distinct on
                      -2985            distinct: whether the Select should be distinct
                      -2986            copy: if `False`, modify this expression instance in-place.
                      -2987
                      -2988        Returns:
                      -2989            Select: the modified expression.
                      -2990        """
                      -2991        instance = _maybe_copy(self, copy)
                      -2992        on = Tuple(expressions=[maybe_parse(on, copy=copy) for on in ons if on]) if ons else None
                      -2993        instance.set("distinct", Distinct(on=on) if distinct else None)
                      -2994        return instance
                      +            
                      2985    def distinct(
                      +2986        self, *ons: t.Optional[ExpOrStr], distinct: bool = True, copy: bool = True
                      +2987    ) -> Select:
                      +2988        """
                      +2989        Set the OFFSET expression.
                      +2990
                      +2991        Example:
                      +2992            >>> Select().from_("tbl").select("x").distinct().sql()
                      +2993            'SELECT DISTINCT x FROM tbl'
                      +2994
                      +2995        Args:
                      +2996            ons: the expressions to distinct on
                      +2997            distinct: whether the Select should be distinct
                      +2998            copy: if `False`, modify this expression instance in-place.
                      +2999
                      +3000        Returns:
                      +3001            Select: the modified expression.
                      +3002        """
                      +3003        instance = _maybe_copy(self, copy)
                      +3004        on = Tuple(expressions=[maybe_parse(on, copy=copy) for on in ons if on]) if ons else None
                      +3005        instance.set("distinct", Distinct(on=on) if distinct else None)
                      +3006        return instance
                       
                      @@ -25847,49 +26090,49 @@ Otherwise, this resets the expression.
                      -
                      2996    def ctas(
                      -2997        self,
                      -2998        table: ExpOrStr,
                      -2999        properties: t.Optional[t.Dict] = None,
                      -3000        dialect: DialectType = None,
                      -3001        copy: bool = True,
                      -3002        **opts,
                      -3003    ) -> Create:
                      -3004        """
                      -3005        Convert this expression to a CREATE TABLE AS statement.
                      -3006
                      -3007        Example:
                      -3008            >>> Select().select("*").from_("tbl").ctas("x").sql()
                      -3009            'CREATE TABLE x AS SELECT * FROM tbl'
                      -3010
                      -3011        Args:
                      -3012            table: the SQL code string to parse as the table name.
                      -3013                If another `Expression` instance is passed, it will be used as-is.
                      -3014            properties: an optional mapping of table properties
                      -3015            dialect: the dialect used to parse the input table.
                      -3016            copy: if `False`, modify this expression instance in-place.
                      -3017            opts: other options to use to parse the input table.
                      +            
                      3008    def ctas(
                      +3009        self,
                      +3010        table: ExpOrStr,
                      +3011        properties: t.Optional[t.Dict] = None,
                      +3012        dialect: DialectType = None,
                      +3013        copy: bool = True,
                      +3014        **opts,
                      +3015    ) -> Create:
                      +3016        """
                      +3017        Convert this expression to a CREATE TABLE AS statement.
                       3018
                      -3019        Returns:
                      -3020            The new Create expression.
                      -3021        """
                      -3022        instance = _maybe_copy(self, copy)
                      -3023        table_expression = maybe_parse(
                      -3024            table,
                      -3025            into=Table,
                      -3026            dialect=dialect,
                      -3027            **opts,
                      -3028        )
                      -3029        properties_expression = None
                      -3030        if properties:
                      -3031            properties_expression = Properties.from_dict(properties)
                      -3032
                      -3033        return Create(
                      -3034            this=table_expression,
                      -3035            kind="table",
                      -3036            expression=instance,
                      -3037            properties=properties_expression,
                      -3038        )
                      +3019        Example:
                      +3020            >>> Select().select("*").from_("tbl").ctas("x").sql()
                      +3021            'CREATE TABLE x AS SELECT * FROM tbl'
                      +3022
                      +3023        Args:
                      +3024            table: the SQL code string to parse as the table name.
                      +3025                If another `Expression` instance is passed, it will be used as-is.
                      +3026            properties: an optional mapping of table properties
                      +3027            dialect: the dialect used to parse the input table.
                      +3028            copy: if `False`, modify this expression instance in-place.
                      +3029            opts: other options to use to parse the input table.
                      +3030
                      +3031        Returns:
                      +3032            The new Create expression.
                      +3033        """
                      +3034        instance = _maybe_copy(self, copy)
                      +3035        table_expression = maybe_parse(
                      +3036            table,
                      +3037            into=Table,
                      +3038            dialect=dialect,
                      +3039            **opts,
                      +3040        )
                      +3041        properties_expression = None
                      +3042        if properties:
                      +3043            properties_expression = Properties.from_dict(properties)
                      +3044
                      +3045        return Create(
                      +3046            this=table_expression,
                      +3047            kind="table",
                      +3048            expression=instance,
                      +3049            properties=properties_expression,
                      +3050        )
                       
                      @@ -25936,29 +26179,29 @@ If another Expression instance is passed,
                      -
                      3040    def lock(self, update: bool = True, copy: bool = True) -> Select:
                      -3041        """
                      -3042        Set the locking read mode for this expression.
                      -3043
                      -3044        Examples:
                      -3045            >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")
                      -3046            "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"
                      -3047
                      -3048            >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")
                      -3049            "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"
                      -3050
                      -3051        Args:
                      -3052            update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.
                      -3053            copy: if `False`, modify this expression instance in-place.
                      -3054
                      -3055        Returns:
                      -3056            The modified expression.
                      -3057        """
                      -3058
                      -3059        inst = _maybe_copy(self, copy)
                      -3060        inst.set("locks", [Lock(update=update)])
                      -3061
                      -3062        return inst
                      +            
                      3052    def lock(self, update: bool = True, copy: bool = True) -> Select:
                      +3053        """
                      +3054        Set the locking read mode for this expression.
                      +3055
                      +3056        Examples:
                      +3057            >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")
                      +3058            "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"
                      +3059
                      +3060            >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")
                      +3061            "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"
                      +3062
                      +3063        Args:
                      +3064            update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.
                      +3065            copy: if `False`, modify this expression instance in-place.
                      +3066
                      +3067        Returns:
                      +3068            The modified expression.
                      +3069        """
                      +3070
                      +3071        inst = _maybe_copy(self, copy)
                      +3072        inst.set("locks", [Lock(update=update)])
                      +3073
                      +3074        return inst
                       
                      @@ -26077,30 +26320,30 @@ If another Expression instance is passed,
                      -
                      3077class Subquery(DerivedTable, Unionable):
                      -3078    arg_types = {
                      -3079        "this": True,
                      -3080        "alias": False,
                      -3081        "with": False,
                      -3082        **QUERY_MODIFIERS,
                      -3083    }
                      -3084
                      -3085    def unnest(self):
                      -3086        """
                      -3087        Returns the first non subquery.
                      -3088        """
                      -3089        expression = self
                      -3090        while isinstance(expression, Subquery):
                      -3091            expression = expression.this
                      -3092        return expression
                      -3093
                      -3094    @property
                      -3095    def is_star(self) -> bool:
                      -3096        return self.this.is_star
                      -3097
                      -3098    @property
                      -3099    def output_name(self) -> str:
                      -3100        return self.alias
                      +            
                      3089class Subquery(DerivedTable, Unionable):
                      +3090    arg_types = {
                      +3091        "this": True,
                      +3092        "alias": False,
                      +3093        "with": False,
                      +3094        **QUERY_MODIFIERS,
                      +3095    }
                      +3096
                      +3097    def unnest(self):
                      +3098        """
                      +3099        Returns the first non subquery.
                      +3100        """
                      +3101        expression = self
                      +3102        while isinstance(expression, Subquery):
                      +3103            expression = expression.this
                      +3104        return expression
                      +3105
                      +3106    @property
                      +3107    def is_star(self) -> bool:
                      +3108        return self.this.is_star
                      +3109
                      +3110    @property
                      +3111    def output_name(self) -> str:
                      +3112        return self.alias
                       
                      @@ -26117,14 +26360,14 @@ If another Expression instance is passed,
                      -
                      3085    def unnest(self):
                      -3086        """
                      -3087        Returns the first non subquery.
                      -3088        """
                      -3089        expression = self
                      -3090        while isinstance(expression, Subquery):
                      -3091            expression = expression.this
                      -3092        return expression
                      +            
                      3097    def unnest(self):
                      +3098        """
                      +3099        Returns the first non subquery.
                      +3100        """
                      +3101        expression = self
                      +3102        while isinstance(expression, Subquery):
                      +3103            expression = expression.this
                      +3104        return expression
                       
                      @@ -26237,19 +26480,19 @@ If another Expression instance is passed,
                      -
                      3103class TableSample(Expression):
                      -3104    arg_types = {
                      -3105        "this": False,
                      -3106        "method": False,
                      -3107        "bucket_numerator": False,
                      -3108        "bucket_denominator": False,
                      -3109        "bucket_field": False,
                      -3110        "percent": False,
                      -3111        "rows": False,
                      -3112        "size": False,
                      -3113        "seed": False,
                      -3114        "kind": False,
                      -3115    }
                      +            
                      3115class TableSample(Expression):
                      +3116    arg_types = {
                      +3117        "this": False,
                      +3118        "method": False,
                      +3119        "bucket_numerator": False,
                      +3120        "bucket_denominator": False,
                      +3121        "bucket_field": False,
                      +3122        "percent": False,
                      +3123        "rows": False,
                      +3124        "size": False,
                      +3125        "seed": False,
                      +3126        "kind": False,
                      +3127    }
                       
                      @@ -26313,14 +26556,14 @@ If another Expression instance is passed,
                      -
                      3118class Tag(Expression):
                      -3119    """Tags are used for generating arbitrary sql like SELECT <span>x</span>."""
                      -3120
                      -3121    arg_types = {
                      -3122        "this": False,
                      -3123        "prefix": False,
                      -3124        "postfix": False,
                      -3125    }
                      +            
                      3130class Tag(Expression):
                      +3131    """Tags are used for generating arbitrary sql like SELECT <span>x</span>."""
                      +3132
                      +3133    arg_types = {
                      +3134        "this": False,
                      +3135        "prefix": False,
                      +3136        "postfix": False,
                      +3137    }
                       
                      @@ -26386,14 +26629,17 @@ If another Expression instance is passed,
                      -
                      3128class Pivot(Expression):
                      -3129    arg_types = {
                      -3130        "alias": False,
                      -3131        "expressions": True,
                      -3132        "field": True,
                      -3133        "unpivot": True,
                      -3134        "columns": False,
                      -3135    }
                      +            
                      3142class Pivot(Expression):
                      +3143    arg_types = {
                      +3144        "this": False,
                      +3145        "alias": False,
                      +3146        "expressions": True,
                      +3147        "field": False,
                      +3148        "unpivot": False,
                      +3149        "using": False,
                      +3150        "group": False,
                      +3151        "columns": False,
                      +3152    }
                       
                      @@ -26457,16 +26703,16 @@ If another Expression instance is passed,
                      -
                      3138class Window(Expression):
                      -3139    arg_types = {
                      -3140        "this": True,
                      -3141        "partition_by": False,
                      -3142        "order": False,
                      -3143        "spec": False,
                      -3144        "alias": False,
                      -3145        "over": False,
                      -3146        "first": False,
                      -3147    }
                      +            
                      3155class Window(Expression):
                      +3156    arg_types = {
                      +3157        "this": True,
                      +3158        "partition_by": False,
                      +3159        "order": False,
                      +3160        "spec": False,
                      +3161        "alias": False,
                      +3162        "over": False,
                      +3163        "first": False,
                      +3164    }
                       
                      @@ -26530,14 +26776,14 @@ If another Expression instance is passed,
                      -
                      3150class WindowSpec(Expression):
                      -3151    arg_types = {
                      -3152        "kind": False,
                      -3153        "start": False,
                      -3154        "start_side": False,
                      -3155        "end": False,
                      -3156        "end_side": False,
                      -3157    }
                      +            
                      3167class WindowSpec(Expression):
                      +3168    arg_types = {
                      +3169        "kind": False,
                      +3170        "start": False,
                      +3171        "start_side": False,
                      +3172        "end": False,
                      +3173        "end_side": False,
                      +3174    }
                       
                      @@ -26601,8 +26847,8 @@ If another Expression instance is passed,
                      -
                      3160class Where(Expression):
                      -3161    pass
                      +            
                      3177class Where(Expression):
                      +3178    pass
                       
                      @@ -26666,16 +26912,16 @@ If another Expression instance is passed,
                      -
                      3164class Star(Expression):
                      -3165    arg_types = {"except": False, "replace": False}
                      -3166
                      -3167    @property
                      -3168    def name(self) -> str:
                      -3169        return "*"
                      -3170
                      -3171    @property
                      -3172    def output_name(self) -> str:
                      -3173        return self.name
                      +            
                      3181class Star(Expression):
                      +3182    arg_types = {"except": False, "replace": False}
                      +3183
                      +3184    @property
                      +3185    def name(self) -> str:
                      +3186        return "*"
                      +3187
                      +3188    @property
                      +3189    def output_name(self) -> str:
                      +3190        return self.name
                       
                      @@ -26768,8 +27014,8 @@ If another Expression instance is passed,
                      -
                      3176class Parameter(Expression):
                      -3177    arg_types = {"this": True, "wrapped": False}
                      +            
                      3193class Parameter(Expression):
                      +3194    arg_types = {"this": True, "wrapped": False}
                       
                      @@ -26833,8 +27079,8 @@ If another Expression instance is passed,
                      -
                      3180class SessionParameter(Expression):
                      -3181    arg_types = {"this": True, "kind": False}
                      +            
                      3197class SessionParameter(Expression):
                      +3198    arg_types = {"this": True, "kind": False}
                       
                      @@ -26898,8 +27144,8 @@ If another Expression instance is passed,
                      -
                      3184class Placeholder(Expression):
                      -3185    arg_types = {"this": False, "kind": False}
                      +            
                      3201class Placeholder(Expression):
                      +3202    arg_types = {"this": False, "kind": False}
                       
                      @@ -26963,12 +27209,12 @@ If another Expression instance is passed,
                      -
                      3188class Null(Condition):
                      -3189    arg_types: t.Dict[str, t.Any] = {}
                      -3190
                      -3191    @property
                      -3192    def name(self) -> str:
                      -3193        return "NULL"
                      +            
                      3205class Null(Condition):
                      +3206    arg_types: t.Dict[str, t.Any] = {}
                      +3207
                      +3208    @property
                      +3209    def name(self) -> str:
                      +3210        return "NULL"
                       
                      @@ -27047,8 +27293,8 @@ If another Expression instance is passed,
                      -
                      3196class Boolean(Condition):
                      -3197    pass
                      +            
                      3213class Boolean(Condition):
                      +3214    pass
                       
                      @@ -27127,8 +27373,8 @@ If another Expression instance is passed,
                      -
                      3200class DataTypeSize(Expression):
                      -3201    arg_types = {"this": True, "expression": False}
                      +            
                      3217class DataTypeSize(Expression):
                      +3218    arg_types = {"this": True, "expression": False}
                       
                      @@ -27192,138 +27438,150 @@ If another Expression instance is passed,
                      -
                      3204class DataType(Expression):
                      -3205    arg_types = {
                      -3206        "this": True,
                      -3207        "expressions": False,
                      -3208        "nested": False,
                      -3209        "values": False,
                      -3210        "prefix": False,
                      -3211    }
                      -3212
                      -3213    class Type(AutoName):
                      -3214        ARRAY = auto()
                      -3215        BIGDECIMAL = auto()
                      -3216        BIGINT = auto()
                      -3217        BIGSERIAL = auto()
                      -3218        BINARY = auto()
                      -3219        BIT = auto()
                      -3220        BOOLEAN = auto()
                      -3221        CHAR = auto()
                      -3222        DATE = auto()
                      -3223        DATETIME = auto()
                      -3224        DATETIME64 = auto()
                      -3225        DECIMAL = auto()
                      -3226        DOUBLE = auto()
                      -3227        FLOAT = auto()
                      -3228        GEOGRAPHY = auto()
                      -3229        GEOMETRY = auto()
                      -3230        HLLSKETCH = auto()
                      -3231        HSTORE = auto()
                      -3232        IMAGE = auto()
                      -3233        INET = auto()
                      -3234        INT = auto()
                      -3235        INT128 = auto()
                      -3236        INT256 = auto()
                      -3237        INTERVAL = auto()
                      -3238        JSON = auto()
                      -3239        JSONB = auto()
                      -3240        LONGBLOB = auto()
                      -3241        LONGTEXT = auto()
                      -3242        MAP = auto()
                      -3243        MEDIUMBLOB = auto()
                      -3244        MEDIUMTEXT = auto()
                      -3245        MONEY = auto()
                      -3246        NCHAR = auto()
                      -3247        NULL = auto()
                      -3248        NULLABLE = auto()
                      -3249        NVARCHAR = auto()
                      -3250        OBJECT = auto()
                      -3251        ROWVERSION = auto()
                      -3252        SERIAL = auto()
                      -3253        SMALLINT = auto()
                      -3254        SMALLMONEY = auto()
                      -3255        SMALLSERIAL = auto()
                      -3256        STRUCT = auto()
                      -3257        SUPER = auto()
                      -3258        TEXT = auto()
                      -3259        TIME = auto()
                      -3260        TIMESTAMP = auto()
                      -3261        TIMESTAMPTZ = auto()
                      -3262        TIMESTAMPLTZ = auto()
                      -3263        TINYINT = auto()
                      -3264        UBIGINT = auto()
                      -3265        UINT = auto()
                      -3266        USMALLINT = auto()
                      -3267        UTINYINT = auto()
                      -3268        UNKNOWN = auto()  # Sentinel value, useful for type annotation
                      -3269        UINT128 = auto()
                      -3270        UINT256 = auto()
                      -3271        UNIQUEIDENTIFIER = auto()
                      -3272        UUID = auto()
                      -3273        VARBINARY = auto()
                      -3274        VARCHAR = auto()
                      -3275        VARIANT = auto()
                      -3276        XML = auto()
                      -3277
                      -3278    TEXT_TYPES = {
                      -3279        Type.CHAR,
                      -3280        Type.NCHAR,
                      -3281        Type.VARCHAR,
                      -3282        Type.NVARCHAR,
                      -3283        Type.TEXT,
                      -3284    }
                      -3285
                      -3286    INTEGER_TYPES = {
                      -3287        Type.INT,
                      -3288        Type.TINYINT,
                      -3289        Type.SMALLINT,
                      -3290        Type.BIGINT,
                      -3291        Type.INT128,
                      -3292        Type.INT256,
                      -3293    }
                      -3294
                      -3295    FLOAT_TYPES = {
                      -3296        Type.FLOAT,
                      -3297        Type.DOUBLE,
                      -3298    }
                      -3299
                      -3300    NUMERIC_TYPES = {*INTEGER_TYPES, *FLOAT_TYPES}
                      -3301
                      -3302    TEMPORAL_TYPES = {
                      -3303        Type.TIMESTAMP,
                      -3304        Type.TIMESTAMPTZ,
                      -3305        Type.TIMESTAMPLTZ,
                      -3306        Type.DATE,
                      -3307        Type.DATETIME,
                      -3308        Type.DATETIME64,
                      -3309    }
                      -3310
                      -3311    @classmethod
                      -3312    def build(
                      -3313        cls, dtype: str | DataType | DataType.Type, dialect: DialectType = None, **kwargs
                      -3314    ) -> DataType:
                      -3315        from sqlglot import parse_one
                      -3316
                      -3317        if isinstance(dtype, str):
                      -3318            if dtype.upper() in cls.Type.__members__:
                      -3319                data_type_exp: t.Optional[Expression] = DataType(this=DataType.Type[dtype.upper()])
                      -3320            else:
                      -3321                data_type_exp = parse_one(dtype, read=dialect, into=DataType)
                      -3322
                      -3323            if data_type_exp is None:
                      -3324                raise ValueError(f"Unparsable data type value: {dtype}")
                      -3325        elif isinstance(dtype, DataType.Type):
                      -3326            data_type_exp = DataType(this=dtype)
                      -3327        elif isinstance(dtype, DataType):
                      -3328            return dtype
                      -3329        else:
                      -3330            raise ValueError(f"Invalid data type: {type(dtype)}. Expected str or DataType.Type")
                      -3331
                      -3332        return DataType(**{**data_type_exp.args, **kwargs})
                      -3333
                      -3334    def is_type(self, dtype: DataType.Type) -> bool:
                      -3335        return self.this == dtype
                      +            
                      3221class DataType(Expression):
                      +3222    arg_types = {
                      +3223        "this": True,
                      +3224        "expressions": False,
                      +3225        "nested": False,
                      +3226        "values": False,
                      +3227        "prefix": False,
                      +3228    }
                      +3229
                      +3230    class Type(AutoName):
                      +3231        ARRAY = auto()
                      +3232        BIGDECIMAL = auto()
                      +3233        BIGINT = auto()
                      +3234        BIGSERIAL = auto()
                      +3235        BINARY = auto()
                      +3236        BIT = auto()
                      +3237        BOOLEAN = auto()
                      +3238        CHAR = auto()
                      +3239        DATE = auto()
                      +3240        DATETIME = auto()
                      +3241        DATETIME64 = auto()
                      +3242        INT4RANGE = auto()
                      +3243        INT4MULTIRANGE = auto()
                      +3244        INT8RANGE = auto()
                      +3245        INT8MULTIRANGE = auto()
                      +3246        NUMRANGE = auto()
                      +3247        NUMMULTIRANGE = auto()
                      +3248        TSRANGE = auto()
                      +3249        TSMULTIRANGE = auto()
                      +3250        TSTZRANGE = auto()
                      +3251        TSTZMULTIRANGE = auto()
                      +3252        DATERANGE = auto()
                      +3253        DATEMULTIRANGE = auto()
                      +3254        DECIMAL = auto()
                      +3255        DOUBLE = auto()
                      +3256        FLOAT = auto()
                      +3257        GEOGRAPHY = auto()
                      +3258        GEOMETRY = auto()
                      +3259        HLLSKETCH = auto()
                      +3260        HSTORE = auto()
                      +3261        IMAGE = auto()
                      +3262        INET = auto()
                      +3263        INT = auto()
                      +3264        INT128 = auto()
                      +3265        INT256 = auto()
                      +3266        INTERVAL = auto()
                      +3267        JSON = auto()
                      +3268        JSONB = auto()
                      +3269        LONGBLOB = auto()
                      +3270        LONGTEXT = auto()
                      +3271        MAP = auto()
                      +3272        MEDIUMBLOB = auto()
                      +3273        MEDIUMTEXT = auto()
                      +3274        MONEY = auto()
                      +3275        NCHAR = auto()
                      +3276        NULL = auto()
                      +3277        NULLABLE = auto()
                      +3278        NVARCHAR = auto()
                      +3279        OBJECT = auto()
                      +3280        ROWVERSION = auto()
                      +3281        SERIAL = auto()
                      +3282        SMALLINT = auto()
                      +3283        SMALLMONEY = auto()
                      +3284        SMALLSERIAL = auto()
                      +3285        STRUCT = auto()
                      +3286        SUPER = auto()
                      +3287        TEXT = auto()
                      +3288        TIME = auto()
                      +3289        TIMESTAMP = auto()
                      +3290        TIMESTAMPTZ = auto()
                      +3291        TIMESTAMPLTZ = auto()
                      +3292        TINYINT = auto()
                      +3293        UBIGINT = auto()
                      +3294        UINT = auto()
                      +3295        USMALLINT = auto()
                      +3296        UTINYINT = auto()
                      +3297        UNKNOWN = auto()  # Sentinel value, useful for type annotation
                      +3298        UINT128 = auto()
                      +3299        UINT256 = auto()
                      +3300        UNIQUEIDENTIFIER = auto()
                      +3301        UUID = auto()
                      +3302        VARBINARY = auto()
                      +3303        VARCHAR = auto()
                      +3304        VARIANT = auto()
                      +3305        XML = auto()
                      +3306
                      +3307    TEXT_TYPES = {
                      +3308        Type.CHAR,
                      +3309        Type.NCHAR,
                      +3310        Type.VARCHAR,
                      +3311        Type.NVARCHAR,
                      +3312        Type.TEXT,
                      +3313    }
                      +3314
                      +3315    INTEGER_TYPES = {
                      +3316        Type.INT,
                      +3317        Type.TINYINT,
                      +3318        Type.SMALLINT,
                      +3319        Type.BIGINT,
                      +3320        Type.INT128,
                      +3321        Type.INT256,
                      +3322    }
                      +3323
                      +3324    FLOAT_TYPES = {
                      +3325        Type.FLOAT,
                      +3326        Type.DOUBLE,
                      +3327    }
                      +3328
                      +3329    NUMERIC_TYPES = {*INTEGER_TYPES, *FLOAT_TYPES}
                      +3330
                      +3331    TEMPORAL_TYPES = {
                      +3332        Type.TIMESTAMP,
                      +3333        Type.TIMESTAMPTZ,
                      +3334        Type.TIMESTAMPLTZ,
                      +3335        Type.DATE,
                      +3336        Type.DATETIME,
                      +3337        Type.DATETIME64,
                      +3338    }
                      +3339
                      +3340    @classmethod
                      +3341    def build(
                      +3342        cls, dtype: str | DataType | DataType.Type, dialect: DialectType = None, **kwargs
                      +3343    ) -> DataType:
                      +3344        from sqlglot import parse_one
                      +3345
                      +3346        if isinstance(dtype, str):
                      +3347            if dtype.upper() in cls.Type.__members__:
                      +3348                data_type_exp: t.Optional[Expression] = DataType(this=DataType.Type[dtype.upper()])
                      +3349            else:
                      +3350                data_type_exp = parse_one(dtype, read=dialect, into=DataType)
                      +3351
                      +3352            if data_type_exp is None:
                      +3353                raise ValueError(f"Unparsable data type value: {dtype}")
                      +3354        elif isinstance(dtype, DataType.Type):
                      +3355            data_type_exp = DataType(this=dtype)
                      +3356        elif isinstance(dtype, DataType):
                      +3357            return dtype
                      +3358        else:
                      +3359            raise ValueError(f"Invalid data type: {type(dtype)}. Expected str or DataType.Type")
                      +3360
                      +3361        return DataType(**{**data_type_exp.args, **kwargs})
                      +3362
                      +3363    def is_type(self, *dtypes: str | DataType | DataType.Type) -> bool:
                      +3364        return any(self.this == DataType.build(dtype).this for dtype in dtypes)
                       
                      @@ -27341,28 +27599,28 @@ If another Expression instance is passed,
                      -
                      3311    @classmethod
                      -3312    def build(
                      -3313        cls, dtype: str | DataType | DataType.Type, dialect: DialectType = None, **kwargs
                      -3314    ) -> DataType:
                      -3315        from sqlglot import parse_one
                      -3316
                      -3317        if isinstance(dtype, str):
                      -3318            if dtype.upper() in cls.Type.__members__:
                      -3319                data_type_exp: t.Optional[Expression] = DataType(this=DataType.Type[dtype.upper()])
                      -3320            else:
                      -3321                data_type_exp = parse_one(dtype, read=dialect, into=DataType)
                      -3322
                      -3323            if data_type_exp is None:
                      -3324                raise ValueError(f"Unparsable data type value: {dtype}")
                      -3325        elif isinstance(dtype, DataType.Type):
                      -3326            data_type_exp = DataType(this=dtype)
                      -3327        elif isinstance(dtype, DataType):
                      -3328            return dtype
                      -3329        else:
                      -3330            raise ValueError(f"Invalid data type: {type(dtype)}. Expected str or DataType.Type")
                      -3331
                      -3332        return DataType(**{**data_type_exp.args, **kwargs})
                      +            
                      3340    @classmethod
                      +3341    def build(
                      +3342        cls, dtype: str | DataType | DataType.Type, dialect: DialectType = None, **kwargs
                      +3343    ) -> DataType:
                      +3344        from sqlglot import parse_one
                      +3345
                      +3346        if isinstance(dtype, str):
                      +3347            if dtype.upper() in cls.Type.__members__:
                      +3348                data_type_exp: t.Optional[Expression] = DataType(this=DataType.Type[dtype.upper()])
                      +3349            else:
                      +3350                data_type_exp = parse_one(dtype, read=dialect, into=DataType)
                      +3351
                      +3352            if data_type_exp is None:
                      +3353                raise ValueError(f"Unparsable data type value: {dtype}")
                      +3354        elif isinstance(dtype, DataType.Type):
                      +3355            data_type_exp = DataType(this=dtype)
                      +3356        elif isinstance(dtype, DataType):
                      +3357            return dtype
                      +3358        else:
                      +3359            raise ValueError(f"Invalid data type: {type(dtype)}. Expected str or DataType.Type")
                      +3360
                      +3361        return DataType(**{**data_type_exp.args, **kwargs})
                       
                      @@ -27374,14 +27632,14 @@ If another Expression instance is passed,
                      def - is_type(self, dtype: sqlglot.expressions.DataType.Type) -> bool: + is_type( self, *dtypes: str | sqlglot.expressions.DataType | sqlglot.expressions.DataType.Type) -> bool:
                      -
                      3334    def is_type(self, dtype: DataType.Type) -> bool:
                      -3335        return self.this == dtype
                      +            
                      3363    def is_type(self, *dtypes: str | DataType | DataType.Type) -> bool:
                      +3364        return any(self.this == DataType.build(dtype).this for dtype in dtypes)
                       
                      @@ -27446,70 +27704,82 @@ If another Expression instance is passed,
                      -
                      3213    class Type(AutoName):
                      -3214        ARRAY = auto()
                      -3215        BIGDECIMAL = auto()
                      -3216        BIGINT = auto()
                      -3217        BIGSERIAL = auto()
                      -3218        BINARY = auto()
                      -3219        BIT = auto()
                      -3220        BOOLEAN = auto()
                      -3221        CHAR = auto()
                      -3222        DATE = auto()
                      -3223        DATETIME = auto()
                      -3224        DATETIME64 = auto()
                      -3225        DECIMAL = auto()
                      -3226        DOUBLE = auto()
                      -3227        FLOAT = auto()
                      -3228        GEOGRAPHY = auto()
                      -3229        GEOMETRY = auto()
                      -3230        HLLSKETCH = auto()
                      -3231        HSTORE = auto()
                      -3232        IMAGE = auto()
                      -3233        INET = auto()
                      -3234        INT = auto()
                      -3235        INT128 = auto()
                      -3236        INT256 = auto()
                      -3237        INTERVAL = auto()
                      -3238        JSON = auto()
                      -3239        JSONB = auto()
                      -3240        LONGBLOB = auto()
                      -3241        LONGTEXT = auto()
                      -3242        MAP = auto()
                      -3243        MEDIUMBLOB = auto()
                      -3244        MEDIUMTEXT = auto()
                      -3245        MONEY = auto()
                      -3246        NCHAR = auto()
                      -3247        NULL = auto()
                      -3248        NULLABLE = auto()
                      -3249        NVARCHAR = auto()
                      -3250        OBJECT = auto()
                      -3251        ROWVERSION = auto()
                      -3252        SERIAL = auto()
                      -3253        SMALLINT = auto()
                      -3254        SMALLMONEY = auto()
                      -3255        SMALLSERIAL = auto()
                      -3256        STRUCT = auto()
                      -3257        SUPER = auto()
                      -3258        TEXT = auto()
                      -3259        TIME = auto()
                      -3260        TIMESTAMP = auto()
                      -3261        TIMESTAMPTZ = auto()
                      -3262        TIMESTAMPLTZ = auto()
                      -3263        TINYINT = auto()
                      -3264        UBIGINT = auto()
                      -3265        UINT = auto()
                      -3266        USMALLINT = auto()
                      -3267        UTINYINT = auto()
                      -3268        UNKNOWN = auto()  # Sentinel value, useful for type annotation
                      -3269        UINT128 = auto()
                      -3270        UINT256 = auto()
                      -3271        UNIQUEIDENTIFIER = auto()
                      -3272        UUID = auto()
                      -3273        VARBINARY = auto()
                      -3274        VARCHAR = auto()
                      -3275        VARIANT = auto()
                      -3276        XML = auto()
                      +            
                      3230    class Type(AutoName):
                      +3231        ARRAY = auto()
                      +3232        BIGDECIMAL = auto()
                      +3233        BIGINT = auto()
                      +3234        BIGSERIAL = auto()
                      +3235        BINARY = auto()
                      +3236        BIT = auto()
                      +3237        BOOLEAN = auto()
                      +3238        CHAR = auto()
                      +3239        DATE = auto()
                      +3240        DATETIME = auto()
                      +3241        DATETIME64 = auto()
                      +3242        INT4RANGE = auto()
                      +3243        INT4MULTIRANGE = auto()
                      +3244        INT8RANGE = auto()
                      +3245        INT8MULTIRANGE = auto()
                      +3246        NUMRANGE = auto()
                      +3247        NUMMULTIRANGE = auto()
                      +3248        TSRANGE = auto()
                      +3249        TSMULTIRANGE = auto()
                      +3250        TSTZRANGE = auto()
                      +3251        TSTZMULTIRANGE = auto()
                      +3252        DATERANGE = auto()
                      +3253        DATEMULTIRANGE = auto()
                      +3254        DECIMAL = auto()
                      +3255        DOUBLE = auto()
                      +3256        FLOAT = auto()
                      +3257        GEOGRAPHY = auto()
                      +3258        GEOMETRY = auto()
                      +3259        HLLSKETCH = auto()
                      +3260        HSTORE = auto()
                      +3261        IMAGE = auto()
                      +3262        INET = auto()
                      +3263        INT = auto()
                      +3264        INT128 = auto()
                      +3265        INT256 = auto()
                      +3266        INTERVAL = auto()
                      +3267        JSON = auto()
                      +3268        JSONB = auto()
                      +3269        LONGBLOB = auto()
                      +3270        LONGTEXT = auto()
                      +3271        MAP = auto()
                      +3272        MEDIUMBLOB = auto()
                      +3273        MEDIUMTEXT = auto()
                      +3274        MONEY = auto()
                      +3275        NCHAR = auto()
                      +3276        NULL = auto()
                      +3277        NULLABLE = auto()
                      +3278        NVARCHAR = auto()
                      +3279        OBJECT = auto()
                      +3280        ROWVERSION = auto()
                      +3281        SERIAL = auto()
                      +3282        SMALLINT = auto()
                      +3283        SMALLMONEY = auto()
                      +3284        SMALLSERIAL = auto()
                      +3285        STRUCT = auto()
                      +3286        SUPER = auto()
                      +3287        TEXT = auto()
                      +3288        TIME = auto()
                      +3289        TIMESTAMP = auto()
                      +3290        TIMESTAMPTZ = auto()
                      +3291        TIMESTAMPLTZ = auto()
                      +3292        TINYINT = auto()
                      +3293        UBIGINT = auto()
                      +3294        UINT = auto()
                      +3295        USMALLINT = auto()
                      +3296        UTINYINT = auto()
                      +3297        UNKNOWN = auto()  # Sentinel value, useful for type annotation
                      +3298        UINT128 = auto()
                      +3299        UINT256 = auto()
                      +3300        UNIQUEIDENTIFIER = auto()
                      +3301        UUID = auto()
                      +3302        VARBINARY = auto()
                      +3303        VARCHAR = auto()
                      +3304        VARIANT = auto()
                      +3305        XML = auto()
                       
                      @@ -27648,6 +27918,150 @@ If another Expression instance is passed, +
                      +
                      +
                      + INT4RANGE = +<Type.INT4RANGE: 'INT4RANGE'> + + +
                      + + + + +
                      +
                      +
                      + INT4MULTIRANGE = +<Type.INT4MULTIRANGE: 'INT4MULTIRANGE'> + + +
                      + + + + +
                      +
                      +
                      + INT8RANGE = +<Type.INT8RANGE: 'INT8RANGE'> + + +
                      + + + + +
                      +
                      +
                      + INT8MULTIRANGE = +<Type.INT8MULTIRANGE: 'INT8MULTIRANGE'> + + +
                      + + + + +
                      +
                      +
                      + NUMRANGE = +<Type.NUMRANGE: 'NUMRANGE'> + + +
                      + + + + +
                      +
                      +
                      + NUMMULTIRANGE = +<Type.NUMMULTIRANGE: 'NUMMULTIRANGE'> + + +
                      + + + + +
                      +
                      +
                      + TSRANGE = +<Type.TSRANGE: 'TSRANGE'> + + +
                      + + + + +
                      +
                      +
                      + TSMULTIRANGE = +<Type.TSMULTIRANGE: 'TSMULTIRANGE'> + + +
                      + + + + +
                      +
                      +
                      + TSTZRANGE = +<Type.TSTZRANGE: 'TSTZRANGE'> + + +
                      + + + + +
                      +
                      +
                      + TSTZMULTIRANGE = +<Type.TSTZMULTIRANGE: 'TSTZMULTIRANGE'> + + +
                      + + + + +
                      +
                      +
                      + DATERANGE = +<Type.DATERANGE: 'DATERANGE'> + + +
                      + + + + +
                      +
                      +
                      + DATEMULTIRANGE = +<Type.DATEMULTIRANGE: 'DATEMULTIRANGE'> + + +
                      + + + +
                      @@ -28295,8 +28709,8 @@ If another Expression instance is passed,
                      -
                      3339class PseudoType(Expression):
                      -3340    pass
                      +            
                      3368class PseudoType(Expression):
                      +3369    pass
                       
                      @@ -28360,8 +28774,8 @@ If another Expression instance is passed,
                      -
                      3344class SubqueryPredicate(Predicate):
                      -3345    pass
                      +            
                      3373class SubqueryPredicate(Predicate):
                      +3374    pass
                       
                      @@ -28440,8 +28854,8 @@ If another Expression instance is passed,
                      -
                      3348class All(SubqueryPredicate):
                      -3349    pass
                      +            
                      3377class All(SubqueryPredicate):
                      +3378    pass
                       
                      @@ -28520,8 +28934,8 @@ If another Expression instance is passed,
                      -
                      3352class Any(SubqueryPredicate):
                      -3353    pass
                      +            
                      3381class Any(SubqueryPredicate):
                      +3382    pass
                       
                      @@ -28600,8 +29014,8 @@ If another Expression instance is passed,
                      -
                      3356class Exists(SubqueryPredicate):
                      -3357    pass
                      +            
                      3385class Exists(SubqueryPredicate):
                      +3386    pass
                       
                      @@ -28680,8 +29094,8 @@ If another Expression instance is passed,
                      -
                      3362class Command(Expression):
                      -3363    arg_types = {"this": True, "expression": False}
                      +            
                      3391class Command(Expression):
                      +3392    arg_types = {"this": True, "expression": False}
                       
                      @@ -28745,8 +29159,8 @@ If another Expression instance is passed,
                      -
                      3366class Transaction(Expression):
                      -3367    arg_types = {"this": False, "modes": False}
                      +            
                      3395class Transaction(Expression):
                      +3396    arg_types = {"this": False, "modes": False}
                       
                      @@ -28810,8 +29224,8 @@ If another Expression instance is passed,
                      -
                      3370class Commit(Expression):
                      -3371    arg_types = {"chain": False}
                      +            
                      3399class Commit(Expression):
                      +3400    arg_types = {"chain": False}
                       
                      @@ -28875,8 +29289,8 @@ If another Expression instance is passed,
                      -
                      3374class Rollback(Expression):
                      -3375    arg_types = {"savepoint": False}
                      +            
                      3403class Rollback(Expression):
                      +3404    arg_types = {"savepoint": False}
                       
                      @@ -28940,8 +29354,8 @@ If another Expression instance is passed,
                      -
                      3378class AlterTable(Expression):
                      -3379    arg_types = {"this": True, "actions": True, "exists": False}
                      +            
                      3407class AlterTable(Expression):
                      +3408    arg_types = {"this": True, "actions": True, "exists": False}
                       
                      @@ -29005,8 +29419,8 @@ If another Expression instance is passed,
                      -
                      3382class AddConstraint(Expression):
                      -3383    arg_types = {"this": False, "expression": False, "enforced": False}
                      +            
                      3411class AddConstraint(Expression):
                      +3412    arg_types = {"this": False, "expression": False, "enforced": False}
                       
                      @@ -29070,8 +29484,8 @@ If another Expression instance is passed,
                      -
                      3386class DropPartition(Expression):
                      -3387    arg_types = {"expressions": True, "exists": False}
                      +            
                      3415class DropPartition(Expression):
                      +3416    arg_types = {"expressions": True, "exists": False}
                       
                      @@ -29135,16 +29549,16 @@ If another Expression instance is passed,
                      -
                      3391class Binary(Condition):
                      -3392    arg_types = {"this": True, "expression": True}
                      -3393
                      -3394    @property
                      -3395    def left(self):
                      -3396        return self.this
                      -3397
                      -3398    @property
                      -3399    def right(self):
                      -3400        return self.expression
                      +            
                      3420class Binary(Condition):
                      +3421    arg_types = {"this": True, "expression": True}
                      +3422
                      +3423    @property
                      +3424    def left(self):
                      +3425        return self.this
                      +3426
                      +3427    @property
                      +3428    def right(self):
                      +3429        return self.expression
                       
                      @@ -29223,8 +29637,8 @@ If another Expression instance is passed,
                      -
                      3403class Add(Binary):
                      -3404    pass
                      +            
                      3432class Add(Binary):
                      +3433    pass
                       
                      @@ -29303,8 +29717,8 @@ If another Expression instance is passed,
                      -
                      3407class Connector(Binary):
                      -3408    pass
                      +            
                      3436class Connector(Binary):
                      +3437    pass
                       
                      @@ -29383,8 +29797,8 @@ If another Expression instance is passed,
                      -
                      3411class And(Connector):
                      -3412    pass
                      +            
                      3440class And(Connector):
                      +3441    pass
                       
                      @@ -29463,8 +29877,8 @@ If another Expression instance is passed,
                      -
                      3415class Or(Connector):
                      -3416    pass
                      +            
                      3444class Or(Connector):
                      +3445    pass
                       
                      @@ -29543,8 +29957,8 @@ If another Expression instance is passed,
                      -
                      3419class BitwiseAnd(Binary):
                      -3420    pass
                      +            
                      3448class BitwiseAnd(Binary):
                      +3449    pass
                       
                      @@ -29623,8 +30037,8 @@ If another Expression instance is passed,
                      -
                      3423class BitwiseLeftShift(Binary):
                      -3424    pass
                      +            
                      3452class BitwiseLeftShift(Binary):
                      +3453    pass
                       
                      @@ -29703,8 +30117,8 @@ If another Expression instance is passed,
                      -
                      3427class BitwiseOr(Binary):
                      -3428    pass
                      +            
                      3456class BitwiseOr(Binary):
                      +3457    pass
                       
                      @@ -29783,8 +30197,8 @@ If another Expression instance is passed,
                      -
                      3431class BitwiseRightShift(Binary):
                      -3432    pass
                      +            
                      3460class BitwiseRightShift(Binary):
                      +3461    pass
                       
                      @@ -29863,8 +30277,8 @@ If another Expression instance is passed,
                      -
                      3435class BitwiseXor(Binary):
                      -3436    pass
                      +            
                      3464class BitwiseXor(Binary):
                      +3465    pass
                       
                      @@ -29943,8 +30357,8 @@ If another Expression instance is passed,
                      -
                      3439class Div(Binary):
                      -3440    pass
                      +            
                      3468class Div(Binary):
                      +3469    pass
                       
                      @@ -30023,8 +30437,8 @@ If another Expression instance is passed,
                      -
                      3443class Overlaps(Binary):
                      -3444    pass
                      +            
                      3472class Overlaps(Binary):
                      +3473    pass
                       
                      @@ -30103,24 +30517,24 @@ If another Expression instance is passed,
                      -
                      3447class Dot(Binary):
                      -3448    @property
                      -3449    def name(self) -> str:
                      -3450        return self.expression.name
                      -3451
                      -3452    @classmethod
                      -3453    def build(self, expressions: t.Sequence[Expression]) -> Dot:
                      -3454        """Build a Dot object with a sequence of expressions."""
                      -3455        if len(expressions) < 2:
                      -3456            raise ValueError(f"Dot requires >= 2 expressions.")
                      -3457
                      -3458        a, b, *expressions = expressions
                      -3459        dot = Dot(this=a, expression=b)
                      -3460
                      -3461        for expression in expressions:
                      -3462            dot = Dot(this=dot, expression=expression)
                      -3463
                      -3464        return dot
                      +            
                      3476class Dot(Binary):
                      +3477    @property
                      +3478    def name(self) -> str:
                      +3479        return self.expression.name
                      +3480
                      +3481    @classmethod
                      +3482    def build(self, expressions: t.Sequence[Expression]) -> Dot:
                      +3483        """Build a Dot object with a sequence of expressions."""
                      +3484        if len(expressions) < 2:
                      +3485            raise ValueError(f"Dot requires >= 2 expressions.")
                      +3486
                      +3487        a, b, *expressions = expressions
                      +3488        dot = Dot(this=a, expression=b)
                      +3489
                      +3490        for expression in expressions:
                      +3491            dot = Dot(this=dot, expression=expression)
                      +3492
                      +3493        return dot
                       
                      @@ -30138,19 +30552,19 @@ If another Expression instance is passed,
                      -
                      3452    @classmethod
                      -3453    def build(self, expressions: t.Sequence[Expression]) -> Dot:
                      -3454        """Build a Dot object with a sequence of expressions."""
                      -3455        if len(expressions) < 2:
                      -3456            raise ValueError(f"Dot requires >= 2 expressions.")
                      -3457
                      -3458        a, b, *expressions = expressions
                      -3459        dot = Dot(this=a, expression=b)
                      -3460
                      -3461        for expression in expressions:
                      -3462            dot = Dot(this=dot, expression=expression)
                      -3463
                      -3464        return dot
                      +            
                      3481    @classmethod
                      +3482    def build(self, expressions: t.Sequence[Expression]) -> Dot:
                      +3483        """Build a Dot object with a sequence of expressions."""
                      +3484        if len(expressions) < 2:
                      +3485            raise ValueError(f"Dot requires >= 2 expressions.")
                      +3486
                      +3487        a, b, *expressions = expressions
                      +3488        dot = Dot(this=a, expression=b)
                      +3489
                      +3490        for expression in expressions:
                      +3491            dot = Dot(this=dot, expression=expression)
                      +3492
                      +3493        return dot
                       
                      @@ -30232,8 +30646,8 @@ If another Expression instance is passed,
                      -
                      3467class DPipe(Binary):
                      -3468    pass
                      +            
                      3496class DPipe(Binary):
                      +3497    pass
                       
                      @@ -30312,8 +30726,8 @@ If another Expression instance is passed,
                      -
                      3471class EQ(Binary, Predicate):
                      -3472    pass
                      +            
                      3500class EQ(Binary, Predicate):
                      +3501    pass
                       
                      @@ -30392,8 +30806,8 @@ If another Expression instance is passed,
                      -
                      3475class NullSafeEQ(Binary, Predicate):
                      -3476    pass
                      +            
                      3504class NullSafeEQ(Binary, Predicate):
                      +3505    pass
                       
                      @@ -30472,8 +30886,8 @@ If another Expression instance is passed,
                      -
                      3479class NullSafeNEQ(Binary, Predicate):
                      -3480    pass
                      +            
                      3508class NullSafeNEQ(Binary, Predicate):
                      +3509    pass
                       
                      @@ -30552,8 +30966,8 @@ If another Expression instance is passed,
                      -
                      3483class Distance(Binary):
                      -3484    pass
                      +            
                      3512class Distance(Binary):
                      +3513    pass
                       
                      @@ -30632,8 +31046,8 @@ If another Expression instance is passed,
                      -
                      3487class Escape(Binary):
                      -3488    pass
                      +            
                      3516class Escape(Binary):
                      +3517    pass
                       
                      @@ -30712,8 +31126,8 @@ If another Expression instance is passed,
                      -
                      3491class Glob(Binary, Predicate):
                      -3492    pass
                      +            
                      3520class Glob(Binary, Predicate):
                      +3521    pass
                       
                      @@ -30792,8 +31206,8 @@ If another Expression instance is passed,
                      -
                      3495class GT(Binary, Predicate):
                      -3496    pass
                      +            
                      3524class GT(Binary, Predicate):
                      +3525    pass
                       
                      @@ -30872,8 +31286,8 @@ If another Expression instance is passed,
                      -
                      3499class GTE(Binary, Predicate):
                      -3500    pass
                      +            
                      3528class GTE(Binary, Predicate):
                      +3529    pass
                       
                      @@ -30952,8 +31366,8 @@ If another Expression instance is passed,
                      -
                      3503class ILike(Binary, Predicate):
                      -3504    pass
                      +            
                      3532class ILike(Binary, Predicate):
                      +3533    pass
                       
                      @@ -31032,8 +31446,8 @@ If another Expression instance is passed,
                      -
                      3507class ILikeAny(Binary, Predicate):
                      -3508    pass
                      +            
                      3536class ILikeAny(Binary, Predicate):
                      +3537    pass
                       
                      @@ -31112,8 +31526,8 @@ If another Expression instance is passed,
                      -
                      3511class IntDiv(Binary):
                      -3512    pass
                      +            
                      3540class IntDiv(Binary):
                      +3541    pass
                       
                      @@ -31192,8 +31606,8 @@ If another Expression instance is passed,
                      -
                      3515class Is(Binary, Predicate):
                      -3516    pass
                      +            
                      3544class Is(Binary, Predicate):
                      +3545    pass
                       
                      @@ -31272,8 +31686,8 @@ If another Expression instance is passed,
                      -
                      3519class Kwarg(Binary):
                      -3520    """Kwarg in special functions like func(kwarg => y)."""
                      +            
                      3548class Kwarg(Binary):
                      +3549    """Kwarg in special functions like func(kwarg => y)."""
                       
                      @@ -31354,8 +31768,8 @@ If another Expression instance is passed,
                      -
                      3523class Like(Binary, Predicate):
                      -3524    pass
                      +            
                      3552class Like(Binary, Predicate):
                      +3553    pass
                       
                      @@ -31434,8 +31848,8 @@ If another Expression instance is passed,
                      -
                      3527class LikeAny(Binary, Predicate):
                      -3528    pass
                      +            
                      3556class LikeAny(Binary, Predicate):
                      +3557    pass
                       
                      @@ -31514,8 +31928,8 @@ If another Expression instance is passed,
                      -
                      3531class LT(Binary, Predicate):
                      -3532    pass
                      +            
                      3560class LT(Binary, Predicate):
                      +3561    pass
                       
                      @@ -31594,8 +32008,8 @@ If another Expression instance is passed,
                      -
                      3535class LTE(Binary, Predicate):
                      -3536    pass
                      +            
                      3564class LTE(Binary, Predicate):
                      +3565    pass
                       
                      @@ -31674,8 +32088,8 @@ If another Expression instance is passed,
                      -
                      3539class Mod(Binary):
                      -3540    pass
                      +            
                      3568class Mod(Binary):
                      +3569    pass
                       
                      @@ -31754,8 +32168,8 @@ If another Expression instance is passed,
                      -
                      3543class Mul(Binary):
                      -3544    pass
                      +            
                      3572class Mul(Binary):
                      +3573    pass
                       
                      @@ -31834,8 +32248,8 @@ If another Expression instance is passed,
                      -
                      3547class NEQ(Binary, Predicate):
                      -3548    pass
                      +            
                      3576class NEQ(Binary, Predicate):
                      +3577    pass
                       
                      @@ -31914,8 +32328,8 @@ If another Expression instance is passed,
                      -
                      3551class SimilarTo(Binary, Predicate):
                      -3552    pass
                      +            
                      3580class SimilarTo(Binary, Predicate):
                      +3581    pass
                       
                      @@ -31994,8 +32408,8 @@ If another Expression instance is passed,
                      -
                      3555class Slice(Binary):
                      -3556    arg_types = {"this": False, "expression": False}
                      +            
                      3584class Slice(Binary):
                      +3585    arg_types = {"this": False, "expression": False}
                       
                      @@ -32074,8 +32488,8 @@ If another Expression instance is passed,
                      -
                      3559class Sub(Binary):
                      -3560    pass
                      +            
                      3588class Sub(Binary):
                      +3589    pass
                       
                      @@ -32154,8 +32568,8 @@ If another Expression instance is passed,
                      -
                      3563class ArrayOverlaps(Binary):
                      -3564    pass
                      +            
                      3592class ArrayOverlaps(Binary):
                      +3593    pass
                       
                      @@ -32234,8 +32648,8 @@ If another Expression instance is passed,
                      -
                      3569class Unary(Condition):
                      -3570    pass
                      +            
                      3598class Unary(Condition):
                      +3599    pass
                       
                      @@ -32314,8 +32728,8 @@ If another Expression instance is passed,
                      -
                      3573class BitwiseNot(Unary):
                      -3574    pass
                      +            
                      3602class BitwiseNot(Unary):
                      +3603    pass
                       
                      @@ -32394,8 +32808,8 @@ If another Expression instance is passed,
                      -
                      3577class Not(Unary):
                      -3578    pass
                      +            
                      3606class Not(Unary):
                      +3607    pass
                       
                      @@ -32474,8 +32888,8 @@ If another Expression instance is passed,
                      -
                      3581class Paren(Unary):
                      -3582    arg_types = {"this": True, "with": False}
                      +            
                      3610class Paren(Unary):
                      +3611    arg_types = {"this": True, "with": False}
                       
                      @@ -32554,8 +32968,8 @@ If another Expression instance is passed,
                      -
                      3585class Neg(Unary):
                      -3586    pass
                      +            
                      3614class Neg(Unary):
                      +3615    pass
                       
                      @@ -32634,12 +33048,12 @@ If another Expression instance is passed,
                      -
                      3589class Alias(Expression):
                      -3590    arg_types = {"this": True, "alias": False}
                      -3591
                      -3592    @property
                      -3593    def output_name(self) -> str:
                      -3594        return self.alias
                      +            
                      3618class Alias(Expression):
                      +3619    arg_types = {"this": True, "alias": False}
                      +3620
                      +3621    @property
                      +3622    def output_name(self) -> str:
                      +3623        return self.alias
                       
                      @@ -32732,12 +33146,12 @@ If another Expression instance is passed,
                      -
                      3597class Aliases(Expression):
                      -3598    arg_types = {"this": True, "expressions": True}
                      -3599
                      -3600    @property
                      -3601    def aliases(self):
                      -3602        return self.expressions
                      +            
                      3626class Aliases(Expression):
                      +3627    arg_types = {"this": True, "expressions": True}
                      +3628
                      +3629    @property
                      +3630    def aliases(self):
                      +3631        return self.expressions
                       
                      @@ -32801,8 +33215,8 @@ If another Expression instance is passed,
                      -
                      3605class AtTimeZone(Expression):
                      -3606    arg_types = {"this": True, "zone": True}
                      +            
                      3634class AtTimeZone(Expression):
                      +3635    arg_types = {"this": True, "zone": True}
                       
                      @@ -32866,8 +33280,8 @@ If another Expression instance is passed,
                      -
                      3609class Between(Predicate):
                      -3610    arg_types = {"this": True, "low": True, "high": True}
                      +            
                      3638class Between(Predicate):
                      +3639    arg_types = {"this": True, "low": True, "high": True}
                       
                      @@ -32946,8 +33360,8 @@ If another Expression instance is passed,
                      -
                      3613class Bracket(Condition):
                      -3614    arg_types = {"this": True, "expressions": True}
                      +            
                      3642class Bracket(Condition):
                      +3643    arg_types = {"this": True, "expressions": True}
                       
                      @@ -33026,8 +33440,8 @@ If another Expression instance is passed,
                      -
                      3617class Distinct(Expression):
                      -3618    arg_types = {"expressions": False, "on": False}
                      +            
                      3646class Distinct(Expression):
                      +3647    arg_types = {"expressions": False, "on": False}
                       
                      @@ -33091,15 +33505,15 @@ If another Expression instance is passed,
                      -
                      3621class In(Predicate):
                      -3622    arg_types = {
                      -3623        "this": True,
                      -3624        "expressions": False,
                      -3625        "query": False,
                      -3626        "unnest": False,
                      -3627        "field": False,
                      -3628        "is_global": False,
                      -3629    }
                      +            
                      3650class In(Predicate):
                      +3651    arg_types = {
                      +3652        "this": True,
                      +3653        "expressions": False,
                      +3654        "query": False,
                      +3655        "unnest": False,
                      +3656        "field": False,
                      +3657        "is_global": False,
                      +3658    }
                       
                      @@ -33178,19 +33592,19 @@ If another Expression instance is passed,
                      -
                      3632class TimeUnit(Expression):
                      -3633    """Automatically converts unit arg into a var."""
                      -3634
                      -3635    arg_types = {"unit": False}
                      -3636
                      -3637    def __init__(self, **args):
                      -3638        unit = args.get("unit")
                      -3639        if isinstance(unit, (Column, Literal)):
                      -3640            args["unit"] = Var(this=unit.name)
                      -3641        elif isinstance(unit, Week):
                      -3642            unit.set("this", Var(this=unit.this.name))
                      -3643
                      -3644        super().__init__(**args)
                      +            
                      3661class TimeUnit(Expression):
                      +3662    """Automatically converts unit arg into a var."""
                      +3663
                      +3664    arg_types = {"unit": False}
                      +3665
                      +3666    def __init__(self, **args):
                      +3667        unit = args.get("unit")
                      +3668        if isinstance(unit, (Column, Literal)):
                      +3669            args["unit"] = Var(this=unit.name)
                      +3670        elif isinstance(unit, Week):
                      +3671            unit.set("this", Var(this=unit.this.name))
                      +3672
                      +3673        super().__init__(**args)
                       
                      @@ -33208,14 +33622,14 @@ If another Expression instance is passed,
                      -
                      3637    def __init__(self, **args):
                      -3638        unit = args.get("unit")
                      -3639        if isinstance(unit, (Column, Literal)):
                      -3640            args["unit"] = Var(this=unit.name)
                      -3641        elif isinstance(unit, Week):
                      -3642            unit.set("this", Var(this=unit.this.name))
                      -3643
                      -3644        super().__init__(**args)
                      +            
                      3666    def __init__(self, **args):
                      +3667        unit = args.get("unit")
                      +3668        if isinstance(unit, (Column, Literal)):
                      +3669            args["unit"] = Var(this=unit.name)
                      +3670        elif isinstance(unit, Week):
                      +3671            unit.set("this", Var(this=unit.this.name))
                      +3672
                      +3673        super().__init__(**args)
                       
                      @@ -33279,12 +33693,12 @@ If another Expression instance is passed,
                      -
                      3647class Interval(TimeUnit):
                      -3648    arg_types = {"this": False, "unit": False}
                      -3649
                      -3650    @property
                      -3651    def unit(self) -> t.Optional[Var]:
                      -3652        return self.args.get("unit")
                      +            
                      3676class Interval(TimeUnit):
                      +3677    arg_types = {"this": False, "unit": False}
                      +3678
                      +3679    @property
                      +3680    def unit(self) -> t.Optional[Var]:
                      +3681        return self.args.get("unit")
                       
                      @@ -33351,8 +33765,8 @@ If another Expression instance is passed,
                      -
                      3655class IgnoreNulls(Expression):
                      -3656    pass
                      +            
                      3684class IgnoreNulls(Expression):
                      +3685    pass
                       
                      @@ -33416,8 +33830,8 @@ If another Expression instance is passed,
                      -
                      3659class RespectNulls(Expression):
                      -3660    pass
                      +            
                      3688class RespectNulls(Expression):
                      +3689    pass
                       
                      @@ -33481,53 +33895,53 @@ If another Expression instance is passed,
                      -
                      3664class Func(Condition):
                      -3665    """
                      -3666    The base class for all function expressions.
                      -3667
                      -3668    Attributes:
                      -3669        is_var_len_args (bool): if set to True the last argument defined in arg_types will be
                      -3670            treated as a variable length argument and the argument's value will be stored as a list.
                      -3671        _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)
                      -3672            for this function expression. These values are used to map this node to a name during parsing
                      -3673            as well as to provide the function's name during SQL string generation. By default the SQL
                      -3674            name is set to the expression's class name transformed to snake case.
                      -3675    """
                      -3676
                      -3677    is_var_len_args = False
                      -3678
                      -3679    @classmethod
                      -3680    def from_arg_list(cls, args):
                      -3681        if cls.is_var_len_args:
                      -3682            all_arg_keys = list(cls.arg_types)
                      -3683            # If this function supports variable length argument treat the last argument as such.
                      -3684            non_var_len_arg_keys = all_arg_keys[:-1] if cls.is_var_len_args else all_arg_keys
                      -3685            num_non_var = len(non_var_len_arg_keys)
                      -3686
                      -3687            args_dict = {arg_key: arg for arg, arg_key in zip(args, non_var_len_arg_keys)}
                      -3688            args_dict[all_arg_keys[-1]] = args[num_non_var:]
                      -3689        else:
                      -3690            args_dict = {arg_key: arg for arg, arg_key in zip(args, cls.arg_types)}
                      -3691
                      -3692        return cls(**args_dict)
                      -3693
                      -3694    @classmethod
                      -3695    def sql_names(cls):
                      -3696        if cls is Func:
                      -3697            raise NotImplementedError(
                      -3698                "SQL name is only supported by concrete function implementations"
                      -3699            )
                      -3700        if "_sql_names" not in cls.__dict__:
                      -3701            cls._sql_names = [camel_to_snake_case(cls.__name__)]
                      -3702        return cls._sql_names
                      -3703
                      -3704    @classmethod
                      -3705    def sql_name(cls):
                      -3706        return cls.sql_names()[0]
                      +            
                      3693class Func(Condition):
                      +3694    """
                      +3695    The base class for all function expressions.
                      +3696
                      +3697    Attributes:
                      +3698        is_var_len_args (bool): if set to True the last argument defined in arg_types will be
                      +3699            treated as a variable length argument and the argument's value will be stored as a list.
                      +3700        _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)
                      +3701            for this function expression. These values are used to map this node to a name during parsing
                      +3702            as well as to provide the function's name during SQL string generation. By default the SQL
                      +3703            name is set to the expression's class name transformed to snake case.
                      +3704    """
                      +3705
                      +3706    is_var_len_args = False
                       3707
                       3708    @classmethod
                      -3709    def default_parser_mappings(cls):
                      -3710        return {name: cls.from_arg_list for name in cls.sql_names()}
                      +3709    def from_arg_list(cls, args):
                      +3710        if cls.is_var_len_args:
                      +3711            all_arg_keys = list(cls.arg_types)
                      +3712            # If this function supports variable length argument treat the last argument as such.
                      +3713            non_var_len_arg_keys = all_arg_keys[:-1] if cls.is_var_len_args else all_arg_keys
                      +3714            num_non_var = len(non_var_len_arg_keys)
                      +3715
                      +3716            args_dict = {arg_key: arg for arg, arg_key in zip(args, non_var_len_arg_keys)}
                      +3717            args_dict[all_arg_keys[-1]] = args[num_non_var:]
                      +3718        else:
                      +3719            args_dict = {arg_key: arg for arg, arg_key in zip(args, cls.arg_types)}
                      +3720
                      +3721        return cls(**args_dict)
                      +3722
                      +3723    @classmethod
                      +3724    def sql_names(cls):
                      +3725        if cls is Func:
                      +3726            raise NotImplementedError(
                      +3727                "SQL name is only supported by concrete function implementations"
                      +3728            )
                      +3729        if "_sql_names" not in cls.__dict__:
                      +3730            cls._sql_names = [camel_to_snake_case(cls.__name__)]
                      +3731        return cls._sql_names
                      +3732
                      +3733    @classmethod
                      +3734    def sql_name(cls):
                      +3735        return cls.sql_names()[0]
                      +3736
                      +3737    @classmethod
                      +3738    def default_parser_mappings(cls):
                      +3739        return {name: cls.from_arg_list for name in cls.sql_names()}
                       
                      @@ -33558,20 +33972,20 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3679    @classmethod
                      -3680    def from_arg_list(cls, args):
                      -3681        if cls.is_var_len_args:
                      -3682            all_arg_keys = list(cls.arg_types)
                      -3683            # If this function supports variable length argument treat the last argument as such.
                      -3684            non_var_len_arg_keys = all_arg_keys[:-1] if cls.is_var_len_args else all_arg_keys
                      -3685            num_non_var = len(non_var_len_arg_keys)
                      -3686
                      -3687            args_dict = {arg_key: arg for arg, arg_key in zip(args, non_var_len_arg_keys)}
                      -3688            args_dict[all_arg_keys[-1]] = args[num_non_var:]
                      -3689        else:
                      -3690            args_dict = {arg_key: arg for arg, arg_key in zip(args, cls.arg_types)}
                      -3691
                      -3692        return cls(**args_dict)
                      +            
                      3708    @classmethod
                      +3709    def from_arg_list(cls, args):
                      +3710        if cls.is_var_len_args:
                      +3711            all_arg_keys = list(cls.arg_types)
                      +3712            # If this function supports variable length argument treat the last argument as such.
                      +3713            non_var_len_arg_keys = all_arg_keys[:-1] if cls.is_var_len_args else all_arg_keys
                      +3714            num_non_var = len(non_var_len_arg_keys)
                      +3715
                      +3716            args_dict = {arg_key: arg for arg, arg_key in zip(args, non_var_len_arg_keys)}
                      +3717            args_dict[all_arg_keys[-1]] = args[num_non_var:]
                      +3718        else:
                      +3719            args_dict = {arg_key: arg for arg, arg_key in zip(args, cls.arg_types)}
                      +3720
                      +3721        return cls(**args_dict)
                       
                      @@ -33590,15 +34004,15 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3694    @classmethod
                      -3695    def sql_names(cls):
                      -3696        if cls is Func:
                      -3697            raise NotImplementedError(
                      -3698                "SQL name is only supported by concrete function implementations"
                      -3699            )
                      -3700        if "_sql_names" not in cls.__dict__:
                      -3701            cls._sql_names = [camel_to_snake_case(cls.__name__)]
                      -3702        return cls._sql_names
                      +            
                      3723    @classmethod
                      +3724    def sql_names(cls):
                      +3725        if cls is Func:
                      +3726            raise NotImplementedError(
                      +3727                "SQL name is only supported by concrete function implementations"
                      +3728            )
                      +3729        if "_sql_names" not in cls.__dict__:
                      +3730            cls._sql_names = [camel_to_snake_case(cls.__name__)]
                      +3731        return cls._sql_names
                       
                      @@ -33617,9 +34031,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3704    @classmethod
                      -3705    def sql_name(cls):
                      -3706        return cls.sql_names()[0]
                      +            
                      3733    @classmethod
                      +3734    def sql_name(cls):
                      +3735        return cls.sql_names()[0]
                       
                      @@ -33638,9 +34052,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3708    @classmethod
                      -3709    def default_parser_mappings(cls):
                      -3710        return {name: cls.from_arg_list for name in cls.sql_names()}
                      +            
                      3737    @classmethod
                      +3738    def default_parser_mappings(cls):
                      +3739        return {name: cls.from_arg_list for name in cls.sql_names()}
                       
                      @@ -33720,8 +34134,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3713class AggFunc(Func):
                      -3714    pass
                      +            
                      3742class AggFunc(Func):
                      +3743    pass
                       
                      @@ -33807,8 +34221,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3717class ParameterizedAgg(AggFunc):
                      -3718    arg_types = {"this": True, "expressions": True, "params": True}
                      +            
                      3746class ParameterizedAgg(AggFunc):
                      +3747    arg_types = {"this": True, "expressions": True, "params": True}
                       
                      @@ -33894,8 +34308,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3721class Abs(Func):
                      -3722    pass
                      +            
                      3750class Abs(Func):
                      +3751    pass
                       
                      @@ -33981,9 +34395,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3725class Anonymous(Func):
                      -3726    arg_types = {"this": True, "expressions": False}
                      -3727    is_var_len_args = True
                      +            
                      3754class Anonymous(Func):
                      +3755    arg_types = {"this": True, "expressions": False}
                      +3756    is_var_len_args = True
                       
                      @@ -34069,9 +34483,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3732class Hll(AggFunc):
                      -3733    arg_types = {"this": True, "expressions": False}
                      -3734    is_var_len_args = True
                      +            
                      3761class Hll(AggFunc):
                      +3762    arg_types = {"this": True, "expressions": False}
                      +3763    is_var_len_args = True
                       
                      @@ -34157,9 +34571,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3737class ApproxDistinct(AggFunc):
                      -3738    arg_types = {"this": True, "accuracy": False}
                      -3739    _sql_names = ["APPROX_DISTINCT", "APPROX_COUNT_DISTINCT"]
                      +            
                      3766class ApproxDistinct(AggFunc):
                      +3767    arg_types = {"this": True, "accuracy": False}
                      +3768    _sql_names = ["APPROX_DISTINCT", "APPROX_COUNT_DISTINCT"]
                       
                      @@ -34245,9 +34659,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3742class Array(Func):
                      -3743    arg_types = {"expressions": False}
                      -3744    is_var_len_args = True
                      +            
                      3771class Array(Func):
                      +3772    arg_types = {"expressions": False}
                      +3773    is_var_len_args = True
                       
                      @@ -34333,8 +34747,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3748class ToChar(Func):
                      -3749    arg_types = {"this": True, "format": False}
                      +            
                      3777class ToChar(Func):
                      +3778    arg_types = {"this": True, "format": False}
                       
                      @@ -34420,8 +34834,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3752class GenerateSeries(Func):
                      -3753    arg_types = {"start": True, "end": True, "step": False}
                      +            
                      3781class GenerateSeries(Func):
                      +3782    arg_types = {"start": True, "end": True, "step": False}
                       
                      @@ -34507,8 +34921,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3756class ArrayAgg(AggFunc):
                      -3757    pass
                      +            
                      3785class ArrayAgg(AggFunc):
                      +3786    pass
                       
                      @@ -34594,8 +35008,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3760class ArrayAll(Func):
                      -3761    arg_types = {"this": True, "expression": True}
                      +            
                      3789class ArrayAll(Func):
                      +3790    arg_types = {"this": True, "expression": True}
                       
                      @@ -34681,8 +35095,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3764class ArrayAny(Func):
                      -3765    arg_types = {"this": True, "expression": True}
                      +            
                      3793class ArrayAny(Func):
                      +3794    arg_types = {"this": True, "expression": True}
                       
                      @@ -34768,9 +35182,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3768class ArrayConcat(Func):
                      -3769    arg_types = {"this": True, "expressions": False}
                      -3770    is_var_len_args = True
                      +            
                      3797class ArrayConcat(Func):
                      +3798    arg_types = {"this": True, "expressions": False}
                      +3799    is_var_len_args = True
                       
                      @@ -34856,8 +35270,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3773class ArrayContains(Binary, Func):
                      -3774    pass
                      +            
                      3802class ArrayContains(Binary, Func):
                      +3803    pass
                       
                      @@ -34943,8 +35357,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3777class ArrayContained(Binary):
                      -3778    pass
                      +            
                      3806class ArrayContained(Binary):
                      +3807    pass
                       
                      @@ -35023,9 +35437,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3781class ArrayFilter(Func):
                      -3782    arg_types = {"this": True, "expression": True}
                      -3783    _sql_names = ["FILTER", "ARRAY_FILTER"]
                      +            
                      3810class ArrayFilter(Func):
                      +3811    arg_types = {"this": True, "expression": True}
                      +3812    _sql_names = ["FILTER", "ARRAY_FILTER"]
                       
                      @@ -35111,8 +35525,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3786class ArrayJoin(Func):
                      -3787    arg_types = {"this": True, "expression": True, "null": False}
                      +            
                      3815class ArrayJoin(Func):
                      +3816    arg_types = {"this": True, "expression": True, "null": False}
                       
                      @@ -35198,8 +35612,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3790class ArraySize(Func):
                      -3791    arg_types = {"this": True, "expression": False}
                      +            
                      3819class ArraySize(Func):
                      +3820    arg_types = {"this": True, "expression": False}
                       
                      @@ -35285,8 +35699,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3794class ArraySort(Func):
                      -3795    arg_types = {"this": True, "expression": False}
                      +            
                      3823class ArraySort(Func):
                      +3824    arg_types = {"this": True, "expression": False}
                       
                      @@ -35372,8 +35786,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3798class ArraySum(Func):
                      -3799    pass
                      +            
                      3827class ArraySum(Func):
                      +3828    pass
                       
                      @@ -35459,8 +35873,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3802class ArrayUnionAgg(AggFunc):
                      -3803    pass
                      +            
                      3831class ArrayUnionAgg(AggFunc):
                      +3832    pass
                       
                      @@ -35546,8 +35960,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3806class Avg(AggFunc):
                      -3807    pass
                      +            
                      3835class Avg(AggFunc):
                      +3836    pass
                       
                      @@ -35633,8 +36047,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3810class AnyValue(AggFunc):
                      -3811    pass
                      +            
                      3839class AnyValue(AggFunc):
                      +3840    pass
                       
                      @@ -35720,24 +36134,24 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3814class Case(Func):
                      -3815    arg_types = {"this": False, "ifs": True, "default": False}
                      -3816
                      -3817    def when(self, condition: ExpOrStr, then: ExpOrStr, copy: bool = True, **opts) -> Case:
                      -3818        instance = _maybe_copy(self, copy)
                      -3819        instance.append(
                      -3820            "ifs",
                      -3821            If(
                      -3822                this=maybe_parse(condition, copy=copy, **opts),
                      -3823                true=maybe_parse(then, copy=copy, **opts),
                      -3824            ),
                      -3825        )
                      -3826        return instance
                      -3827
                      -3828    def else_(self, condition: ExpOrStr, copy: bool = True, **opts) -> Case:
                      -3829        instance = _maybe_copy(self, copy)
                      -3830        instance.set("default", maybe_parse(condition, copy=copy, **opts))
                      -3831        return instance
                      +            
                      3843class Case(Func):
                      +3844    arg_types = {"this": False, "ifs": True, "default": False}
                      +3845
                      +3846    def when(self, condition: ExpOrStr, then: ExpOrStr, copy: bool = True, **opts) -> Case:
                      +3847        instance = _maybe_copy(self, copy)
                      +3848        instance.append(
                      +3849            "ifs",
                      +3850            If(
                      +3851                this=maybe_parse(condition, copy=copy, **opts),
                      +3852                true=maybe_parse(then, copy=copy, **opts),
                      +3853            ),
                      +3854        )
                      +3855        return instance
                      +3856
                      +3857    def else_(self, condition: ExpOrStr, copy: bool = True, **opts) -> Case:
                      +3858        instance = _maybe_copy(self, copy)
                      +3859        instance.set("default", maybe_parse(condition, copy=copy, **opts))
                      +3860        return instance
                       
                      @@ -35754,16 +36168,16 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3817    def when(self, condition: ExpOrStr, then: ExpOrStr, copy: bool = True, **opts) -> Case:
                      -3818        instance = _maybe_copy(self, copy)
                      -3819        instance.append(
                      -3820            "ifs",
                      -3821            If(
                      -3822                this=maybe_parse(condition, copy=copy, **opts),
                      -3823                true=maybe_parse(then, copy=copy, **opts),
                      -3824            ),
                      -3825        )
                      -3826        return instance
                      +            
                      3846    def when(self, condition: ExpOrStr, then: ExpOrStr, copy: bool = True, **opts) -> Case:
                      +3847        instance = _maybe_copy(self, copy)
                      +3848        instance.append(
                      +3849            "ifs",
                      +3850            If(
                      +3851                this=maybe_parse(condition, copy=copy, **opts),
                      +3852                true=maybe_parse(then, copy=copy, **opts),
                      +3853            ),
                      +3854        )
                      +3855        return instance
                       
                      @@ -35781,10 +36195,10 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3828    def else_(self, condition: ExpOrStr, copy: bool = True, **opts) -> Case:
                      -3829        instance = _maybe_copy(self, copy)
                      -3830        instance.set("default", maybe_parse(condition, copy=copy, **opts))
                      -3831        return instance
                      +            
                      3857    def else_(self, condition: ExpOrStr, copy: bool = True, **opts) -> Case:
                      +3858        instance = _maybe_copy(self, copy)
                      +3859        instance.set("default", maybe_parse(condition, copy=copy, **opts))
                      +3860        return instance
                       
                      @@ -35871,23 +36285,23 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3834class Cast(Func):
                      -3835    arg_types = {"this": True, "to": True}
                      -3836
                      -3837    @property
                      -3838    def name(self) -> str:
                      -3839        return self.this.name
                      -3840
                      -3841    @property
                      -3842    def to(self) -> DataType:
                      -3843        return self.args["to"]
                      -3844
                      -3845    @property
                      -3846    def output_name(self) -> str:
                      -3847        return self.name
                      -3848
                      -3849    def is_type(self, dtype: DataType.Type) -> bool:
                      -3850        return self.to.is_type(dtype)
                      +            
                      3863class Cast(Func):
                      +3864    arg_types = {"this": True, "to": True}
                      +3865
                      +3866    @property
                      +3867    def name(self) -> str:
                      +3868        return self.this.name
                      +3869
                      +3870    @property
                      +3871    def to(self) -> DataType:
                      +3872        return self.args["to"]
                      +3873
                      +3874    @property
                      +3875    def output_name(self) -> str:
                      +3876        return self.name
                      +3877
                      +3878    def is_type(self, *dtypes: str | DataType | DataType.Type) -> bool:
                      +3879        return self.to.is_type(*dtypes)
                       
                      @@ -35928,14 +36342,14 @@ name is set to the expression's class name transformed to snake case.
                      def - is_type(self, dtype: sqlglot.expressions.DataType.Type) -> bool: + is_type( self, *dtypes: str | sqlglot.expressions.DataType | sqlglot.expressions.DataType.Type) -> bool:
                      -
                      3849    def is_type(self, dtype: DataType.Type) -> bool:
                      -3850        return self.to.is_type(dtype)
                      +            
                      3878    def is_type(self, *dtypes: str | DataType | DataType.Type) -> bool:
                      +3879        return self.to.is_type(*dtypes)
                       
                      @@ -36021,8 +36435,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3853class CastToStrType(Func):
                      -3854    arg_types = {"this": True, "expression": True}
                      +            
                      3882class CastToStrType(Func):
                      +3883    arg_types = {"this": True, "expression": True}
                       
                      @@ -36108,8 +36522,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3857class Collate(Binary):
                      -3858    pass
                      +            
                      3886class Collate(Binary):
                      +3887    pass
                       
                      @@ -36188,8 +36602,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3861class TryCast(Cast):
                      -3862    pass
                      +            
                      3890class TryCast(Cast):
                      +3891    pass
                       
                      @@ -36279,9 +36693,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3865class Ceil(Func):
                      -3866    arg_types = {"this": True, "decimals": False}
                      -3867    _sql_names = ["CEIL", "CEILING"]
                      +            
                      3894class Ceil(Func):
                      +3895    arg_types = {"this": True, "decimals": False}
                      +3896    _sql_names = ["CEIL", "CEILING"]
                       
                      @@ -36367,9 +36781,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3870class Coalesce(Func):
                      -3871    arg_types = {"this": True, "expressions": False}
                      -3872    is_var_len_args = True
                      +            
                      3899class Coalesce(Func):
                      +3900    arg_types = {"this": True, "expressions": False}
                      +3901    is_var_len_args = True
                       
                      @@ -36455,9 +36869,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3875class Concat(Func):
                      -3876    arg_types = {"expressions": True}
                      -3877    is_var_len_args = True
                      +            
                      3904class Concat(Func):
                      +3905    arg_types = {"expressions": True}
                      +3906    is_var_len_args = True
                       
                      @@ -36543,8 +36957,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3880class ConcatWs(Concat):
                      -3881    _sql_names = ["CONCAT_WS"]
                      +            
                      3909class ConcatWs(Concat):
                      +3910    _sql_names = ["CONCAT_WS"]
                       
                      @@ -36630,8 +37044,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3884class Count(AggFunc):
                      -3885    arg_types = {"this": False}
                      +            
                      3913class Count(AggFunc):
                      +3914    arg_types = {"this": False}
                       
                      @@ -36717,8 +37131,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3888class CountIf(AggFunc):
                      -3889    pass
                      +            
                      3917class CountIf(AggFunc):
                      +3918    pass
                       
                      @@ -36804,8 +37218,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3892class CurrentDate(Func):
                      -3893    arg_types = {"this": False}
                      +            
                      3921class CurrentDate(Func):
                      +3922    arg_types = {"this": False}
                       
                      @@ -36891,8 +37305,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3896class CurrentDatetime(Func):
                      -3897    arg_types = {"this": False}
                      +            
                      3925class CurrentDatetime(Func):
                      +3926    arg_types = {"this": False}
                       
                      @@ -36978,8 +37392,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3900class CurrentTime(Func):
                      -3901    arg_types = {"this": False}
                      +            
                      3929class CurrentTime(Func):
                      +3930    arg_types = {"this": False}
                       
                      @@ -37065,8 +37479,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3904class CurrentTimestamp(Func):
                      -3905    arg_types = {"this": False}
                      +            
                      3933class CurrentTimestamp(Func):
                      +3934    arg_types = {"this": False}
                       
                      @@ -37152,8 +37566,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3908class CurrentUser(Func):
                      -3909    arg_types = {"this": False}
                      +            
                      3937class CurrentUser(Func):
                      +3938    arg_types = {"this": False}
                       
                      @@ -37239,8 +37653,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3912class DateAdd(Func, TimeUnit):
                      -3913    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      3941class DateAdd(Func, TimeUnit):
                      +3942    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -37329,8 +37743,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3916class DateSub(Func, TimeUnit):
                      -3917    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      3945class DateSub(Func, TimeUnit):
                      +3946    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -37419,9 +37833,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3920class DateDiff(Func, TimeUnit):
                      -3921    _sql_names = ["DATEDIFF", "DATE_DIFF"]
                      -3922    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      3949class DateDiff(Func, TimeUnit):
                      +3950    _sql_names = ["DATEDIFF", "DATE_DIFF"]
                      +3951    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -37510,8 +37924,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3925class DateTrunc(Func):
                      -3926    arg_types = {"unit": True, "this": True, "zone": False}
                      +            
                      3954class DateTrunc(Func):
                      +3955    arg_types = {"unit": True, "this": True, "zone": False}
                       
                      @@ -37597,8 +38011,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3929class DatetimeAdd(Func, TimeUnit):
                      -3930    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      3958class DatetimeAdd(Func, TimeUnit):
                      +3959    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -37687,8 +38101,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3933class DatetimeSub(Func, TimeUnit):
                      -3934    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      3962class DatetimeSub(Func, TimeUnit):
                      +3963    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -37777,8 +38191,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3937class DatetimeDiff(Func, TimeUnit):
                      -3938    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      3966class DatetimeDiff(Func, TimeUnit):
                      +3967    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -37867,8 +38281,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3941class DatetimeTrunc(Func, TimeUnit):
                      -3942    arg_types = {"this": True, "unit": True, "zone": False}
                      +            
                      3970class DatetimeTrunc(Func, TimeUnit):
                      +3971    arg_types = {"this": True, "unit": True, "zone": False}
                       
                      @@ -37957,8 +38371,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3945class DayOfWeek(Func):
                      -3946    _sql_names = ["DAY_OF_WEEK", "DAYOFWEEK"]
                      +            
                      3974class DayOfWeek(Func):
                      +3975    _sql_names = ["DAY_OF_WEEK", "DAYOFWEEK"]
                       
                      @@ -38044,8 +38458,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3949class DayOfMonth(Func):
                      -3950    _sql_names = ["DAY_OF_MONTH", "DAYOFMONTH"]
                      +            
                      3978class DayOfMonth(Func):
                      +3979    _sql_names = ["DAY_OF_MONTH", "DAYOFMONTH"]
                       
                      @@ -38131,8 +38545,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3953class DayOfYear(Func):
                      -3954    _sql_names = ["DAY_OF_YEAR", "DAYOFYEAR"]
                      +            
                      3982class DayOfYear(Func):
                      +3983    _sql_names = ["DAY_OF_YEAR", "DAYOFYEAR"]
                       
                      @@ -38218,8 +38632,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3957class WeekOfYear(Func):
                      -3958    _sql_names = ["WEEK_OF_YEAR", "WEEKOFYEAR"]
                      +            
                      3986class WeekOfYear(Func):
                      +3987    _sql_names = ["WEEK_OF_YEAR", "WEEKOFYEAR"]
                       
                      @@ -38305,8 +38719,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3961class LastDateOfMonth(Func):
                      -3962    pass
                      +            
                      3990class LastDateOfMonth(Func):
                      +3991    pass
                       
                      @@ -38392,8 +38806,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3965class Extract(Func):
                      -3966    arg_types = {"this": True, "expression": True}
                      +            
                      3994class Extract(Func):
                      +3995    arg_types = {"this": True, "expression": True}
                       
                      @@ -38479,8 +38893,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3969class TimestampAdd(Func, TimeUnit):
                      -3970    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      3998class TimestampAdd(Func, TimeUnit):
                      +3999    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -38569,8 +38983,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3973class TimestampSub(Func, TimeUnit):
                      -3974    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      4002class TimestampSub(Func, TimeUnit):
                      +4003    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -38659,8 +39073,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3977class TimestampDiff(Func, TimeUnit):
                      -3978    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      4006class TimestampDiff(Func, TimeUnit):
                      +4007    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -38749,8 +39163,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3981class TimestampTrunc(Func, TimeUnit):
                      -3982    arg_types = {"this": True, "unit": True, "zone": False}
                      +            
                      4010class TimestampTrunc(Func, TimeUnit):
                      +4011    arg_types = {"this": True, "unit": True, "zone": False}
                       
                      @@ -38839,8 +39253,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3985class TimeAdd(Func, TimeUnit):
                      -3986    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      4014class TimeAdd(Func, TimeUnit):
                      +4015    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -38929,8 +39343,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3989class TimeSub(Func, TimeUnit):
                      -3990    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      4018class TimeSub(Func, TimeUnit):
                      +4019    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -39019,8 +39433,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3993class TimeDiff(Func, TimeUnit):
                      -3994    arg_types = {"this": True, "expression": True, "unit": False}
                      +            
                      4022class TimeDiff(Func, TimeUnit):
                      +4023    arg_types = {"this": True, "expression": True, "unit": False}
                       
                      @@ -39109,8 +39523,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      3997class TimeTrunc(Func, TimeUnit):
                      -3998    arg_types = {"this": True, "unit": True, "zone": False}
                      +            
                      4026class TimeTrunc(Func, TimeUnit):
                      +4027    arg_types = {"this": True, "unit": True, "zone": False}
                       
                      @@ -39199,9 +39613,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4001class DateFromParts(Func):
                      -4002    _sql_names = ["DATEFROMPARTS"]
                      -4003    arg_types = {"year": True, "month": True, "day": True}
                      +            
                      4030class DateFromParts(Func):
                      +4031    _sql_names = ["DATEFROMPARTS"]
                      +4032    arg_types = {"year": True, "month": True, "day": True}
                       
                      @@ -39287,8 +39701,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4006class DateStrToDate(Func):
                      -4007    pass
                      +            
                      4035class DateStrToDate(Func):
                      +4036    pass
                       
                      @@ -39374,8 +39788,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4010class DateToDateStr(Func):
                      -4011    pass
                      +            
                      4039class DateToDateStr(Func):
                      +4040    pass
                       
                      @@ -39461,8 +39875,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4014class DateToDi(Func):
                      -4015    pass
                      +            
                      4043class DateToDi(Func):
                      +4044    pass
                       
                      @@ -39548,8 +39962,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4018class Day(Func):
                      -4019    pass
                      +            
                      4047class Day(Func):
                      +4048    pass
                       
                      @@ -39635,8 +40049,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4022class Decode(Func):
                      -4023    arg_types = {"this": True, "charset": True, "replace": False}
                      +            
                      4051class Decode(Func):
                      +4052    arg_types = {"this": True, "charset": True, "replace": False}
                       
                      @@ -39722,8 +40136,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4026class DiToDate(Func):
                      -4027    pass
                      +            
                      4055class DiToDate(Func):
                      +4056    pass
                       
                      @@ -39809,8 +40223,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4030class Encode(Func):
                      -4031    arg_types = {"this": True, "charset": True}
                      +            
                      4059class Encode(Func):
                      +4060    arg_types = {"this": True, "charset": True}
                       
                      @@ -39896,8 +40310,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4034class Exp(Func):
                      -4035    pass
                      +            
                      4063class Exp(Func):
                      +4064    pass
                       
                      @@ -39983,8 +40397,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4038class Explode(Func):
                      -4039    pass
                      +            
                      4067class Explode(Func):
                      +4068    pass
                       
                      @@ -40070,8 +40484,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4042class Floor(Func):
                      -4043    arg_types = {"this": True, "decimals": False}
                      +            
                      4071class Floor(Func):
                      +4072    arg_types = {"this": True, "decimals": False}
                       
                      @@ -40157,8 +40571,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4046class FromBase64(Func):
                      -4047    pass
                      +            
                      4075class FromBase64(Func):
                      +4076    pass
                       
                      @@ -40244,8 +40658,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4050class ToBase64(Func):
                      -4051    pass
                      +            
                      4079class ToBase64(Func):
                      +4080    pass
                       
                      @@ -40331,9 +40745,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4054class Greatest(Func):
                      -4055    arg_types = {"this": True, "expressions": False}
                      -4056    is_var_len_args = True
                      +            
                      4083class Greatest(Func):
                      +4084    arg_types = {"this": True, "expressions": False}
                      +4085    is_var_len_args = True
                       
                      @@ -40419,8 +40833,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4059class GroupConcat(Func):
                      -4060    arg_types = {"this": True, "separator": False}
                      +            
                      4088class GroupConcat(Func):
                      +4089    arg_types = {"this": True, "separator": False}
                       
                      @@ -40506,8 +40920,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4063class Hex(Func):
                      -4064    pass
                      +            
                      4092class Hex(Func):
                      +4093    pass
                       
                      @@ -40593,8 +41007,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4067class If(Func):
                      -4068    arg_types = {"this": True, "true": True, "false": False}
                      +            
                      4096class If(Func):
                      +4097    arg_types = {"this": True, "true": True, "false": False}
                       
                      @@ -40680,9 +41094,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4071class IfNull(Func):
                      -4072    arg_types = {"this": True, "expression": False}
                      -4073    _sql_names = ["IFNULL", "NVL"]
                      +            
                      4100class IfNull(Func):
                      +4101    arg_types = {"this": True, "expression": False}
                      +4102    _sql_names = ["IFNULL", "NVL"]
                       
                      @@ -40768,8 +41182,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4076class Initcap(Func):
                      -4077    arg_types = {"this": True, "expression": False}
                      +            
                      4105class Initcap(Func):
                      +4106    arg_types = {"this": True, "expression": False}
                       
                      @@ -40855,8 +41269,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4080class JSONKeyValue(Expression):
                      -4081    arg_types = {"this": True, "expression": True}
                      +            
                      4109class JSONKeyValue(Expression):
                      +4110    arg_types = {"this": True, "expression": True}
                       
                      @@ -40920,15 +41334,15 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4084class JSONObject(Func):
                      -4085    arg_types = {
                      -4086        "expressions": False,
                      -4087        "null_handling": False,
                      -4088        "unique_keys": False,
                      -4089        "return_type": False,
                      -4090        "format_json": False,
                      -4091        "encoding": False,
                      -4092    }
                      +            
                      4113class JSONObject(Func):
                      +4114    arg_types = {
                      +4115        "expressions": False,
                      +4116        "null_handling": False,
                      +4117        "unique_keys": False,
                      +4118        "return_type": False,
                      +4119        "format_json": False,
                      +4120        "encoding": False,
                      +4121    }
                       
                      @@ -41014,8 +41428,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4095class OpenJSONColumnDef(Expression):
                      -4096    arg_types = {"this": True, "kind": True, "path": False, "as_json": False}
                      +            
                      4124class OpenJSONColumnDef(Expression):
                      +4125    arg_types = {"this": True, "kind": True, "path": False, "as_json": False}
                       
                      @@ -41079,8 +41493,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4099class OpenJSON(Func):
                      -4100    arg_types = {"this": True, "path": False, "expressions": False}
                      +            
                      4128class OpenJSON(Func):
                      +4129    arg_types = {"this": True, "path": False, "expressions": False}
                       
                      @@ -41166,8 +41580,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4103class JSONBContains(Binary):
                      -4104    _sql_names = ["JSONB_CONTAINS"]
                      +            
                      4132class JSONBContains(Binary):
                      +4133    _sql_names = ["JSONB_CONTAINS"]
                       
                      @@ -41246,8 +41660,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4107class JSONExtract(Binary, Func):
                      -4108    _sql_names = ["JSON_EXTRACT"]
                      +            
                      4136class JSONExtract(Binary, Func):
                      +4137    _sql_names = ["JSON_EXTRACT"]
                       
                      @@ -41333,8 +41747,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4111class JSONExtractScalar(JSONExtract):
                      -4112    _sql_names = ["JSON_EXTRACT_SCALAR"]
                      +            
                      4140class JSONExtractScalar(JSONExtract):
                      +4141    _sql_names = ["JSON_EXTRACT_SCALAR"]
                       
                      @@ -41420,8 +41834,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4115class JSONBExtract(JSONExtract):
                      -4116    _sql_names = ["JSONB_EXTRACT"]
                      +            
                      4144class JSONBExtract(JSONExtract):
                      +4145    _sql_names = ["JSONB_EXTRACT"]
                       
                      @@ -41507,8 +41921,8 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4119class JSONBExtractScalar(JSONExtract):
                      -4120    _sql_names = ["JSONB_EXTRACT_SCALAR"]
                      +            
                      4148class JSONBExtractScalar(JSONExtract):
                      +4149    _sql_names = ["JSONB_EXTRACT_SCALAR"]
                       
                      @@ -41594,9 +42008,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4123class JSONFormat(Func):
                      -4124    arg_types = {"this": False, "options": False}
                      -4125    _sql_names = ["JSON_FORMAT"]
                      +            
                      4152class JSONFormat(Func):
                      +4153    arg_types = {"this": False, "options": False}
                      +4154    _sql_names = ["JSON_FORMAT"]
                       
                      @@ -41682,9 +42096,9 @@ name is set to the expression's class name transformed to snake case.
                      -
                      4128class Least(Func):
                      -4129    arg_types = {"expressions": False}
                      -4130    is_var_len_args = True
                      +            
                      4157class Least(Func):
                      +4158    arg_types = {"expressions": False}
                      +4159    is_var_len_args = True
                       
                      @@ -41755,6 +42169,180 @@ name is set to the expression's class name transformed to snake case.
                      neq
                      rlike
                      +
                      + +
                      +
                      +
                      + +
                      + + class + Left(Func): + + + +
                      + +
                      4162class Left(Func):
                      +4163    arg_types = {"this": True, "expression": True}
                      +
                      + + + + + +
                      +
                    @@ -804,2282 +810,2310 @@
                    44 Default: "upper" 45 alias_post_tablesample (bool): if the table alias comes after tablesample 46 Default: False - 47 unsupported_level (ErrorLevel): determines the generator's behavior when it encounters - 48 unsupported expressions. Default ErrorLevel.WARN. - 49 null_ordering (str): Indicates the default null ordering method to use if not explicitly set. - 50 Options are "nulls_are_small", "nulls_are_large", "nulls_are_last". - 51 Default: "nulls_are_small" - 52 max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError. - 53 This is only relevant if unsupported_level is ErrorLevel.RAISE. - 54 Default: 3 - 55 leading_comma (bool): if the the comma is leading or trailing in select statements - 56 Default: False - 57 max_text_width: The max number of characters in a segment before creating new lines in pretty mode. - 58 The default is on the smaller end because the length only represents a segment and not the true - 59 line length. - 60 Default: 80 - 61 comments: Whether or not to preserve comments in the output SQL code. - 62 Default: True - 63 """ - 64 - 65 TRANSFORMS = { - 66 exp.DateAdd: lambda self, e: self.func( - 67 "DATE_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) - 68 ), - 69 exp.TsOrDsAdd: lambda self, e: self.func( - 70 "TS_OR_DS_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) - 71 ), - 72 exp.VarMap: lambda self, e: self.func("MAP", e.args["keys"], e.args["values"]), - 73 exp.CharacterSetProperty: lambda self, e: f"{'DEFAULT ' if e.args.get('default') else ''}CHARACTER SET={self.sql(e, 'this')}", - 74 exp.ExecuteAsProperty: lambda self, e: self.naked_property(e), - 75 exp.ExternalProperty: lambda self, e: "EXTERNAL", - 76 exp.LanguageProperty: lambda self, e: self.naked_property(e), - 77 exp.LocationProperty: lambda self, e: self.naked_property(e), - 78 exp.LogProperty: lambda self, e: f"{'NO ' if e.args.get('no') else ''}LOG", - 79 exp.MaterializedProperty: lambda self, e: "MATERIALIZED", - 80 exp.NoPrimaryIndexProperty: lambda self, e: "NO PRIMARY INDEX", - 81 exp.OnCommitProperty: lambda self, e: f"ON COMMIT {'DELETE' if e.args.get('delete') else 'PRESERVE'} ROWS", - 82 exp.ReturnsProperty: lambda self, e: self.naked_property(e), - 83 exp.SetProperty: lambda self, e: f"{'MULTI' if e.args.get('multi') else ''}SET", - 84 exp.SettingsProperty: lambda self, e: f"SETTINGS{self.seg('')}{(self.expressions(e))}", - 85 exp.SqlSecurityProperty: lambda self, e: f"SQL SECURITY {'DEFINER' if e.args.get('definer') else 'INVOKER'}", - 86 exp.TemporaryProperty: lambda self, e: f"TEMPORARY", - 87 exp.TransientProperty: lambda self, e: "TRANSIENT", - 88 exp.StabilityProperty: lambda self, e: e.name, - 89 exp.VolatileProperty: lambda self, e: "VOLATILE", - 90 exp.WithJournalTableProperty: lambda self, e: f"WITH JOURNAL TABLE={self.sql(e, 'this')}", - 91 exp.CaseSpecificColumnConstraint: lambda self, e: f"{'NOT ' if e.args.get('not_') else ''}CASESPECIFIC", - 92 exp.CharacterSetColumnConstraint: lambda self, e: f"CHARACTER SET {self.sql(e, 'this')}", - 93 exp.DateFormatColumnConstraint: lambda self, e: f"FORMAT {self.sql(e, 'this')}", - 94 exp.OnUpdateColumnConstraint: lambda self, e: f"ON UPDATE {self.sql(e, 'this')}", - 95 exp.UppercaseColumnConstraint: lambda self, e: f"UPPERCASE", - 96 exp.TitleColumnConstraint: lambda self, e: f"TITLE {self.sql(e, 'this')}", - 97 exp.PathColumnConstraint: lambda self, e: f"PATH {self.sql(e, 'this')}", - 98 exp.CheckColumnConstraint: lambda self, e: f"CHECK ({self.sql(e, 'this')})", - 99 exp.CommentColumnConstraint: lambda self, e: f"COMMENT {self.sql(e, 'this')}", - 100 exp.CollateColumnConstraint: lambda self, e: f"COLLATE {self.sql(e, 'this')}", - 101 exp.EncodeColumnConstraint: lambda self, e: f"ENCODE {self.sql(e, 'this')}", - 102 exp.DefaultColumnConstraint: lambda self, e: f"DEFAULT {self.sql(e, 'this')}", - 103 exp.InlineLengthColumnConstraint: lambda self, e: f"INLINE LENGTH {self.sql(e, 'this')}", - 104 } - 105 - 106 # Whether or not null ordering is supported in order by - 107 NULL_ORDERING_SUPPORTED = True - 108 - 109 # Whether or not locking reads (i.e. SELECT ... FOR UPDATE/SHARE) are supported - 110 LOCKING_READS_SUPPORTED = False - 111 - 112 # Always do union distinct or union all - 113 EXPLICIT_UNION = False - 114 - 115 # Wrap derived values in parens, usually standard but spark doesn't support it - 116 WRAP_DERIVED_VALUES = True - 117 - 118 # Whether or not create function uses an AS before the RETURN - 119 CREATE_FUNCTION_RETURN_AS = True - 120 - 121 # Whether or not MERGE ... WHEN MATCHED BY SOURCE is allowed - 122 MATCHED_BY_SOURCE = True - 123 - 124 # Whether or not the INTERVAL expression works only with values like '1 day' - 125 SINGLE_STRING_INTERVAL = False - 126 - 127 # Whether or not the plural form of date parts like day (i.e. "days") is supported in INTERVALs - 128 INTERVAL_ALLOWS_PLURAL_FORM = True - 129 - 130 # Whether or not the TABLESAMPLE clause supports a method name, like BERNOULLI - 131 TABLESAMPLE_WITH_METHOD = True - 132 - 133 # Whether or not to treat the number in TABLESAMPLE (50) as a percentage - 134 TABLESAMPLE_SIZE_IS_PERCENT = False - 135 - 136 # Whether or not limit and fetch are supported (possible values: "ALL", "LIMIT", "FETCH") - 137 LIMIT_FETCH = "ALL" - 138 - 139 # Whether a table is allowed to be renamed with a db - 140 RENAME_TABLE_WITH_DB = True - 141 - 142 # The separator for grouping sets and rollups - 143 GROUPINGS_SEP = "," - 144 - 145 # The string used for creating index on a table - 146 INDEX_ON = "ON" - 147 - 148 TYPE_MAPPING = { - 149 exp.DataType.Type.NCHAR: "CHAR", - 150 exp.DataType.Type.NVARCHAR: "VARCHAR", - 151 exp.DataType.Type.MEDIUMTEXT: "TEXT", - 152 exp.DataType.Type.LONGTEXT: "TEXT", - 153 exp.DataType.Type.MEDIUMBLOB: "BLOB", - 154 exp.DataType.Type.LONGBLOB: "BLOB", - 155 exp.DataType.Type.INET: "INET", - 156 } - 157 - 158 STAR_MAPPING = { - 159 "except": "EXCEPT", - 160 "replace": "REPLACE", - 161 } - 162 - 163 TIME_PART_SINGULARS = { - 164 "microseconds": "microsecond", - 165 "seconds": "second", - 166 "minutes": "minute", - 167 "hours": "hour", - 168 "days": "day", - 169 "weeks": "week", - 170 "months": "month", - 171 "quarters": "quarter", - 172 "years": "year", - 173 } - 174 - 175 TOKEN_MAPPING: t.Dict[TokenType, str] = {} + 47 identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit + 48 Default: False + 49 unsupported_level (ErrorLevel): determines the generator's behavior when it encounters + 50 unsupported expressions. Default ErrorLevel.WARN. + 51 null_ordering (str): Indicates the default null ordering method to use if not explicitly set. + 52 Options are "nulls_are_small", "nulls_are_large", "nulls_are_last". + 53 Default: "nulls_are_small" + 54 max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError. + 55 This is only relevant if unsupported_level is ErrorLevel.RAISE. + 56 Default: 3 + 57 leading_comma (bool): if the the comma is leading or trailing in select statements + 58 Default: False + 59 max_text_width: The max number of characters in a segment before creating new lines in pretty mode. + 60 The default is on the smaller end because the length only represents a segment and not the true + 61 line length. + 62 Default: 80 + 63 comments: Whether or not to preserve comments in the output SQL code. + 64 Default: True + 65 """ + 66 + 67 TRANSFORMS = { + 68 exp.DateAdd: lambda self, e: self.func( + 69 "DATE_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) + 70 ), + 71 exp.TsOrDsAdd: lambda self, e: self.func( + 72 "TS_OR_DS_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) + 73 ), + 74 exp.VarMap: lambda self, e: self.func("MAP", e.args["keys"], e.args["values"]), + 75 exp.CharacterSetProperty: lambda self, e: f"{'DEFAULT ' if e.args.get('default') else ''}CHARACTER SET={self.sql(e, 'this')}", + 76 exp.ExecuteAsProperty: lambda self, e: self.naked_property(e), + 77 exp.ExternalProperty: lambda self, e: "EXTERNAL", + 78 exp.LanguageProperty: lambda self, e: self.naked_property(e), + 79 exp.LocationProperty: lambda self, e: self.naked_property(e), + 80 exp.LogProperty: lambda self, e: f"{'NO ' if e.args.get('no') else ''}LOG", + 81 exp.MaterializedProperty: lambda self, e: "MATERIALIZED", + 82 exp.NoPrimaryIndexProperty: lambda self, e: "NO PRIMARY INDEX", + 83 exp.OnCommitProperty: lambda self, e: f"ON COMMIT {'DELETE' if e.args.get('delete') else 'PRESERVE'} ROWS", + 84 exp.ReturnsProperty: lambda self, e: self.naked_property(e), + 85 exp.SetProperty: lambda self, e: f"{'MULTI' if e.args.get('multi') else ''}SET", + 86 exp.SettingsProperty: lambda self, e: f"SETTINGS{self.seg('')}{(self.expressions(e))}", + 87 exp.SqlSecurityProperty: lambda self, e: f"SQL SECURITY {'DEFINER' if e.args.get('definer') else 'INVOKER'}", + 88 exp.TemporaryProperty: lambda self, e: f"TEMPORARY", + 89 exp.TransientProperty: lambda self, e: "TRANSIENT", + 90 exp.StabilityProperty: lambda self, e: e.name, + 91 exp.VolatileProperty: lambda self, e: "VOLATILE", + 92 exp.WithJournalTableProperty: lambda self, e: f"WITH JOURNAL TABLE={self.sql(e, 'this')}", + 93 exp.CaseSpecificColumnConstraint: lambda self, e: f"{'NOT ' if e.args.get('not_') else ''}CASESPECIFIC", + 94 exp.CharacterSetColumnConstraint: lambda self, e: f"CHARACTER SET {self.sql(e, 'this')}", + 95 exp.DateFormatColumnConstraint: lambda self, e: f"FORMAT {self.sql(e, 'this')}", + 96 exp.OnUpdateColumnConstraint: lambda self, e: f"ON UPDATE {self.sql(e, 'this')}", + 97 exp.UppercaseColumnConstraint: lambda self, e: f"UPPERCASE", + 98 exp.TitleColumnConstraint: lambda self, e: f"TITLE {self.sql(e, 'this')}", + 99 exp.PathColumnConstraint: lambda self, e: f"PATH {self.sql(e, 'this')}", + 100 exp.CheckColumnConstraint: lambda self, e: f"CHECK ({self.sql(e, 'this')})", + 101 exp.CommentColumnConstraint: lambda self, e: f"COMMENT {self.sql(e, 'this')}", + 102 exp.CollateColumnConstraint: lambda self, e: f"COLLATE {self.sql(e, 'this')}", + 103 exp.EncodeColumnConstraint: lambda self, e: f"ENCODE {self.sql(e, 'this')}", + 104 exp.DefaultColumnConstraint: lambda self, e: f"DEFAULT {self.sql(e, 'this')}", + 105 exp.InlineLengthColumnConstraint: lambda self, e: f"INLINE LENGTH {self.sql(e, 'this')}", + 106 } + 107 + 108 # Whether or not null ordering is supported in order by + 109 NULL_ORDERING_SUPPORTED = True + 110 + 111 # Whether or not locking reads (i.e. SELECT ... FOR UPDATE/SHARE) are supported + 112 LOCKING_READS_SUPPORTED = False + 113 + 114 # Always do union distinct or union all + 115 EXPLICIT_UNION = False + 116 + 117 # Wrap derived values in parens, usually standard but spark doesn't support it + 118 WRAP_DERIVED_VALUES = True + 119 + 120 # Whether or not create function uses an AS before the RETURN + 121 CREATE_FUNCTION_RETURN_AS = True + 122 + 123 # Whether or not MERGE ... WHEN MATCHED BY SOURCE is allowed + 124 MATCHED_BY_SOURCE = True + 125 + 126 # Whether or not the INTERVAL expression works only with values like '1 day' + 127 SINGLE_STRING_INTERVAL = False + 128 + 129 # Whether or not the plural form of date parts like day (i.e. "days") is supported in INTERVALs + 130 INTERVAL_ALLOWS_PLURAL_FORM = True + 131 + 132 # Whether or not the TABLESAMPLE clause supports a method name, like BERNOULLI + 133 TABLESAMPLE_WITH_METHOD = True + 134 + 135 # Whether or not to treat the number in TABLESAMPLE (50) as a percentage + 136 TABLESAMPLE_SIZE_IS_PERCENT = False + 137 + 138 # Whether or not limit and fetch are supported (possible values: "ALL", "LIMIT", "FETCH") + 139 LIMIT_FETCH = "ALL" + 140 + 141 # Whether a table is allowed to be renamed with a db + 142 RENAME_TABLE_WITH_DB = True + 143 + 144 # The separator for grouping sets and rollups + 145 GROUPINGS_SEP = "," + 146 + 147 # The string used for creating index on a table + 148 INDEX_ON = "ON" + 149 + 150 TYPE_MAPPING = { + 151 exp.DataType.Type.NCHAR: "CHAR", + 152 exp.DataType.Type.NVARCHAR: "VARCHAR", + 153 exp.DataType.Type.MEDIUMTEXT: "TEXT", + 154 exp.DataType.Type.LONGTEXT: "TEXT", + 155 exp.DataType.Type.MEDIUMBLOB: "BLOB", + 156 exp.DataType.Type.LONGBLOB: "BLOB", + 157 exp.DataType.Type.INET: "INET", + 158 } + 159 + 160 STAR_MAPPING = { + 161 "except": "EXCEPT", + 162 "replace": "REPLACE", + 163 } + 164 + 165 TIME_PART_SINGULARS = { + 166 "microseconds": "microsecond", + 167 "seconds": "second", + 168 "minutes": "minute", + 169 "hours": "hour", + 170 "days": "day", + 171 "weeks": "week", + 172 "months": "month", + 173 "quarters": "quarter", + 174 "years": "year", + 175 } 176 - 177 STRUCT_DELIMITER = ("<", ">") + 177 TOKEN_MAPPING: t.Dict[TokenType, str] = {} 178 - 179 PARAMETER_TOKEN = "@" + 179 STRUCT_DELIMITER = ("<", ">") 180 - 181 PROPERTIES_LOCATION = { - 182 exp.AlgorithmProperty: exp.Properties.Location.POST_CREATE, - 183 exp.AutoIncrementProperty: exp.Properties.Location.POST_SCHEMA, - 184 exp.BlockCompressionProperty: exp.Properties.Location.POST_NAME, - 185 exp.CharacterSetProperty: exp.Properties.Location.POST_SCHEMA, - 186 exp.ChecksumProperty: exp.Properties.Location.POST_NAME, - 187 exp.CollateProperty: exp.Properties.Location.POST_SCHEMA, - 188 exp.Cluster: exp.Properties.Location.POST_SCHEMA, - 189 exp.DataBlocksizeProperty: exp.Properties.Location.POST_NAME, - 190 exp.DefinerProperty: exp.Properties.Location.POST_CREATE, - 191 exp.DistKeyProperty: exp.Properties.Location.POST_SCHEMA, - 192 exp.DistStyleProperty: exp.Properties.Location.POST_SCHEMA, - 193 exp.EngineProperty: exp.Properties.Location.POST_SCHEMA, - 194 exp.ExecuteAsProperty: exp.Properties.Location.POST_SCHEMA, - 195 exp.ExternalProperty: exp.Properties.Location.POST_CREATE, - 196 exp.FallbackProperty: exp.Properties.Location.POST_NAME, - 197 exp.FileFormatProperty: exp.Properties.Location.POST_WITH, - 198 exp.FreespaceProperty: exp.Properties.Location.POST_NAME, - 199 exp.IsolatedLoadingProperty: exp.Properties.Location.POST_NAME, - 200 exp.JournalProperty: exp.Properties.Location.POST_NAME, - 201 exp.LanguageProperty: exp.Properties.Location.POST_SCHEMA, - 202 exp.LikeProperty: exp.Properties.Location.POST_SCHEMA, - 203 exp.LocationProperty: exp.Properties.Location.POST_SCHEMA, - 204 exp.LockingProperty: exp.Properties.Location.POST_ALIAS, - 205 exp.LogProperty: exp.Properties.Location.POST_NAME, - 206 exp.MaterializedProperty: exp.Properties.Location.POST_CREATE, - 207 exp.MergeBlockRatioProperty: exp.Properties.Location.POST_NAME, - 208 exp.NoPrimaryIndexProperty: exp.Properties.Location.POST_EXPRESSION, - 209 exp.OnCommitProperty: exp.Properties.Location.POST_EXPRESSION, - 210 exp.Order: exp.Properties.Location.POST_SCHEMA, - 211 exp.PartitionedByProperty: exp.Properties.Location.POST_WITH, - 212 exp.PrimaryKey: exp.Properties.Location.POST_SCHEMA, - 213 exp.Property: exp.Properties.Location.POST_WITH, - 214 exp.ReturnsProperty: exp.Properties.Location.POST_SCHEMA, - 215 exp.RowFormatProperty: exp.Properties.Location.POST_SCHEMA, - 216 exp.RowFormatDelimitedProperty: exp.Properties.Location.POST_SCHEMA, - 217 exp.RowFormatSerdeProperty: exp.Properties.Location.POST_SCHEMA, - 218 exp.SchemaCommentProperty: exp.Properties.Location.POST_SCHEMA, - 219 exp.SerdeProperties: exp.Properties.Location.POST_SCHEMA, - 220 exp.Set: exp.Properties.Location.POST_SCHEMA, - 221 exp.SettingsProperty: exp.Properties.Location.POST_SCHEMA, - 222 exp.SetProperty: exp.Properties.Location.POST_CREATE, - 223 exp.SortKeyProperty: exp.Properties.Location.POST_SCHEMA, - 224 exp.SqlSecurityProperty: exp.Properties.Location.POST_CREATE, - 225 exp.StabilityProperty: exp.Properties.Location.POST_SCHEMA, - 226 exp.TemporaryProperty: exp.Properties.Location.POST_CREATE, - 227 exp.TransientProperty: exp.Properties.Location.POST_CREATE, - 228 exp.MergeTreeTTL: exp.Properties.Location.POST_SCHEMA, - 229 exp.VolatileProperty: exp.Properties.Location.POST_CREATE, - 230 exp.WithDataProperty: exp.Properties.Location.POST_EXPRESSION, - 231 exp.WithJournalTableProperty: exp.Properties.Location.POST_NAME, - 232 } - 233 - 234 JOIN_HINTS = True - 235 TABLE_HINTS = True - 236 - 237 RESERVED_KEYWORDS: t.Set[str] = set() - 238 WITH_SEPARATED_COMMENTS = (exp.Select, exp.From, exp.Where, exp.With) - 239 UNWRAPPED_INTERVAL_VALUES = (exp.Column, exp.Literal, exp.Neg, exp.Paren) + 181 PARAMETER_TOKEN = "@" + 182 + 183 PROPERTIES_LOCATION = { + 184 exp.AlgorithmProperty: exp.Properties.Location.POST_CREATE, + 185 exp.AutoIncrementProperty: exp.Properties.Location.POST_SCHEMA, + 186 exp.BlockCompressionProperty: exp.Properties.Location.POST_NAME, + 187 exp.CharacterSetProperty: exp.Properties.Location.POST_SCHEMA, + 188 exp.ChecksumProperty: exp.Properties.Location.POST_NAME, + 189 exp.CollateProperty: exp.Properties.Location.POST_SCHEMA, + 190 exp.Cluster: exp.Properties.Location.POST_SCHEMA, + 191 exp.DataBlocksizeProperty: exp.Properties.Location.POST_NAME, + 192 exp.DefinerProperty: exp.Properties.Location.POST_CREATE, + 193 exp.DictRange: exp.Properties.Location.POST_SCHEMA, + 194 exp.DictProperty: exp.Properties.Location.POST_SCHEMA, + 195 exp.DistKeyProperty: exp.Properties.Location.POST_SCHEMA, + 196 exp.DistStyleProperty: exp.Properties.Location.POST_SCHEMA, + 197 exp.EngineProperty: exp.Properties.Location.POST_SCHEMA, + 198 exp.ExecuteAsProperty: exp.Properties.Location.POST_SCHEMA, + 199 exp.ExternalProperty: exp.Properties.Location.POST_CREATE, + 200 exp.FallbackProperty: exp.Properties.Location.POST_NAME, + 201 exp.FileFormatProperty: exp.Properties.Location.POST_WITH, + 202 exp.FreespaceProperty: exp.Properties.Location.POST_NAME, + 203 exp.IsolatedLoadingProperty: exp.Properties.Location.POST_NAME, + 204 exp.JournalProperty: exp.Properties.Location.POST_NAME, + 205 exp.LanguageProperty: exp.Properties.Location.POST_SCHEMA, + 206 exp.LikeProperty: exp.Properties.Location.POST_SCHEMA, + 207 exp.LocationProperty: exp.Properties.Location.POST_SCHEMA, + 208 exp.LockingProperty: exp.Properties.Location.POST_ALIAS, + 209 exp.LogProperty: exp.Properties.Location.POST_NAME, + 210 exp.MaterializedProperty: exp.Properties.Location.POST_CREATE, + 211 exp.MergeBlockRatioProperty: exp.Properties.Location.POST_NAME, + 212 exp.NoPrimaryIndexProperty: exp.Properties.Location.POST_EXPRESSION, + 213 exp.OnCommitProperty: exp.Properties.Location.POST_EXPRESSION, + 214 exp.Order: exp.Properties.Location.POST_SCHEMA, + 215 exp.PartitionedByProperty: exp.Properties.Location.POST_WITH, + 216 exp.PrimaryKey: exp.Properties.Location.POST_SCHEMA, + 217 exp.Property: exp.Properties.Location.POST_WITH, + 218 exp.ReturnsProperty: exp.Properties.Location.POST_SCHEMA, + 219 exp.RowFormatProperty: exp.Properties.Location.POST_SCHEMA, + 220 exp.RowFormatDelimitedProperty: exp.Properties.Location.POST_SCHEMA, + 221 exp.RowFormatSerdeProperty: exp.Properties.Location.POST_SCHEMA, + 222 exp.SchemaCommentProperty: exp.Properties.Location.POST_SCHEMA, + 223 exp.SerdeProperties: exp.Properties.Location.POST_SCHEMA, + 224 exp.Set: exp.Properties.Location.POST_SCHEMA, + 225 exp.SettingsProperty: exp.Properties.Location.POST_SCHEMA, + 226 exp.SetProperty: exp.Properties.Location.POST_CREATE, + 227 exp.SortKeyProperty: exp.Properties.Location.POST_SCHEMA, + 228 exp.SqlSecurityProperty: exp.Properties.Location.POST_CREATE, + 229 exp.StabilityProperty: exp.Properties.Location.POST_SCHEMA, + 230 exp.TemporaryProperty: exp.Properties.Location.POST_CREATE, + 231 exp.TransientProperty: exp.Properties.Location.POST_CREATE, + 232 exp.MergeTreeTTL: exp.Properties.Location.POST_SCHEMA, + 233 exp.VolatileProperty: exp.Properties.Location.POST_CREATE, + 234 exp.WithDataProperty: exp.Properties.Location.POST_EXPRESSION, + 235 exp.WithJournalTableProperty: exp.Properties.Location.POST_NAME, + 236 } + 237 + 238 JOIN_HINTS = True + 239 TABLE_HINTS = True 240 - 241 SENTINEL_LINE_BREAK = "__SQLGLOT__LB__" - 242 - 243 __slots__ = ( - 244 "time_mapping", - 245 "time_trie", - 246 "pretty", - 247 "quote_start", - 248 "quote_end", - 249 "identifier_start", - 250 "identifier_end", - 251 "bit_start", - 252 "bit_end", - 253 "hex_start", - 254 "hex_end", - 255 "byte_start", - 256 "byte_end", - 257 "raw_start", - 258 "raw_end", - 259 "identify", - 260 "normalize", - 261 "string_escape", - 262 "identifier_escape", - 263 "pad", - 264 "index_offset", - 265 "unnest_column_only", - 266 "alias_post_tablesample", - 267 "normalize_functions", - 268 "unsupported_level", - 269 "unsupported_messages", - 270 "null_ordering", - 271 "max_unsupported", - 272 "_indent", - 273 "_escaped_quote_end", - 274 "_escaped_identifier_end", - 275 "_leading_comma", - 276 "_max_text_width", - 277 "_comments", - 278 "_cache", - 279 ) - 280 - 281 def __init__( - 282 self, - 283 time_mapping=None, - 284 time_trie=None, - 285 pretty=None, - 286 quote_start=None, - 287 quote_end=None, - 288 identifier_start=None, - 289 identifier_end=None, - 290 bit_start=None, - 291 bit_end=None, - 292 hex_start=None, - 293 hex_end=None, - 294 byte_start=None, - 295 byte_end=None, - 296 raw_start=None, - 297 raw_end=None, - 298 identify=False, - 299 normalize=False, - 300 string_escape=None, - 301 identifier_escape=None, - 302 pad=2, - 303 indent=2, - 304 index_offset=0, - 305 unnest_column_only=False, - 306 alias_post_tablesample=False, - 307 normalize_functions="upper", - 308 unsupported_level=ErrorLevel.WARN, - 309 null_ordering=None, - 310 max_unsupported=3, - 311 leading_comma=False, - 312 max_text_width=80, - 313 comments=True, - 314 ): - 315 import sqlglot - 316 - 317 self.time_mapping = time_mapping or {} - 318 self.time_trie = time_trie - 319 self.pretty = pretty if pretty is not None else sqlglot.pretty - 320 self.quote_start = quote_start or "'" - 321 self.quote_end = quote_end or "'" - 322 self.identifier_start = identifier_start or '"' - 323 self.identifier_end = identifier_end or '"' - 324 self.bit_start = bit_start - 325 self.bit_end = bit_end - 326 self.hex_start = hex_start - 327 self.hex_end = hex_end - 328 self.byte_start = byte_start - 329 self.byte_end = byte_end - 330 self.raw_start = raw_start - 331 self.raw_end = raw_end - 332 self.identify = identify - 333 self.normalize = normalize - 334 self.string_escape = string_escape or "'" - 335 self.identifier_escape = identifier_escape or '"' - 336 self.pad = pad - 337 self.index_offset = index_offset - 338 self.unnest_column_only = unnest_column_only - 339 self.alias_post_tablesample = alias_post_tablesample - 340 self.normalize_functions = normalize_functions - 341 self.unsupported_level = unsupported_level - 342 self.unsupported_messages = [] - 343 self.max_unsupported = max_unsupported - 344 self.null_ordering = null_ordering - 345 self._indent = indent - 346 self._escaped_quote_end = self.string_escape + self.quote_end - 347 self._escaped_identifier_end = self.identifier_escape + self.identifier_end - 348 self._leading_comma = leading_comma - 349 self._max_text_width = max_text_width - 350 self._comments = comments - 351 self._cache = None - 352 - 353 def generate( - 354 self, - 355 expression: t.Optional[exp.Expression], - 356 cache: t.Optional[t.Dict[int, str]] = None, - 357 ) -> str: - 358 """ - 359 Generates a SQL string by interpreting the given syntax tree. - 360 - 361 Args - 362 expression: the syntax tree. - 363 cache: an optional sql string cache. this leverages the hash of an expression which is slow, so only use this if you set _hash on each node. - 364 - 365 Returns - 366 the SQL string. - 367 """ - 368 if cache is not None: - 369 self._cache = cache - 370 self.unsupported_messages = [] - 371 sql = self.sql(expression).strip() - 372 self._cache = None - 373 - 374 if self.unsupported_level == ErrorLevel.IGNORE: - 375 return sql - 376 - 377 if self.unsupported_level == ErrorLevel.WARN: - 378 for msg in self.unsupported_messages: - 379 logger.warning(msg) - 380 elif self.unsupported_level == ErrorLevel.RAISE and self.unsupported_messages: - 381 raise UnsupportedError(concat_messages(self.unsupported_messages, self.max_unsupported)) - 382 - 383 if self.pretty: - 384 sql = sql.replace(self.SENTINEL_LINE_BREAK, "\n") - 385 return sql - 386 - 387 def unsupported(self, message: str) -> None: - 388 if self.unsupported_level == ErrorLevel.IMMEDIATE: - 389 raise UnsupportedError(message) - 390 self.unsupported_messages.append(message) - 391 - 392 def sep(self, sep: str = " ") -> str: - 393 return f"{sep.strip()}\n" if self.pretty else sep - 394 - 395 def seg(self, sql: str, sep: str = " ") -> str: - 396 return f"{self.sep(sep)}{sql}" - 397 - 398 def pad_comment(self, comment: str) -> str: - 399 comment = " " + comment if comment[0].strip() else comment - 400 comment = comment + " " if comment[-1].strip() else comment - 401 return comment - 402 - 403 def maybe_comment( - 404 self, - 405 sql: str, - 406 expression: t.Optional[exp.Expression] = None, - 407 comments: t.Optional[t.List[str]] = None, - 408 ) -> str: - 409 comments = ((expression and expression.comments) if comments is None else comments) if self._comments else None # type: ignore - 410 - 411 if not comments or isinstance(expression, exp.Binary): - 412 return sql - 413 - 414 sep = "\n" if self.pretty else " " - 415 comments_sql = sep.join( - 416 f"/*{self.pad_comment(comment)}*/" for comment in comments if comment - 417 ) - 418 - 419 if not comments_sql: - 420 return sql - 421 - 422 if isinstance(expression, self.WITH_SEPARATED_COMMENTS): - 423 return ( - 424 f"{self.sep()}{comments_sql}{sql}" - 425 if sql[0].isspace() - 426 else f"{comments_sql}{self.sep()}{sql}" - 427 ) + 241 RESERVED_KEYWORDS: t.Set[str] = set() + 242 WITH_SEPARATED_COMMENTS = (exp.Select, exp.From, exp.Where, exp.With) + 243 UNWRAPPED_INTERVAL_VALUES = (exp.Column, exp.Literal, exp.Neg, exp.Paren) + 244 + 245 SENTINEL_LINE_BREAK = "__SQLGLOT__LB__" + 246 + 247 __slots__ = ( + 248 "time_mapping", + 249 "time_trie", + 250 "pretty", + 251 "quote_start", + 252 "quote_end", + 253 "identifier_start", + 254 "identifier_end", + 255 "bit_start", + 256 "bit_end", + 257 "hex_start", + 258 "hex_end", + 259 "byte_start", + 260 "byte_end", + 261 "raw_start", + 262 "raw_end", + 263 "identify", + 264 "normalize", + 265 "string_escape", + 266 "identifier_escape", + 267 "pad", + 268 "index_offset", + 269 "unnest_column_only", + 270 "alias_post_tablesample", + 271 "identifiers_can_start_with_digit", + 272 "normalize_functions", + 273 "unsupported_level", + 274 "unsupported_messages", + 275 "null_ordering", + 276 "max_unsupported", + 277 "_indent", + 278 "_escaped_quote_end", + 279 "_escaped_identifier_end", + 280 "_leading_comma", + 281 "_max_text_width", + 282 "_comments", + 283 "_cache", + 284 ) + 285 + 286 def __init__( + 287 self, + 288 time_mapping=None, + 289 time_trie=None, + 290 pretty=None, + 291 quote_start=None, + 292 quote_end=None, + 293 identifier_start=None, + 294 identifier_end=None, + 295 bit_start=None, + 296 bit_end=None, + 297 hex_start=None, + 298 hex_end=None, + 299 byte_start=None, + 300 byte_end=None, + 301 raw_start=None, + 302 raw_end=None, + 303 identify=False, + 304 normalize=False, + 305 string_escape=None, + 306 identifier_escape=None, + 307 pad=2, + 308 indent=2, + 309 index_offset=0, + 310 unnest_column_only=False, + 311 alias_post_tablesample=False, + 312 identifiers_can_start_with_digit=False, + 313 normalize_functions="upper", + 314 unsupported_level=ErrorLevel.WARN, + 315 null_ordering=None, + 316 max_unsupported=3, + 317 leading_comma=False, + 318 max_text_width=80, + 319 comments=True, + 320 ): + 321 import sqlglot + 322 + 323 self.time_mapping = time_mapping or {} + 324 self.time_trie = time_trie + 325 self.pretty = pretty if pretty is not None else sqlglot.pretty + 326 self.quote_start = quote_start or "'" + 327 self.quote_end = quote_end or "'" + 328 self.identifier_start = identifier_start or '"' + 329 self.identifier_end = identifier_end or '"' + 330 self.bit_start = bit_start + 331 self.bit_end = bit_end + 332 self.hex_start = hex_start + 333 self.hex_end = hex_end + 334 self.byte_start = byte_start + 335 self.byte_end = byte_end + 336 self.raw_start = raw_start + 337 self.raw_end = raw_end + 338 self.identify = identify + 339 self.normalize = normalize + 340 self.string_escape = string_escape or "'" + 341 self.identifier_escape = identifier_escape or '"' + 342 self.pad = pad + 343 self.index_offset = index_offset + 344 self.unnest_column_only = unnest_column_only + 345 self.alias_post_tablesample = alias_post_tablesample + 346 self.identifiers_can_start_with_digit = identifiers_can_start_with_digit + 347 self.normalize_functions = normalize_functions + 348 self.unsupported_level = unsupported_level + 349 self.unsupported_messages = [] + 350 self.max_unsupported = max_unsupported + 351 self.null_ordering = null_ordering + 352 self._indent = indent + 353 self._escaped_quote_end = self.string_escape + self.quote_end + 354 self._escaped_identifier_end = self.identifier_escape + self.identifier_end + 355 self._leading_comma = leading_comma + 356 self._max_text_width = max_text_width + 357 self._comments = comments + 358 self._cache = None + 359 + 360 def generate( + 361 self, + 362 expression: t.Optional[exp.Expression], + 363 cache: t.Optional[t.Dict[int, str]] = None, + 364 ) -> str: + 365 """ + 366 Generates a SQL string by interpreting the given syntax tree. + 367 + 368 Args + 369 expression: the syntax tree. + 370 cache: an optional sql string cache. this leverages the hash of an expression which is slow, so only use this if you set _hash on each node. + 371 + 372 Returns + 373 the SQL string. + 374 """ + 375 if cache is not None: + 376 self._cache = cache + 377 self.unsupported_messages = [] + 378 sql = self.sql(expression).strip() + 379 self._cache = None + 380 + 381 if self.unsupported_level == ErrorLevel.IGNORE: + 382 return sql + 383 + 384 if self.unsupported_level == ErrorLevel.WARN: + 385 for msg in self.unsupported_messages: + 386 logger.warning(msg) + 387 elif self.unsupported_level == ErrorLevel.RAISE and self.unsupported_messages: + 388 raise UnsupportedError(concat_messages(self.unsupported_messages, self.max_unsupported)) + 389 + 390 if self.pretty: + 391 sql = sql.replace(self.SENTINEL_LINE_BREAK, "\n") + 392 return sql + 393 + 394 def unsupported(self, message: str) -> None: + 395 if self.unsupported_level == ErrorLevel.IMMEDIATE: + 396 raise UnsupportedError(message) + 397 self.unsupported_messages.append(message) + 398 + 399 def sep(self, sep: str = " ") -> str: + 400 return f"{sep.strip()}\n" if self.pretty else sep + 401 + 402 def seg(self, sql: str, sep: str = " ") -> str: + 403 return f"{self.sep(sep)}{sql}" + 404 + 405 def pad_comment(self, comment: str) -> str: + 406 comment = " " + comment if comment[0].strip() else comment + 407 comment = comment + " " if comment[-1].strip() else comment + 408 return comment + 409 + 410 def maybe_comment( + 411 self, + 412 sql: str, + 413 expression: t.Optional[exp.Expression] = None, + 414 comments: t.Optional[t.List[str]] = None, + 415 ) -> str: + 416 comments = ((expression and expression.comments) if comments is None else comments) if self._comments else None # type: ignore + 417 + 418 if not comments or isinstance(expression, exp.Binary): + 419 return sql + 420 + 421 sep = "\n" if self.pretty else " " + 422 comments_sql = sep.join( + 423 f"/*{self.pad_comment(comment)}*/" for comment in comments if comment + 424 ) + 425 + 426 if not comments_sql: + 427 return sql 428 - 429 return f"{sql} {comments_sql}" - 430 - 431 def wrap(self, expression: exp.Expression | str) -> str: - 432 this_sql = self.indent( - 433 self.sql(expression) - 434 if isinstance(expression, (exp.Select, exp.Union)) - 435 else self.sql(expression, "this"), - 436 level=1, - 437 pad=0, - 438 ) - 439 return f"({self.sep('')}{this_sql}{self.seg(')', sep='')}" - 440 - 441 def no_identify(self, func: t.Callable[..., str], *args, **kwargs) -> str: - 442 original = self.identify - 443 self.identify = False - 444 result = func(*args, **kwargs) - 445 self.identify = original - 446 return result + 429 if isinstance(expression, self.WITH_SEPARATED_COMMENTS): + 430 return ( + 431 f"{self.sep()}{comments_sql}{sql}" + 432 if sql[0].isspace() + 433 else f"{comments_sql}{self.sep()}{sql}" + 434 ) + 435 + 436 return f"{sql} {comments_sql}" + 437 + 438 def wrap(self, expression: exp.Expression | str) -> str: + 439 this_sql = self.indent( + 440 self.sql(expression) + 441 if isinstance(expression, (exp.Select, exp.Union)) + 442 else self.sql(expression, "this"), + 443 level=1, + 444 pad=0, + 445 ) + 446 return f"({self.sep('')}{this_sql}{self.seg(')', sep='')}" 447 - 448 def normalize_func(self, name: str) -> str: - 449 if self.normalize_functions == "upper": - 450 return name.upper() - 451 if self.normalize_functions == "lower": - 452 return name.lower() - 453 return name + 448 def no_identify(self, func: t.Callable[..., str], *args, **kwargs) -> str: + 449 original = self.identify + 450 self.identify = False + 451 result = func(*args, **kwargs) + 452 self.identify = original + 453 return result 454 - 455 def indent( - 456 self, - 457 sql: str, - 458 level: int = 0, - 459 pad: t.Optional[int] = None, - 460 skip_first: bool = False, - 461 skip_last: bool = False, - 462 ) -> str: - 463 if not self.pretty: - 464 return sql - 465 - 466 pad = self.pad if pad is None else pad - 467 lines = sql.split("\n") - 468 - 469 return "\n".join( - 470 line - 471 if (skip_first and i == 0) or (skip_last and i == len(lines) - 1) - 472 else f"{' ' * (level * self._indent + pad)}{line}" - 473 for i, line in enumerate(lines) - 474 ) + 455 def normalize_func(self, name: str) -> str: + 456 if self.normalize_functions == "upper": + 457 return name.upper() + 458 if self.normalize_functions == "lower": + 459 return name.lower() + 460 return name + 461 + 462 def indent( + 463 self, + 464 sql: str, + 465 level: int = 0, + 466 pad: t.Optional[int] = None, + 467 skip_first: bool = False, + 468 skip_last: bool = False, + 469 ) -> str: + 470 if not self.pretty: + 471 return sql + 472 + 473 pad = self.pad if pad is None else pad + 474 lines = sql.split("\n") 475 - 476 def sql( - 477 self, - 478 expression: t.Optional[str | exp.Expression], - 479 key: t.Optional[str] = None, - 480 comment: bool = True, - 481 ) -> str: - 482 if not expression: - 483 return "" - 484 - 485 if isinstance(expression, str): - 486 return expression - 487 - 488 if key: - 489 return self.sql(expression.args.get(key)) - 490 - 491 if self._cache is not None: - 492 expression_id = hash(expression) - 493 - 494 if expression_id in self._cache: - 495 return self._cache[expression_id] - 496 - 497 transform = self.TRANSFORMS.get(expression.__class__) - 498 - 499 if callable(transform): - 500 sql = transform(self, expression) - 501 elif transform: - 502 sql = transform - 503 elif isinstance(expression, exp.Expression): - 504 exp_handler_name = f"{expression.key}_sql" + 476 return "\n".join( + 477 line + 478 if (skip_first and i == 0) or (skip_last and i == len(lines) - 1) + 479 else f"{' ' * (level * self._indent + pad)}{line}" + 480 for i, line in enumerate(lines) + 481 ) + 482 + 483 def sql( + 484 self, + 485 expression: t.Optional[str | exp.Expression], + 486 key: t.Optional[str] = None, + 487 comment: bool = True, + 488 ) -> str: + 489 if not expression: + 490 return "" + 491 + 492 if isinstance(expression, str): + 493 return expression + 494 + 495 if key: + 496 return self.sql(expression.args.get(key)) + 497 + 498 if self._cache is not None: + 499 expression_id = hash(expression) + 500 + 501 if expression_id in self._cache: + 502 return self._cache[expression_id] + 503 + 504 transform = self.TRANSFORMS.get(expression.__class__) 505 - 506 if hasattr(self, exp_handler_name): - 507 sql = getattr(self, exp_handler_name)(expression) - 508 elif isinstance(expression, exp.Func): - 509 sql = self.function_fallback_sql(expression) - 510 elif isinstance(expression, exp.Property): - 511 sql = self.property_sql(expression) - 512 else: - 513 raise ValueError(f"Unsupported expression type {expression.__class__.__name__}") - 514 else: - 515 raise ValueError(f"Expected an Expression. Received {type(expression)}: {expression}") - 516 - 517 sql = self.maybe_comment(sql, expression) if self._comments and comment else sql - 518 - 519 if self._cache is not None: - 520 self._cache[expression_id] = sql - 521 return sql - 522 - 523 def uncache_sql(self, expression: exp.Uncache) -> str: - 524 table = self.sql(expression, "this") - 525 exists_sql = " IF EXISTS" if expression.args.get("exists") else "" - 526 return f"UNCACHE TABLE{exists_sql} {table}" - 527 - 528 def cache_sql(self, expression: exp.Cache) -> str: - 529 lazy = " LAZY" if expression.args.get("lazy") else "" - 530 table = self.sql(expression, "this") - 531 options = expression.args.get("options") - 532 options = f" OPTIONS({self.sql(options[0])} = {self.sql(options[1])})" if options else "" - 533 sql = self.sql(expression, "expression") - 534 sql = f" AS{self.sep()}{sql}" if sql else "" - 535 sql = f"CACHE{lazy} TABLE {table}{options}{sql}" - 536 return self.prepend_ctes(expression, sql) - 537 - 538 def characterset_sql(self, expression: exp.CharacterSet) -> str: - 539 if isinstance(expression.parent, exp.Cast): - 540 return f"CHAR CHARACTER SET {self.sql(expression, 'this')}" - 541 default = "DEFAULT " if expression.args.get("default") else "" - 542 return f"{default}CHARACTER SET={self.sql(expression, 'this')}" - 543 - 544 def column_sql(self, expression: exp.Column) -> str: - 545 return ".".join( - 546 self.sql(part) - 547 for part in ( - 548 expression.args.get("catalog"), - 549 expression.args.get("db"), - 550 expression.args.get("table"), - 551 expression.args.get("this"), - 552 ) - 553 if part - 554 ) - 555 - 556 def columnposition_sql(self, expression: exp.ColumnPosition) -> str: - 557 this = self.sql(expression, "this") - 558 this = f" {this}" if this else "" - 559 position = self.sql(expression, "position") - 560 return f"{position}{this}" - 561 - 562 def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str: - 563 column = self.sql(expression, "this") - 564 kind = self.sql(expression, "kind") - 565 constraints = self.expressions(expression, key="constraints", sep=" ", flat=True) - 566 exists = "IF NOT EXISTS " if expression.args.get("exists") else "" - 567 kind = f"{sep}{kind}" if kind else "" - 568 constraints = f" {constraints}" if constraints else "" - 569 position = self.sql(expression, "position") - 570 position = f" {position}" if position else "" - 571 - 572 return f"{exists}{column}{kind}{constraints}{position}" - 573 - 574 def columnconstraint_sql(self, expression: exp.ColumnConstraint) -> str: - 575 this = self.sql(expression, "this") - 576 kind_sql = self.sql(expression, "kind").strip() - 577 return f"CONSTRAINT {this} {kind_sql}" if this else kind_sql + 506 if callable(transform): + 507 sql = transform(self, expression) + 508 elif transform: + 509 sql = transform + 510 elif isinstance(expression, exp.Expression): + 511 exp_handler_name = f"{expression.key}_sql" + 512 + 513 if hasattr(self, exp_handler_name): + 514 sql = getattr(self, exp_handler_name)(expression) + 515 elif isinstance(expression, exp.Func): + 516 sql = self.function_fallback_sql(expression) + 517 elif isinstance(expression, exp.Property): + 518 sql = self.property_sql(expression) + 519 else: + 520 raise ValueError(f"Unsupported expression type {expression.__class__.__name__}") + 521 else: + 522 raise ValueError(f"Expected an Expression. Received {type(expression)}: {expression}") + 523 + 524 sql = self.maybe_comment(sql, expression) if self._comments and comment else sql + 525 + 526 if self._cache is not None: + 527 self._cache[expression_id] = sql + 528 return sql + 529 + 530 def uncache_sql(self, expression: exp.Uncache) -> str: + 531 table = self.sql(expression, "this") + 532 exists_sql = " IF EXISTS" if expression.args.get("exists") else "" + 533 return f"UNCACHE TABLE{exists_sql} {table}" + 534 + 535 def cache_sql(self, expression: exp.Cache) -> str: + 536 lazy = " LAZY" if expression.args.get("lazy") else "" + 537 table = self.sql(expression, "this") + 538 options = expression.args.get("options") + 539 options = f" OPTIONS({self.sql(options[0])} = {self.sql(options[1])})" if options else "" + 540 sql = self.sql(expression, "expression") + 541 sql = f" AS{self.sep()}{sql}" if sql else "" + 542 sql = f"CACHE{lazy} TABLE {table}{options}{sql}" + 543 return self.prepend_ctes(expression, sql) + 544 + 545 def characterset_sql(self, expression: exp.CharacterSet) -> str: + 546 if isinstance(expression.parent, exp.Cast): + 547 return f"CHAR CHARACTER SET {self.sql(expression, 'this')}" + 548 default = "DEFAULT " if expression.args.get("default") else "" + 549 return f"{default}CHARACTER SET={self.sql(expression, 'this')}" + 550 + 551 def column_sql(self, expression: exp.Column) -> str: + 552 return ".".join( + 553 self.sql(part) + 554 for part in ( + 555 expression.args.get("catalog"), + 556 expression.args.get("db"), + 557 expression.args.get("table"), + 558 expression.args.get("this"), + 559 ) + 560 if part + 561 ) + 562 + 563 def columnposition_sql(self, expression: exp.ColumnPosition) -> str: + 564 this = self.sql(expression, "this") + 565 this = f" {this}" if this else "" + 566 position = self.sql(expression, "position") + 567 return f"{position}{this}" + 568 + 569 def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str: + 570 column = self.sql(expression, "this") + 571 kind = self.sql(expression, "kind") + 572 constraints = self.expressions(expression, key="constraints", sep=" ", flat=True) + 573 exists = "IF NOT EXISTS " if expression.args.get("exists") else "" + 574 kind = f"{sep}{kind}" if kind else "" + 575 constraints = f" {constraints}" if constraints else "" + 576 position = self.sql(expression, "position") + 577 position = f" {position}" if position else "" 578 - 579 def autoincrementcolumnconstraint_sql(self, _) -> str: - 580 return self.token_sql(TokenType.AUTO_INCREMENT) - 581 - 582 def compresscolumnconstraint_sql(self, expression: exp.CompressColumnConstraint) -> str: - 583 if isinstance(expression.this, list): - 584 this = self.wrap(self.expressions(expression, key="this", flat=True)) - 585 else: - 586 this = self.sql(expression, "this") - 587 - 588 return f"COMPRESS {this}" - 589 - 590 def generatedasidentitycolumnconstraint_sql( - 591 self, expression: exp.GeneratedAsIdentityColumnConstraint - 592 ) -> str: - 593 this = "" - 594 if expression.this is not None: - 595 on_null = "ON NULL " if expression.args.get("on_null") else "" - 596 this = " ALWAYS " if expression.this else f" BY DEFAULT {on_null}" - 597 - 598 start = expression.args.get("start") - 599 start = f"START WITH {start}" if start else "" - 600 increment = expression.args.get("increment") - 601 increment = f" INCREMENT BY {increment}" if increment else "" - 602 minvalue = expression.args.get("minvalue") - 603 minvalue = f" MINVALUE {minvalue}" if minvalue else "" - 604 maxvalue = expression.args.get("maxvalue") - 605 maxvalue = f" MAXVALUE {maxvalue}" if maxvalue else "" - 606 cycle = expression.args.get("cycle") - 607 cycle_sql = "" - 608 - 609 if cycle is not None: - 610 cycle_sql = f"{' NO' if not cycle else ''} CYCLE" - 611 cycle_sql = cycle_sql.strip() if not start and not increment else cycle_sql - 612 - 613 sequence_opts = "" - 614 if start or increment or cycle_sql: - 615 sequence_opts = f"{start}{increment}{minvalue}{maxvalue}{cycle_sql}" - 616 sequence_opts = f" ({sequence_opts.strip()})" - 617 - 618 expr = self.sql(expression, "expression") - 619 expr = f"({expr})" if expr else "IDENTITY" - 620 - 621 return f"GENERATED{this}AS {expr}{sequence_opts}" - 622 - 623 def notnullcolumnconstraint_sql(self, expression: exp.NotNullColumnConstraint) -> str: - 624 return f"{'' if expression.args.get('allow_null') else 'NOT '}NULL" - 625 - 626 def primarykeycolumnconstraint_sql(self, expression: exp.PrimaryKeyColumnConstraint) -> str: - 627 desc = expression.args.get("desc") - 628 if desc is not None: - 629 return f"PRIMARY KEY{' DESC' if desc else ' ASC'}" - 630 return f"PRIMARY KEY" - 631 - 632 def uniquecolumnconstraint_sql(self, _) -> str: - 633 return "UNIQUE" - 634 - 635 def create_sql(self, expression: exp.Create) -> str: - 636 kind = self.sql(expression, "kind").upper() - 637 properties = expression.args.get("properties") - 638 properties_exp = expression.copy() - 639 properties_locs = self.locate_properties(properties) if properties else {} - 640 if properties_locs.get(exp.Properties.Location.POST_SCHEMA) or properties_locs.get( - 641 exp.Properties.Location.POST_WITH - 642 ): - 643 properties_exp.set( - 644 "properties", - 645 exp.Properties( - 646 expressions=[ - 647 *properties_locs[exp.Properties.Location.POST_SCHEMA], - 648 *properties_locs[exp.Properties.Location.POST_WITH], - 649 ] - 650 ), - 651 ) - 652 if kind == "TABLE" and properties_locs.get(exp.Properties.Location.POST_NAME): - 653 this_name = self.sql(expression.this, "this") - 654 this_properties = self.properties( - 655 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_NAME]), - 656 wrapped=False, - 657 ) - 658 this_schema = f"({self.expressions(expression.this)})" - 659 this = f"{this_name}, {this_properties} {this_schema}" - 660 properties_sql = "" - 661 else: - 662 this = self.sql(expression, "this") - 663 properties_sql = self.sql(properties_exp, "properties") - 664 begin = " BEGIN" if expression.args.get("begin") else "" - 665 expression_sql = self.sql(expression, "expression") - 666 if expression_sql: - 667 expression_sql = f"{begin}{self.sep()}{expression_sql}" - 668 - 669 if self.CREATE_FUNCTION_RETURN_AS or not isinstance(expression.expression, exp.Return): - 670 if properties_locs.get(exp.Properties.Location.POST_ALIAS): - 671 postalias_props_sql = self.properties( - 672 exp.Properties( - 673 expressions=properties_locs[exp.Properties.Location.POST_ALIAS] - 674 ), - 675 wrapped=False, - 676 ) - 677 expression_sql = f" AS {postalias_props_sql}{expression_sql}" - 678 else: - 679 expression_sql = f" AS{expression_sql}" - 680 - 681 postindex_props_sql = "" - 682 if properties_locs.get(exp.Properties.Location.POST_INDEX): - 683 postindex_props_sql = self.properties( - 684 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_INDEX]), - 685 wrapped=False, - 686 prefix=" ", - 687 ) - 688 - 689 indexes = self.expressions(expression, key="indexes", indent=False, sep=" ") - 690 indexes = f" {indexes}" if indexes else "" - 691 index_sql = indexes + postindex_props_sql - 692 - 693 replace = " OR REPLACE" if expression.args.get("replace") else "" - 694 unique = " UNIQUE" if expression.args.get("unique") else "" - 695 - 696 postcreate_props_sql = "" - 697 if properties_locs.get(exp.Properties.Location.POST_CREATE): - 698 postcreate_props_sql = self.properties( - 699 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_CREATE]), - 700 sep=" ", - 701 prefix=" ", - 702 wrapped=False, - 703 ) + 579 return f"{exists}{column}{kind}{constraints}{position}" + 580 + 581 def columnconstraint_sql(self, expression: exp.ColumnConstraint) -> str: + 582 this = self.sql(expression, "this") + 583 kind_sql = self.sql(expression, "kind").strip() + 584 return f"CONSTRAINT {this} {kind_sql}" if this else kind_sql + 585 + 586 def autoincrementcolumnconstraint_sql(self, _) -> str: + 587 return self.token_sql(TokenType.AUTO_INCREMENT) + 588 + 589 def compresscolumnconstraint_sql(self, expression: exp.CompressColumnConstraint) -> str: + 590 if isinstance(expression.this, list): + 591 this = self.wrap(self.expressions(expression, key="this", flat=True)) + 592 else: + 593 this = self.sql(expression, "this") + 594 + 595 return f"COMPRESS {this}" + 596 + 597 def generatedasidentitycolumnconstraint_sql( + 598 self, expression: exp.GeneratedAsIdentityColumnConstraint + 599 ) -> str: + 600 this = "" + 601 if expression.this is not None: + 602 on_null = "ON NULL " if expression.args.get("on_null") else "" + 603 this = " ALWAYS " if expression.this else f" BY DEFAULT {on_null}" + 604 + 605 start = expression.args.get("start") + 606 start = f"START WITH {start}" if start else "" + 607 increment = expression.args.get("increment") + 608 increment = f" INCREMENT BY {increment}" if increment else "" + 609 minvalue = expression.args.get("minvalue") + 610 minvalue = f" MINVALUE {minvalue}" if minvalue else "" + 611 maxvalue = expression.args.get("maxvalue") + 612 maxvalue = f" MAXVALUE {maxvalue}" if maxvalue else "" + 613 cycle = expression.args.get("cycle") + 614 cycle_sql = "" + 615 + 616 if cycle is not None: + 617 cycle_sql = f"{' NO' if not cycle else ''} CYCLE" + 618 cycle_sql = cycle_sql.strip() if not start and not increment else cycle_sql + 619 + 620 sequence_opts = "" + 621 if start or increment or cycle_sql: + 622 sequence_opts = f"{start}{increment}{minvalue}{maxvalue}{cycle_sql}" + 623 sequence_opts = f" ({sequence_opts.strip()})" + 624 + 625 expr = self.sql(expression, "expression") + 626 expr = f"({expr})" if expr else "IDENTITY" + 627 + 628 return f"GENERATED{this}AS {expr}{sequence_opts}" + 629 + 630 def notnullcolumnconstraint_sql(self, expression: exp.NotNullColumnConstraint) -> str: + 631 return f"{'' if expression.args.get('allow_null') else 'NOT '}NULL" + 632 + 633 def primarykeycolumnconstraint_sql(self, expression: exp.PrimaryKeyColumnConstraint) -> str: + 634 desc = expression.args.get("desc") + 635 if desc is not None: + 636 return f"PRIMARY KEY{' DESC' if desc else ' ASC'}" + 637 return f"PRIMARY KEY" + 638 + 639 def uniquecolumnconstraint_sql(self, expression: exp.UniqueColumnConstraint) -> str: + 640 this = self.sql(expression, "this") + 641 this = f" {this}" if this else "" + 642 return f"UNIQUE{this}" + 643 + 644 def create_sql(self, expression: exp.Create) -> str: + 645 kind = self.sql(expression, "kind").upper() + 646 properties = expression.args.get("properties") + 647 properties_exp = expression.copy() + 648 properties_locs = self.locate_properties(properties) if properties else {} + 649 if properties_locs.get(exp.Properties.Location.POST_SCHEMA) or properties_locs.get( + 650 exp.Properties.Location.POST_WITH + 651 ): + 652 properties_exp.set( + 653 "properties", + 654 exp.Properties( + 655 expressions=[ + 656 *properties_locs[exp.Properties.Location.POST_SCHEMA], + 657 *properties_locs[exp.Properties.Location.POST_WITH], + 658 ] + 659 ), + 660 ) + 661 if kind == "TABLE" and properties_locs.get(exp.Properties.Location.POST_NAME): + 662 this_name = self.sql(expression.this, "this") + 663 this_properties = self.properties( + 664 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_NAME]), + 665 wrapped=False, + 666 ) + 667 this_schema = f"({self.expressions(expression.this)})" + 668 this = f"{this_name}, {this_properties} {this_schema}" + 669 properties_sql = "" + 670 else: + 671 this = self.sql(expression, "this") + 672 properties_sql = self.sql(properties_exp, "properties") + 673 begin = " BEGIN" if expression.args.get("begin") else "" + 674 expression_sql = self.sql(expression, "expression") + 675 if expression_sql: + 676 expression_sql = f"{begin}{self.sep()}{expression_sql}" + 677 + 678 if self.CREATE_FUNCTION_RETURN_AS or not isinstance(expression.expression, exp.Return): + 679 if properties_locs.get(exp.Properties.Location.POST_ALIAS): + 680 postalias_props_sql = self.properties( + 681 exp.Properties( + 682 expressions=properties_locs[exp.Properties.Location.POST_ALIAS] + 683 ), + 684 wrapped=False, + 685 ) + 686 expression_sql = f" AS {postalias_props_sql}{expression_sql}" + 687 else: + 688 expression_sql = f" AS{expression_sql}" + 689 + 690 postindex_props_sql = "" + 691 if properties_locs.get(exp.Properties.Location.POST_INDEX): + 692 postindex_props_sql = self.properties( + 693 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_INDEX]), + 694 wrapped=False, + 695 prefix=" ", + 696 ) + 697 + 698 indexes = self.expressions(expression, key="indexes", indent=False, sep=" ") + 699 indexes = f" {indexes}" if indexes else "" + 700 index_sql = indexes + postindex_props_sql + 701 + 702 replace = " OR REPLACE" if expression.args.get("replace") else "" + 703 unique = " UNIQUE" if expression.args.get("unique") else "" 704 - 705 modifiers = "".join((replace, unique, postcreate_props_sql)) - 706 - 707 postexpression_props_sql = "" - 708 if properties_locs.get(exp.Properties.Location.POST_EXPRESSION): - 709 postexpression_props_sql = self.properties( - 710 exp.Properties( - 711 expressions=properties_locs[exp.Properties.Location.POST_EXPRESSION] - 712 ), - 713 sep=" ", - 714 prefix=" ", - 715 wrapped=False, - 716 ) - 717 - 718 exists_sql = " IF NOT EXISTS" if expression.args.get("exists") else "" - 719 no_schema_binding = ( - 720 " WITH NO SCHEMA BINDING" if expression.args.get("no_schema_binding") else "" - 721 ) - 722 - 723 clone = self.sql(expression, "clone") - 724 clone = f" {clone}" if clone else "" - 725 - 726 expression_sql = f"CREATE{modifiers} {kind}{exists_sql} {this}{properties_sql}{expression_sql}{postexpression_props_sql}{index_sql}{no_schema_binding}{clone}" - 727 return self.prepend_ctes(expression, expression_sql) - 728 - 729 def clone_sql(self, expression: exp.Clone) -> str: - 730 this = self.sql(expression, "this") - 731 when = self.sql(expression, "when") - 732 - 733 if when: - 734 kind = self.sql(expression, "kind") - 735 expr = self.sql(expression, "expression") - 736 return f"CLONE {this} {when} ({kind} => {expr})" + 705 postcreate_props_sql = "" + 706 if properties_locs.get(exp.Properties.Location.POST_CREATE): + 707 postcreate_props_sql = self.properties( + 708 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_CREATE]), + 709 sep=" ", + 710 prefix=" ", + 711 wrapped=False, + 712 ) + 713 + 714 modifiers = "".join((replace, unique, postcreate_props_sql)) + 715 + 716 postexpression_props_sql = "" + 717 if properties_locs.get(exp.Properties.Location.POST_EXPRESSION): + 718 postexpression_props_sql = self.properties( + 719 exp.Properties( + 720 expressions=properties_locs[exp.Properties.Location.POST_EXPRESSION] + 721 ), + 722 sep=" ", + 723 prefix=" ", + 724 wrapped=False, + 725 ) + 726 + 727 exists_sql = " IF NOT EXISTS" if expression.args.get("exists") else "" + 728 no_schema_binding = ( + 729 " WITH NO SCHEMA BINDING" if expression.args.get("no_schema_binding") else "" + 730 ) + 731 + 732 clone = self.sql(expression, "clone") + 733 clone = f" {clone}" if clone else "" + 734 + 735 expression_sql = f"CREATE{modifiers} {kind}{exists_sql} {this}{properties_sql}{expression_sql}{postexpression_props_sql}{index_sql}{no_schema_binding}{clone}" + 736 return self.prepend_ctes(expression, expression_sql) 737 - 738 return f"CLONE {this}" - 739 - 740 def describe_sql(self, expression: exp.Describe) -> str: - 741 return f"DESCRIBE {self.sql(expression, 'this')}" - 742 - 743 def prepend_ctes(self, expression: exp.Expression, sql: str) -> str: - 744 with_ = self.sql(expression, "with") - 745 if with_: - 746 sql = f"{with_}{self.sep()}{sql}" - 747 return sql + 738 def clone_sql(self, expression: exp.Clone) -> str: + 739 this = self.sql(expression, "this") + 740 when = self.sql(expression, "when") + 741 + 742 if when: + 743 kind = self.sql(expression, "kind") + 744 expr = self.sql(expression, "expression") + 745 return f"CLONE {this} {when} ({kind} => {expr})" + 746 + 747 return f"CLONE {this}" 748 - 749 def with_sql(self, expression: exp.With) -> str: - 750 sql = self.expressions(expression, flat=True) - 751 recursive = "RECURSIVE " if expression.args.get("recursive") else "" - 752 - 753 return f"WITH {recursive}{sql}" - 754 - 755 def cte_sql(self, expression: exp.CTE) -> str: - 756 alias = self.sql(expression, "alias") - 757 return f"{alias} AS {self.wrap(expression)}" - 758 - 759 def tablealias_sql(self, expression: exp.TableAlias) -> str: - 760 alias = self.sql(expression, "this") - 761 columns = self.expressions(expression, key="columns", flat=True) - 762 columns = f"({columns})" if columns else "" - 763 return f"{alias}{columns}" - 764 - 765 def bitstring_sql(self, expression: exp.BitString) -> str: - 766 this = self.sql(expression, "this") - 767 if self.bit_start: - 768 return f"{self.bit_start}{this}{self.bit_end}" - 769 return f"{int(this, 2)}" - 770 - 771 def hexstring_sql(self, expression: exp.HexString) -> str: - 772 this = self.sql(expression, "this") - 773 if self.hex_start: - 774 return f"{self.hex_start}{this}{self.hex_end}" - 775 return f"{int(this, 16)}" - 776 - 777 def bytestring_sql(self, expression: exp.ByteString) -> str: - 778 this = self.sql(expression, "this") - 779 if self.byte_start: - 780 return f"{self.byte_start}{this}{self.byte_end}" - 781 return this - 782 - 783 def rawstring_sql(self, expression: exp.RawString) -> str: - 784 if self.raw_start: - 785 return f"{self.raw_start}{expression.name}{self.raw_end}" - 786 return self.sql(exp.Literal.string(expression.name.replace("\\", "\\\\"))) - 787 - 788 def datatypesize_sql(self, expression: exp.DataTypeSize) -> str: - 789 this = self.sql(expression, "this") - 790 specifier = self.sql(expression, "expression") - 791 specifier = f" {specifier}" if specifier else "" - 792 return f"{this}{specifier}" - 793 - 794 def datatype_sql(self, expression: exp.DataType) -> str: - 795 type_value = expression.this - 796 type_sql = self.TYPE_MAPPING.get(type_value, type_value.value) - 797 nested = "" - 798 interior = self.expressions(expression, flat=True) - 799 values = "" - 800 if interior: - 801 if expression.args.get("nested"): - 802 nested = f"{self.STRUCT_DELIMITER[0]}{interior}{self.STRUCT_DELIMITER[1]}" - 803 if expression.args.get("values") is not None: - 804 delimiters = ("[", "]") if type_value == exp.DataType.Type.ARRAY else ("(", ")") - 805 values = f"{delimiters[0]}{self.expressions(expression, key='values')}{delimiters[1]}" - 806 else: - 807 nested = f"({interior})" - 808 - 809 return f"{type_sql}{nested}{values}" - 810 - 811 def directory_sql(self, expression: exp.Directory) -> str: - 812 local = "LOCAL " if expression.args.get("local") else "" - 813 row_format = self.sql(expression, "row_format") - 814 row_format = f" {row_format}" if row_format else "" - 815 return f"{local}DIRECTORY {self.sql(expression, 'this')}{row_format}" - 816 - 817 def delete_sql(self, expression: exp.Delete) -> str: - 818 this = self.sql(expression, "this") - 819 this = f" FROM {this}" if this else "" - 820 using_sql = ( - 821 f" USING {self.expressions(expression, key='using', sep=', USING ')}" - 822 if expression.args.get("using") - 823 else "" - 824 ) - 825 where_sql = self.sql(expression, "where") - 826 returning = self.sql(expression, "returning") - 827 sql = f"DELETE{this}{using_sql}{where_sql}{returning}" - 828 return self.prepend_ctes(expression, sql) - 829 - 830 def drop_sql(self, expression: exp.Drop) -> str: - 831 this = self.sql(expression, "this") - 832 kind = expression.args["kind"] - 833 exists_sql = " IF EXISTS " if expression.args.get("exists") else " " - 834 temporary = " TEMPORARY" if expression.args.get("temporary") else "" - 835 materialized = " MATERIALIZED" if expression.args.get("materialized") else "" - 836 cascade = " CASCADE" if expression.args.get("cascade") else "" - 837 constraints = " CONSTRAINTS" if expression.args.get("constraints") else "" - 838 purge = " PURGE" if expression.args.get("purge") else "" - 839 return ( - 840 f"DROP{temporary}{materialized} {kind}{exists_sql}{this}{cascade}{constraints}{purge}" - 841 ) - 842 - 843 def except_sql(self, expression: exp.Except) -> str: - 844 return self.prepend_ctes( - 845 expression, - 846 self.set_operation(expression, self.except_op(expression)), - 847 ) - 848 - 849 def except_op(self, expression: exp.Except) -> str: - 850 return f"EXCEPT{'' if expression.args.get('distinct') else ' ALL'}" - 851 - 852 def fetch_sql(self, expression: exp.Fetch) -> str: - 853 direction = expression.args.get("direction") - 854 direction = f" {direction.upper()}" if direction else "" - 855 count = expression.args.get("count") - 856 count = f" {count}" if count else "" - 857 if expression.args.get("percent"): - 858 count = f"{count} PERCENT" - 859 with_ties_or_only = "WITH TIES" if expression.args.get("with_ties") else "ONLY" - 860 return f"{self.seg('FETCH')}{direction}{count} ROWS {with_ties_or_only}" + 749 def describe_sql(self, expression: exp.Describe) -> str: + 750 return f"DESCRIBE {self.sql(expression, 'this')}" + 751 + 752 def prepend_ctes(self, expression: exp.Expression, sql: str) -> str: + 753 with_ = self.sql(expression, "with") + 754 if with_: + 755 sql = f"{with_}{self.sep()}{sql}" + 756 return sql + 757 + 758 def with_sql(self, expression: exp.With) -> str: + 759 sql = self.expressions(expression, flat=True) + 760 recursive = "RECURSIVE " if expression.args.get("recursive") else "" + 761 + 762 return f"WITH {recursive}{sql}" + 763 + 764 def cte_sql(self, expression: exp.CTE) -> str: + 765 alias = self.sql(expression, "alias") + 766 return f"{alias} AS {self.wrap(expression)}" + 767 + 768 def tablealias_sql(self, expression: exp.TableAlias) -> str: + 769 alias = self.sql(expression, "this") + 770 columns = self.expressions(expression, key="columns", flat=True) + 771 columns = f"({columns})" if columns else "" + 772 return f"{alias}{columns}" + 773 + 774 def bitstring_sql(self, expression: exp.BitString) -> str: + 775 this = self.sql(expression, "this") + 776 if self.bit_start: + 777 return f"{self.bit_start}{this}{self.bit_end}" + 778 return f"{int(this, 2)}" + 779 + 780 def hexstring_sql(self, expression: exp.HexString) -> str: + 781 this = self.sql(expression, "this") + 782 if self.hex_start: + 783 return f"{self.hex_start}{this}{self.hex_end}" + 784 return f"{int(this, 16)}" + 785 + 786 def bytestring_sql(self, expression: exp.ByteString) -> str: + 787 this = self.sql(expression, "this") + 788 if self.byte_start: + 789 return f"{self.byte_start}{this}{self.byte_end}" + 790 return this + 791 + 792 def rawstring_sql(self, expression: exp.RawString) -> str: + 793 if self.raw_start: + 794 return f"{self.raw_start}{expression.name}{self.raw_end}" + 795 return self.sql(exp.Literal.string(expression.name.replace("\\", "\\\\"))) + 796 + 797 def datatypesize_sql(self, expression: exp.DataTypeSize) -> str: + 798 this = self.sql(expression, "this") + 799 specifier = self.sql(expression, "expression") + 800 specifier = f" {specifier}" if specifier else "" + 801 return f"{this}{specifier}" + 802 + 803 def datatype_sql(self, expression: exp.DataType) -> str: + 804 type_value = expression.this + 805 type_sql = self.TYPE_MAPPING.get(type_value, type_value.value) + 806 nested = "" + 807 interior = self.expressions(expression, flat=True) + 808 values = "" + 809 if interior: + 810 if expression.args.get("nested"): + 811 nested = f"{self.STRUCT_DELIMITER[0]}{interior}{self.STRUCT_DELIMITER[1]}" + 812 if expression.args.get("values") is not None: + 813 delimiters = ("[", "]") if type_value == exp.DataType.Type.ARRAY else ("(", ")") + 814 values = self.expressions(expression, key="values", flat=True) + 815 values = f"{delimiters[0]}{values}{delimiters[1]}" + 816 else: + 817 nested = f"({interior})" + 818 + 819 return f"{type_sql}{nested}{values}" + 820 + 821 def directory_sql(self, expression: exp.Directory) -> str: + 822 local = "LOCAL " if expression.args.get("local") else "" + 823 row_format = self.sql(expression, "row_format") + 824 row_format = f" {row_format}" if row_format else "" + 825 return f"{local}DIRECTORY {self.sql(expression, 'this')}{row_format}" + 826 + 827 def delete_sql(self, expression: exp.Delete) -> str: + 828 this = self.sql(expression, "this") + 829 this = f" FROM {this}" if this else "" + 830 using_sql = ( + 831 f" USING {self.expressions(expression, key='using', sep=', USING ')}" + 832 if expression.args.get("using") + 833 else "" + 834 ) + 835 where_sql = self.sql(expression, "where") + 836 returning = self.sql(expression, "returning") + 837 sql = f"DELETE{this}{using_sql}{where_sql}{returning}" + 838 return self.prepend_ctes(expression, sql) + 839 + 840 def drop_sql(self, expression: exp.Drop) -> str: + 841 this = self.sql(expression, "this") + 842 kind = expression.args["kind"] + 843 exists_sql = " IF EXISTS " if expression.args.get("exists") else " " + 844 temporary = " TEMPORARY" if expression.args.get("temporary") else "" + 845 materialized = " MATERIALIZED" if expression.args.get("materialized") else "" + 846 cascade = " CASCADE" if expression.args.get("cascade") else "" + 847 constraints = " CONSTRAINTS" if expression.args.get("constraints") else "" + 848 purge = " PURGE" if expression.args.get("purge") else "" + 849 return ( + 850 f"DROP{temporary}{materialized} {kind}{exists_sql}{this}{cascade}{constraints}{purge}" + 851 ) + 852 + 853 def except_sql(self, expression: exp.Except) -> str: + 854 return self.prepend_ctes( + 855 expression, + 856 self.set_operation(expression, self.except_op(expression)), + 857 ) + 858 + 859 def except_op(self, expression: exp.Except) -> str: + 860 return f"EXCEPT{'' if expression.args.get('distinct') else ' ALL'}" 861 - 862 def filter_sql(self, expression: exp.Filter) -> str: - 863 this = self.sql(expression, "this") - 864 where = self.sql(expression, "expression")[1:] # where has a leading space - 865 return f"{this} FILTER({where})" - 866 - 867 def hint_sql(self, expression: exp.Hint) -> str: - 868 if self.sql(expression, "this"): - 869 self.unsupported("Hints are not supported") - 870 return "" + 862 def fetch_sql(self, expression: exp.Fetch) -> str: + 863 direction = expression.args.get("direction") + 864 direction = f" {direction.upper()}" if direction else "" + 865 count = expression.args.get("count") + 866 count = f" {count}" if count else "" + 867 if expression.args.get("percent"): + 868 count = f"{count} PERCENT" + 869 with_ties_or_only = "WITH TIES" if expression.args.get("with_ties") else "ONLY" + 870 return f"{self.seg('FETCH')}{direction}{count} ROWS {with_ties_or_only}" 871 - 872 def index_sql(self, expression: exp.Index) -> str: - 873 unique = "UNIQUE " if expression.args.get("unique") else "" - 874 primary = "PRIMARY " if expression.args.get("primary") else "" - 875 amp = "AMP " if expression.args.get("amp") else "" - 876 name = f"{expression.name} " if expression.name else "" - 877 table = self.sql(expression, "table") - 878 table = f"{self.INDEX_ON} {table} " if table else "" - 879 index = "INDEX " if not table else "" - 880 columns = self.expressions(expression, key="columns", flat=True) - 881 return f"{unique}{primary}{amp}{index}{name}{table}({columns})" - 882 - 883 def identifier_sql(self, expression: exp.Identifier) -> str: - 884 text = expression.name - 885 lower = text.lower() - 886 text = lower if self.normalize and not expression.quoted else text - 887 text = text.replace(self.identifier_end, self._escaped_identifier_end) - 888 if ( - 889 expression.quoted - 890 or should_identify(text, self.identify) - 891 or lower in self.RESERVED_KEYWORDS - 892 ): - 893 text = f"{self.identifier_start}{text}{self.identifier_end}" - 894 return text - 895 - 896 def inputoutputformat_sql(self, expression: exp.InputOutputFormat) -> str: - 897 input_format = self.sql(expression, "input_format") - 898 input_format = f"INPUTFORMAT {input_format}" if input_format else "" - 899 output_format = self.sql(expression, "output_format") - 900 output_format = f"OUTPUTFORMAT {output_format}" if output_format else "" - 901 return self.sep().join((input_format, output_format)) - 902 - 903 def national_sql(self, expression: exp.National, prefix: str = "N") -> str: - 904 string = self.sql(exp.Literal.string(expression.name)) - 905 return f"{prefix}{string}" - 906 - 907 def partition_sql(self, expression: exp.Partition) -> str: - 908 return f"PARTITION({self.expressions(expression)})" - 909 - 910 def properties_sql(self, expression: exp.Properties) -> str: - 911 root_properties = [] - 912 with_properties = [] - 913 - 914 for p in expression.expressions: - 915 p_loc = self.PROPERTIES_LOCATION[p.__class__] - 916 if p_loc == exp.Properties.Location.POST_WITH: - 917 with_properties.append(p) - 918 elif p_loc == exp.Properties.Location.POST_SCHEMA: - 919 root_properties.append(p) - 920 - 921 return self.root_properties( - 922 exp.Properties(expressions=root_properties) - 923 ) + self.with_properties(exp.Properties(expressions=with_properties)) - 924 - 925 def root_properties(self, properties: exp.Properties) -> str: - 926 if properties.expressions: - 927 return self.sep() + self.expressions(properties, indent=False, sep=" ") - 928 return "" - 929 - 930 def properties( - 931 self, - 932 properties: exp.Properties, - 933 prefix: str = "", - 934 sep: str = ", ", - 935 suffix: str = "", - 936 wrapped: bool = True, - 937 ) -> str: - 938 if properties.expressions: - 939 expressions = self.expressions(properties, sep=sep, indent=False) - 940 expressions = self.wrap(expressions) if wrapped else expressions - 941 return f"{prefix}{' ' if prefix and prefix != ' ' else ''}{expressions}{suffix}" - 942 return "" - 943 - 944 def with_properties(self, properties: exp.Properties) -> str: - 945 return self.properties(properties, prefix=self.seg("WITH")) - 946 - 947 def locate_properties( - 948 self, properties: exp.Properties - 949 ) -> t.Dict[exp.Properties.Location, list[exp.Property]]: - 950 properties_locs: t.Dict[exp.Properties.Location, list[exp.Property]] = { - 951 key: [] for key in exp.Properties.Location - 952 } - 953 - 954 for p in properties.expressions: - 955 p_loc = self.PROPERTIES_LOCATION[p.__class__] - 956 if p_loc == exp.Properties.Location.POST_NAME: - 957 properties_locs[exp.Properties.Location.POST_NAME].append(p) - 958 elif p_loc == exp.Properties.Location.POST_INDEX: - 959 properties_locs[exp.Properties.Location.POST_INDEX].append(p) - 960 elif p_loc == exp.Properties.Location.POST_SCHEMA: - 961 properties_locs[exp.Properties.Location.POST_SCHEMA].append(p) - 962 elif p_loc == exp.Properties.Location.POST_WITH: - 963 properties_locs[exp.Properties.Location.POST_WITH].append(p) - 964 elif p_loc == exp.Properties.Location.POST_CREATE: - 965 properties_locs[exp.Properties.Location.POST_CREATE].append(p) - 966 elif p_loc == exp.Properties.Location.POST_ALIAS: - 967 properties_locs[exp.Properties.Location.POST_ALIAS].append(p) - 968 elif p_loc == exp.Properties.Location.POST_EXPRESSION: - 969 properties_locs[exp.Properties.Location.POST_EXPRESSION].append(p) - 970 elif p_loc == exp.Properties.Location.UNSUPPORTED: - 971 self.unsupported(f"Unsupported property {p.key}") - 972 - 973 return properties_locs - 974 - 975 def property_sql(self, expression: exp.Property) -> str: - 976 property_cls = expression.__class__ - 977 if property_cls == exp.Property: - 978 return f"{expression.name}={self.sql(expression, 'value')}" - 979 - 980 property_name = exp.Properties.PROPERTY_TO_NAME.get(property_cls) - 981 if not property_name: - 982 self.unsupported(f"Unsupported property {expression.key}") - 983 - 984 return f"{property_name}={self.sql(expression, 'this')}" + 872 def filter_sql(self, expression: exp.Filter) -> str: + 873 this = self.sql(expression, "this") + 874 where = self.sql(expression, "expression")[1:] # where has a leading space + 875 return f"{this} FILTER({where})" + 876 + 877 def hint_sql(self, expression: exp.Hint) -> str: + 878 if self.sql(expression, "this"): + 879 self.unsupported("Hints are not supported") + 880 return "" + 881 + 882 def index_sql(self, expression: exp.Index) -> str: + 883 unique = "UNIQUE " if expression.args.get("unique") else "" + 884 primary = "PRIMARY " if expression.args.get("primary") else "" + 885 amp = "AMP " if expression.args.get("amp") else "" + 886 name = f"{expression.name} " if expression.name else "" + 887 table = self.sql(expression, "table") + 888 table = f"{self.INDEX_ON} {table} " if table else "" + 889 index = "INDEX " if not table else "" + 890 columns = self.expressions(expression, key="columns", flat=True) + 891 partition_by = self.expressions(expression, key="partition_by", flat=True) + 892 partition_by = f" PARTITION BY {partition_by}" if partition_by else "" + 893 return f"{unique}{primary}{amp}{index}{name}{table}({columns}){partition_by}" + 894 + 895 def identifier_sql(self, expression: exp.Identifier) -> str: + 896 text = expression.name + 897 lower = text.lower() + 898 text = lower if self.normalize and not expression.quoted else text + 899 text = text.replace(self.identifier_end, self._escaped_identifier_end) + 900 if ( + 901 expression.quoted + 902 or should_identify(text, self.identify) + 903 or lower in self.RESERVED_KEYWORDS + 904 or (not self.identifiers_can_start_with_digit and text[:1].isdigit()) + 905 ): + 906 text = f"{self.identifier_start}{text}{self.identifier_end}" + 907 return text + 908 + 909 def inputoutputformat_sql(self, expression: exp.InputOutputFormat) -> str: + 910 input_format = self.sql(expression, "input_format") + 911 input_format = f"INPUTFORMAT {input_format}" if input_format else "" + 912 output_format = self.sql(expression, "output_format") + 913 output_format = f"OUTPUTFORMAT {output_format}" if output_format else "" + 914 return self.sep().join((input_format, output_format)) + 915 + 916 def national_sql(self, expression: exp.National, prefix: str = "N") -> str: + 917 string = self.sql(exp.Literal.string(expression.name)) + 918 return f"{prefix}{string}" + 919 + 920 def partition_sql(self, expression: exp.Partition) -> str: + 921 return f"PARTITION({self.expressions(expression)})" + 922 + 923 def properties_sql(self, expression: exp.Properties) -> str: + 924 root_properties = [] + 925 with_properties = [] + 926 + 927 for p in expression.expressions: + 928 p_loc = self.PROPERTIES_LOCATION[p.__class__] + 929 if p_loc == exp.Properties.Location.POST_WITH: + 930 with_properties.append(p) + 931 elif p_loc == exp.Properties.Location.POST_SCHEMA: + 932 root_properties.append(p) + 933 + 934 return self.root_properties( + 935 exp.Properties(expressions=root_properties) + 936 ) + self.with_properties(exp.Properties(expressions=with_properties)) + 937 + 938 def root_properties(self, properties: exp.Properties) -> str: + 939 if properties.expressions: + 940 return self.sep() + self.expressions(properties, indent=False, sep=" ") + 941 return "" + 942 + 943 def properties( + 944 self, + 945 properties: exp.Properties, + 946 prefix: str = "", + 947 sep: str = ", ", + 948 suffix: str = "", + 949 wrapped: bool = True, + 950 ) -> str: + 951 if properties.expressions: + 952 expressions = self.expressions(properties, sep=sep, indent=False) + 953 expressions = self.wrap(expressions) if wrapped else expressions + 954 return f"{prefix}{' ' if prefix and prefix != ' ' else ''}{expressions}{suffix}" + 955 return "" + 956 + 957 def with_properties(self, properties: exp.Properties) -> str: + 958 return self.properties(properties, prefix=self.seg("WITH")) + 959 + 960 def locate_properties( + 961 self, properties: exp.Properties + 962 ) -> t.Dict[exp.Properties.Location, list[exp.Property]]: + 963 properties_locs: t.Dict[exp.Properties.Location, list[exp.Property]] = { + 964 key: [] for key in exp.Properties.Location + 965 } + 966 + 967 for p in properties.expressions: + 968 p_loc = self.PROPERTIES_LOCATION[p.__class__] + 969 if p_loc == exp.Properties.Location.POST_NAME: + 970 properties_locs[exp.Properties.Location.POST_NAME].append(p) + 971 elif p_loc == exp.Properties.Location.POST_INDEX: + 972 properties_locs[exp.Properties.Location.POST_INDEX].append(p) + 973 elif p_loc == exp.Properties.Location.POST_SCHEMA: + 974 properties_locs[exp.Properties.Location.POST_SCHEMA].append(p) + 975 elif p_loc == exp.Properties.Location.POST_WITH: + 976 properties_locs[exp.Properties.Location.POST_WITH].append(p) + 977 elif p_loc == exp.Properties.Location.POST_CREATE: + 978 properties_locs[exp.Properties.Location.POST_CREATE].append(p) + 979 elif p_loc == exp.Properties.Location.POST_ALIAS: + 980 properties_locs[exp.Properties.Location.POST_ALIAS].append(p) + 981 elif p_loc == exp.Properties.Location.POST_EXPRESSION: + 982 properties_locs[exp.Properties.Location.POST_EXPRESSION].append(p) + 983 elif p_loc == exp.Properties.Location.UNSUPPORTED: + 984 self.unsupported(f"Unsupported property {p.key}") 985 - 986 def likeproperty_sql(self, expression: exp.LikeProperty) -> str: - 987 options = " ".join(f"{e.name} {self.sql(e, 'value')}" for e in expression.expressions) - 988 options = f" {options}" if options else "" - 989 return f"LIKE {self.sql(expression, 'this')}{options}" - 990 - 991 def fallbackproperty_sql(self, expression: exp.FallbackProperty) -> str: - 992 no = "NO " if expression.args.get("no") else "" - 993 protection = " PROTECTION" if expression.args.get("protection") else "" - 994 return f"{no}FALLBACK{protection}" - 995 - 996 def journalproperty_sql(self, expression: exp.JournalProperty) -> str: - 997 no = "NO " if expression.args.get("no") else "" - 998 local = expression.args.get("local") - 999 local = f"{local} " if local else "" -1000 dual = "DUAL " if expression.args.get("dual") else "" -1001 before = "BEFORE " if expression.args.get("before") else "" -1002 after = "AFTER " if expression.args.get("after") else "" -1003 return f"{no}{local}{dual}{before}{after}JOURNAL" -1004 -1005 def freespaceproperty_sql(self, expression: exp.FreespaceProperty) -> str: -1006 freespace = self.sql(expression, "this") -1007 percent = " PERCENT" if expression.args.get("percent") else "" -1008 return f"FREESPACE={freespace}{percent}" -1009 -1010 def checksumproperty_sql(self, expression: exp.ChecksumProperty) -> str: -1011 if expression.args.get("default"): -1012 property = "DEFAULT" -1013 elif expression.args.get("on"): -1014 property = "ON" -1015 else: -1016 property = "OFF" -1017 return f"CHECKSUM={property}" -1018 -1019 def mergeblockratioproperty_sql(self, expression: exp.MergeBlockRatioProperty) -> str: -1020 if expression.args.get("no"): -1021 return "NO MERGEBLOCKRATIO" -1022 if expression.args.get("default"): -1023 return "DEFAULT MERGEBLOCKRATIO" -1024 -1025 percent = " PERCENT" if expression.args.get("percent") else "" -1026 return f"MERGEBLOCKRATIO={self.sql(expression, 'this')}{percent}" -1027 -1028 def datablocksizeproperty_sql(self, expression: exp.DataBlocksizeProperty) -> str: -1029 default = expression.args.get("default") -1030 minimum = expression.args.get("minimum") -1031 maximum = expression.args.get("maximum") -1032 if default or minimum or maximum: -1033 if default: -1034 prop = "DEFAULT" -1035 elif minimum: -1036 prop = "MINIMUM" -1037 else: -1038 prop = "MAXIMUM" -1039 return f"{prop} DATABLOCKSIZE" -1040 units = expression.args.get("units") -1041 units = f" {units}" if units else "" -1042 return f"DATABLOCKSIZE={self.sql(expression, 'size')}{units}" -1043 -1044 def blockcompressionproperty_sql(self, expression: exp.BlockCompressionProperty) -> str: -1045 autotemp = expression.args.get("autotemp") -1046 always = expression.args.get("always") -1047 default = expression.args.get("default") -1048 manual = expression.args.get("manual") -1049 never = expression.args.get("never") -1050 -1051 if autotemp is not None: -1052 prop = f"AUTOTEMP({self.expressions(autotemp)})" -1053 elif always: -1054 prop = "ALWAYS" -1055 elif default: -1056 prop = "DEFAULT" -1057 elif manual: -1058 prop = "MANUAL" -1059 elif never: -1060 prop = "NEVER" -1061 return f"BLOCKCOMPRESSION={prop}" -1062 -1063 def isolatedloadingproperty_sql(self, expression: exp.IsolatedLoadingProperty) -> str: -1064 no = expression.args.get("no") -1065 no = " NO" if no else "" -1066 concurrent = expression.args.get("concurrent") -1067 concurrent = " CONCURRENT" if concurrent else "" -1068 -1069 for_ = "" -1070 if expression.args.get("for_all"): -1071 for_ = " FOR ALL" -1072 elif expression.args.get("for_insert"): -1073 for_ = " FOR INSERT" -1074 elif expression.args.get("for_none"): -1075 for_ = " FOR NONE" -1076 return f"WITH{no}{concurrent} ISOLATED LOADING{for_}" -1077 -1078 def lockingproperty_sql(self, expression: exp.LockingProperty) -> str: -1079 kind = expression.args.get("kind") -1080 this: str = f" {this}" if expression.this else "" -1081 for_or_in = expression.args.get("for_or_in") -1082 lock_type = expression.args.get("lock_type") -1083 override = " OVERRIDE" if expression.args.get("override") else "" -1084 return f"LOCKING {kind}{this} {for_or_in} {lock_type}{override}" -1085 -1086 def withdataproperty_sql(self, expression: exp.WithDataProperty) -> str: -1087 data_sql = f"WITH {'NO ' if expression.args.get('no') else ''}DATA" -1088 statistics = expression.args.get("statistics") -1089 statistics_sql = "" -1090 if statistics is not None: -1091 statistics_sql = f" AND {'NO ' if not statistics else ''}STATISTICS" -1092 return f"{data_sql}{statistics_sql}" -1093 -1094 def insert_sql(self, expression: exp.Insert) -> str: -1095 overwrite = expression.args.get("overwrite") -1096 -1097 if isinstance(expression.this, exp.Directory): -1098 this = "OVERWRITE " if overwrite else "INTO " -1099 else: -1100 this = "OVERWRITE TABLE " if overwrite else "INTO " -1101 -1102 alternative = expression.args.get("alternative") -1103 alternative = f" OR {alternative} " if alternative else " " -1104 this = f"{this}{self.sql(expression, 'this')}" -1105 -1106 exists = " IF EXISTS " if expression.args.get("exists") else " " -1107 partition_sql = ( -1108 self.sql(expression, "partition") if expression.args.get("partition") else "" -1109 ) -1110 expression_sql = self.sql(expression, "expression") -1111 conflict = self.sql(expression, "conflict") -1112 returning = self.sql(expression, "returning") -1113 sep = self.sep() if partition_sql else "" -1114 sql = f"INSERT{alternative}{this}{exists}{partition_sql}{sep}{expression_sql}{conflict}{returning}" -1115 return self.prepend_ctes(expression, sql) -1116 -1117 def intersect_sql(self, expression: exp.Intersect) -> str: -1118 return self.prepend_ctes( -1119 expression, -1120 self.set_operation(expression, self.intersect_op(expression)), -1121 ) -1122 -1123 def intersect_op(self, expression: exp.Intersect) -> str: -1124 return f"INTERSECT{'' if expression.args.get('distinct') else ' ALL'}" -1125 -1126 def introducer_sql(self, expression: exp.Introducer) -> str: -1127 return f"{self.sql(expression, 'this')} {self.sql(expression, 'expression')}" -1128 -1129 def pseudotype_sql(self, expression: exp.PseudoType) -> str: -1130 return expression.name.upper() -1131 -1132 def onconflict_sql(self, expression: exp.OnConflict) -> str: -1133 conflict = "ON DUPLICATE KEY" if expression.args.get("duplicate") else "ON CONFLICT" -1134 constraint = self.sql(expression, "constraint") -1135 if constraint: -1136 constraint = f"ON CONSTRAINT {constraint}" -1137 key = self.expressions(expression, key="key", flat=True) -1138 do = "" if expression.args.get("duplicate") else " DO " -1139 nothing = "NOTHING" if expression.args.get("nothing") else "" -1140 expressions = self.expressions(expression, flat=True) -1141 if expressions: -1142 expressions = f"UPDATE SET {expressions}" -1143 return f"{self.seg(conflict)} {constraint}{key}{do}{nothing}{expressions}" + 986 return properties_locs + 987 + 988 def property_sql(self, expression: exp.Property) -> str: + 989 property_cls = expression.__class__ + 990 if property_cls == exp.Property: + 991 return f"{expression.name}={self.sql(expression, 'value')}" + 992 + 993 property_name = exp.Properties.PROPERTY_TO_NAME.get(property_cls) + 994 if not property_name: + 995 self.unsupported(f"Unsupported property {expression.key}") + 996 + 997 return f"{property_name}={self.sql(expression, 'this')}" + 998 + 999 def likeproperty_sql(self, expression: exp.LikeProperty) -> str: +1000 options = " ".join(f"{e.name} {self.sql(e, 'value')}" for e in expression.expressions) +1001 options = f" {options}" if options else "" +1002 return f"LIKE {self.sql(expression, 'this')}{options}" +1003 +1004 def fallbackproperty_sql(self, expression: exp.FallbackProperty) -> str: +1005 no = "NO " if expression.args.get("no") else "" +1006 protection = " PROTECTION" if expression.args.get("protection") else "" +1007 return f"{no}FALLBACK{protection}" +1008 +1009 def journalproperty_sql(self, expression: exp.JournalProperty) -> str: +1010 no = "NO " if expression.args.get("no") else "" +1011 local = expression.args.get("local") +1012 local = f"{local} " if local else "" +1013 dual = "DUAL " if expression.args.get("dual") else "" +1014 before = "BEFORE " if expression.args.get("before") else "" +1015 after = "AFTER " if expression.args.get("after") else "" +1016 return f"{no}{local}{dual}{before}{after}JOURNAL" +1017 +1018 def freespaceproperty_sql(self, expression: exp.FreespaceProperty) -> str: +1019 freespace = self.sql(expression, "this") +1020 percent = " PERCENT" if expression.args.get("percent") else "" +1021 return f"FREESPACE={freespace}{percent}" +1022 +1023 def checksumproperty_sql(self, expression: exp.ChecksumProperty) -> str: +1024 if expression.args.get("default"): +1025 property = "DEFAULT" +1026 elif expression.args.get("on"): +1027 property = "ON" +1028 else: +1029 property = "OFF" +1030 return f"CHECKSUM={property}" +1031 +1032 def mergeblockratioproperty_sql(self, expression: exp.MergeBlockRatioProperty) -> str: +1033 if expression.args.get("no"): +1034 return "NO MERGEBLOCKRATIO" +1035 if expression.args.get("default"): +1036 return "DEFAULT MERGEBLOCKRATIO" +1037 +1038 percent = " PERCENT" if expression.args.get("percent") else "" +1039 return f"MERGEBLOCKRATIO={self.sql(expression, 'this')}{percent}" +1040 +1041 def datablocksizeproperty_sql(self, expression: exp.DataBlocksizeProperty) -> str: +1042 default = expression.args.get("default") +1043 minimum = expression.args.get("minimum") +1044 maximum = expression.args.get("maximum") +1045 if default or minimum or maximum: +1046 if default: +1047 prop = "DEFAULT" +1048 elif minimum: +1049 prop = "MINIMUM" +1050 else: +1051 prop = "MAXIMUM" +1052 return f"{prop} DATABLOCKSIZE" +1053 units = expression.args.get("units") +1054 units = f" {units}" if units else "" +1055 return f"DATABLOCKSIZE={self.sql(expression, 'size')}{units}" +1056 +1057 def blockcompressionproperty_sql(self, expression: exp.BlockCompressionProperty) -> str: +1058 autotemp = expression.args.get("autotemp") +1059 always = expression.args.get("always") +1060 default = expression.args.get("default") +1061 manual = expression.args.get("manual") +1062 never = expression.args.get("never") +1063 +1064 if autotemp is not None: +1065 prop = f"AUTOTEMP({self.expressions(autotemp)})" +1066 elif always: +1067 prop = "ALWAYS" +1068 elif default: +1069 prop = "DEFAULT" +1070 elif manual: +1071 prop = "MANUAL" +1072 elif never: +1073 prop = "NEVER" +1074 return f"BLOCKCOMPRESSION={prop}" +1075 +1076 def isolatedloadingproperty_sql(self, expression: exp.IsolatedLoadingProperty) -> str: +1077 no = expression.args.get("no") +1078 no = " NO" if no else "" +1079 concurrent = expression.args.get("concurrent") +1080 concurrent = " CONCURRENT" if concurrent else "" +1081 +1082 for_ = "" +1083 if expression.args.get("for_all"): +1084 for_ = " FOR ALL" +1085 elif expression.args.get("for_insert"): +1086 for_ = " FOR INSERT" +1087 elif expression.args.get("for_none"): +1088 for_ = " FOR NONE" +1089 return f"WITH{no}{concurrent} ISOLATED LOADING{for_}" +1090 +1091 def lockingproperty_sql(self, expression: exp.LockingProperty) -> str: +1092 kind = expression.args.get("kind") +1093 this = f" {self.sql(expression, 'this')}" if expression.this else "" +1094 for_or_in = expression.args.get("for_or_in") +1095 lock_type = expression.args.get("lock_type") +1096 override = " OVERRIDE" if expression.args.get("override") else "" +1097 return f"LOCKING {kind}{this} {for_or_in} {lock_type}{override}" +1098 +1099 def withdataproperty_sql(self, expression: exp.WithDataProperty) -> str: +1100 data_sql = f"WITH {'NO ' if expression.args.get('no') else ''}DATA" +1101 statistics = expression.args.get("statistics") +1102 statistics_sql = "" +1103 if statistics is not None: +1104 statistics_sql = f" AND {'NO ' if not statistics else ''}STATISTICS" +1105 return f"{data_sql}{statistics_sql}" +1106 +1107 def insert_sql(self, expression: exp.Insert) -> str: +1108 overwrite = expression.args.get("overwrite") +1109 +1110 if isinstance(expression.this, exp.Directory): +1111 this = "OVERWRITE " if overwrite else "INTO " +1112 else: +1113 this = "OVERWRITE TABLE " if overwrite else "INTO " +1114 +1115 alternative = expression.args.get("alternative") +1116 alternative = f" OR {alternative} " if alternative else " " +1117 this = f"{this}{self.sql(expression, 'this')}" +1118 +1119 exists = " IF EXISTS " if expression.args.get("exists") else " " +1120 partition_sql = ( +1121 self.sql(expression, "partition") if expression.args.get("partition") else "" +1122 ) +1123 expression_sql = self.sql(expression, "expression") +1124 conflict = self.sql(expression, "conflict") +1125 returning = self.sql(expression, "returning") +1126 sep = self.sep() if partition_sql else "" +1127 sql = f"INSERT{alternative}{this}{exists}{partition_sql}{sep}{expression_sql}{conflict}{returning}" +1128 return self.prepend_ctes(expression, sql) +1129 +1130 def intersect_sql(self, expression: exp.Intersect) -> str: +1131 return self.prepend_ctes( +1132 expression, +1133 self.set_operation(expression, self.intersect_op(expression)), +1134 ) +1135 +1136 def intersect_op(self, expression: exp.Intersect) -> str: +1137 return f"INTERSECT{'' if expression.args.get('distinct') else ' ALL'}" +1138 +1139 def introducer_sql(self, expression: exp.Introducer) -> str: +1140 return f"{self.sql(expression, 'this')} {self.sql(expression, 'expression')}" +1141 +1142 def pseudotype_sql(self, expression: exp.PseudoType) -> str: +1143 return expression.name.upper() 1144 -1145 def returning_sql(self, expression: exp.Returning) -> str: -1146 return f"{self.seg('RETURNING')} {self.expressions(expression, flat=True)}" -1147 -1148 def rowformatdelimitedproperty_sql(self, expression: exp.RowFormatDelimitedProperty) -> str: -1149 fields = expression.args.get("fields") -1150 fields = f" FIELDS TERMINATED BY {fields}" if fields else "" -1151 escaped = expression.args.get("escaped") -1152 escaped = f" ESCAPED BY {escaped}" if escaped else "" -1153 items = expression.args.get("collection_items") -1154 items = f" COLLECTION ITEMS TERMINATED BY {items}" if items else "" -1155 keys = expression.args.get("map_keys") -1156 keys = f" MAP KEYS TERMINATED BY {keys}" if keys else "" -1157 lines = expression.args.get("lines") -1158 lines = f" LINES TERMINATED BY {lines}" if lines else "" -1159 null = expression.args.get("null") -1160 null = f" NULL DEFINED AS {null}" if null else "" -1161 return f"ROW FORMAT DELIMITED{fields}{escaped}{items}{keys}{lines}{null}" -1162 -1163 def table_sql(self, expression: exp.Table, sep: str = " AS ") -> str: -1164 table = ".".join( -1165 part -1166 for part in [ -1167 self.sql(expression, "catalog"), -1168 self.sql(expression, "db"), -1169 self.sql(expression, "this"), -1170 ] -1171 if part -1172 ) -1173 -1174 alias = self.sql(expression, "alias") -1175 alias = f"{sep}{alias}" if alias else "" -1176 hints = self.expressions(expression, key="hints", flat=True) -1177 hints = f" WITH ({hints})" if hints and self.TABLE_HINTS else "" -1178 pivots = self.expressions(expression, key="pivots", sep=" ", flat=True) -1179 pivots = f" {pivots}" if pivots else "" -1180 joins = self.expressions(expression, key="joins", sep="") -1181 laterals = self.expressions(expression, key="laterals", sep="") -1182 system_time = expression.args.get("system_time") -1183 system_time = f" {self.sql(expression, 'system_time')}" if system_time else "" -1184 -1185 return f"{table}{system_time}{alias}{hints}{pivots}{joins}{laterals}" +1145 def onconflict_sql(self, expression: exp.OnConflict) -> str: +1146 conflict = "ON DUPLICATE KEY" if expression.args.get("duplicate") else "ON CONFLICT" +1147 constraint = self.sql(expression, "constraint") +1148 if constraint: +1149 constraint = f"ON CONSTRAINT {constraint}" +1150 key = self.expressions(expression, key="key", flat=True) +1151 do = "" if expression.args.get("duplicate") else " DO " +1152 nothing = "NOTHING" if expression.args.get("nothing") else "" +1153 expressions = self.expressions(expression, flat=True) +1154 if expressions: +1155 expressions = f"UPDATE SET {expressions}" +1156 return f"{self.seg(conflict)} {constraint}{key}{do}{nothing}{expressions}" +1157 +1158 def returning_sql(self, expression: exp.Returning) -> str: +1159 return f"{self.seg('RETURNING')} {self.expressions(expression, flat=True)}" +1160 +1161 def rowformatdelimitedproperty_sql(self, expression: exp.RowFormatDelimitedProperty) -> str: +1162 fields = expression.args.get("fields") +1163 fields = f" FIELDS TERMINATED BY {fields}" if fields else "" +1164 escaped = expression.args.get("escaped") +1165 escaped = f" ESCAPED BY {escaped}" if escaped else "" +1166 items = expression.args.get("collection_items") +1167 items = f" COLLECTION ITEMS TERMINATED BY {items}" if items else "" +1168 keys = expression.args.get("map_keys") +1169 keys = f" MAP KEYS TERMINATED BY {keys}" if keys else "" +1170 lines = expression.args.get("lines") +1171 lines = f" LINES TERMINATED BY {lines}" if lines else "" +1172 null = expression.args.get("null") +1173 null = f" NULL DEFINED AS {null}" if null else "" +1174 return f"ROW FORMAT DELIMITED{fields}{escaped}{items}{keys}{lines}{null}" +1175 +1176 def table_sql(self, expression: exp.Table, sep: str = " AS ") -> str: +1177 table = ".".join( +1178 part +1179 for part in [ +1180 self.sql(expression, "catalog"), +1181 self.sql(expression, "db"), +1182 self.sql(expression, "this"), +1183 ] +1184 if part +1185 ) 1186 -1187 def tablesample_sql( -1188 self, expression: exp.TableSample, seed_prefix: str = "SEED", sep=" AS " -1189 ) -> str: -1190 if self.alias_post_tablesample and expression.this.alias: -1191 table = expression.this.copy() -1192 table.set("alias", None) -1193 this = self.sql(table) -1194 alias = f"{sep}{self.sql(expression.this, 'alias')}" -1195 else: -1196 this = self.sql(expression, "this") -1197 alias = "" -1198 method = self.sql(expression, "method") -1199 method = f"{method.upper()} " if method and self.TABLESAMPLE_WITH_METHOD else "" -1200 numerator = self.sql(expression, "bucket_numerator") -1201 denominator = self.sql(expression, "bucket_denominator") -1202 field = self.sql(expression, "bucket_field") -1203 field = f" ON {field}" if field else "" -1204 bucket = f"BUCKET {numerator} OUT OF {denominator}{field}" if numerator else "" -1205 percent = self.sql(expression, "percent") -1206 percent = f"{percent} PERCENT" if percent else "" -1207 rows = self.sql(expression, "rows") -1208 rows = f"{rows} ROWS" if rows else "" -1209 size = self.sql(expression, "size") -1210 if size and self.TABLESAMPLE_SIZE_IS_PERCENT: -1211 size = f"{size} PERCENT" -1212 seed = self.sql(expression, "seed") -1213 seed = f" {seed_prefix} ({seed})" if seed else "" -1214 kind = expression.args.get("kind", "TABLESAMPLE") -1215 return f"{this} {kind} {method}({bucket}{percent}{rows}{size}){seed}{alias}" -1216 -1217 def pivot_sql(self, expression: exp.Pivot) -> str: -1218 alias = self.sql(expression, "alias") -1219 alias = f" AS {alias}" if alias else "" -1220 unpivot = expression.args.get("unpivot") -1221 direction = "UNPIVOT" if unpivot else "PIVOT" -1222 expressions = self.expressions(expression, flat=True) -1223 field = self.sql(expression, "field") -1224 return f"{direction}({expressions} FOR {field}){alias}" -1225 -1226 def tuple_sql(self, expression: exp.Tuple) -> str: -1227 return f"({self.expressions(expression, flat=True)})" -1228 -1229 def update_sql(self, expression: exp.Update) -> str: -1230 this = self.sql(expression, "this") -1231 set_sql = self.expressions(expression, flat=True) -1232 from_sql = self.sql(expression, "from") -1233 where_sql = self.sql(expression, "where") -1234 returning = self.sql(expression, "returning") -1235 sql = f"UPDATE {this} SET {set_sql}{from_sql}{where_sql}{returning}" -1236 return self.prepend_ctes(expression, sql) -1237 -1238 def values_sql(self, expression: exp.Values) -> str: -1239 args = self.expressions(expression) -1240 alias = self.sql(expression, "alias") -1241 values = f"VALUES{self.seg('')}{args}" -1242 values = ( -1243 f"({values})" -1244 if self.WRAP_DERIVED_VALUES and (alias or isinstance(expression.parent, exp.From)) -1245 else values -1246 ) -1247 return f"{values} AS {alias}" if alias else values -1248 -1249 def var_sql(self, expression: exp.Var) -> str: -1250 return self.sql(expression, "this") -1251 -1252 def into_sql(self, expression: exp.Into) -> str: -1253 temporary = " TEMPORARY" if expression.args.get("temporary") else "" -1254 unlogged = " UNLOGGED" if expression.args.get("unlogged") else "" -1255 return f"{self.seg('INTO')}{temporary or unlogged} {self.sql(expression, 'this')}" -1256 -1257 def from_sql(self, expression: exp.From) -> str: -1258 return f"{self.seg('FROM')} {self.sql(expression, 'this')}" +1187 alias = self.sql(expression, "alias") +1188 alias = f"{sep}{alias}" if alias else "" +1189 hints = self.expressions(expression, key="hints", flat=True) +1190 hints = f" WITH ({hints})" if hints and self.TABLE_HINTS else "" +1191 pivots = self.expressions(expression, key="pivots", sep=" ", flat=True) +1192 pivots = f" {pivots}" if pivots else "" +1193 joins = self.expressions(expression, key="joins", sep="") +1194 laterals = self.expressions(expression, key="laterals", sep="") +1195 system_time = expression.args.get("system_time") +1196 system_time = f" {self.sql(expression, 'system_time')}" if system_time else "" +1197 +1198 return f"{table}{system_time}{alias}{hints}{pivots}{joins}{laterals}" +1199 +1200 def tablesample_sql( +1201 self, expression: exp.TableSample, seed_prefix: str = "SEED", sep=" AS " +1202 ) -> str: +1203 if self.alias_post_tablesample and expression.this.alias: +1204 table = expression.this.copy() +1205 table.set("alias", None) +1206 this = self.sql(table) +1207 alias = f"{sep}{self.sql(expression.this, 'alias')}" +1208 else: +1209 this = self.sql(expression, "this") +1210 alias = "" +1211 method = self.sql(expression, "method") +1212 method = f"{method.upper()} " if method and self.TABLESAMPLE_WITH_METHOD else "" +1213 numerator = self.sql(expression, "bucket_numerator") +1214 denominator = self.sql(expression, "bucket_denominator") +1215 field = self.sql(expression, "bucket_field") +1216 field = f" ON {field}" if field else "" +1217 bucket = f"BUCKET {numerator} OUT OF {denominator}{field}" if numerator else "" +1218 percent = self.sql(expression, "percent") +1219 percent = f"{percent} PERCENT" if percent else "" +1220 rows = self.sql(expression, "rows") +1221 rows = f"{rows} ROWS" if rows else "" +1222 size = self.sql(expression, "size") +1223 if size and self.TABLESAMPLE_SIZE_IS_PERCENT: +1224 size = f"{size} PERCENT" +1225 seed = self.sql(expression, "seed") +1226 seed = f" {seed_prefix} ({seed})" if seed else "" +1227 kind = expression.args.get("kind", "TABLESAMPLE") +1228 return f"{this} {kind} {method}({bucket}{percent}{rows}{size}){seed}{alias}" +1229 +1230 def pivot_sql(self, expression: exp.Pivot) -> str: +1231 expressions = self.expressions(expression, flat=True) +1232 +1233 if expression.this: +1234 this = self.sql(expression, "this") +1235 on = f"{self.seg('ON')} {expressions}" +1236 using = self.expressions(expression, key="using", flat=True) +1237 using = f"{self.seg('USING')} {using}" if using else "" +1238 group = self.sql(expression, "group") +1239 return f"PIVOT {this}{on}{using}{group}" +1240 +1241 alias = self.sql(expression, "alias") +1242 alias = f" AS {alias}" if alias else "" +1243 unpivot = expression.args.get("unpivot") +1244 direction = "UNPIVOT" if unpivot else "PIVOT" +1245 field = self.sql(expression, "field") +1246 return f"{direction}({expressions} FOR {field}){alias}" +1247 +1248 def tuple_sql(self, expression: exp.Tuple) -> str: +1249 return f"({self.expressions(expression, flat=True)})" +1250 +1251 def update_sql(self, expression: exp.Update) -> str: +1252 this = self.sql(expression, "this") +1253 set_sql = self.expressions(expression, flat=True) +1254 from_sql = self.sql(expression, "from") +1255 where_sql = self.sql(expression, "where") +1256 returning = self.sql(expression, "returning") +1257 sql = f"UPDATE {this} SET {set_sql}{from_sql}{where_sql}{returning}" +1258 return self.prepend_ctes(expression, sql) 1259 -1260 def group_sql(self, expression: exp.Group) -> str: -1261 group_by = self.op_expressions("GROUP BY", expression) -1262 grouping_sets = self.expressions(expression, key="grouping_sets", indent=False) -1263 grouping_sets = ( -1264 f"{self.seg('GROUPING SETS')} {self.wrap(grouping_sets)}" if grouping_sets else "" -1265 ) -1266 -1267 cube = expression.args.get("cube", []) -1268 if seq_get(cube, 0) is True: -1269 return f"{group_by}{self.seg('WITH CUBE')}" -1270 else: -1271 cube_sql = self.expressions(expression, key="cube", indent=False) -1272 cube_sql = f"{self.seg('CUBE')} {self.wrap(cube_sql)}" if cube_sql else "" +1260 def values_sql(self, expression: exp.Values) -> str: +1261 args = self.expressions(expression) +1262 alias = self.sql(expression, "alias") +1263 values = f"VALUES{self.seg('')}{args}" +1264 values = ( +1265 f"({values})" +1266 if self.WRAP_DERIVED_VALUES and (alias or isinstance(expression.parent, exp.From)) +1267 else values +1268 ) +1269 return f"{values} AS {alias}" if alias else values +1270 +1271 def var_sql(self, expression: exp.Var) -> str: +1272 return self.sql(expression, "this") 1273 -1274 rollup = expression.args.get("rollup", []) -1275 if seq_get(rollup, 0) is True: -1276 return f"{group_by}{self.seg('WITH ROLLUP')}" -1277 else: -1278 rollup_sql = self.expressions(expression, key="rollup", indent=False) -1279 rollup_sql = f"{self.seg('ROLLUP')} {self.wrap(rollup_sql)}" if rollup_sql else "" -1280 -1281 groupings = csv( -1282 grouping_sets, -1283 cube_sql, -1284 rollup_sql, -1285 self.seg("WITH TOTALS") if expression.args.get("totals") else "", -1286 sep=self.GROUPINGS_SEP, +1274 def into_sql(self, expression: exp.Into) -> str: +1275 temporary = " TEMPORARY" if expression.args.get("temporary") else "" +1276 unlogged = " UNLOGGED" if expression.args.get("unlogged") else "" +1277 return f"{self.seg('INTO')}{temporary or unlogged} {self.sql(expression, 'this')}" +1278 +1279 def from_sql(self, expression: exp.From) -> str: +1280 return f"{self.seg('FROM')} {self.sql(expression, 'this')}" +1281 +1282 def group_sql(self, expression: exp.Group) -> str: +1283 group_by = self.op_expressions("GROUP BY", expression) +1284 grouping_sets = self.expressions(expression, key="grouping_sets", indent=False) +1285 grouping_sets = ( +1286 f"{self.seg('GROUPING SETS')} {self.wrap(grouping_sets)}" if grouping_sets else "" 1287 ) 1288 -1289 if expression.args.get("expressions") and groupings: -1290 group_by = f"{group_by}{self.GROUPINGS_SEP}" -1291 -1292 return f"{group_by}{groupings}" -1293 -1294 def having_sql(self, expression: exp.Having) -> str: -1295 this = self.indent(self.sql(expression, "this")) -1296 return f"{self.seg('HAVING')}{self.sep()}{this}" -1297 -1298 def join_sql(self, expression: exp.Join) -> str: -1299 op_sql = " ".join( -1300 op -1301 for op in ( -1302 "NATURAL" if expression.args.get("natural") else None, -1303 "GLOBAL" if expression.args.get("global") else None, -1304 expression.side, -1305 expression.kind, -1306 expression.hint if self.JOIN_HINTS else None, -1307 ) -1308 if op +1289 cube = expression.args.get("cube", []) +1290 if seq_get(cube, 0) is True: +1291 return f"{group_by}{self.seg('WITH CUBE')}" +1292 else: +1293 cube_sql = self.expressions(expression, key="cube", indent=False) +1294 cube_sql = f"{self.seg('CUBE')} {self.wrap(cube_sql)}" if cube_sql else "" +1295 +1296 rollup = expression.args.get("rollup", []) +1297 if seq_get(rollup, 0) is True: +1298 return f"{group_by}{self.seg('WITH ROLLUP')}" +1299 else: +1300 rollup_sql = self.expressions(expression, key="rollup", indent=False) +1301 rollup_sql = f"{self.seg('ROLLUP')} {self.wrap(rollup_sql)}" if rollup_sql else "" +1302 +1303 groupings = csv( +1304 grouping_sets, +1305 cube_sql, +1306 rollup_sql, +1307 self.seg("WITH TOTALS") if expression.args.get("totals") else "", +1308 sep=self.GROUPINGS_SEP, 1309 ) -1310 on_sql = self.sql(expression, "on") -1311 using = expression.args.get("using") -1312 -1313 if not on_sql and using: -1314 on_sql = csv(*(self.sql(column) for column in using)) +1310 +1311 if expression.args.get("expressions") and groupings: +1312 group_by = f"{group_by}{self.GROUPINGS_SEP}" +1313 +1314 return f"{group_by}{groupings}" 1315 -1316 this_sql = self.sql(expression, "this") -1317 -1318 if on_sql: -1319 on_sql = self.indent(on_sql, skip_first=True) -1320 space = self.seg(" " * self.pad) if self.pretty else " " -1321 if using: -1322 on_sql = f"{space}USING ({on_sql})" -1323 else: -1324 on_sql = f"{space}ON {on_sql}" -1325 elif not op_sql: -1326 return f", {this_sql}" -1327 -1328 op_sql = f"{op_sql} JOIN" if op_sql else "JOIN" -1329 return f"{self.seg(op_sql)} {this_sql}{on_sql}" -1330 -1331 def lambda_sql(self, expression: exp.Lambda, arrow_sep: str = "->") -> str: -1332 args = self.expressions(expression, flat=True) -1333 args = f"({args})" if len(args.split(",")) > 1 else args -1334 return f"{args} {arrow_sep} {self.sql(expression, 'this')}" -1335 -1336 def lateral_sql(self, expression: exp.Lateral) -> str: -1337 this = self.sql(expression, "this") -1338 -1339 if isinstance(expression.this, exp.Subquery): -1340 return f"LATERAL {this}" -1341 -1342 if expression.args.get("view"): -1343 alias = expression.args["alias"] -1344 columns = self.expressions(alias, key="columns", flat=True) -1345 table = f" {alias.name}" if alias.name else "" -1346 columns = f" AS {columns}" if columns else "" -1347 op_sql = self.seg(f"LATERAL VIEW{' OUTER' if expression.args.get('outer') else ''}") -1348 return f"{op_sql}{self.sep()}{this}{table}{columns}" +1316 def having_sql(self, expression: exp.Having) -> str: +1317 this = self.indent(self.sql(expression, "this")) +1318 return f"{self.seg('HAVING')}{self.sep()}{this}" +1319 +1320 def join_sql(self, expression: exp.Join) -> str: +1321 op_sql = " ".join( +1322 op +1323 for op in ( +1324 expression.method, +1325 "GLOBAL" if expression.args.get("global") else None, +1326 expression.side, +1327 expression.kind, +1328 expression.hint if self.JOIN_HINTS else None, +1329 ) +1330 if op +1331 ) +1332 on_sql = self.sql(expression, "on") +1333 using = expression.args.get("using") +1334 +1335 if not on_sql and using: +1336 on_sql = csv(*(self.sql(column) for column in using)) +1337 +1338 this_sql = self.sql(expression, "this") +1339 +1340 if on_sql: +1341 on_sql = self.indent(on_sql, skip_first=True) +1342 space = self.seg(" " * self.pad) if self.pretty else " " +1343 if using: +1344 on_sql = f"{space}USING ({on_sql})" +1345 else: +1346 on_sql = f"{space}ON {on_sql}" +1347 elif not op_sql: +1348 return f", {this_sql}" 1349 -1350 alias = self.sql(expression, "alias") -1351 alias = f" AS {alias}" if alias else "" -1352 return f"LATERAL {this}{alias}" -1353 -1354 def limit_sql(self, expression: exp.Limit) -> str: -1355 this = self.sql(expression, "this") -1356 return f"{this}{self.seg('LIMIT')} {self.sql(expression, 'expression')}" +1350 op_sql = f"{op_sql} JOIN" if op_sql else "JOIN" +1351 return f"{self.seg(op_sql)} {this_sql}{on_sql}" +1352 +1353 def lambda_sql(self, expression: exp.Lambda, arrow_sep: str = "->") -> str: +1354 args = self.expressions(expression, flat=True) +1355 args = f"({args})" if len(args.split(",")) > 1 else args +1356 return f"{args} {arrow_sep} {self.sql(expression, 'this')}" 1357 -1358 def offset_sql(self, expression: exp.Offset) -> str: +1358 def lateral_sql(self, expression: exp.Lateral) -> str: 1359 this = self.sql(expression, "this") -1360 return f"{this}{self.seg('OFFSET')} {self.sql(expression, 'expression')}" -1361 -1362 def setitem_sql(self, expression: exp.SetItem) -> str: -1363 kind = self.sql(expression, "kind") -1364 kind = f"{kind} " if kind else "" -1365 this = self.sql(expression, "this") -1366 expressions = self.expressions(expression) -1367 collate = self.sql(expression, "collate") -1368 collate = f" COLLATE {collate}" if collate else "" -1369 global_ = "GLOBAL " if expression.args.get("global") else "" -1370 return f"{global_}{kind}{this}{expressions}{collate}" +1360 +1361 if isinstance(expression.this, exp.Subquery): +1362 return f"LATERAL {this}" +1363 +1364 if expression.args.get("view"): +1365 alias = expression.args["alias"] +1366 columns = self.expressions(alias, key="columns", flat=True) +1367 table = f" {alias.name}" if alias.name else "" +1368 columns = f" AS {columns}" if columns else "" +1369 op_sql = self.seg(f"LATERAL VIEW{' OUTER' if expression.args.get('outer') else ''}") +1370 return f"{op_sql}{self.sep()}{this}{table}{columns}" 1371 -1372 def set_sql(self, expression: exp.Set) -> str: -1373 expressions = ( -1374 f" {self.expressions(expression, flat=True)}" if expression.expressions else "" -1375 ) -1376 return f"SET{expressions}" -1377 -1378 def pragma_sql(self, expression: exp.Pragma) -> str: -1379 return f"PRAGMA {self.sql(expression, 'this')}" -1380 -1381 def lock_sql(self, expression: exp.Lock) -> str: -1382 if not self.LOCKING_READS_SUPPORTED: -1383 self.unsupported("Locking reads using 'FOR UPDATE/SHARE' are not supported") -1384 return "" -1385 -1386 lock_type = "FOR UPDATE" if expression.args["update"] else "FOR SHARE" -1387 expressions = self.expressions(expression, flat=True) -1388 expressions = f" OF {expressions}" if expressions else "" -1389 wait = expression.args.get("wait") -1390 -1391 if wait is not None: -1392 if isinstance(wait, exp.Literal): -1393 wait = f" WAIT {self.sql(wait)}" -1394 else: -1395 wait = " NOWAIT" if wait else " SKIP LOCKED" -1396 -1397 return f"{lock_type}{expressions}{wait or ''}" -1398 -1399 def literal_sql(self, expression: exp.Literal) -> str: -1400 text = expression.this or "" -1401 if expression.is_string: -1402 text = text.replace(self.quote_end, self._escaped_quote_end) -1403 if self.pretty: -1404 text = text.replace("\n", self.SENTINEL_LINE_BREAK) -1405 text = f"{self.quote_start}{text}{self.quote_end}" -1406 return text +1372 alias = self.sql(expression, "alias") +1373 alias = f" AS {alias}" if alias else "" +1374 return f"LATERAL {this}{alias}" +1375 +1376 def limit_sql(self, expression: exp.Limit) -> str: +1377 this = self.sql(expression, "this") +1378 return f"{this}{self.seg('LIMIT')} {self.sql(expression, 'expression')}" +1379 +1380 def offset_sql(self, expression: exp.Offset) -> str: +1381 this = self.sql(expression, "this") +1382 return f"{this}{self.seg('OFFSET')} {self.sql(expression, 'expression')}" +1383 +1384 def setitem_sql(self, expression: exp.SetItem) -> str: +1385 kind = self.sql(expression, "kind") +1386 kind = f"{kind} " if kind else "" +1387 this = self.sql(expression, "this") +1388 expressions = self.expressions(expression) +1389 collate = self.sql(expression, "collate") +1390 collate = f" COLLATE {collate}" if collate else "" +1391 global_ = "GLOBAL " if expression.args.get("global") else "" +1392 return f"{global_}{kind}{this}{expressions}{collate}" +1393 +1394 def set_sql(self, expression: exp.Set) -> str: +1395 expressions = ( +1396 f" {self.expressions(expression, flat=True)}" if expression.expressions else "" +1397 ) +1398 return f"SET{expressions}" +1399 +1400 def pragma_sql(self, expression: exp.Pragma) -> str: +1401 return f"PRAGMA {self.sql(expression, 'this')}" +1402 +1403 def lock_sql(self, expression: exp.Lock) -> str: +1404 if not self.LOCKING_READS_SUPPORTED: +1405 self.unsupported("Locking reads using 'FOR UPDATE/SHARE' are not supported") +1406 return "" 1407 -1408 def loaddata_sql(self, expression: exp.LoadData) -> str: -1409 local = " LOCAL" if expression.args.get("local") else "" -1410 inpath = f" INPATH {self.sql(expression, 'inpath')}" -1411 overwrite = " OVERWRITE" if expression.args.get("overwrite") else "" -1412 this = f" INTO TABLE {self.sql(expression, 'this')}" -1413 partition = self.sql(expression, "partition") -1414 partition = f" {partition}" if partition else "" -1415 input_format = self.sql(expression, "input_format") -1416 input_format = f" INPUTFORMAT {input_format}" if input_format else "" -1417 serde = self.sql(expression, "serde") -1418 serde = f" SERDE {serde}" if serde else "" -1419 return f"LOAD DATA{local}{inpath}{overwrite}{this}{partition}{input_format}{serde}" +1408 lock_type = "FOR UPDATE" if expression.args["update"] else "FOR SHARE" +1409 expressions = self.expressions(expression, flat=True) +1410 expressions = f" OF {expressions}" if expressions else "" +1411 wait = expression.args.get("wait") +1412 +1413 if wait is not None: +1414 if isinstance(wait, exp.Literal): +1415 wait = f" WAIT {self.sql(wait)}" +1416 else: +1417 wait = " NOWAIT" if wait else " SKIP LOCKED" +1418 +1419 return f"{lock_type}{expressions}{wait or ''}" 1420 -1421 def null_sql(self, *_) -> str: -1422 return "NULL" -1423 -1424 def boolean_sql(self, expression: exp.Boolean) -> str: -1425 return "TRUE" if expression.this else "FALSE" -1426 -1427 def order_sql(self, expression: exp.Order, flat: bool = False) -> str: -1428 this = self.sql(expression, "this") -1429 this = f"{this} " if this else this -1430 return self.op_expressions(f"{this}ORDER BY", expression, flat=this or flat) # type: ignore -1431 -1432 def cluster_sql(self, expression: exp.Cluster) -> str: -1433 return self.op_expressions("CLUSTER BY", expression) -1434 -1435 def distribute_sql(self, expression: exp.Distribute) -> str: -1436 return self.op_expressions("DISTRIBUTE BY", expression) -1437 -1438 def sort_sql(self, expression: exp.Sort) -> str: -1439 return self.op_expressions("SORT BY", expression) -1440 -1441 def ordered_sql(self, expression: exp.Ordered) -> str: -1442 desc = expression.args.get("desc") -1443 asc = not desc -1444 -1445 nulls_first = expression.args.get("nulls_first") -1446 nulls_last = not nulls_first -1447 nulls_are_large = self.null_ordering == "nulls_are_large" -1448 nulls_are_small = self.null_ordering == "nulls_are_small" -1449 nulls_are_last = self.null_ordering == "nulls_are_last" -1450 -1451 sort_order = " DESC" if desc else "" -1452 nulls_sort_change = "" -1453 if nulls_first and ( -1454 (asc and nulls_are_large) or (desc and nulls_are_small) or nulls_are_last -1455 ): -1456 nulls_sort_change = " NULLS FIRST" -1457 elif ( -1458 nulls_last -1459 and ((asc and nulls_are_small) or (desc and nulls_are_large)) -1460 and not nulls_are_last -1461 ): -1462 nulls_sort_change = " NULLS LAST" -1463 -1464 if nulls_sort_change and not self.NULL_ORDERING_SUPPORTED: -1465 self.unsupported( -1466 "Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect" -1467 ) -1468 nulls_sort_change = "" -1469 -1470 return f"{self.sql(expression, 'this')}{sort_order}{nulls_sort_change}" -1471 -1472 def matchrecognize_sql(self, expression: exp.MatchRecognize) -> str: -1473 partition = self.partition_by_sql(expression) -1474 order = self.sql(expression, "order") -1475 measures = self.expressions(expression, key="measures") -1476 measures = self.seg(f"MEASURES{self.seg(measures)}") if measures else "" -1477 rows = self.sql(expression, "rows") -1478 rows = self.seg(rows) if rows else "" -1479 after = self.sql(expression, "after") -1480 after = self.seg(after) if after else "" -1481 pattern = self.sql(expression, "pattern") -1482 pattern = self.seg(f"PATTERN ({pattern})") if pattern else "" -1483 definition_sqls = [ -1484 f"{self.sql(definition, 'alias')} AS {self.sql(definition, 'this')}" -1485 for definition in expression.args.get("define", []) -1486 ] -1487 definitions = self.expressions(sqls=definition_sqls) -1488 define = self.seg(f"DEFINE{self.seg(definitions)}") if definitions else "" -1489 body = "".join( -1490 ( -1491 partition, -1492 order, -1493 measures, -1494 rows, -1495 after, -1496 pattern, -1497 define, -1498 ) -1499 ) -1500 alias = self.sql(expression, "alias") -1501 alias = f" {alias}" if alias else "" -1502 return f"{self.seg('MATCH_RECOGNIZE')} {self.wrap(body)}{alias}" -1503 -1504 def query_modifiers(self, expression: exp.Expression, *sqls: str) -> str: -1505 limit = expression.args.get("limit") -1506 -1507 if self.LIMIT_FETCH == "LIMIT" and isinstance(limit, exp.Fetch): -1508 limit = exp.Limit(expression=limit.args.get("count")) -1509 elif self.LIMIT_FETCH == "FETCH" and isinstance(limit, exp.Limit): -1510 limit = exp.Fetch(direction="FIRST", count=limit.expression) -1511 -1512 fetch = isinstance(limit, exp.Fetch) -1513 -1514 return csv( -1515 *sqls, -1516 *[self.sql(join) for join in expression.args.get("joins") or []], -1517 self.sql(expression, "match"), -1518 *[self.sql(lateral) for lateral in expression.args.get("laterals") or []], -1519 self.sql(expression, "where"), -1520 self.sql(expression, "group"), -1521 self.sql(expression, "having"), -1522 *self.after_having_modifiers(expression), -1523 self.sql(expression, "order"), -1524 self.sql(expression, "offset") if fetch else self.sql(limit), -1525 self.sql(limit) if fetch else self.sql(expression, "offset"), -1526 *self.after_limit_modifiers(expression), -1527 sep="", -1528 ) -1529 -1530 def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]: -1531 return [ -1532 self.sql(expression, "qualify"), -1533 self.seg("WINDOW ") + self.expressions(expression, key="windows", flat=True) -1534 if expression.args.get("windows") -1535 else "", -1536 ] -1537 -1538 def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]: -1539 locks = self.expressions(expression, key="locks", sep=" ") -1540 locks = f" {locks}" if locks else "" -1541 return [locks, self.sql(expression, "sample")] -1542 -1543 def select_sql(self, expression: exp.Select) -> str: -1544 hint = self.sql(expression, "hint") -1545 distinct = self.sql(expression, "distinct") -1546 distinct = f" {distinct}" if distinct else "" -1547 kind = expression.args.get("kind") -1548 kind = f" AS {kind}" if kind else "" -1549 expressions = self.expressions(expression) -1550 expressions = f"{self.sep()}{expressions}" if expressions else expressions -1551 sql = self.query_modifiers( -1552 expression, -1553 f"SELECT{hint}{distinct}{kind}{expressions}", -1554 self.sql(expression, "into", comment=False), -1555 self.sql(expression, "from", comment=False), -1556 ) -1557 return self.prepend_ctes(expression, sql) -1558 -1559 def schema_sql(self, expression: exp.Schema) -> str: -1560 this = self.sql(expression, "this") -1561 this = f"{this} " if this else "" -1562 sql = f"({self.sep('')}{self.expressions(expression)}{self.seg(')', sep='')}" -1563 return f"{this}{sql}" +1421 def literal_sql(self, expression: exp.Literal) -> str: +1422 text = expression.this or "" +1423 if expression.is_string: +1424 text = text.replace(self.quote_end, self._escaped_quote_end) +1425 if self.pretty: +1426 text = text.replace("\n", self.SENTINEL_LINE_BREAK) +1427 text = f"{self.quote_start}{text}{self.quote_end}" +1428 return text +1429 +1430 def loaddata_sql(self, expression: exp.LoadData) -> str: +1431 local = " LOCAL" if expression.args.get("local") else "" +1432 inpath = f" INPATH {self.sql(expression, 'inpath')}" +1433 overwrite = " OVERWRITE" if expression.args.get("overwrite") else "" +1434 this = f" INTO TABLE {self.sql(expression, 'this')}" +1435 partition = self.sql(expression, "partition") +1436 partition = f" {partition}" if partition else "" +1437 input_format = self.sql(expression, "input_format") +1438 input_format = f" INPUTFORMAT {input_format}" if input_format else "" +1439 serde = self.sql(expression, "serde") +1440 serde = f" SERDE {serde}" if serde else "" +1441 return f"LOAD DATA{local}{inpath}{overwrite}{this}{partition}{input_format}{serde}" +1442 +1443 def null_sql(self, *_) -> str: +1444 return "NULL" +1445 +1446 def boolean_sql(self, expression: exp.Boolean) -> str: +1447 return "TRUE" if expression.this else "FALSE" +1448 +1449 def order_sql(self, expression: exp.Order, flat: bool = False) -> str: +1450 this = self.sql(expression, "this") +1451 this = f"{this} " if this else this +1452 return self.op_expressions(f"{this}ORDER BY", expression, flat=this or flat) # type: ignore +1453 +1454 def cluster_sql(self, expression: exp.Cluster) -> str: +1455 return self.op_expressions("CLUSTER BY", expression) +1456 +1457 def distribute_sql(self, expression: exp.Distribute) -> str: +1458 return self.op_expressions("DISTRIBUTE BY", expression) +1459 +1460 def sort_sql(self, expression: exp.Sort) -> str: +1461 return self.op_expressions("SORT BY", expression) +1462 +1463 def ordered_sql(self, expression: exp.Ordered) -> str: +1464 desc = expression.args.get("desc") +1465 asc = not desc +1466 +1467 nulls_first = expression.args.get("nulls_first") +1468 nulls_last = not nulls_first +1469 nulls_are_large = self.null_ordering == "nulls_are_large" +1470 nulls_are_small = self.null_ordering == "nulls_are_small" +1471 nulls_are_last = self.null_ordering == "nulls_are_last" +1472 +1473 sort_order = " DESC" if desc else "" +1474 nulls_sort_change = "" +1475 if nulls_first and ( +1476 (asc and nulls_are_large) or (desc and nulls_are_small) or nulls_are_last +1477 ): +1478 nulls_sort_change = " NULLS FIRST" +1479 elif ( +1480 nulls_last +1481 and ((asc and nulls_are_small) or (desc and nulls_are_large)) +1482 and not nulls_are_last +1483 ): +1484 nulls_sort_change = " NULLS LAST" +1485 +1486 if nulls_sort_change and not self.NULL_ORDERING_SUPPORTED: +1487 self.unsupported( +1488 "Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect" +1489 ) +1490 nulls_sort_change = "" +1491 +1492 return f"{self.sql(expression, 'this')}{sort_order}{nulls_sort_change}" +1493 +1494 def matchrecognize_sql(self, expression: exp.MatchRecognize) -> str: +1495 partition = self.partition_by_sql(expression) +1496 order = self.sql(expression, "order") +1497 measures = self.expressions(expression, key="measures") +1498 measures = self.seg(f"MEASURES{self.seg(measures)}") if measures else "" +1499 rows = self.sql(expression, "rows") +1500 rows = self.seg(rows) if rows else "" +1501 after = self.sql(expression, "after") +1502 after = self.seg(after) if after else "" +1503 pattern = self.sql(expression, "pattern") +1504 pattern = self.seg(f"PATTERN ({pattern})") if pattern else "" +1505 definition_sqls = [ +1506 f"{self.sql(definition, 'alias')} AS {self.sql(definition, 'this')}" +1507 for definition in expression.args.get("define", []) +1508 ] +1509 definitions = self.expressions(sqls=definition_sqls) +1510 define = self.seg(f"DEFINE{self.seg(definitions)}") if definitions else "" +1511 body = "".join( +1512 ( +1513 partition, +1514 order, +1515 measures, +1516 rows, +1517 after, +1518 pattern, +1519 define, +1520 ) +1521 ) +1522 alias = self.sql(expression, "alias") +1523 alias = f" {alias}" if alias else "" +1524 return f"{self.seg('MATCH_RECOGNIZE')} {self.wrap(body)}{alias}" +1525 +1526 def query_modifiers(self, expression: exp.Expression, *sqls: str) -> str: +1527 limit = expression.args.get("limit") +1528 +1529 if self.LIMIT_FETCH == "LIMIT" and isinstance(limit, exp.Fetch): +1530 limit = exp.Limit(expression=limit.args.get("count")) +1531 elif self.LIMIT_FETCH == "FETCH" and isinstance(limit, exp.Limit): +1532 limit = exp.Fetch(direction="FIRST", count=limit.expression) +1533 +1534 fetch = isinstance(limit, exp.Fetch) +1535 +1536 return csv( +1537 *sqls, +1538 *[self.sql(join) for join in expression.args.get("joins") or []], +1539 self.sql(expression, "match"), +1540 *[self.sql(lateral) for lateral in expression.args.get("laterals") or []], +1541 self.sql(expression, "where"), +1542 self.sql(expression, "group"), +1543 self.sql(expression, "having"), +1544 *self.after_having_modifiers(expression), +1545 self.sql(expression, "order"), +1546 self.sql(expression, "offset") if fetch else self.sql(limit), +1547 self.sql(limit) if fetch else self.sql(expression, "offset"), +1548 *self.after_limit_modifiers(expression), +1549 sep="", +1550 ) +1551 +1552 def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]: +1553 return [ +1554 self.sql(expression, "qualify"), +1555 self.seg("WINDOW ") + self.expressions(expression, key="windows", flat=True) +1556 if expression.args.get("windows") +1557 else "", +1558 ] +1559 +1560 def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]: +1561 locks = self.expressions(expression, key="locks", sep=" ") +1562 locks = f" {locks}" if locks else "" +1563 return [locks, self.sql(expression, "sample")] 1564 -1565 def star_sql(self, expression: exp.Star) -> str: -1566 except_ = self.expressions(expression, key="except", flat=True) -1567 except_ = f"{self.seg(self.STAR_MAPPING['except'])} ({except_})" if except_ else "" -1568 replace = self.expressions(expression, key="replace", flat=True) -1569 replace = f"{self.seg(self.STAR_MAPPING['replace'])} ({replace})" if replace else "" -1570 return f"*{except_}{replace}" -1571 -1572 def parameter_sql(self, expression: exp.Parameter) -> str: -1573 this = self.sql(expression, "this") -1574 this = f"{{{this}}}" if expression.args.get("wrapped") else f"{this}" -1575 return f"{self.PARAMETER_TOKEN}{this}" -1576 -1577 def sessionparameter_sql(self, expression: exp.SessionParameter) -> str: -1578 this = self.sql(expression, "this") -1579 kind = expression.text("kind") -1580 if kind: -1581 kind = f"{kind}." -1582 return f"@@{kind}{this}" -1583 -1584 def placeholder_sql(self, expression: exp.Placeholder) -> str: -1585 return f":{expression.name}" if expression.name else "?" +1565 def select_sql(self, expression: exp.Select) -> str: +1566 hint = self.sql(expression, "hint") +1567 distinct = self.sql(expression, "distinct") +1568 distinct = f" {distinct}" if distinct else "" +1569 kind = expression.args.get("kind") +1570 kind = f" AS {kind}" if kind else "" +1571 expressions = self.expressions(expression) +1572 expressions = f"{self.sep()}{expressions}" if expressions else expressions +1573 sql = self.query_modifiers( +1574 expression, +1575 f"SELECT{hint}{distinct}{kind}{expressions}", +1576 self.sql(expression, "into", comment=False), +1577 self.sql(expression, "from", comment=False), +1578 ) +1579 return self.prepend_ctes(expression, sql) +1580 +1581 def schema_sql(self, expression: exp.Schema) -> str: +1582 this = self.sql(expression, "this") +1583 this = f"{this} " if this else "" +1584 sql = f"({self.sep('')}{self.expressions(expression)}{self.seg(')', sep='')}" +1585 return f"{this}{sql}" 1586 -1587 def subquery_sql(self, expression: exp.Subquery, sep: str = " AS ") -> str: -1588 alias = self.sql(expression, "alias") -1589 alias = f"{sep}{alias}" if alias else "" -1590 -1591 pivots = self.expressions(expression, key="pivots", sep=" ", flat=True) -1592 pivots = f" {pivots}" if pivots else "" +1587 def star_sql(self, expression: exp.Star) -> str: +1588 except_ = self.expressions(expression, key="except", flat=True) +1589 except_ = f"{self.seg(self.STAR_MAPPING['except'])} ({except_})" if except_ else "" +1590 replace = self.expressions(expression, key="replace", flat=True) +1591 replace = f"{self.seg(self.STAR_MAPPING['replace'])} ({replace})" if replace else "" +1592 return f"*{except_}{replace}" 1593 -1594 sql = self.query_modifiers(expression, self.wrap(expression), alias, pivots) -1595 return self.prepend_ctes(expression, sql) -1596 -1597 def qualify_sql(self, expression: exp.Qualify) -> str: -1598 this = self.indent(self.sql(expression, "this")) -1599 return f"{self.seg('QUALIFY')}{self.sep()}{this}" -1600 -1601 def union_sql(self, expression: exp.Union) -> str: -1602 return self.prepend_ctes( -1603 expression, -1604 self.set_operation(expression, self.union_op(expression)), -1605 ) -1606 -1607 def union_op(self, expression: exp.Union) -> str: -1608 kind = " DISTINCT" if self.EXPLICIT_UNION else "" -1609 kind = kind if expression.args.get("distinct") else " ALL" -1610 return f"UNION{kind}" -1611 -1612 def unnest_sql(self, expression: exp.Unnest) -> str: -1613 args = self.expressions(expression, flat=True) -1614 alias = expression.args.get("alias") -1615 if alias and self.unnest_column_only: -1616 columns = alias.columns -1617 alias = self.sql(columns[0]) if columns else "" -1618 else: -1619 alias = self.sql(expression, "alias") -1620 alias = f" AS {alias}" if alias else alias -1621 ordinality = " WITH ORDINALITY" if expression.args.get("ordinality") else "" -1622 offset = expression.args.get("offset") -1623 offset = f" WITH OFFSET AS {self.sql(offset)}" if offset else "" -1624 return f"UNNEST({args}){ordinality}{alias}{offset}" -1625 -1626 def where_sql(self, expression: exp.Where) -> str: -1627 this = self.indent(self.sql(expression, "this")) -1628 return f"{self.seg('WHERE')}{self.sep()}{this}" -1629 -1630 def window_sql(self, expression: exp.Window) -> str: -1631 this = self.sql(expression, "this") -1632 -1633 partition = self.partition_by_sql(expression) -1634 -1635 order = expression.args.get("order") -1636 order_sql = self.order_sql(order, flat=True) if order else "" -1637 -1638 partition_sql = partition + " " if partition and order else partition -1639 -1640 spec = expression.args.get("spec") -1641 spec_sql = " " + self.windowspec_sql(spec) if spec else "" -1642 -1643 alias = self.sql(expression, "alias") -1644 over = self.sql(expression, "over") or "OVER" -1645 this = f"{this} {'AS' if expression.arg_key == 'windows' else over}" -1646 -1647 first = expression.args.get("first") -1648 if first is not None: -1649 first = " FIRST " if first else " LAST " -1650 first = first or "" +1594 def parameter_sql(self, expression: exp.Parameter) -> str: +1595 this = self.sql(expression, "this") +1596 this = f"{{{this}}}" if expression.args.get("wrapped") else f"{this}" +1597 return f"{self.PARAMETER_TOKEN}{this}" +1598 +1599 def sessionparameter_sql(self, expression: exp.SessionParameter) -> str: +1600 this = self.sql(expression, "this") +1601 kind = expression.text("kind") +1602 if kind: +1603 kind = f"{kind}." +1604 return f"@@{kind}{this}" +1605 +1606 def placeholder_sql(self, expression: exp.Placeholder) -> str: +1607 return f":{expression.name}" if expression.name else "?" +1608 +1609 def subquery_sql(self, expression: exp.Subquery, sep: str = " AS ") -> str: +1610 alias = self.sql(expression, "alias") +1611 alias = f"{sep}{alias}" if alias else "" +1612 +1613 pivots = self.expressions(expression, key="pivots", sep=" ", flat=True) +1614 pivots = f" {pivots}" if pivots else "" +1615 +1616 sql = self.query_modifiers(expression, self.wrap(expression), alias, pivots) +1617 return self.prepend_ctes(expression, sql) +1618 +1619 def qualify_sql(self, expression: exp.Qualify) -> str: +1620 this = self.indent(self.sql(expression, "this")) +1621 return f"{self.seg('QUALIFY')}{self.sep()}{this}" +1622 +1623 def union_sql(self, expression: exp.Union) -> str: +1624 return self.prepend_ctes( +1625 expression, +1626 self.set_operation(expression, self.union_op(expression)), +1627 ) +1628 +1629 def union_op(self, expression: exp.Union) -> str: +1630 kind = " DISTINCT" if self.EXPLICIT_UNION else "" +1631 kind = kind if expression.args.get("distinct") else " ALL" +1632 return f"UNION{kind}" +1633 +1634 def unnest_sql(self, expression: exp.Unnest) -> str: +1635 args = self.expressions(expression, flat=True) +1636 alias = expression.args.get("alias") +1637 if alias and self.unnest_column_only: +1638 columns = alias.columns +1639 alias = self.sql(columns[0]) if columns else "" +1640 else: +1641 alias = self.sql(expression, "alias") +1642 alias = f" AS {alias}" if alias else alias +1643 ordinality = " WITH ORDINALITY" if expression.args.get("ordinality") else "" +1644 offset = expression.args.get("offset") +1645 offset = f" WITH OFFSET AS {self.sql(offset)}" if offset else "" +1646 return f"UNNEST({args}){ordinality}{alias}{offset}" +1647 +1648 def where_sql(self, expression: exp.Where) -> str: +1649 this = self.indent(self.sql(expression, "this")) +1650 return f"{self.seg('WHERE')}{self.sep()}{this}" 1651 -1652 if not partition and not order and not spec and alias: -1653 return f"{this} {alias}" -1654 -1655 window_args = alias + first + partition_sql + order_sql + spec_sql -1656 -1657 return f"{this} ({window_args.strip()})" -1658 -1659 def partition_by_sql(self, expression: exp.Window | exp.MatchRecognize) -> str: -1660 partition = self.expressions(expression, key="partition_by", flat=True) -1661 return f"PARTITION BY {partition}" if partition else "" +1652 def window_sql(self, expression: exp.Window) -> str: +1653 this = self.sql(expression, "this") +1654 partition = self.partition_by_sql(expression) +1655 order = expression.args.get("order") +1656 order = self.order_sql(order, flat=True) if order else "" +1657 spec = self.sql(expression, "spec") +1658 alias = self.sql(expression, "alias") +1659 over = self.sql(expression, "over") or "OVER" +1660 +1661 this = f"{this} {'AS' if expression.arg_key == 'windows' else over}" 1662 -1663 def windowspec_sql(self, expression: exp.WindowSpec) -> str: -1664 kind = self.sql(expression, "kind") -1665 start = csv(self.sql(expression, "start"), self.sql(expression, "start_side"), sep=" ") -1666 end = ( -1667 csv(self.sql(expression, "end"), self.sql(expression, "end_side"), sep=" ") -1668 or "CURRENT ROW" -1669 ) -1670 return f"{kind} BETWEEN {start} AND {end}" +1663 first = expression.args.get("first") +1664 if first is None: +1665 first = "" +1666 else: +1667 first = "FIRST" if first else "LAST" +1668 +1669 if not partition and not order and not spec and alias: +1670 return f"{this} {alias}" 1671 -1672 def withingroup_sql(self, expression: exp.WithinGroup) -> str: -1673 this = self.sql(expression, "this") -1674 expression_sql = self.sql(expression, "expression")[1:] # order has a leading space -1675 return f"{this} WITHIN GROUP ({expression_sql})" -1676 -1677 def between_sql(self, expression: exp.Between) -> str: -1678 this = self.sql(expression, "this") -1679 low = self.sql(expression, "low") -1680 high = self.sql(expression, "high") -1681 return f"{this} BETWEEN {low} AND {high}" -1682 -1683 def bracket_sql(self, expression: exp.Bracket) -> str: -1684 expressions = apply_index_offset(expression.this, expression.expressions, self.index_offset) -1685 expressions_sql = ", ".join(self.sql(e) for e in expressions) -1686 -1687 return f"{self.sql(expression, 'this')}[{expressions_sql}]" -1688 -1689 def all_sql(self, expression: exp.All) -> str: -1690 return f"ALL {self.wrap(expression)}" -1691 -1692 def any_sql(self, expression: exp.Any) -> str: -1693 this = self.sql(expression, "this") -1694 if isinstance(expression.this, exp.Subqueryable): -1695 this = self.wrap(this) -1696 return f"ANY {this}" -1697 -1698 def exists_sql(self, expression: exp.Exists) -> str: -1699 return f"EXISTS{self.wrap(expression)}" -1700 -1701 def case_sql(self, expression: exp.Case) -> str: -1702 this = self.sql(expression, "this") -1703 statements = [f"CASE {this}" if this else "CASE"] +1672 args = " ".join(arg for arg in (alias, first, partition, order, spec) if arg) +1673 return f"{this} ({args})" +1674 +1675 def partition_by_sql(self, expression: exp.Window | exp.MatchRecognize) -> str: +1676 partition = self.expressions(expression, key="partition_by", flat=True) +1677 return f"PARTITION BY {partition}" if partition else "" +1678 +1679 def windowspec_sql(self, expression: exp.WindowSpec) -> str: +1680 kind = self.sql(expression, "kind") +1681 start = csv(self.sql(expression, "start"), self.sql(expression, "start_side"), sep=" ") +1682 end = ( +1683 csv(self.sql(expression, "end"), self.sql(expression, "end_side"), sep=" ") +1684 or "CURRENT ROW" +1685 ) +1686 return f"{kind} BETWEEN {start} AND {end}" +1687 +1688 def withingroup_sql(self, expression: exp.WithinGroup) -> str: +1689 this = self.sql(expression, "this") +1690 expression_sql = self.sql(expression, "expression")[1:] # order has a leading space +1691 return f"{this} WITHIN GROUP ({expression_sql})" +1692 +1693 def between_sql(self, expression: exp.Between) -> str: +1694 this = self.sql(expression, "this") +1695 low = self.sql(expression, "low") +1696 high = self.sql(expression, "high") +1697 return f"{this} BETWEEN {low} AND {high}" +1698 +1699 def bracket_sql(self, expression: exp.Bracket) -> str: +1700 expressions = apply_index_offset(expression.this, expression.expressions, self.index_offset) +1701 expressions_sql = ", ".join(self.sql(e) for e in expressions) +1702 +1703 return f"{self.sql(expression, 'this')}[{expressions_sql}]" 1704 -1705 for e in expression.args["ifs"]: -1706 statements.append(f"WHEN {self.sql(e, 'this')}") -1707 statements.append(f"THEN {self.sql(e, 'true')}") -1708 -1709 default = self.sql(expression, "default") -1710 -1711 if default: -1712 statements.append(f"ELSE {default}") +1705 def all_sql(self, expression: exp.All) -> str: +1706 return f"ALL {self.wrap(expression)}" +1707 +1708 def any_sql(self, expression: exp.Any) -> str: +1709 this = self.sql(expression, "this") +1710 if isinstance(expression.this, exp.Subqueryable): +1711 this = self.wrap(this) +1712 return f"ANY {this}" 1713 -1714 statements.append("END") -1715 -1716 if self.pretty and self.text_width(statements) > self._max_text_width: -1717 return self.indent("\n".join(statements), skip_first=True, skip_last=True) -1718 -1719 return " ".join(statements) +1714 def exists_sql(self, expression: exp.Exists) -> str: +1715 return f"EXISTS{self.wrap(expression)}" +1716 +1717 def case_sql(self, expression: exp.Case) -> str: +1718 this = self.sql(expression, "this") +1719 statements = [f"CASE {this}" if this else "CASE"] 1720 -1721 def constraint_sql(self, expression: exp.Constraint) -> str: -1722 this = self.sql(expression, "this") -1723 expressions = self.expressions(expression, flat=True) -1724 return f"CONSTRAINT {this} {expressions}" -1725 -1726 def nextvaluefor_sql(self, expression: exp.NextValueFor) -> str: -1727 order = expression.args.get("order") -1728 order = f" OVER ({self.order_sql(order, flat=True)})" if order else "" -1729 return f"NEXT VALUE FOR {self.sql(expression, 'this')}{order}" -1730 -1731 def extract_sql(self, expression: exp.Extract) -> str: -1732 this = self.sql(expression, "this") -1733 expression_sql = self.sql(expression, "expression") -1734 return f"EXTRACT({this} FROM {expression_sql})" -1735 -1736 def trim_sql(self, expression: exp.Trim) -> str: -1737 trim_type = self.sql(expression, "position") -1738 -1739 if trim_type == "LEADING": -1740 return self.func("LTRIM", expression.this) -1741 elif trim_type == "TRAILING": -1742 return self.func("RTRIM", expression.this) -1743 else: -1744 return self.func("TRIM", expression.this, expression.expression) -1745 -1746 def concat_sql(self, expression: exp.Concat) -> str: -1747 if len(expression.expressions) == 1: -1748 return self.sql(expression.expressions[0]) -1749 return self.function_fallback_sql(expression) -1750 -1751 def check_sql(self, expression: exp.Check) -> str: -1752 this = self.sql(expression, key="this") -1753 return f"CHECK ({this})" +1721 for e in expression.args["ifs"]: +1722 statements.append(f"WHEN {self.sql(e, 'this')}") +1723 statements.append(f"THEN {self.sql(e, 'true')}") +1724 +1725 default = self.sql(expression, "default") +1726 +1727 if default: +1728 statements.append(f"ELSE {default}") +1729 +1730 statements.append("END") +1731 +1732 if self.pretty and self.text_width(statements) > self._max_text_width: +1733 return self.indent("\n".join(statements), skip_first=True, skip_last=True) +1734 +1735 return " ".join(statements) +1736 +1737 def constraint_sql(self, expression: exp.Constraint) -> str: +1738 this = self.sql(expression, "this") +1739 expressions = self.expressions(expression, flat=True) +1740 return f"CONSTRAINT {this} {expressions}" +1741 +1742 def nextvaluefor_sql(self, expression: exp.NextValueFor) -> str: +1743 order = expression.args.get("order") +1744 order = f" OVER ({self.order_sql(order, flat=True)})" if order else "" +1745 return f"NEXT VALUE FOR {self.sql(expression, 'this')}{order}" +1746 +1747 def extract_sql(self, expression: exp.Extract) -> str: +1748 this = self.sql(expression, "this") +1749 expression_sql = self.sql(expression, "expression") +1750 return f"EXTRACT({this} FROM {expression_sql})" +1751 +1752 def trim_sql(self, expression: exp.Trim) -> str: +1753 trim_type = self.sql(expression, "position") 1754 -1755 def foreignkey_sql(self, expression: exp.ForeignKey) -> str: -1756 expressions = self.expressions(expression, flat=True) -1757 reference = self.sql(expression, "reference") -1758 reference = f" {reference}" if reference else "" -1759 delete = self.sql(expression, "delete") -1760 delete = f" ON DELETE {delete}" if delete else "" -1761 update = self.sql(expression, "update") -1762 update = f" ON UPDATE {update}" if update else "" -1763 return f"FOREIGN KEY ({expressions}){reference}{delete}{update}" -1764 -1765 def primarykey_sql(self, expression: exp.ForeignKey) -> str: -1766 expressions = self.expressions(expression, flat=True) -1767 options = self.expressions(expression, key="options", flat=True, sep=" ") -1768 options = f" {options}" if options else "" -1769 return f"PRIMARY KEY ({expressions}){options}" +1755 if trim_type == "LEADING": +1756 return self.func("LTRIM", expression.this) +1757 elif trim_type == "TRAILING": +1758 return self.func("RTRIM", expression.this) +1759 else: +1760 return self.func("TRIM", expression.this, expression.expression) +1761 +1762 def concat_sql(self, expression: exp.Concat) -> str: +1763 if len(expression.expressions) == 1: +1764 return self.sql(expression.expressions[0]) +1765 return self.function_fallback_sql(expression) +1766 +1767 def check_sql(self, expression: exp.Check) -> str: +1768 this = self.sql(expression, key="this") +1769 return f"CHECK ({this})" 1770 -1771 def unique_sql(self, expression: exp.Unique) -> str: -1772 columns = self.expressions(expression, key="expressions") -1773 return f"UNIQUE ({columns})" -1774 -1775 def if_sql(self, expression: exp.If) -> str: -1776 return self.case_sql( -1777 exp.Case(ifs=[expression.copy()], default=expression.args.get("false")) -1778 ) -1779 -1780 def matchagainst_sql(self, expression: exp.MatchAgainst) -> str: -1781 modifier = expression.args.get("modifier") -1782 modifier = f" {modifier}" if modifier else "" -1783 return f"{self.func('MATCH', *expression.expressions)} AGAINST({self.sql(expression, 'this')}{modifier})" -1784 -1785 def jsonkeyvalue_sql(self, expression: exp.JSONKeyValue) -> str: -1786 return f"{self.sql(expression, 'this')}: {self.sql(expression, 'expression')}" -1787 -1788 def jsonobject_sql(self, expression: exp.JSONObject) -> str: -1789 expressions = self.expressions(expression) -1790 null_handling = expression.args.get("null_handling") -1791 null_handling = f" {null_handling}" if null_handling else "" -1792 unique_keys = expression.args.get("unique_keys") -1793 if unique_keys is not None: -1794 unique_keys = f" {'WITH' if unique_keys else 'WITHOUT'} UNIQUE KEYS" -1795 else: -1796 unique_keys = "" -1797 return_type = self.sql(expression, "return_type") -1798 return_type = f" RETURNING {return_type}" if return_type else "" -1799 format_json = " FORMAT JSON" if expression.args.get("format_json") else "" -1800 encoding = self.sql(expression, "encoding") -1801 encoding = f" ENCODING {encoding}" if encoding else "" -1802 return f"JSON_OBJECT({expressions}{null_handling}{unique_keys}{return_type}{format_json}{encoding})" -1803 -1804 def openjsoncolumndef_sql(self, expression: exp.OpenJSONColumnDef) -> str: -1805 this = self.sql(expression, "this") -1806 kind = self.sql(expression, "kind") -1807 path = self.sql(expression, "path") -1808 path = f" {path}" if path else "" -1809 as_json = " AS JSON" if expression.args.get("as_json") else "" -1810 return f"{this} {kind}{path}{as_json}" -1811 -1812 def openjson_sql(self, expression: exp.OpenJSON) -> str: -1813 this = self.sql(expression, "this") -1814 path = self.sql(expression, "path") -1815 path = f", {path}" if path else "" -1816 expressions = self.expressions(expression) -1817 with_ = ( -1818 f" WITH ({self.seg(self.indent(expressions), sep='')}{self.seg(')', sep='')}" -1819 if expressions -1820 else "" -1821 ) -1822 return f"OPENJSON({this}{path}){with_}" +1771 def foreignkey_sql(self, expression: exp.ForeignKey) -> str: +1772 expressions = self.expressions(expression, flat=True) +1773 reference = self.sql(expression, "reference") +1774 reference = f" {reference}" if reference else "" +1775 delete = self.sql(expression, "delete") +1776 delete = f" ON DELETE {delete}" if delete else "" +1777 update = self.sql(expression, "update") +1778 update = f" ON UPDATE {update}" if update else "" +1779 return f"FOREIGN KEY ({expressions}){reference}{delete}{update}" +1780 +1781 def primarykey_sql(self, expression: exp.ForeignKey) -> str: +1782 expressions = self.expressions(expression, flat=True) +1783 options = self.expressions(expression, key="options", flat=True, sep=" ") +1784 options = f" {options}" if options else "" +1785 return f"PRIMARY KEY ({expressions}){options}" +1786 +1787 def if_sql(self, expression: exp.If) -> str: +1788 return self.case_sql( +1789 exp.Case(ifs=[expression.copy()], default=expression.args.get("false")) +1790 ) +1791 +1792 def matchagainst_sql(self, expression: exp.MatchAgainst) -> str: +1793 modifier = expression.args.get("modifier") +1794 modifier = f" {modifier}" if modifier else "" +1795 return f"{self.func('MATCH', *expression.expressions)} AGAINST({self.sql(expression, 'this')}{modifier})" +1796 +1797 def jsonkeyvalue_sql(self, expression: exp.JSONKeyValue) -> str: +1798 return f"{self.sql(expression, 'this')}: {self.sql(expression, 'expression')}" +1799 +1800 def jsonobject_sql(self, expression: exp.JSONObject) -> str: +1801 expressions = self.expressions(expression) +1802 null_handling = expression.args.get("null_handling") +1803 null_handling = f" {null_handling}" if null_handling else "" +1804 unique_keys = expression.args.get("unique_keys") +1805 if unique_keys is not None: +1806 unique_keys = f" {'WITH' if unique_keys else 'WITHOUT'} UNIQUE KEYS" +1807 else: +1808 unique_keys = "" +1809 return_type = self.sql(expression, "return_type") +1810 return_type = f" RETURNING {return_type}" if return_type else "" +1811 format_json = " FORMAT JSON" if expression.args.get("format_json") else "" +1812 encoding = self.sql(expression, "encoding") +1813 encoding = f" ENCODING {encoding}" if encoding else "" +1814 return f"JSON_OBJECT({expressions}{null_handling}{unique_keys}{return_type}{format_json}{encoding})" +1815 +1816 def openjsoncolumndef_sql(self, expression: exp.OpenJSONColumnDef) -> str: +1817 this = self.sql(expression, "this") +1818 kind = self.sql(expression, "kind") +1819 path = self.sql(expression, "path") +1820 path = f" {path}" if path else "" +1821 as_json = " AS JSON" if expression.args.get("as_json") else "" +1822 return f"{this} {kind}{path}{as_json}" 1823 -1824 def in_sql(self, expression: exp.In) -> str: -1825 query = expression.args.get("query") -1826 unnest = expression.args.get("unnest") -1827 field = expression.args.get("field") -1828 is_global = " GLOBAL" if expression.args.get("is_global") else "" -1829 -1830 if query: -1831 in_sql = self.wrap(query) -1832 elif unnest: -1833 in_sql = self.in_unnest_op(unnest) -1834 elif field: -1835 in_sql = self.sql(field) -1836 else: -1837 in_sql = f"({self.expressions(expression, flat=True)})" -1838 -1839 return f"{self.sql(expression, 'this')}{is_global} IN {in_sql}" -1840 -1841 def in_unnest_op(self, unnest: exp.Unnest) -> str: -1842 return f"(SELECT {self.sql(unnest)})" -1843 -1844 def interval_sql(self, expression: exp.Interval) -> str: -1845 unit = self.sql(expression, "unit") -1846 if not self.INTERVAL_ALLOWS_PLURAL_FORM: -1847 unit = self.TIME_PART_SINGULARS.get(unit.lower(), unit) -1848 unit = f" {unit}" if unit else "" -1849 -1850 if self.SINGLE_STRING_INTERVAL: -1851 this = expression.this.name if expression.this else "" -1852 return f"INTERVAL '{this}{unit}'" if this else f"INTERVAL{unit}" -1853 -1854 this = self.sql(expression, "this") -1855 if this: -1856 unwrapped = isinstance(expression.this, self.UNWRAPPED_INTERVAL_VALUES) -1857 this = f" {this}" if unwrapped else f" ({this})" -1858 -1859 return f"INTERVAL{this}{unit}" -1860 -1861 def return_sql(self, expression: exp.Return) -> str: -1862 return f"RETURN {self.sql(expression, 'this')}" -1863 -1864 def reference_sql(self, expression: exp.Reference) -> str: -1865 this = self.sql(expression, "this") -1866 expressions = self.expressions(expression, flat=True) -1867 expressions = f"({expressions})" if expressions else "" -1868 options = self.expressions(expression, key="options", flat=True, sep=" ") -1869 options = f" {options}" if options else "" -1870 return f"REFERENCES {this}{expressions}{options}" -1871 -1872 def anonymous_sql(self, expression: exp.Anonymous) -> str: -1873 return self.func(expression.name, *expression.expressions) -1874 -1875 def paren_sql(self, expression: exp.Paren) -> str: -1876 if isinstance(expression.unnest(), exp.Select): -1877 sql = self.wrap(expression) -1878 else: -1879 sql = self.seg(self.indent(self.sql(expression, "this")), sep="") -1880 sql = f"({sql}{self.seg(')', sep='')}" -1881 -1882 return self.prepend_ctes(expression, sql) +1824 def openjson_sql(self, expression: exp.OpenJSON) -> str: +1825 this = self.sql(expression, "this") +1826 path = self.sql(expression, "path") +1827 path = f", {path}" if path else "" +1828 expressions = self.expressions(expression) +1829 with_ = ( +1830 f" WITH ({self.seg(self.indent(expressions), sep='')}{self.seg(')', sep='')}" +1831 if expressions +1832 else "" +1833 ) +1834 return f"OPENJSON({this}{path}){with_}" +1835 +1836 def in_sql(self, expression: exp.In) -> str: +1837 query = expression.args.get("query") +1838 unnest = expression.args.get("unnest") +1839 field = expression.args.get("field") +1840 is_global = " GLOBAL" if expression.args.get("is_global") else "" +1841 +1842 if query: +1843 in_sql = self.wrap(query) +1844 elif unnest: +1845 in_sql = self.in_unnest_op(unnest) +1846 elif field: +1847 in_sql = self.sql(field) +1848 else: +1849 in_sql = f"({self.expressions(expression, flat=True)})" +1850 +1851 return f"{self.sql(expression, 'this')}{is_global} IN {in_sql}" +1852 +1853 def in_unnest_op(self, unnest: exp.Unnest) -> str: +1854 return f"(SELECT {self.sql(unnest)})" +1855 +1856 def interval_sql(self, expression: exp.Interval) -> str: +1857 unit = self.sql(expression, "unit") +1858 if not self.INTERVAL_ALLOWS_PLURAL_FORM: +1859 unit = self.TIME_PART_SINGULARS.get(unit.lower(), unit) +1860 unit = f" {unit}" if unit else "" +1861 +1862 if self.SINGLE_STRING_INTERVAL: +1863 this = expression.this.name if expression.this else "" +1864 return f"INTERVAL '{this}{unit}'" if this else f"INTERVAL{unit}" +1865 +1866 this = self.sql(expression, "this") +1867 if this: +1868 unwrapped = isinstance(expression.this, self.UNWRAPPED_INTERVAL_VALUES) +1869 this = f" {this}" if unwrapped else f" ({this})" +1870 +1871 return f"INTERVAL{this}{unit}" +1872 +1873 def return_sql(self, expression: exp.Return) -> str: +1874 return f"RETURN {self.sql(expression, 'this')}" +1875 +1876 def reference_sql(self, expression: exp.Reference) -> str: +1877 this = self.sql(expression, "this") +1878 expressions = self.expressions(expression, flat=True) +1879 expressions = f"({expressions})" if expressions else "" +1880 options = self.expressions(expression, key="options", flat=True, sep=" ") +1881 options = f" {options}" if options else "" +1882 return f"REFERENCES {this}{expressions}{options}" 1883 -1884 def neg_sql(self, expression: exp.Neg) -> str: -1885 # This makes sure we don't convert "- - 5" to "--5", which is a comment -1886 this_sql = self.sql(expression, "this") -1887 sep = " " if this_sql[0] == "-" else "" -1888 return f"-{sep}{this_sql}" -1889 -1890 def not_sql(self, expression: exp.Not) -> str: -1891 return f"NOT {self.sql(expression, 'this')}" -1892 -1893 def alias_sql(self, expression: exp.Alias) -> str: -1894 alias = self.sql(expression, "alias") -1895 alias = f" AS {alias}" if alias else "" -1896 return f"{self.sql(expression, 'this')}{alias}" -1897 -1898 def aliases_sql(self, expression: exp.Aliases) -> str: -1899 return f"{self.sql(expression, 'this')} AS ({self.expressions(expression, flat=True)})" -1900 -1901 def attimezone_sql(self, expression: exp.AtTimeZone) -> str: -1902 this = self.sql(expression, "this") -1903 zone = self.sql(expression, "zone") -1904 return f"{this} AT TIME ZONE {zone}" -1905 -1906 def add_sql(self, expression: exp.Add) -> str: -1907 return self.binary(expression, "+") -1908 -1909 def and_sql(self, expression: exp.And) -> str: -1910 return self.connector_sql(expression, "AND") -1911 -1912 def connector_sql(self, expression: exp.Connector, op: str) -> str: -1913 if not self.pretty: -1914 return self.binary(expression, op) -1915 -1916 sqls = tuple( -1917 self.maybe_comment(self.sql(e), e, e.parent.comments or []) if i != 1 else self.sql(e) -1918 for i, e in enumerate(expression.flatten(unnest=False)) -1919 ) +1884 def anonymous_sql(self, expression: exp.Anonymous) -> str: +1885 return self.func(expression.name, *expression.expressions) +1886 +1887 def paren_sql(self, expression: exp.Paren) -> str: +1888 if isinstance(expression.unnest(), exp.Select): +1889 sql = self.wrap(expression) +1890 else: +1891 sql = self.seg(self.indent(self.sql(expression, "this")), sep="") +1892 sql = f"({sql}{self.seg(')', sep='')}" +1893 +1894 return self.prepend_ctes(expression, sql) +1895 +1896 def neg_sql(self, expression: exp.Neg) -> str: +1897 # This makes sure we don't convert "- - 5" to "--5", which is a comment +1898 this_sql = self.sql(expression, "this") +1899 sep = " " if this_sql[0] == "-" else "" +1900 return f"-{sep}{this_sql}" +1901 +1902 def not_sql(self, expression: exp.Not) -> str: +1903 return f"NOT {self.sql(expression, 'this')}" +1904 +1905 def alias_sql(self, expression: exp.Alias) -> str: +1906 alias = self.sql(expression, "alias") +1907 alias = f" AS {alias}" if alias else "" +1908 return f"{self.sql(expression, 'this')}{alias}" +1909 +1910 def aliases_sql(self, expression: exp.Aliases) -> str: +1911 return f"{self.sql(expression, 'this')} AS ({self.expressions(expression, flat=True)})" +1912 +1913 def attimezone_sql(self, expression: exp.AtTimeZone) -> str: +1914 this = self.sql(expression, "this") +1915 zone = self.sql(expression, "zone") +1916 return f"{this} AT TIME ZONE {zone}" +1917 +1918 def add_sql(self, expression: exp.Add) -> str: +1919 return self.binary(expression, "+") 1920 -1921 sep = "\n" if self.text_width(sqls) > self._max_text_width else " " -1922 return f"{sep}{op} ".join(sqls) +1921 def and_sql(self, expression: exp.And) -> str: +1922 return self.connector_sql(expression, "AND") 1923 -1924 def bitwiseand_sql(self, expression: exp.BitwiseAnd) -> str: -1925 return self.binary(expression, "&") -1926 -1927 def bitwiseleftshift_sql(self, expression: exp.BitwiseLeftShift) -> str: -1928 return self.binary(expression, "<<") -1929 -1930 def bitwisenot_sql(self, expression: exp.BitwiseNot) -> str: -1931 return f"~{self.sql(expression, 'this')}" +1924 def connector_sql(self, expression: exp.Connector, op: str) -> str: +1925 if not self.pretty: +1926 return self.binary(expression, op) +1927 +1928 sqls = tuple( +1929 self.maybe_comment(self.sql(e), e, e.parent.comments or []) if i != 1 else self.sql(e) +1930 for i, e in enumerate(expression.flatten(unnest=False)) +1931 ) 1932 -1933 def bitwiseor_sql(self, expression: exp.BitwiseOr) -> str: -1934 return self.binary(expression, "|") +1933 sep = "\n" if self.text_width(sqls) > self._max_text_width else " " +1934 return f"{sep}{op} ".join(sqls) 1935 -1936 def bitwiserightshift_sql(self, expression: exp.BitwiseRightShift) -> str: -1937 return self.binary(expression, ">>") +1936 def bitwiseand_sql(self, expression: exp.BitwiseAnd) -> str: +1937 return self.binary(expression, "&") 1938 -1939 def bitwisexor_sql(self, expression: exp.BitwiseXor) -> str: -1940 return self.binary(expression, "^") +1939 def bitwiseleftshift_sql(self, expression: exp.BitwiseLeftShift) -> str: +1940 return self.binary(expression, "<<") 1941 -1942 def cast_sql(self, expression: exp.Cast) -> str: -1943 return f"CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})" +1942 def bitwisenot_sql(self, expression: exp.BitwiseNot) -> str: +1943 return f"~{self.sql(expression, 'this')}" 1944 -1945 def currentdate_sql(self, expression: exp.CurrentDate) -> str: -1946 zone = self.sql(expression, "this") -1947 return f"CURRENT_DATE({zone})" if zone else "CURRENT_DATE" -1948 -1949 def collate_sql(self, expression: exp.Collate) -> str: -1950 return self.binary(expression, "COLLATE") -1951 -1952 def command_sql(self, expression: exp.Command) -> str: -1953 return f"{self.sql(expression, 'this').upper()} {expression.text('expression').strip()}" -1954 -1955 def comment_sql(self, expression: exp.Comment) -> str: -1956 this = self.sql(expression, "this") -1957 kind = expression.args["kind"] -1958 exists_sql = " IF EXISTS " if expression.args.get("exists") else " " -1959 expression_sql = self.sql(expression, "expression") -1960 return f"COMMENT{exists_sql}ON {kind} {this} IS {expression_sql}" -1961 -1962 def mergetreettlaction_sql(self, expression: exp.MergeTreeTTLAction) -> str: -1963 this = self.sql(expression, "this") -1964 delete = " DELETE" if expression.args.get("delete") else "" -1965 recompress = self.sql(expression, "recompress") -1966 recompress = f" RECOMPRESS {recompress}" if recompress else "" -1967 to_disk = self.sql(expression, "to_disk") -1968 to_disk = f" TO DISK {to_disk}" if to_disk else "" -1969 to_volume = self.sql(expression, "to_volume") -1970 to_volume = f" TO VOLUME {to_volume}" if to_volume else "" -1971 return f"{this}{delete}{recompress}{to_disk}{to_volume}" -1972 -1973 def mergetreettl_sql(self, expression: exp.MergeTreeTTL) -> str: -1974 where = self.sql(expression, "where") -1975 group = self.sql(expression, "group") -1976 aggregates = self.expressions(expression, key="aggregates") -1977 aggregates = self.seg("SET") + self.seg(aggregates) if aggregates else "" -1978 -1979 if not (where or group or aggregates) and len(expression.expressions) == 1: -1980 return f"TTL {self.expressions(expression, flat=True)}" -1981 -1982 return f"TTL{self.seg(self.expressions(expression))}{where}{group}{aggregates}" -1983 -1984 def transaction_sql(self, expression: exp.Transaction) -> str: -1985 return "BEGIN" -1986 -1987 def commit_sql(self, expression: exp.Commit) -> str: -1988 chain = expression.args.get("chain") -1989 if chain is not None: -1990 chain = " AND CHAIN" if chain else " AND NO CHAIN" -1991 -1992 return f"COMMIT{chain or ''}" +1945 def bitwiseor_sql(self, expression: exp.BitwiseOr) -> str: +1946 return self.binary(expression, "|") +1947 +1948 def bitwiserightshift_sql(self, expression: exp.BitwiseRightShift) -> str: +1949 return self.binary(expression, ">>") +1950 +1951 def bitwisexor_sql(self, expression: exp.BitwiseXor) -> str: +1952 return self.binary(expression, "^") +1953 +1954 def cast_sql(self, expression: exp.Cast) -> str: +1955 return f"CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})" +1956 +1957 def currentdate_sql(self, expression: exp.CurrentDate) -> str: +1958 zone = self.sql(expression, "this") +1959 return f"CURRENT_DATE({zone})" if zone else "CURRENT_DATE" +1960 +1961 def collate_sql(self, expression: exp.Collate) -> str: +1962 return self.binary(expression, "COLLATE") +1963 +1964 def command_sql(self, expression: exp.Command) -> str: +1965 return f"{self.sql(expression, 'this').upper()} {expression.text('expression').strip()}" +1966 +1967 def comment_sql(self, expression: exp.Comment) -> str: +1968 this = self.sql(expression, "this") +1969 kind = expression.args["kind"] +1970 exists_sql = " IF EXISTS " if expression.args.get("exists") else " " +1971 expression_sql = self.sql(expression, "expression") +1972 return f"COMMENT{exists_sql}ON {kind} {this} IS {expression_sql}" +1973 +1974 def mergetreettlaction_sql(self, expression: exp.MergeTreeTTLAction) -> str: +1975 this = self.sql(expression, "this") +1976 delete = " DELETE" if expression.args.get("delete") else "" +1977 recompress = self.sql(expression, "recompress") +1978 recompress = f" RECOMPRESS {recompress}" if recompress else "" +1979 to_disk = self.sql(expression, "to_disk") +1980 to_disk = f" TO DISK {to_disk}" if to_disk else "" +1981 to_volume = self.sql(expression, "to_volume") +1982 to_volume = f" TO VOLUME {to_volume}" if to_volume else "" +1983 return f"{this}{delete}{recompress}{to_disk}{to_volume}" +1984 +1985 def mergetreettl_sql(self, expression: exp.MergeTreeTTL) -> str: +1986 where = self.sql(expression, "where") +1987 group = self.sql(expression, "group") +1988 aggregates = self.expressions(expression, key="aggregates") +1989 aggregates = self.seg("SET") + self.seg(aggregates) if aggregates else "" +1990 +1991 if not (where or group or aggregates) and len(expression.expressions) == 1: +1992 return f"TTL {self.expressions(expression, flat=True)}" 1993 -1994 def rollback_sql(self, expression: exp.Rollback) -> str: -1995 savepoint = expression.args.get("savepoint") -1996 savepoint = f" TO {savepoint}" if savepoint else "" -1997 return f"ROLLBACK{savepoint}" +1994 return f"TTL{self.seg(self.expressions(expression))}{where}{group}{aggregates}" +1995 +1996 def transaction_sql(self, expression: exp.Transaction) -> str: +1997 return "BEGIN" 1998 -1999 def altercolumn_sql(self, expression: exp.AlterColumn) -> str: -2000 this = self.sql(expression, "this") -2001 -2002 dtype = self.sql(expression, "dtype") -2003 if dtype: -2004 collate = self.sql(expression, "collate") -2005 collate = f" COLLATE {collate}" if collate else "" -2006 using = self.sql(expression, "using") -2007 using = f" USING {using}" if using else "" -2008 return f"ALTER COLUMN {this} TYPE {dtype}{collate}{using}" -2009 -2010 default = self.sql(expression, "default") -2011 if default: -2012 return f"ALTER COLUMN {this} SET DEFAULT {default}" +1999 def commit_sql(self, expression: exp.Commit) -> str: +2000 chain = expression.args.get("chain") +2001 if chain is not None: +2002 chain = " AND CHAIN" if chain else " AND NO CHAIN" +2003 +2004 return f"COMMIT{chain or ''}" +2005 +2006 def rollback_sql(self, expression: exp.Rollback) -> str: +2007 savepoint = expression.args.get("savepoint") +2008 savepoint = f" TO {savepoint}" if savepoint else "" +2009 return f"ROLLBACK{savepoint}" +2010 +2011 def altercolumn_sql(self, expression: exp.AlterColumn) -> str: +2012 this = self.sql(expression, "this") 2013 -2014 if not expression.args.get("drop"): -2015 self.unsupported("Unsupported ALTER COLUMN syntax") -2016 -2017 return f"ALTER COLUMN {this} DROP DEFAULT" -2018 -2019 def renametable_sql(self, expression: exp.RenameTable) -> str: -2020 if not self.RENAME_TABLE_WITH_DB: -2021 # Remove db from tables -2022 expression = expression.transform( -2023 lambda n: exp.table_(n.this) if isinstance(n, exp.Table) else n -2024 ) -2025 this = self.sql(expression, "this") -2026 return f"RENAME TO {this}" -2027 -2028 def altertable_sql(self, expression: exp.AlterTable) -> str: -2029 actions = expression.args["actions"] +2014 dtype = self.sql(expression, "dtype") +2015 if dtype: +2016 collate = self.sql(expression, "collate") +2017 collate = f" COLLATE {collate}" if collate else "" +2018 using = self.sql(expression, "using") +2019 using = f" USING {using}" if using else "" +2020 return f"ALTER COLUMN {this} TYPE {dtype}{collate}{using}" +2021 +2022 default = self.sql(expression, "default") +2023 if default: +2024 return f"ALTER COLUMN {this} SET DEFAULT {default}" +2025 +2026 if not expression.args.get("drop"): +2027 self.unsupported("Unsupported ALTER COLUMN syntax") +2028 +2029 return f"ALTER COLUMN {this} DROP DEFAULT" 2030 -2031 if isinstance(actions[0], exp.ColumnDef): -2032 actions = self.expressions(expression, key="actions", prefix="ADD COLUMN ") -2033 elif isinstance(actions[0], exp.Schema): -2034 actions = self.expressions(expression, key="actions", prefix="ADD COLUMNS ") -2035 elif isinstance(actions[0], exp.Delete): -2036 actions = self.expressions(expression, key="actions", flat=True) -2037 else: -2038 actions = self.expressions(expression, key="actions") +2031 def renametable_sql(self, expression: exp.RenameTable) -> str: +2032 if not self.RENAME_TABLE_WITH_DB: +2033 # Remove db from tables +2034 expression = expression.transform( +2035 lambda n: exp.table_(n.this) if isinstance(n, exp.Table) else n +2036 ) +2037 this = self.sql(expression, "this") +2038 return f"RENAME TO {this}" 2039 -2040 exists = " IF EXISTS" if expression.args.get("exists") else "" -2041 return f"ALTER TABLE{exists} {self.sql(expression, 'this')} {actions}" +2040 def altertable_sql(self, expression: exp.AlterTable) -> str: +2041 actions = expression.args["actions"] 2042 -2043 def droppartition_sql(self, expression: exp.DropPartition) -> str: -2044 expressions = self.expressions(expression) -2045 exists = " IF EXISTS " if expression.args.get("exists") else " " -2046 return f"DROP{exists}{expressions}" -2047 -2048 def addconstraint_sql(self, expression: exp.AddConstraint) -> str: -2049 this = self.sql(expression, "this") -2050 expression_ = self.sql(expression, "expression") -2051 add_constraint = f"ADD CONSTRAINT {this}" if this else "ADD" -2052 -2053 enforced = expression.args.get("enforced") -2054 if enforced is not None: -2055 return f"{add_constraint} CHECK ({expression_}){' ENFORCED' if enforced else ''}" -2056 -2057 return f"{add_constraint} {expression_}" -2058 -2059 def distinct_sql(self, expression: exp.Distinct) -> str: -2060 this = self.expressions(expression, flat=True) -2061 this = f" {this}" if this else "" -2062 -2063 on = self.sql(expression, "on") -2064 on = f" ON {on}" if on else "" -2065 return f"DISTINCT{this}{on}" -2066 -2067 def ignorenulls_sql(self, expression: exp.IgnoreNulls) -> str: -2068 return f"{self.sql(expression, 'this')} IGNORE NULLS" -2069 -2070 def respectnulls_sql(self, expression: exp.RespectNulls) -> str: -2071 return f"{self.sql(expression, 'this')} RESPECT NULLS" -2072 -2073 def intdiv_sql(self, expression: exp.IntDiv) -> str: -2074 return self.sql( -2075 exp.Cast( -2076 this=exp.Div(this=expression.this, expression=expression.expression), -2077 to=exp.DataType(this=exp.DataType.Type.INT), -2078 ) -2079 ) -2080 -2081 def dpipe_sql(self, expression: exp.DPipe) -> str: -2082 return self.binary(expression, "||") -2083 -2084 def div_sql(self, expression: exp.Div) -> str: -2085 return self.binary(expression, "/") -2086 -2087 def overlaps_sql(self, expression: exp.Overlaps) -> str: -2088 return self.binary(expression, "OVERLAPS") -2089 -2090 def distance_sql(self, expression: exp.Distance) -> str: -2091 return self.binary(expression, "<->") +2043 if isinstance(actions[0], exp.ColumnDef): +2044 actions = self.expressions(expression, key="actions", prefix="ADD COLUMN ") +2045 elif isinstance(actions[0], exp.Schema): +2046 actions = self.expressions(expression, key="actions", prefix="ADD COLUMNS ") +2047 elif isinstance(actions[0], exp.Delete): +2048 actions = self.expressions(expression, key="actions", flat=True) +2049 else: +2050 actions = self.expressions(expression, key="actions") +2051 +2052 exists = " IF EXISTS" if expression.args.get("exists") else "" +2053 return f"ALTER TABLE{exists} {self.sql(expression, 'this')} {actions}" +2054 +2055 def droppartition_sql(self, expression: exp.DropPartition) -> str: +2056 expressions = self.expressions(expression) +2057 exists = " IF EXISTS " if expression.args.get("exists") else " " +2058 return f"DROP{exists}{expressions}" +2059 +2060 def addconstraint_sql(self, expression: exp.AddConstraint) -> str: +2061 this = self.sql(expression, "this") +2062 expression_ = self.sql(expression, "expression") +2063 add_constraint = f"ADD CONSTRAINT {this}" if this else "ADD" +2064 +2065 enforced = expression.args.get("enforced") +2066 if enforced is not None: +2067 return f"{add_constraint} CHECK ({expression_}){' ENFORCED' if enforced else ''}" +2068 +2069 return f"{add_constraint} {expression_}" +2070 +2071 def distinct_sql(self, expression: exp.Distinct) -> str: +2072 this = self.expressions(expression, flat=True) +2073 this = f" {this}" if this else "" +2074 +2075 on = self.sql(expression, "on") +2076 on = f" ON {on}" if on else "" +2077 return f"DISTINCT{this}{on}" +2078 +2079 def ignorenulls_sql(self, expression: exp.IgnoreNulls) -> str: +2080 return f"{self.sql(expression, 'this')} IGNORE NULLS" +2081 +2082 def respectnulls_sql(self, expression: exp.RespectNulls) -> str: +2083 return f"{self.sql(expression, 'this')} RESPECT NULLS" +2084 +2085 def intdiv_sql(self, expression: exp.IntDiv) -> str: +2086 return self.sql( +2087 exp.Cast( +2088 this=exp.Div(this=expression.this, expression=expression.expression), +2089 to=exp.DataType(this=exp.DataType.Type.INT), +2090 ) +2091 ) 2092 -2093 def dot_sql(self, expression: exp.Dot) -> str: -2094 return f"{self.sql(expression, 'this')}.{self.sql(expression, 'expression')}" +2093 def dpipe_sql(self, expression: exp.DPipe) -> str: +2094 return self.binary(expression, "||") 2095 -2096 def eq_sql(self, expression: exp.EQ) -> str: -2097 return self.binary(expression, "=") +2096 def div_sql(self, expression: exp.Div) -> str: +2097 return self.binary(expression, "/") 2098 -2099 def escape_sql(self, expression: exp.Escape) -> str: -2100 return self.binary(expression, "ESCAPE") +2099 def overlaps_sql(self, expression: exp.Overlaps) -> str: +2100 return self.binary(expression, "OVERLAPS") 2101 -2102 def glob_sql(self, expression: exp.Glob) -> str: -2103 return self.binary(expression, "GLOB") +2102 def distance_sql(self, expression: exp.Distance) -> str: +2103 return self.binary(expression, "<->") 2104 -2105 def gt_sql(self, expression: exp.GT) -> str: -2106 return self.binary(expression, ">") +2105 def dot_sql(self, expression: exp.Dot) -> str: +2106 return f"{self.sql(expression, 'this')}.{self.sql(expression, 'expression')}" 2107 -2108 def gte_sql(self, expression: exp.GTE) -> str: -2109 return self.binary(expression, ">=") +2108 def eq_sql(self, expression: exp.EQ) -> str: +2109 return self.binary(expression, "=") 2110 -2111 def ilike_sql(self, expression: exp.ILike) -> str: -2112 return self.binary(expression, "ILIKE") +2111 def escape_sql(self, expression: exp.Escape) -> str: +2112 return self.binary(expression, "ESCAPE") 2113 -2114 def ilikeany_sql(self, expression: exp.ILikeAny) -> str: -2115 return self.binary(expression, "ILIKE ANY") +2114 def glob_sql(self, expression: exp.Glob) -> str: +2115 return self.binary(expression, "GLOB") 2116 -2117 def is_sql(self, expression: exp.Is) -> str: -2118 return self.binary(expression, "IS") +2117 def gt_sql(self, expression: exp.GT) -> str: +2118 return self.binary(expression, ">") 2119 -2120 def like_sql(self, expression: exp.Like) -> str: -2121 return self.binary(expression, "LIKE") +2120 def gte_sql(self, expression: exp.GTE) -> str: +2121 return self.binary(expression, ">=") 2122 -2123 def likeany_sql(self, expression: exp.LikeAny) -> str: -2124 return self.binary(expression, "LIKE ANY") +2123 def ilike_sql(self, expression: exp.ILike) -> str: +2124 return self.binary(expression, "ILIKE") 2125 -2126 def similarto_sql(self, expression: exp.SimilarTo) -> str: -2127 return self.binary(expression, "SIMILAR TO") +2126 def ilikeany_sql(self, expression: exp.ILikeAny) -> str: +2127 return self.binary(expression, "ILIKE ANY") 2128 -2129 def lt_sql(self, expression: exp.LT) -> str: -2130 return self.binary(expression, "<") +2129 def is_sql(self, expression: exp.Is) -> str: +2130 return self.binary(expression, "IS") 2131 -2132 def lte_sql(self, expression: exp.LTE) -> str: -2133 return self.binary(expression, "<=") +2132 def like_sql(self, expression: exp.Like) -> str: +2133 return self.binary(expression, "LIKE") 2134 -2135 def mod_sql(self, expression: exp.Mod) -> str: -2136 return self.binary(expression, "%") +2135 def likeany_sql(self, expression: exp.LikeAny) -> str: +2136 return self.binary(expression, "LIKE ANY") 2137 -2138 def mul_sql(self, expression: exp.Mul) -> str: -2139 return self.binary(expression, "*") +2138 def similarto_sql(self, expression: exp.SimilarTo) -> str: +2139 return self.binary(expression, "SIMILAR TO") 2140 -2141 def neq_sql(self, expression: exp.NEQ) -> str: -2142 return self.binary(expression, "<>") +2141 def lt_sql(self, expression: exp.LT) -> str: +2142 return self.binary(expression, "<") 2143 -2144 def nullsafeeq_sql(self, expression: exp.NullSafeEQ) -> str: -2145 return self.binary(expression, "IS NOT DISTINCT FROM") +2144 def lte_sql(self, expression: exp.LTE) -> str: +2145 return self.binary(expression, "<=") 2146 -2147 def nullsafeneq_sql(self, expression: exp.NullSafeNEQ) -> str: -2148 return self.binary(expression, "IS DISTINCT FROM") +2147 def mod_sql(self, expression: exp.Mod) -> str: +2148 return self.binary(expression, "%") 2149 -2150 def or_sql(self, expression: exp.Or) -> str: -2151 return self.connector_sql(expression, "OR") +2150 def mul_sql(self, expression: exp.Mul) -> str: +2151 return self.binary(expression, "*") 2152 -2153 def slice_sql(self, expression: exp.Slice) -> str: -2154 return self.binary(expression, ":") +2153 def neq_sql(self, expression: exp.NEQ) -> str: +2154 return self.binary(expression, "<>") 2155 -2156 def sub_sql(self, expression: exp.Sub) -> str: -2157 return self.binary(expression, "-") +2156 def nullsafeeq_sql(self, expression: exp.NullSafeEQ) -> str: +2157 return self.binary(expression, "IS NOT DISTINCT FROM") 2158 -2159 def trycast_sql(self, expression: exp.TryCast) -> str: -2160 return f"TRY_CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})" +2159 def nullsafeneq_sql(self, expression: exp.NullSafeNEQ) -> str: +2160 return self.binary(expression, "IS DISTINCT FROM") 2161 -2162 def use_sql(self, expression: exp.Use) -> str: -2163 kind = self.sql(expression, "kind") -2164 kind = f" {kind}" if kind else "" -2165 this = self.sql(expression, "this") -2166 this = f" {this}" if this else "" -2167 return f"USE{kind}{this}" -2168 -2169 def binary(self, expression: exp.Binary, op: str) -> str: -2170 op = self.maybe_comment(op, comments=expression.comments) -2171 return f"{self.sql(expression, 'this')} {op} {self.sql(expression, 'expression')}" -2172 -2173 def function_fallback_sql(self, expression: exp.Func) -> str: -2174 args = [] -2175 for arg_value in expression.args.values(): -2176 if isinstance(arg_value, list): -2177 for value in arg_value: -2178 args.append(value) -2179 else: -2180 args.append(arg_value) -2181 -2182 return self.func(expression.sql_name(), *args) -2183 -2184 def func(self, name: str, *args: t.Optional[exp.Expression | str]) -> str: -2185 return f"{self.normalize_func(name)}({self.format_args(*args)})" -2186 -2187 def format_args(self, *args: t.Optional[str | exp.Expression]) -> str: -2188 arg_sqls = tuple(self.sql(arg) for arg in args if arg is not None) -2189 if self.pretty and self.text_width(arg_sqls) > self._max_text_width: -2190 return self.indent("\n" + f",\n".join(arg_sqls) + "\n", skip_first=True, skip_last=True) -2191 return ", ".join(arg_sqls) -2192 -2193 def text_width(self, args: t.Iterable) -> int: -2194 return sum(len(arg) for arg in args) +2162 def or_sql(self, expression: exp.Or) -> str: +2163 return self.connector_sql(expression, "OR") +2164 +2165 def slice_sql(self, expression: exp.Slice) -> str: +2166 return self.binary(expression, ":") +2167 +2168 def sub_sql(self, expression: exp.Sub) -> str: +2169 return self.binary(expression, "-") +2170 +2171 def trycast_sql(self, expression: exp.TryCast) -> str: +2172 return f"TRY_CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})" +2173 +2174 def use_sql(self, expression: exp.Use) -> str: +2175 kind = self.sql(expression, "kind") +2176 kind = f" {kind}" if kind else "" +2177 this = self.sql(expression, "this") +2178 this = f" {this}" if this else "" +2179 return f"USE{kind}{this}" +2180 +2181 def binary(self, expression: exp.Binary, op: str) -> str: +2182 op = self.maybe_comment(op, comments=expression.comments) +2183 return f"{self.sql(expression, 'this')} {op} {self.sql(expression, 'expression')}" +2184 +2185 def function_fallback_sql(self, expression: exp.Func) -> str: +2186 args = [] +2187 for arg_value in expression.args.values(): +2188 if isinstance(arg_value, list): +2189 for value in arg_value: +2190 args.append(value) +2191 else: +2192 args.append(arg_value) +2193 +2194 return self.func(expression.sql_name(), *args) 2195 -2196 def format_time(self, expression: exp.Expression) -> t.Optional[str]: -2197 return format_time(self.sql(expression, "format"), self.time_mapping, self.time_trie) +2196 def func(self, name: str, *args: t.Optional[exp.Expression | str]) -> str: +2197 return f"{self.normalize_func(name)}({self.format_args(*args)})" 2198 -2199 def expressions( -2200 self, -2201 expression: t.Optional[exp.Expression] = None, -2202 key: t.Optional[str] = None, -2203 sqls: t.Optional[t.List[str]] = None, -2204 flat: bool = False, -2205 indent: bool = True, -2206 sep: str = ", ", -2207 prefix: str = "", -2208 ) -> str: -2209 expressions = expression.args.get(key or "expressions") if expression else sqls +2199 def format_args(self, *args: t.Optional[str | exp.Expression]) -> str: +2200 arg_sqls = tuple(self.sql(arg) for arg in args if arg is not None) +2201 if self.pretty and self.text_width(arg_sqls) > self._max_text_width: +2202 return self.indent("\n" + f",\n".join(arg_sqls) + "\n", skip_first=True, skip_last=True) +2203 return ", ".join(arg_sqls) +2204 +2205 def text_width(self, args: t.Iterable) -> int: +2206 return sum(len(arg) for arg in args) +2207 +2208 def format_time(self, expression: exp.Expression) -> t.Optional[str]: +2209 return format_time(self.sql(expression, "format"), self.time_mapping, self.time_trie) 2210 -2211 if not expressions: -2212 return "" -2213 -2214 if flat: -2215 return sep.join(self.sql(e) for e in expressions) -2216 -2217 num_sqls = len(expressions) -2218 -2219 # These are calculated once in case we have the leading_comma / pretty option set, correspondingly -2220 pad = " " * self.pad -2221 stripped_sep = sep.strip() +2211 def expressions( +2212 self, +2213 expression: t.Optional[exp.Expression] = None, +2214 key: t.Optional[str] = None, +2215 sqls: t.Optional[t.List[str]] = None, +2216 flat: bool = False, +2217 indent: bool = True, +2218 sep: str = ", ", +2219 prefix: str = "", +2220 ) -> str: +2221 expressions = expression.args.get(key or "expressions") if expression else sqls 2222 -2223 result_sqls = [] -2224 for i, e in enumerate(expressions): -2225 sql = self.sql(e, comment=False) -2226 comments = self.maybe_comment("", e) if isinstance(e, exp.Expression) else "" -2227 -2228 if self.pretty: -2229 if self._leading_comma: -2230 result_sqls.append(f"{sep if i > 0 else pad}{prefix}{sql}{comments}") -2231 else: -2232 result_sqls.append( -2233 f"{prefix}{sql}{stripped_sep if i + 1 < num_sqls else ''}{comments}" -2234 ) -2235 else: -2236 result_sqls.append(f"{prefix}{sql}{comments}{sep if i + 1 < num_sqls else ''}") -2237 -2238 result_sql = "\n".join(result_sqls) if self.pretty else "".join(result_sqls) -2239 return self.indent(result_sql, skip_first=False) if indent else result_sql -2240 -2241 def op_expressions(self, op: str, expression: exp.Expression, flat: bool = False) -> str: -2242 flat = flat or isinstance(expression.parent, exp.Properties) -2243 expressions_sql = self.expressions(expression, flat=flat) -2244 if flat: -2245 return f"{op} {expressions_sql}" -2246 return f"{self.seg(op)}{self.sep() if expressions_sql else ''}{expressions_sql}" -2247 -2248 def naked_property(self, expression: exp.Property) -> str: -2249 property_name = exp.Properties.PROPERTY_TO_NAME.get(expression.__class__) -2250 if not property_name: -2251 self.unsupported(f"Unsupported property {expression.__class__.__name__}") -2252 return f"{property_name} {self.sql(expression, 'this')}" -2253 -2254 def set_operation(self, expression: exp.Expression, op: str) -> str: -2255 this = self.sql(expression, "this") -2256 op = self.seg(op) -2257 return self.query_modifiers( -2258 expression, f"{this}{op}{self.sep()}{self.sql(expression, 'expression')}" -2259 ) -2260 -2261 def tag_sql(self, expression: exp.Tag) -> str: -2262 return f"{expression.args.get('prefix')}{self.sql(expression.this)}{expression.args.get('postfix')}" -2263 -2264 def token_sql(self, token_type: TokenType) -> str: -2265 return self.TOKEN_MAPPING.get(token_type, token_type.name) -2266 -2267 def userdefinedfunction_sql(self, expression: exp.UserDefinedFunction) -> str: -2268 this = self.sql(expression, "this") -2269 expressions = self.no_identify(self.expressions, expression) -2270 expressions = ( -2271 self.wrap(expressions) if expression.args.get("wrapped") else f" {expressions}" -2272 ) -2273 return f"{this}{expressions}" -2274 -2275 def joinhint_sql(self, expression: exp.JoinHint) -> str: -2276 this = self.sql(expression, "this") -2277 expressions = self.expressions(expression, flat=True) -2278 return f"{this}({expressions})" -2279 -2280 def kwarg_sql(self, expression: exp.Kwarg) -> str: -2281 return self.binary(expression, "=>") -2282 -2283 def when_sql(self, expression: exp.When) -> str: -2284 matched = "MATCHED" if expression.args["matched"] else "NOT MATCHED" -2285 source = " BY SOURCE" if self.MATCHED_BY_SOURCE and expression.args.get("source") else "" -2286 condition = self.sql(expression, "condition") -2287 condition = f" AND {condition}" if condition else "" -2288 -2289 then_expression = expression.args.get("then") -2290 if isinstance(then_expression, exp.Insert): -2291 then = f"INSERT {self.sql(then_expression, 'this')}" -2292 if "expression" in then_expression.args: -2293 then += f" VALUES {self.sql(then_expression, 'expression')}" -2294 elif isinstance(then_expression, exp.Update): -2295 if isinstance(then_expression.args.get("expressions"), exp.Star): -2296 then = f"UPDATE {self.sql(then_expression, 'expressions')}" -2297 else: -2298 then = f"UPDATE SET {self.expressions(then_expression, flat=True)}" -2299 else: -2300 then = self.sql(then_expression) -2301 return f"WHEN {matched}{source}{condition} THEN {then}" -2302 -2303 def merge_sql(self, expression: exp.Merge) -> str: -2304 this = self.sql(expression, "this") -2305 using = f"USING {self.sql(expression, 'using')}" -2306 on = f"ON {self.sql(expression, 'on')}" -2307 return f"MERGE INTO {this} {using} {on} {self.expressions(expression, sep=' ')}" -2308 -2309 def tochar_sql(self, expression: exp.ToChar) -> str: -2310 if expression.args.get("format"): -2311 self.unsupported("Format argument unsupported for TO_CHAR/TO_VARCHAR function") -2312 -2313 return self.sql(exp.cast(expression.this, "text")) +2223 if not expressions: +2224 return "" +2225 +2226 if flat: +2227 return sep.join(self.sql(e) for e in expressions) +2228 +2229 num_sqls = len(expressions) +2230 +2231 # These are calculated once in case we have the leading_comma / pretty option set, correspondingly +2232 pad = " " * self.pad +2233 stripped_sep = sep.strip() +2234 +2235 result_sqls = [] +2236 for i, e in enumerate(expressions): +2237 sql = self.sql(e, comment=False) +2238 comments = self.maybe_comment("", e) if isinstance(e, exp.Expression) else "" +2239 +2240 if self.pretty: +2241 if self._leading_comma: +2242 result_sqls.append(f"{sep if i > 0 else pad}{prefix}{sql}{comments}") +2243 else: +2244 result_sqls.append( +2245 f"{prefix}{sql}{stripped_sep if i + 1 < num_sqls else ''}{comments}" +2246 ) +2247 else: +2248 result_sqls.append(f"{prefix}{sql}{comments}{sep if i + 1 < num_sqls else ''}") +2249 +2250 result_sql = "\n".join(result_sqls) if self.pretty else "".join(result_sqls) +2251 return self.indent(result_sql, skip_first=False) if indent else result_sql +2252 +2253 def op_expressions(self, op: str, expression: exp.Expression, flat: bool = False) -> str: +2254 flat = flat or isinstance(expression.parent, exp.Properties) +2255 expressions_sql = self.expressions(expression, flat=flat) +2256 if flat: +2257 return f"{op} {expressions_sql}" +2258 return f"{self.seg(op)}{self.sep() if expressions_sql else ''}{expressions_sql}" +2259 +2260 def naked_property(self, expression: exp.Property) -> str: +2261 property_name = exp.Properties.PROPERTY_TO_NAME.get(expression.__class__) +2262 if not property_name: +2263 self.unsupported(f"Unsupported property {expression.__class__.__name__}") +2264 return f"{property_name} {self.sql(expression, 'this')}" +2265 +2266 def set_operation(self, expression: exp.Expression, op: str) -> str: +2267 this = self.sql(expression, "this") +2268 op = self.seg(op) +2269 return self.query_modifiers( +2270 expression, f"{this}{op}{self.sep()}{self.sql(expression, 'expression')}" +2271 ) +2272 +2273 def tag_sql(self, expression: exp.Tag) -> str: +2274 return f"{expression.args.get('prefix')}{self.sql(expression.this)}{expression.args.get('postfix')}" +2275 +2276 def token_sql(self, token_type: TokenType) -> str: +2277 return self.TOKEN_MAPPING.get(token_type, token_type.name) +2278 +2279 def userdefinedfunction_sql(self, expression: exp.UserDefinedFunction) -> str: +2280 this = self.sql(expression, "this") +2281 expressions = self.no_identify(self.expressions, expression) +2282 expressions = ( +2283 self.wrap(expressions) if expression.args.get("wrapped") else f" {expressions}" +2284 ) +2285 return f"{this}{expressions}" +2286 +2287 def joinhint_sql(self, expression: exp.JoinHint) -> str: +2288 this = self.sql(expression, "this") +2289 expressions = self.expressions(expression, flat=True) +2290 return f"{this}({expressions})" +2291 +2292 def kwarg_sql(self, expression: exp.Kwarg) -> str: +2293 return self.binary(expression, "=>") +2294 +2295 def when_sql(self, expression: exp.When) -> str: +2296 matched = "MATCHED" if expression.args["matched"] else "NOT MATCHED" +2297 source = " BY SOURCE" if self.MATCHED_BY_SOURCE and expression.args.get("source") else "" +2298 condition = self.sql(expression, "condition") +2299 condition = f" AND {condition}" if condition else "" +2300 +2301 then_expression = expression.args.get("then") +2302 if isinstance(then_expression, exp.Insert): +2303 then = f"INSERT {self.sql(then_expression, 'this')}" +2304 if "expression" in then_expression.args: +2305 then += f" VALUES {self.sql(then_expression, 'expression')}" +2306 elif isinstance(then_expression, exp.Update): +2307 if isinstance(then_expression.args.get("expressions"), exp.Star): +2308 then = f"UPDATE {self.sql(then_expression, 'expressions')}" +2309 else: +2310 then = f"UPDATE SET {self.expressions(then_expression, flat=True)}" +2311 else: +2312 then = self.sql(then_expression) +2313 return f"WHEN {matched}{source}{condition} THEN {then}" 2314 -2315 -2316def cached_generator( -2317 cache: t.Optional[t.Dict[int, str]] = None -2318) -> t.Callable[[exp.Expression], str]: -2319 """Returns a cached generator.""" -2320 cache = {} if cache is None else cache -2321 generator = Generator(normalize=True, identify="safe") -2322 return lambda e: generator.generate(e, cache) +2315 def merge_sql(self, expression: exp.Merge) -> str: +2316 this = self.sql(expression, "this") +2317 using = f"USING {self.sql(expression, 'using')}" +2318 on = f"ON {self.sql(expression, 'on')}" +2319 return f"MERGE INTO {this} {using} {on} {self.expressions(expression, sep=' ')}" +2320 +2321 def tochar_sql(self, expression: exp.ToChar) -> str: +2322 if expression.args.get("format"): +2323 self.unsupported("Format argument unsupported for TO_CHAR/TO_VARCHAR function") +2324 +2325 return self.sql(exp.cast(expression.this, "text")) +2326 +2327 def dictproperty_sql(self, expression: exp.DictProperty) -> str: +2328 this = self.sql(expression, "this") +2329 kind = self.sql(expression, "kind") +2330 settings_sql = self.expressions(expression, key="settings", sep=" ") +2331 args = f"({self.sep('')}{settings_sql}{self.seg(')', sep='')}" if settings_sql else "()" +2332 return f"{this}({kind}{args})" +2333 +2334 def dictrange_sql(self, expression: exp.DictRange) -> str: +2335 this = self.sql(expression, "this") +2336 max = self.sql(expression, "max") +2337 min = self.sql(expression, "min") +2338 return f"{this}(MIN {min} MAX {max})" +2339 +2340 def dictsubproperty_sql(self, expression: exp.DictSubProperty) -> str: +2341 return f"{self.sql(expression, 'this')} {self.sql(expression, 'value')}" +2342 +2343 +2344def cached_generator( +2345 cache: t.Optional[t.Dict[int, str]] = None +2346) -> t.Callable[[exp.Expression], str]: +2347 """Returns a cached generator.""" +2348 cache = {} if cache is None else cache +2349 generator = Generator(normalize=True, identify="safe") +2350 return lambda e: generator.generate(e, cache) @@ -3127,2273 +3161,2301 @@ 45 Default: "upper" 46 alias_post_tablesample (bool): if the table alias comes after tablesample 47 Default: False - 48 unsupported_level (ErrorLevel): determines the generator's behavior when it encounters - 49 unsupported expressions. Default ErrorLevel.WARN. - 50 null_ordering (str): Indicates the default null ordering method to use if not explicitly set. - 51 Options are "nulls_are_small", "nulls_are_large", "nulls_are_last". - 52 Default: "nulls_are_small" - 53 max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError. - 54 This is only relevant if unsupported_level is ErrorLevel.RAISE. - 55 Default: 3 - 56 leading_comma (bool): if the the comma is leading or trailing in select statements - 57 Default: False - 58 max_text_width: The max number of characters in a segment before creating new lines in pretty mode. - 59 The default is on the smaller end because the length only represents a segment and not the true - 60 line length. - 61 Default: 80 - 62 comments: Whether or not to preserve comments in the output SQL code. - 63 Default: True - 64 """ - 65 - 66 TRANSFORMS = { - 67 exp.DateAdd: lambda self, e: self.func( - 68 "DATE_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) - 69 ), - 70 exp.TsOrDsAdd: lambda self, e: self.func( - 71 "TS_OR_DS_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) - 72 ), - 73 exp.VarMap: lambda self, e: self.func("MAP", e.args["keys"], e.args["values"]), - 74 exp.CharacterSetProperty: lambda self, e: f"{'DEFAULT ' if e.args.get('default') else ''}CHARACTER SET={self.sql(e, 'this')}", - 75 exp.ExecuteAsProperty: lambda self, e: self.naked_property(e), - 76 exp.ExternalProperty: lambda self, e: "EXTERNAL", - 77 exp.LanguageProperty: lambda self, e: self.naked_property(e), - 78 exp.LocationProperty: lambda self, e: self.naked_property(e), - 79 exp.LogProperty: lambda self, e: f"{'NO ' if e.args.get('no') else ''}LOG", - 80 exp.MaterializedProperty: lambda self, e: "MATERIALIZED", - 81 exp.NoPrimaryIndexProperty: lambda self, e: "NO PRIMARY INDEX", - 82 exp.OnCommitProperty: lambda self, e: f"ON COMMIT {'DELETE' if e.args.get('delete') else 'PRESERVE'} ROWS", - 83 exp.ReturnsProperty: lambda self, e: self.naked_property(e), - 84 exp.SetProperty: lambda self, e: f"{'MULTI' if e.args.get('multi') else ''}SET", - 85 exp.SettingsProperty: lambda self, e: f"SETTINGS{self.seg('')}{(self.expressions(e))}", - 86 exp.SqlSecurityProperty: lambda self, e: f"SQL SECURITY {'DEFINER' if e.args.get('definer') else 'INVOKER'}", - 87 exp.TemporaryProperty: lambda self, e: f"TEMPORARY", - 88 exp.TransientProperty: lambda self, e: "TRANSIENT", - 89 exp.StabilityProperty: lambda self, e: e.name, - 90 exp.VolatileProperty: lambda self, e: "VOLATILE", - 91 exp.WithJournalTableProperty: lambda self, e: f"WITH JOURNAL TABLE={self.sql(e, 'this')}", - 92 exp.CaseSpecificColumnConstraint: lambda self, e: f"{'NOT ' if e.args.get('not_') else ''}CASESPECIFIC", - 93 exp.CharacterSetColumnConstraint: lambda self, e: f"CHARACTER SET {self.sql(e, 'this')}", - 94 exp.DateFormatColumnConstraint: lambda self, e: f"FORMAT {self.sql(e, 'this')}", - 95 exp.OnUpdateColumnConstraint: lambda self, e: f"ON UPDATE {self.sql(e, 'this')}", - 96 exp.UppercaseColumnConstraint: lambda self, e: f"UPPERCASE", - 97 exp.TitleColumnConstraint: lambda self, e: f"TITLE {self.sql(e, 'this')}", - 98 exp.PathColumnConstraint: lambda self, e: f"PATH {self.sql(e, 'this')}", - 99 exp.CheckColumnConstraint: lambda self, e: f"CHECK ({self.sql(e, 'this')})", - 100 exp.CommentColumnConstraint: lambda self, e: f"COMMENT {self.sql(e, 'this')}", - 101 exp.CollateColumnConstraint: lambda self, e: f"COLLATE {self.sql(e, 'this')}", - 102 exp.EncodeColumnConstraint: lambda self, e: f"ENCODE {self.sql(e, 'this')}", - 103 exp.DefaultColumnConstraint: lambda self, e: f"DEFAULT {self.sql(e, 'this')}", - 104 exp.InlineLengthColumnConstraint: lambda self, e: f"INLINE LENGTH {self.sql(e, 'this')}", - 105 } - 106 - 107 # Whether or not null ordering is supported in order by - 108 NULL_ORDERING_SUPPORTED = True - 109 - 110 # Whether or not locking reads (i.e. SELECT ... FOR UPDATE/SHARE) are supported - 111 LOCKING_READS_SUPPORTED = False - 112 - 113 # Always do union distinct or union all - 114 EXPLICIT_UNION = False - 115 - 116 # Wrap derived values in parens, usually standard but spark doesn't support it - 117 WRAP_DERIVED_VALUES = True - 118 - 119 # Whether or not create function uses an AS before the RETURN - 120 CREATE_FUNCTION_RETURN_AS = True - 121 - 122 # Whether or not MERGE ... WHEN MATCHED BY SOURCE is allowed - 123 MATCHED_BY_SOURCE = True - 124 - 125 # Whether or not the INTERVAL expression works only with values like '1 day' - 126 SINGLE_STRING_INTERVAL = False - 127 - 128 # Whether or not the plural form of date parts like day (i.e. "days") is supported in INTERVALs - 129 INTERVAL_ALLOWS_PLURAL_FORM = True - 130 - 131 # Whether or not the TABLESAMPLE clause supports a method name, like BERNOULLI - 132 TABLESAMPLE_WITH_METHOD = True - 133 - 134 # Whether or not to treat the number in TABLESAMPLE (50) as a percentage - 135 TABLESAMPLE_SIZE_IS_PERCENT = False - 136 - 137 # Whether or not limit and fetch are supported (possible values: "ALL", "LIMIT", "FETCH") - 138 LIMIT_FETCH = "ALL" - 139 - 140 # Whether a table is allowed to be renamed with a db - 141 RENAME_TABLE_WITH_DB = True - 142 - 143 # The separator for grouping sets and rollups - 144 GROUPINGS_SEP = "," - 145 - 146 # The string used for creating index on a table - 147 INDEX_ON = "ON" - 148 - 149 TYPE_MAPPING = { - 150 exp.DataType.Type.NCHAR: "CHAR", - 151 exp.DataType.Type.NVARCHAR: "VARCHAR", - 152 exp.DataType.Type.MEDIUMTEXT: "TEXT", - 153 exp.DataType.Type.LONGTEXT: "TEXT", - 154 exp.DataType.Type.MEDIUMBLOB: "BLOB", - 155 exp.DataType.Type.LONGBLOB: "BLOB", - 156 exp.DataType.Type.INET: "INET", - 157 } - 158 - 159 STAR_MAPPING = { - 160 "except": "EXCEPT", - 161 "replace": "REPLACE", - 162 } - 163 - 164 TIME_PART_SINGULARS = { - 165 "microseconds": "microsecond", - 166 "seconds": "second", - 167 "minutes": "minute", - 168 "hours": "hour", - 169 "days": "day", - 170 "weeks": "week", - 171 "months": "month", - 172 "quarters": "quarter", - 173 "years": "year", - 174 } - 175 - 176 TOKEN_MAPPING: t.Dict[TokenType, str] = {} + 48 identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit + 49 Default: False + 50 unsupported_level (ErrorLevel): determines the generator's behavior when it encounters + 51 unsupported expressions. Default ErrorLevel.WARN. + 52 null_ordering (str): Indicates the default null ordering method to use if not explicitly set. + 53 Options are "nulls_are_small", "nulls_are_large", "nulls_are_last". + 54 Default: "nulls_are_small" + 55 max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError. + 56 This is only relevant if unsupported_level is ErrorLevel.RAISE. + 57 Default: 3 + 58 leading_comma (bool): if the the comma is leading or trailing in select statements + 59 Default: False + 60 max_text_width: The max number of characters in a segment before creating new lines in pretty mode. + 61 The default is on the smaller end because the length only represents a segment and not the true + 62 line length. + 63 Default: 80 + 64 comments: Whether or not to preserve comments in the output SQL code. + 65 Default: True + 66 """ + 67 + 68 TRANSFORMS = { + 69 exp.DateAdd: lambda self, e: self.func( + 70 "DATE_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) + 71 ), + 72 exp.TsOrDsAdd: lambda self, e: self.func( + 73 "TS_OR_DS_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) + 74 ), + 75 exp.VarMap: lambda self, e: self.func("MAP", e.args["keys"], e.args["values"]), + 76 exp.CharacterSetProperty: lambda self, e: f"{'DEFAULT ' if e.args.get('default') else ''}CHARACTER SET={self.sql(e, 'this')}", + 77 exp.ExecuteAsProperty: lambda self, e: self.naked_property(e), + 78 exp.ExternalProperty: lambda self, e: "EXTERNAL", + 79 exp.LanguageProperty: lambda self, e: self.naked_property(e), + 80 exp.LocationProperty: lambda self, e: self.naked_property(e), + 81 exp.LogProperty: lambda self, e: f"{'NO ' if e.args.get('no') else ''}LOG", + 82 exp.MaterializedProperty: lambda self, e: "MATERIALIZED", + 83 exp.NoPrimaryIndexProperty: lambda self, e: "NO PRIMARY INDEX", + 84 exp.OnCommitProperty: lambda self, e: f"ON COMMIT {'DELETE' if e.args.get('delete') else 'PRESERVE'} ROWS", + 85 exp.ReturnsProperty: lambda self, e: self.naked_property(e), + 86 exp.SetProperty: lambda self, e: f"{'MULTI' if e.args.get('multi') else ''}SET", + 87 exp.SettingsProperty: lambda self, e: f"SETTINGS{self.seg('')}{(self.expressions(e))}", + 88 exp.SqlSecurityProperty: lambda self, e: f"SQL SECURITY {'DEFINER' if e.args.get('definer') else 'INVOKER'}", + 89 exp.TemporaryProperty: lambda self, e: f"TEMPORARY", + 90 exp.TransientProperty: lambda self, e: "TRANSIENT", + 91 exp.StabilityProperty: lambda self, e: e.name, + 92 exp.VolatileProperty: lambda self, e: "VOLATILE", + 93 exp.WithJournalTableProperty: lambda self, e: f"WITH JOURNAL TABLE={self.sql(e, 'this')}", + 94 exp.CaseSpecificColumnConstraint: lambda self, e: f"{'NOT ' if e.args.get('not_') else ''}CASESPECIFIC", + 95 exp.CharacterSetColumnConstraint: lambda self, e: f"CHARACTER SET {self.sql(e, 'this')}", + 96 exp.DateFormatColumnConstraint: lambda self, e: f"FORMAT {self.sql(e, 'this')}", + 97 exp.OnUpdateColumnConstraint: lambda self, e: f"ON UPDATE {self.sql(e, 'this')}", + 98 exp.UppercaseColumnConstraint: lambda self, e: f"UPPERCASE", + 99 exp.TitleColumnConstraint: lambda self, e: f"TITLE {self.sql(e, 'this')}", + 100 exp.PathColumnConstraint: lambda self, e: f"PATH {self.sql(e, 'this')}", + 101 exp.CheckColumnConstraint: lambda self, e: f"CHECK ({self.sql(e, 'this')})", + 102 exp.CommentColumnConstraint: lambda self, e: f"COMMENT {self.sql(e, 'this')}", + 103 exp.CollateColumnConstraint: lambda self, e: f"COLLATE {self.sql(e, 'this')}", + 104 exp.EncodeColumnConstraint: lambda self, e: f"ENCODE {self.sql(e, 'this')}", + 105 exp.DefaultColumnConstraint: lambda self, e: f"DEFAULT {self.sql(e, 'this')}", + 106 exp.InlineLengthColumnConstraint: lambda self, e: f"INLINE LENGTH {self.sql(e, 'this')}", + 107 } + 108 + 109 # Whether or not null ordering is supported in order by + 110 NULL_ORDERING_SUPPORTED = True + 111 + 112 # Whether or not locking reads (i.e. SELECT ... FOR UPDATE/SHARE) are supported + 113 LOCKING_READS_SUPPORTED = False + 114 + 115 # Always do union distinct or union all + 116 EXPLICIT_UNION = False + 117 + 118 # Wrap derived values in parens, usually standard but spark doesn't support it + 119 WRAP_DERIVED_VALUES = True + 120 + 121 # Whether or not create function uses an AS before the RETURN + 122 CREATE_FUNCTION_RETURN_AS = True + 123 + 124 # Whether or not MERGE ... WHEN MATCHED BY SOURCE is allowed + 125 MATCHED_BY_SOURCE = True + 126 + 127 # Whether or not the INTERVAL expression works only with values like '1 day' + 128 SINGLE_STRING_INTERVAL = False + 129 + 130 # Whether or not the plural form of date parts like day (i.e. "days") is supported in INTERVALs + 131 INTERVAL_ALLOWS_PLURAL_FORM = True + 132 + 133 # Whether or not the TABLESAMPLE clause supports a method name, like BERNOULLI + 134 TABLESAMPLE_WITH_METHOD = True + 135 + 136 # Whether or not to treat the number in TABLESAMPLE (50) as a percentage + 137 TABLESAMPLE_SIZE_IS_PERCENT = False + 138 + 139 # Whether or not limit and fetch are supported (possible values: "ALL", "LIMIT", "FETCH") + 140 LIMIT_FETCH = "ALL" + 141 + 142 # Whether a table is allowed to be renamed with a db + 143 RENAME_TABLE_WITH_DB = True + 144 + 145 # The separator for grouping sets and rollups + 146 GROUPINGS_SEP = "," + 147 + 148 # The string used for creating index on a table + 149 INDEX_ON = "ON" + 150 + 151 TYPE_MAPPING = { + 152 exp.DataType.Type.NCHAR: "CHAR", + 153 exp.DataType.Type.NVARCHAR: "VARCHAR", + 154 exp.DataType.Type.MEDIUMTEXT: "TEXT", + 155 exp.DataType.Type.LONGTEXT: "TEXT", + 156 exp.DataType.Type.MEDIUMBLOB: "BLOB", + 157 exp.DataType.Type.LONGBLOB: "BLOB", + 158 exp.DataType.Type.INET: "INET", + 159 } + 160 + 161 STAR_MAPPING = { + 162 "except": "EXCEPT", + 163 "replace": "REPLACE", + 164 } + 165 + 166 TIME_PART_SINGULARS = { + 167 "microseconds": "microsecond", + 168 "seconds": "second", + 169 "minutes": "minute", + 170 "hours": "hour", + 171 "days": "day", + 172 "weeks": "week", + 173 "months": "month", + 174 "quarters": "quarter", + 175 "years": "year", + 176 } 177 - 178 STRUCT_DELIMITER = ("<", ">") + 178 TOKEN_MAPPING: t.Dict[TokenType, str] = {} 179 - 180 PARAMETER_TOKEN = "@" + 180 STRUCT_DELIMITER = ("<", ">") 181 - 182 PROPERTIES_LOCATION = { - 183 exp.AlgorithmProperty: exp.Properties.Location.POST_CREATE, - 184 exp.AutoIncrementProperty: exp.Properties.Location.POST_SCHEMA, - 185 exp.BlockCompressionProperty: exp.Properties.Location.POST_NAME, - 186 exp.CharacterSetProperty: exp.Properties.Location.POST_SCHEMA, - 187 exp.ChecksumProperty: exp.Properties.Location.POST_NAME, - 188 exp.CollateProperty: exp.Properties.Location.POST_SCHEMA, - 189 exp.Cluster: exp.Properties.Location.POST_SCHEMA, - 190 exp.DataBlocksizeProperty: exp.Properties.Location.POST_NAME, - 191 exp.DefinerProperty: exp.Properties.Location.POST_CREATE, - 192 exp.DistKeyProperty: exp.Properties.Location.POST_SCHEMA, - 193 exp.DistStyleProperty: exp.Properties.Location.POST_SCHEMA, - 194 exp.EngineProperty: exp.Properties.Location.POST_SCHEMA, - 195 exp.ExecuteAsProperty: exp.Properties.Location.POST_SCHEMA, - 196 exp.ExternalProperty: exp.Properties.Location.POST_CREATE, - 197 exp.FallbackProperty: exp.Properties.Location.POST_NAME, - 198 exp.FileFormatProperty: exp.Properties.Location.POST_WITH, - 199 exp.FreespaceProperty: exp.Properties.Location.POST_NAME, - 200 exp.IsolatedLoadingProperty: exp.Properties.Location.POST_NAME, - 201 exp.JournalProperty: exp.Properties.Location.POST_NAME, - 202 exp.LanguageProperty: exp.Properties.Location.POST_SCHEMA, - 203 exp.LikeProperty: exp.Properties.Location.POST_SCHEMA, - 204 exp.LocationProperty: exp.Properties.Location.POST_SCHEMA, - 205 exp.LockingProperty: exp.Properties.Location.POST_ALIAS, - 206 exp.LogProperty: exp.Properties.Location.POST_NAME, - 207 exp.MaterializedProperty: exp.Properties.Location.POST_CREATE, - 208 exp.MergeBlockRatioProperty: exp.Properties.Location.POST_NAME, - 209 exp.NoPrimaryIndexProperty: exp.Properties.Location.POST_EXPRESSION, - 210 exp.OnCommitProperty: exp.Properties.Location.POST_EXPRESSION, - 211 exp.Order: exp.Properties.Location.POST_SCHEMA, - 212 exp.PartitionedByProperty: exp.Properties.Location.POST_WITH, - 213 exp.PrimaryKey: exp.Properties.Location.POST_SCHEMA, - 214 exp.Property: exp.Properties.Location.POST_WITH, - 215 exp.ReturnsProperty: exp.Properties.Location.POST_SCHEMA, - 216 exp.RowFormatProperty: exp.Properties.Location.POST_SCHEMA, - 217 exp.RowFormatDelimitedProperty: exp.Properties.Location.POST_SCHEMA, - 218 exp.RowFormatSerdeProperty: exp.Properties.Location.POST_SCHEMA, - 219 exp.SchemaCommentProperty: exp.Properties.Location.POST_SCHEMA, - 220 exp.SerdeProperties: exp.Properties.Location.POST_SCHEMA, - 221 exp.Set: exp.Properties.Location.POST_SCHEMA, - 222 exp.SettingsProperty: exp.Properties.Location.POST_SCHEMA, - 223 exp.SetProperty: exp.Properties.Location.POST_CREATE, - 224 exp.SortKeyProperty: exp.Properties.Location.POST_SCHEMA, - 225 exp.SqlSecurityProperty: exp.Properties.Location.POST_CREATE, - 226 exp.StabilityProperty: exp.Properties.Location.POST_SCHEMA, - 227 exp.TemporaryProperty: exp.Properties.Location.POST_CREATE, - 228 exp.TransientProperty: exp.Properties.Location.POST_CREATE, - 229 exp.MergeTreeTTL: exp.Properties.Location.POST_SCHEMA, - 230 exp.VolatileProperty: exp.Properties.Location.POST_CREATE, - 231 exp.WithDataProperty: exp.Properties.Location.POST_EXPRESSION, - 232 exp.WithJournalTableProperty: exp.Properties.Location.POST_NAME, - 233 } - 234 - 235 JOIN_HINTS = True - 236 TABLE_HINTS = True - 237 - 238 RESERVED_KEYWORDS: t.Set[str] = set() - 239 WITH_SEPARATED_COMMENTS = (exp.Select, exp.From, exp.Where, exp.With) - 240 UNWRAPPED_INTERVAL_VALUES = (exp.Column, exp.Literal, exp.Neg, exp.Paren) + 182 PARAMETER_TOKEN = "@" + 183 + 184 PROPERTIES_LOCATION = { + 185 exp.AlgorithmProperty: exp.Properties.Location.POST_CREATE, + 186 exp.AutoIncrementProperty: exp.Properties.Location.POST_SCHEMA, + 187 exp.BlockCompressionProperty: exp.Properties.Location.POST_NAME, + 188 exp.CharacterSetProperty: exp.Properties.Location.POST_SCHEMA, + 189 exp.ChecksumProperty: exp.Properties.Location.POST_NAME, + 190 exp.CollateProperty: exp.Properties.Location.POST_SCHEMA, + 191 exp.Cluster: exp.Properties.Location.POST_SCHEMA, + 192 exp.DataBlocksizeProperty: exp.Properties.Location.POST_NAME, + 193 exp.DefinerProperty: exp.Properties.Location.POST_CREATE, + 194 exp.DictRange: exp.Properties.Location.POST_SCHEMA, + 195 exp.DictProperty: exp.Properties.Location.POST_SCHEMA, + 196 exp.DistKeyProperty: exp.Properties.Location.POST_SCHEMA, + 197 exp.DistStyleProperty: exp.Properties.Location.POST_SCHEMA, + 198 exp.EngineProperty: exp.Properties.Location.POST_SCHEMA, + 199 exp.ExecuteAsProperty: exp.Properties.Location.POST_SCHEMA, + 200 exp.ExternalProperty: exp.Properties.Location.POST_CREATE, + 201 exp.FallbackProperty: exp.Properties.Location.POST_NAME, + 202 exp.FileFormatProperty: exp.Properties.Location.POST_WITH, + 203 exp.FreespaceProperty: exp.Properties.Location.POST_NAME, + 204 exp.IsolatedLoadingProperty: exp.Properties.Location.POST_NAME, + 205 exp.JournalProperty: exp.Properties.Location.POST_NAME, + 206 exp.LanguageProperty: exp.Properties.Location.POST_SCHEMA, + 207 exp.LikeProperty: exp.Properties.Location.POST_SCHEMA, + 208 exp.LocationProperty: exp.Properties.Location.POST_SCHEMA, + 209 exp.LockingProperty: exp.Properties.Location.POST_ALIAS, + 210 exp.LogProperty: exp.Properties.Location.POST_NAME, + 211 exp.MaterializedProperty: exp.Properties.Location.POST_CREATE, + 212 exp.MergeBlockRatioProperty: exp.Properties.Location.POST_NAME, + 213 exp.NoPrimaryIndexProperty: exp.Properties.Location.POST_EXPRESSION, + 214 exp.OnCommitProperty: exp.Properties.Location.POST_EXPRESSION, + 215 exp.Order: exp.Properties.Location.POST_SCHEMA, + 216 exp.PartitionedByProperty: exp.Properties.Location.POST_WITH, + 217 exp.PrimaryKey: exp.Properties.Location.POST_SCHEMA, + 218 exp.Property: exp.Properties.Location.POST_WITH, + 219 exp.ReturnsProperty: exp.Properties.Location.POST_SCHEMA, + 220 exp.RowFormatProperty: exp.Properties.Location.POST_SCHEMA, + 221 exp.RowFormatDelimitedProperty: exp.Properties.Location.POST_SCHEMA, + 222 exp.RowFormatSerdeProperty: exp.Properties.Location.POST_SCHEMA, + 223 exp.SchemaCommentProperty: exp.Properties.Location.POST_SCHEMA, + 224 exp.SerdeProperties: exp.Properties.Location.POST_SCHEMA, + 225 exp.Set: exp.Properties.Location.POST_SCHEMA, + 226 exp.SettingsProperty: exp.Properties.Location.POST_SCHEMA, + 227 exp.SetProperty: exp.Properties.Location.POST_CREATE, + 228 exp.SortKeyProperty: exp.Properties.Location.POST_SCHEMA, + 229 exp.SqlSecurityProperty: exp.Properties.Location.POST_CREATE, + 230 exp.StabilityProperty: exp.Properties.Location.POST_SCHEMA, + 231 exp.TemporaryProperty: exp.Properties.Location.POST_CREATE, + 232 exp.TransientProperty: exp.Properties.Location.POST_CREATE, + 233 exp.MergeTreeTTL: exp.Properties.Location.POST_SCHEMA, + 234 exp.VolatileProperty: exp.Properties.Location.POST_CREATE, + 235 exp.WithDataProperty: exp.Properties.Location.POST_EXPRESSION, + 236 exp.WithJournalTableProperty: exp.Properties.Location.POST_NAME, + 237 } + 238 + 239 JOIN_HINTS = True + 240 TABLE_HINTS = True 241 - 242 SENTINEL_LINE_BREAK = "__SQLGLOT__LB__" - 243 - 244 __slots__ = ( - 245 "time_mapping", - 246 "time_trie", - 247 "pretty", - 248 "quote_start", - 249 "quote_end", - 250 "identifier_start", - 251 "identifier_end", - 252 "bit_start", - 253 "bit_end", - 254 "hex_start", - 255 "hex_end", - 256 "byte_start", - 257 "byte_end", - 258 "raw_start", - 259 "raw_end", - 260 "identify", - 261 "normalize", - 262 "string_escape", - 263 "identifier_escape", - 264 "pad", - 265 "index_offset", - 266 "unnest_column_only", - 267 "alias_post_tablesample", - 268 "normalize_functions", - 269 "unsupported_level", - 270 "unsupported_messages", - 271 "null_ordering", - 272 "max_unsupported", - 273 "_indent", - 274 "_escaped_quote_end", - 275 "_escaped_identifier_end", - 276 "_leading_comma", - 277 "_max_text_width", - 278 "_comments", - 279 "_cache", - 280 ) - 281 - 282 def __init__( - 283 self, - 284 time_mapping=None, - 285 time_trie=None, - 286 pretty=None, - 287 quote_start=None, - 288 quote_end=None, - 289 identifier_start=None, - 290 identifier_end=None, - 291 bit_start=None, - 292 bit_end=None, - 293 hex_start=None, - 294 hex_end=None, - 295 byte_start=None, - 296 byte_end=None, - 297 raw_start=None, - 298 raw_end=None, - 299 identify=False, - 300 normalize=False, - 301 string_escape=None, - 302 identifier_escape=None, - 303 pad=2, - 304 indent=2, - 305 index_offset=0, - 306 unnest_column_only=False, - 307 alias_post_tablesample=False, - 308 normalize_functions="upper", - 309 unsupported_level=ErrorLevel.WARN, - 310 null_ordering=None, - 311 max_unsupported=3, - 312 leading_comma=False, - 313 max_text_width=80, - 314 comments=True, - 315 ): - 316 import sqlglot - 317 - 318 self.time_mapping = time_mapping or {} - 319 self.time_trie = time_trie - 320 self.pretty = pretty if pretty is not None else sqlglot.pretty - 321 self.quote_start = quote_start or "'" - 322 self.quote_end = quote_end or "'" - 323 self.identifier_start = identifier_start or '"' - 324 self.identifier_end = identifier_end or '"' - 325 self.bit_start = bit_start - 326 self.bit_end = bit_end - 327 self.hex_start = hex_start - 328 self.hex_end = hex_end - 329 self.byte_start = byte_start - 330 self.byte_end = byte_end - 331 self.raw_start = raw_start - 332 self.raw_end = raw_end - 333 self.identify = identify - 334 self.normalize = normalize - 335 self.string_escape = string_escape or "'" - 336 self.identifier_escape = identifier_escape or '"' - 337 self.pad = pad - 338 self.index_offset = index_offset - 339 self.unnest_column_only = unnest_column_only - 340 self.alias_post_tablesample = alias_post_tablesample - 341 self.normalize_functions = normalize_functions - 342 self.unsupported_level = unsupported_level - 343 self.unsupported_messages = [] - 344 self.max_unsupported = max_unsupported - 345 self.null_ordering = null_ordering - 346 self._indent = indent - 347 self._escaped_quote_end = self.string_escape + self.quote_end - 348 self._escaped_identifier_end = self.identifier_escape + self.identifier_end - 349 self._leading_comma = leading_comma - 350 self._max_text_width = max_text_width - 351 self._comments = comments - 352 self._cache = None - 353 - 354 def generate( - 355 self, - 356 expression: t.Optional[exp.Expression], - 357 cache: t.Optional[t.Dict[int, str]] = None, - 358 ) -> str: - 359 """ - 360 Generates a SQL string by interpreting the given syntax tree. - 361 - 362 Args - 363 expression: the syntax tree. - 364 cache: an optional sql string cache. this leverages the hash of an expression which is slow, so only use this if you set _hash on each node. - 365 - 366 Returns - 367 the SQL string. - 368 """ - 369 if cache is not None: - 370 self._cache = cache - 371 self.unsupported_messages = [] - 372 sql = self.sql(expression).strip() - 373 self._cache = None - 374 - 375 if self.unsupported_level == ErrorLevel.IGNORE: - 376 return sql - 377 - 378 if self.unsupported_level == ErrorLevel.WARN: - 379 for msg in self.unsupported_messages: - 380 logger.warning(msg) - 381 elif self.unsupported_level == ErrorLevel.RAISE and self.unsupported_messages: - 382 raise UnsupportedError(concat_messages(self.unsupported_messages, self.max_unsupported)) - 383 - 384 if self.pretty: - 385 sql = sql.replace(self.SENTINEL_LINE_BREAK, "\n") - 386 return sql - 387 - 388 def unsupported(self, message: str) -> None: - 389 if self.unsupported_level == ErrorLevel.IMMEDIATE: - 390 raise UnsupportedError(message) - 391 self.unsupported_messages.append(message) - 392 - 393 def sep(self, sep: str = " ") -> str: - 394 return f"{sep.strip()}\n" if self.pretty else sep - 395 - 396 def seg(self, sql: str, sep: str = " ") -> str: - 397 return f"{self.sep(sep)}{sql}" - 398 - 399 def pad_comment(self, comment: str) -> str: - 400 comment = " " + comment if comment[0].strip() else comment - 401 comment = comment + " " if comment[-1].strip() else comment - 402 return comment - 403 - 404 def maybe_comment( - 405 self, - 406 sql: str, - 407 expression: t.Optional[exp.Expression] = None, - 408 comments: t.Optional[t.List[str]] = None, - 409 ) -> str: - 410 comments = ((expression and expression.comments) if comments is None else comments) if self._comments else None # type: ignore - 411 - 412 if not comments or isinstance(expression, exp.Binary): - 413 return sql - 414 - 415 sep = "\n" if self.pretty else " " - 416 comments_sql = sep.join( - 417 f"/*{self.pad_comment(comment)}*/" for comment in comments if comment - 418 ) - 419 - 420 if not comments_sql: - 421 return sql - 422 - 423 if isinstance(expression, self.WITH_SEPARATED_COMMENTS): - 424 return ( - 425 f"{self.sep()}{comments_sql}{sql}" - 426 if sql[0].isspace() - 427 else f"{comments_sql}{self.sep()}{sql}" - 428 ) + 242 RESERVED_KEYWORDS: t.Set[str] = set() + 243 WITH_SEPARATED_COMMENTS = (exp.Select, exp.From, exp.Where, exp.With) + 244 UNWRAPPED_INTERVAL_VALUES = (exp.Column, exp.Literal, exp.Neg, exp.Paren) + 245 + 246 SENTINEL_LINE_BREAK = "__SQLGLOT__LB__" + 247 + 248 __slots__ = ( + 249 "time_mapping", + 250 "time_trie", + 251 "pretty", + 252 "quote_start", + 253 "quote_end", + 254 "identifier_start", + 255 "identifier_end", + 256 "bit_start", + 257 "bit_end", + 258 "hex_start", + 259 "hex_end", + 260 "byte_start", + 261 "byte_end", + 262 "raw_start", + 263 "raw_end", + 264 "identify", + 265 "normalize", + 266 "string_escape", + 267 "identifier_escape", + 268 "pad", + 269 "index_offset", + 270 "unnest_column_only", + 271 "alias_post_tablesample", + 272 "identifiers_can_start_with_digit", + 273 "normalize_functions", + 274 "unsupported_level", + 275 "unsupported_messages", + 276 "null_ordering", + 277 "max_unsupported", + 278 "_indent", + 279 "_escaped_quote_end", + 280 "_escaped_identifier_end", + 281 "_leading_comma", + 282 "_max_text_width", + 283 "_comments", + 284 "_cache", + 285 ) + 286 + 287 def __init__( + 288 self, + 289 time_mapping=None, + 290 time_trie=None, + 291 pretty=None, + 292 quote_start=None, + 293 quote_end=None, + 294 identifier_start=None, + 295 identifier_end=None, + 296 bit_start=None, + 297 bit_end=None, + 298 hex_start=None, + 299 hex_end=None, + 300 byte_start=None, + 301 byte_end=None, + 302 raw_start=None, + 303 raw_end=None, + 304 identify=False, + 305 normalize=False, + 306 string_escape=None, + 307 identifier_escape=None, + 308 pad=2, + 309 indent=2, + 310 index_offset=0, + 311 unnest_column_only=False, + 312 alias_post_tablesample=False, + 313 identifiers_can_start_with_digit=False, + 314 normalize_functions="upper", + 315 unsupported_level=ErrorLevel.WARN, + 316 null_ordering=None, + 317 max_unsupported=3, + 318 leading_comma=False, + 319 max_text_width=80, + 320 comments=True, + 321 ): + 322 import sqlglot + 323 + 324 self.time_mapping = time_mapping or {} + 325 self.time_trie = time_trie + 326 self.pretty = pretty if pretty is not None else sqlglot.pretty + 327 self.quote_start = quote_start or "'" + 328 self.quote_end = quote_end or "'" + 329 self.identifier_start = identifier_start or '"' + 330 self.identifier_end = identifier_end or '"' + 331 self.bit_start = bit_start + 332 self.bit_end = bit_end + 333 self.hex_start = hex_start + 334 self.hex_end = hex_end + 335 self.byte_start = byte_start + 336 self.byte_end = byte_end + 337 self.raw_start = raw_start + 338 self.raw_end = raw_end + 339 self.identify = identify + 340 self.normalize = normalize + 341 self.string_escape = string_escape or "'" + 342 self.identifier_escape = identifier_escape or '"' + 343 self.pad = pad + 344 self.index_offset = index_offset + 345 self.unnest_column_only = unnest_column_only + 346 self.alias_post_tablesample = alias_post_tablesample + 347 self.identifiers_can_start_with_digit = identifiers_can_start_with_digit + 348 self.normalize_functions = normalize_functions + 349 self.unsupported_level = unsupported_level + 350 self.unsupported_messages = [] + 351 self.max_unsupported = max_unsupported + 352 self.null_ordering = null_ordering + 353 self._indent = indent + 354 self._escaped_quote_end = self.string_escape + self.quote_end + 355 self._escaped_identifier_end = self.identifier_escape + self.identifier_end + 356 self._leading_comma = leading_comma + 357 self._max_text_width = max_text_width + 358 self._comments = comments + 359 self._cache = None + 360 + 361 def generate( + 362 self, + 363 expression: t.Optional[exp.Expression], + 364 cache: t.Optional[t.Dict[int, str]] = None, + 365 ) -> str: + 366 """ + 367 Generates a SQL string by interpreting the given syntax tree. + 368 + 369 Args + 370 expression: the syntax tree. + 371 cache: an optional sql string cache. this leverages the hash of an expression which is slow, so only use this if you set _hash on each node. + 372 + 373 Returns + 374 the SQL string. + 375 """ + 376 if cache is not None: + 377 self._cache = cache + 378 self.unsupported_messages = [] + 379 sql = self.sql(expression).strip() + 380 self._cache = None + 381 + 382 if self.unsupported_level == ErrorLevel.IGNORE: + 383 return sql + 384 + 385 if self.unsupported_level == ErrorLevel.WARN: + 386 for msg in self.unsupported_messages: + 387 logger.warning(msg) + 388 elif self.unsupported_level == ErrorLevel.RAISE and self.unsupported_messages: + 389 raise UnsupportedError(concat_messages(self.unsupported_messages, self.max_unsupported)) + 390 + 391 if self.pretty: + 392 sql = sql.replace(self.SENTINEL_LINE_BREAK, "\n") + 393 return sql + 394 + 395 def unsupported(self, message: str) -> None: + 396 if self.unsupported_level == ErrorLevel.IMMEDIATE: + 397 raise UnsupportedError(message) + 398 self.unsupported_messages.append(message) + 399 + 400 def sep(self, sep: str = " ") -> str: + 401 return f"{sep.strip()}\n" if self.pretty else sep + 402 + 403 def seg(self, sql: str, sep: str = " ") -> str: + 404 return f"{self.sep(sep)}{sql}" + 405 + 406 def pad_comment(self, comment: str) -> str: + 407 comment = " " + comment if comment[0].strip() else comment + 408 comment = comment + " " if comment[-1].strip() else comment + 409 return comment + 410 + 411 def maybe_comment( + 412 self, + 413 sql: str, + 414 expression: t.Optional[exp.Expression] = None, + 415 comments: t.Optional[t.List[str]] = None, + 416 ) -> str: + 417 comments = ((expression and expression.comments) if comments is None else comments) if self._comments else None # type: ignore + 418 + 419 if not comments or isinstance(expression, exp.Binary): + 420 return sql + 421 + 422 sep = "\n" if self.pretty else " " + 423 comments_sql = sep.join( + 424 f"/*{self.pad_comment(comment)}*/" for comment in comments if comment + 425 ) + 426 + 427 if not comments_sql: + 428 return sql 429 - 430 return f"{sql} {comments_sql}" - 431 - 432 def wrap(self, expression: exp.Expression | str) -> str: - 433 this_sql = self.indent( - 434 self.sql(expression) - 435 if isinstance(expression, (exp.Select, exp.Union)) - 436 else self.sql(expression, "this"), - 437 level=1, - 438 pad=0, - 439 ) - 440 return f"({self.sep('')}{this_sql}{self.seg(')', sep='')}" - 441 - 442 def no_identify(self, func: t.Callable[..., str], *args, **kwargs) -> str: - 443 original = self.identify - 444 self.identify = False - 445 result = func(*args, **kwargs) - 446 self.identify = original - 447 return result + 430 if isinstance(expression, self.WITH_SEPARATED_COMMENTS): + 431 return ( + 432 f"{self.sep()}{comments_sql}{sql}" + 433 if sql[0].isspace() + 434 else f"{comments_sql}{self.sep()}{sql}" + 435 ) + 436 + 437 return f"{sql} {comments_sql}" + 438 + 439 def wrap(self, expression: exp.Expression | str) -> str: + 440 this_sql = self.indent( + 441 self.sql(expression) + 442 if isinstance(expression, (exp.Select, exp.Union)) + 443 else self.sql(expression, "this"), + 444 level=1, + 445 pad=0, + 446 ) + 447 return f"({self.sep('')}{this_sql}{self.seg(')', sep='')}" 448 - 449 def normalize_func(self, name: str) -> str: - 450 if self.normalize_functions == "upper": - 451 return name.upper() - 452 if self.normalize_functions == "lower": - 453 return name.lower() - 454 return name + 449 def no_identify(self, func: t.Callable[..., str], *args, **kwargs) -> str: + 450 original = self.identify + 451 self.identify = False + 452 result = func(*args, **kwargs) + 453 self.identify = original + 454 return result 455 - 456 def indent( - 457 self, - 458 sql: str, - 459 level: int = 0, - 460 pad: t.Optional[int] = None, - 461 skip_first: bool = False, - 462 skip_last: bool = False, - 463 ) -> str: - 464 if not self.pretty: - 465 return sql - 466 - 467 pad = self.pad if pad is None else pad - 468 lines = sql.split("\n") - 469 - 470 return "\n".join( - 471 line - 472 if (skip_first and i == 0) or (skip_last and i == len(lines) - 1) - 473 else f"{' ' * (level * self._indent + pad)}{line}" - 474 for i, line in enumerate(lines) - 475 ) + 456 def normalize_func(self, name: str) -> str: + 457 if self.normalize_functions == "upper": + 458 return name.upper() + 459 if self.normalize_functions == "lower": + 460 return name.lower() + 461 return name + 462 + 463 def indent( + 464 self, + 465 sql: str, + 466 level: int = 0, + 467 pad: t.Optional[int] = None, + 468 skip_first: bool = False, + 469 skip_last: bool = False, + 470 ) -> str: + 471 if not self.pretty: + 472 return sql + 473 + 474 pad = self.pad if pad is None else pad + 475 lines = sql.split("\n") 476 - 477 def sql( - 478 self, - 479 expression: t.Optional[str | exp.Expression], - 480 key: t.Optional[str] = None, - 481 comment: bool = True, - 482 ) -> str: - 483 if not expression: - 484 return "" - 485 - 486 if isinstance(expression, str): - 487 return expression - 488 - 489 if key: - 490 return self.sql(expression.args.get(key)) - 491 - 492 if self._cache is not None: - 493 expression_id = hash(expression) - 494 - 495 if expression_id in self._cache: - 496 return self._cache[expression_id] - 497 - 498 transform = self.TRANSFORMS.get(expression.__class__) - 499 - 500 if callable(transform): - 501 sql = transform(self, expression) - 502 elif transform: - 503 sql = transform - 504 elif isinstance(expression, exp.Expression): - 505 exp_handler_name = f"{expression.key}_sql" + 477 return "\n".join( + 478 line + 479 if (skip_first and i == 0) or (skip_last and i == len(lines) - 1) + 480 else f"{' ' * (level * self._indent + pad)}{line}" + 481 for i, line in enumerate(lines) + 482 ) + 483 + 484 def sql( + 485 self, + 486 expression: t.Optional[str | exp.Expression], + 487 key: t.Optional[str] = None, + 488 comment: bool = True, + 489 ) -> str: + 490 if not expression: + 491 return "" + 492 + 493 if isinstance(expression, str): + 494 return expression + 495 + 496 if key: + 497 return self.sql(expression.args.get(key)) + 498 + 499 if self._cache is not None: + 500 expression_id = hash(expression) + 501 + 502 if expression_id in self._cache: + 503 return self._cache[expression_id] + 504 + 505 transform = self.TRANSFORMS.get(expression.__class__) 506 - 507 if hasattr(self, exp_handler_name): - 508 sql = getattr(self, exp_handler_name)(expression) - 509 elif isinstance(expression, exp.Func): - 510 sql = self.function_fallback_sql(expression) - 511 elif isinstance(expression, exp.Property): - 512 sql = self.property_sql(expression) - 513 else: - 514 raise ValueError(f"Unsupported expression type {expression.__class__.__name__}") - 515 else: - 516 raise ValueError(f"Expected an Expression. Received {type(expression)}: {expression}") - 517 - 518 sql = self.maybe_comment(sql, expression) if self._comments and comment else sql - 519 - 520 if self._cache is not None: - 521 self._cache[expression_id] = sql - 522 return sql - 523 - 524 def uncache_sql(self, expression: exp.Uncache) -> str: - 525 table = self.sql(expression, "this") - 526 exists_sql = " IF EXISTS" if expression.args.get("exists") else "" - 527 return f"UNCACHE TABLE{exists_sql} {table}" - 528 - 529 def cache_sql(self, expression: exp.Cache) -> str: - 530 lazy = " LAZY" if expression.args.get("lazy") else "" - 531 table = self.sql(expression, "this") - 532 options = expression.args.get("options") - 533 options = f" OPTIONS({self.sql(options[0])} = {self.sql(options[1])})" if options else "" - 534 sql = self.sql(expression, "expression") - 535 sql = f" AS{self.sep()}{sql}" if sql else "" - 536 sql = f"CACHE{lazy} TABLE {table}{options}{sql}" - 537 return self.prepend_ctes(expression, sql) - 538 - 539 def characterset_sql(self, expression: exp.CharacterSet) -> str: - 540 if isinstance(expression.parent, exp.Cast): - 541 return f"CHAR CHARACTER SET {self.sql(expression, 'this')}" - 542 default = "DEFAULT " if expression.args.get("default") else "" - 543 return f"{default}CHARACTER SET={self.sql(expression, 'this')}" - 544 - 545 def column_sql(self, expression: exp.Column) -> str: - 546 return ".".join( - 547 self.sql(part) - 548 for part in ( - 549 expression.args.get("catalog"), - 550 expression.args.get("db"), - 551 expression.args.get("table"), - 552 expression.args.get("this"), - 553 ) - 554 if part - 555 ) - 556 - 557 def columnposition_sql(self, expression: exp.ColumnPosition) -> str: - 558 this = self.sql(expression, "this") - 559 this = f" {this}" if this else "" - 560 position = self.sql(expression, "position") - 561 return f"{position}{this}" - 562 - 563 def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str: - 564 column = self.sql(expression, "this") - 565 kind = self.sql(expression, "kind") - 566 constraints = self.expressions(expression, key="constraints", sep=" ", flat=True) - 567 exists = "IF NOT EXISTS " if expression.args.get("exists") else "" - 568 kind = f"{sep}{kind}" if kind else "" - 569 constraints = f" {constraints}" if constraints else "" - 570 position = self.sql(expression, "position") - 571 position = f" {position}" if position else "" - 572 - 573 return f"{exists}{column}{kind}{constraints}{position}" - 574 - 575 def columnconstraint_sql(self, expression: exp.ColumnConstraint) -> str: - 576 this = self.sql(expression, "this") - 577 kind_sql = self.sql(expression, "kind").strip() - 578 return f"CONSTRAINT {this} {kind_sql}" if this else kind_sql + 507 if callable(transform): + 508 sql = transform(self, expression) + 509 elif transform: + 510 sql = transform + 511 elif isinstance(expression, exp.Expression): + 512 exp_handler_name = f"{expression.key}_sql" + 513 + 514 if hasattr(self, exp_handler_name): + 515 sql = getattr(self, exp_handler_name)(expression) + 516 elif isinstance(expression, exp.Func): + 517 sql = self.function_fallback_sql(expression) + 518 elif isinstance(expression, exp.Property): + 519 sql = self.property_sql(expression) + 520 else: + 521 raise ValueError(f"Unsupported expression type {expression.__class__.__name__}") + 522 else: + 523 raise ValueError(f"Expected an Expression. Received {type(expression)}: {expression}") + 524 + 525 sql = self.maybe_comment(sql, expression) if self._comments and comment else sql + 526 + 527 if self._cache is not None: + 528 self._cache[expression_id] = sql + 529 return sql + 530 + 531 def uncache_sql(self, expression: exp.Uncache) -> str: + 532 table = self.sql(expression, "this") + 533 exists_sql = " IF EXISTS" if expression.args.get("exists") else "" + 534 return f"UNCACHE TABLE{exists_sql} {table}" + 535 + 536 def cache_sql(self, expression: exp.Cache) -> str: + 537 lazy = " LAZY" if expression.args.get("lazy") else "" + 538 table = self.sql(expression, "this") + 539 options = expression.args.get("options") + 540 options = f" OPTIONS({self.sql(options[0])} = {self.sql(options[1])})" if options else "" + 541 sql = self.sql(expression, "expression") + 542 sql = f" AS{self.sep()}{sql}" if sql else "" + 543 sql = f"CACHE{lazy} TABLE {table}{options}{sql}" + 544 return self.prepend_ctes(expression, sql) + 545 + 546 def characterset_sql(self, expression: exp.CharacterSet) -> str: + 547 if isinstance(expression.parent, exp.Cast): + 548 return f"CHAR CHARACTER SET {self.sql(expression, 'this')}" + 549 default = "DEFAULT " if expression.args.get("default") else "" + 550 return f"{default}CHARACTER SET={self.sql(expression, 'this')}" + 551 + 552 def column_sql(self, expression: exp.Column) -> str: + 553 return ".".join( + 554 self.sql(part) + 555 for part in ( + 556 expression.args.get("catalog"), + 557 expression.args.get("db"), + 558 expression.args.get("table"), + 559 expression.args.get("this"), + 560 ) + 561 if part + 562 ) + 563 + 564 def columnposition_sql(self, expression: exp.ColumnPosition) -> str: + 565 this = self.sql(expression, "this") + 566 this = f" {this}" if this else "" + 567 position = self.sql(expression, "position") + 568 return f"{position}{this}" + 569 + 570 def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str: + 571 column = self.sql(expression, "this") + 572 kind = self.sql(expression, "kind") + 573 constraints = self.expressions(expression, key="constraints", sep=" ", flat=True) + 574 exists = "IF NOT EXISTS " if expression.args.get("exists") else "" + 575 kind = f"{sep}{kind}" if kind else "" + 576 constraints = f" {constraints}" if constraints else "" + 577 position = self.sql(expression, "position") + 578 position = f" {position}" if position else "" 579 - 580 def autoincrementcolumnconstraint_sql(self, _) -> str: - 581 return self.token_sql(TokenType.AUTO_INCREMENT) - 582 - 583 def compresscolumnconstraint_sql(self, expression: exp.CompressColumnConstraint) -> str: - 584 if isinstance(expression.this, list): - 585 this = self.wrap(self.expressions(expression, key="this", flat=True)) - 586 else: - 587 this = self.sql(expression, "this") - 588 - 589 return f"COMPRESS {this}" - 590 - 591 def generatedasidentitycolumnconstraint_sql( - 592 self, expression: exp.GeneratedAsIdentityColumnConstraint - 593 ) -> str: - 594 this = "" - 595 if expression.this is not None: - 596 on_null = "ON NULL " if expression.args.get("on_null") else "" - 597 this = " ALWAYS " if expression.this else f" BY DEFAULT {on_null}" - 598 - 599 start = expression.args.get("start") - 600 start = f"START WITH {start}" if start else "" - 601 increment = expression.args.get("increment") - 602 increment = f" INCREMENT BY {increment}" if increment else "" - 603 minvalue = expression.args.get("minvalue") - 604 minvalue = f" MINVALUE {minvalue}" if minvalue else "" - 605 maxvalue = expression.args.get("maxvalue") - 606 maxvalue = f" MAXVALUE {maxvalue}" if maxvalue else "" - 607 cycle = expression.args.get("cycle") - 608 cycle_sql = "" - 609 - 610 if cycle is not None: - 611 cycle_sql = f"{' NO' if not cycle else ''} CYCLE" - 612 cycle_sql = cycle_sql.strip() if not start and not increment else cycle_sql - 613 - 614 sequence_opts = "" - 615 if start or increment or cycle_sql: - 616 sequence_opts = f"{start}{increment}{minvalue}{maxvalue}{cycle_sql}" - 617 sequence_opts = f" ({sequence_opts.strip()})" - 618 - 619 expr = self.sql(expression, "expression") - 620 expr = f"({expr})" if expr else "IDENTITY" - 621 - 622 return f"GENERATED{this}AS {expr}{sequence_opts}" - 623 - 624 def notnullcolumnconstraint_sql(self, expression: exp.NotNullColumnConstraint) -> str: - 625 return f"{'' if expression.args.get('allow_null') else 'NOT '}NULL" - 626 - 627 def primarykeycolumnconstraint_sql(self, expression: exp.PrimaryKeyColumnConstraint) -> str: - 628 desc = expression.args.get("desc") - 629 if desc is not None: - 630 return f"PRIMARY KEY{' DESC' if desc else ' ASC'}" - 631 return f"PRIMARY KEY" - 632 - 633 def uniquecolumnconstraint_sql(self, _) -> str: - 634 return "UNIQUE" - 635 - 636 def create_sql(self, expression: exp.Create) -> str: - 637 kind = self.sql(expression, "kind").upper() - 638 properties = expression.args.get("properties") - 639 properties_exp = expression.copy() - 640 properties_locs = self.locate_properties(properties) if properties else {} - 641 if properties_locs.get(exp.Properties.Location.POST_SCHEMA) or properties_locs.get( - 642 exp.Properties.Location.POST_WITH - 643 ): - 644 properties_exp.set( - 645 "properties", - 646 exp.Properties( - 647 expressions=[ - 648 *properties_locs[exp.Properties.Location.POST_SCHEMA], - 649 *properties_locs[exp.Properties.Location.POST_WITH], - 650 ] - 651 ), - 652 ) - 653 if kind == "TABLE" and properties_locs.get(exp.Properties.Location.POST_NAME): - 654 this_name = self.sql(expression.this, "this") - 655 this_properties = self.properties( - 656 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_NAME]), - 657 wrapped=False, - 658 ) - 659 this_schema = f"({self.expressions(expression.this)})" - 660 this = f"{this_name}, {this_properties} {this_schema}" - 661 properties_sql = "" - 662 else: - 663 this = self.sql(expression, "this") - 664 properties_sql = self.sql(properties_exp, "properties") - 665 begin = " BEGIN" if expression.args.get("begin") else "" - 666 expression_sql = self.sql(expression, "expression") - 667 if expression_sql: - 668 expression_sql = f"{begin}{self.sep()}{expression_sql}" - 669 - 670 if self.CREATE_FUNCTION_RETURN_AS or not isinstance(expression.expression, exp.Return): - 671 if properties_locs.get(exp.Properties.Location.POST_ALIAS): - 672 postalias_props_sql = self.properties( - 673 exp.Properties( - 674 expressions=properties_locs[exp.Properties.Location.POST_ALIAS] - 675 ), - 676 wrapped=False, - 677 ) - 678 expression_sql = f" AS {postalias_props_sql}{expression_sql}" - 679 else: - 680 expression_sql = f" AS{expression_sql}" - 681 - 682 postindex_props_sql = "" - 683 if properties_locs.get(exp.Properties.Location.POST_INDEX): - 684 postindex_props_sql = self.properties( - 685 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_INDEX]), - 686 wrapped=False, - 687 prefix=" ", - 688 ) - 689 - 690 indexes = self.expressions(expression, key="indexes", indent=False, sep=" ") - 691 indexes = f" {indexes}" if indexes else "" - 692 index_sql = indexes + postindex_props_sql - 693 - 694 replace = " OR REPLACE" if expression.args.get("replace") else "" - 695 unique = " UNIQUE" if expression.args.get("unique") else "" - 696 - 697 postcreate_props_sql = "" - 698 if properties_locs.get(exp.Properties.Location.POST_CREATE): - 699 postcreate_props_sql = self.properties( - 700 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_CREATE]), - 701 sep=" ", - 702 prefix=" ", - 703 wrapped=False, - 704 ) + 580 return f"{exists}{column}{kind}{constraints}{position}" + 581 + 582 def columnconstraint_sql(self, expression: exp.ColumnConstraint) -> str: + 583 this = self.sql(expression, "this") + 584 kind_sql = self.sql(expression, "kind").strip() + 585 return f"CONSTRAINT {this} {kind_sql}" if this else kind_sql + 586 + 587 def autoincrementcolumnconstraint_sql(self, _) -> str: + 588 return self.token_sql(TokenType.AUTO_INCREMENT) + 589 + 590 def compresscolumnconstraint_sql(self, expression: exp.CompressColumnConstraint) -> str: + 591 if isinstance(expression.this, list): + 592 this = self.wrap(self.expressions(expression, key="this", flat=True)) + 593 else: + 594 this = self.sql(expression, "this") + 595 + 596 return f"COMPRESS {this}" + 597 + 598 def generatedasidentitycolumnconstraint_sql( + 599 self, expression: exp.GeneratedAsIdentityColumnConstraint + 600 ) -> str: + 601 this = "" + 602 if expression.this is not None: + 603 on_null = "ON NULL " if expression.args.get("on_null") else "" + 604 this = " ALWAYS " if expression.this else f" BY DEFAULT {on_null}" + 605 + 606 start = expression.args.get("start") + 607 start = f"START WITH {start}" if start else "" + 608 increment = expression.args.get("increment") + 609 increment = f" INCREMENT BY {increment}" if increment else "" + 610 minvalue = expression.args.get("minvalue") + 611 minvalue = f" MINVALUE {minvalue}" if minvalue else "" + 612 maxvalue = expression.args.get("maxvalue") + 613 maxvalue = f" MAXVALUE {maxvalue}" if maxvalue else "" + 614 cycle = expression.args.get("cycle") + 615 cycle_sql = "" + 616 + 617 if cycle is not None: + 618 cycle_sql = f"{' NO' if not cycle else ''} CYCLE" + 619 cycle_sql = cycle_sql.strip() if not start and not increment else cycle_sql + 620 + 621 sequence_opts = "" + 622 if start or increment or cycle_sql: + 623 sequence_opts = f"{start}{increment}{minvalue}{maxvalue}{cycle_sql}" + 624 sequence_opts = f" ({sequence_opts.strip()})" + 625 + 626 expr = self.sql(expression, "expression") + 627 expr = f"({expr})" if expr else "IDENTITY" + 628 + 629 return f"GENERATED{this}AS {expr}{sequence_opts}" + 630 + 631 def notnullcolumnconstraint_sql(self, expression: exp.NotNullColumnConstraint) -> str: + 632 return f"{'' if expression.args.get('allow_null') else 'NOT '}NULL" + 633 + 634 def primarykeycolumnconstraint_sql(self, expression: exp.PrimaryKeyColumnConstraint) -> str: + 635 desc = expression.args.get("desc") + 636 if desc is not None: + 637 return f"PRIMARY KEY{' DESC' if desc else ' ASC'}" + 638 return f"PRIMARY KEY" + 639 + 640 def uniquecolumnconstraint_sql(self, expression: exp.UniqueColumnConstraint) -> str: + 641 this = self.sql(expression, "this") + 642 this = f" {this}" if this else "" + 643 return f"UNIQUE{this}" + 644 + 645 def create_sql(self, expression: exp.Create) -> str: + 646 kind = self.sql(expression, "kind").upper() + 647 properties = expression.args.get("properties") + 648 properties_exp = expression.copy() + 649 properties_locs = self.locate_properties(properties) if properties else {} + 650 if properties_locs.get(exp.Properties.Location.POST_SCHEMA) or properties_locs.get( + 651 exp.Properties.Location.POST_WITH + 652 ): + 653 properties_exp.set( + 654 "properties", + 655 exp.Properties( + 656 expressions=[ + 657 *properties_locs[exp.Properties.Location.POST_SCHEMA], + 658 *properties_locs[exp.Properties.Location.POST_WITH], + 659 ] + 660 ), + 661 ) + 662 if kind == "TABLE" and properties_locs.get(exp.Properties.Location.POST_NAME): + 663 this_name = self.sql(expression.this, "this") + 664 this_properties = self.properties( + 665 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_NAME]), + 666 wrapped=False, + 667 ) + 668 this_schema = f"({self.expressions(expression.this)})" + 669 this = f"{this_name}, {this_properties} {this_schema}" + 670 properties_sql = "" + 671 else: + 672 this = self.sql(expression, "this") + 673 properties_sql = self.sql(properties_exp, "properties") + 674 begin = " BEGIN" if expression.args.get("begin") else "" + 675 expression_sql = self.sql(expression, "expression") + 676 if expression_sql: + 677 expression_sql = f"{begin}{self.sep()}{expression_sql}" + 678 + 679 if self.CREATE_FUNCTION_RETURN_AS or not isinstance(expression.expression, exp.Return): + 680 if properties_locs.get(exp.Properties.Location.POST_ALIAS): + 681 postalias_props_sql = self.properties( + 682 exp.Properties( + 683 expressions=properties_locs[exp.Properties.Location.POST_ALIAS] + 684 ), + 685 wrapped=False, + 686 ) + 687 expression_sql = f" AS {postalias_props_sql}{expression_sql}" + 688 else: + 689 expression_sql = f" AS{expression_sql}" + 690 + 691 postindex_props_sql = "" + 692 if properties_locs.get(exp.Properties.Location.POST_INDEX): + 693 postindex_props_sql = self.properties( + 694 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_INDEX]), + 695 wrapped=False, + 696 prefix=" ", + 697 ) + 698 + 699 indexes = self.expressions(expression, key="indexes", indent=False, sep=" ") + 700 indexes = f" {indexes}" if indexes else "" + 701 index_sql = indexes + postindex_props_sql + 702 + 703 replace = " OR REPLACE" if expression.args.get("replace") else "" + 704 unique = " UNIQUE" if expression.args.get("unique") else "" 705 - 706 modifiers = "".join((replace, unique, postcreate_props_sql)) - 707 - 708 postexpression_props_sql = "" - 709 if properties_locs.get(exp.Properties.Location.POST_EXPRESSION): - 710 postexpression_props_sql = self.properties( - 711 exp.Properties( - 712 expressions=properties_locs[exp.Properties.Location.POST_EXPRESSION] - 713 ), - 714 sep=" ", - 715 prefix=" ", - 716 wrapped=False, - 717 ) - 718 - 719 exists_sql = " IF NOT EXISTS" if expression.args.get("exists") else "" - 720 no_schema_binding = ( - 721 " WITH NO SCHEMA BINDING" if expression.args.get("no_schema_binding") else "" - 722 ) - 723 - 724 clone = self.sql(expression, "clone") - 725 clone = f" {clone}" if clone else "" - 726 - 727 expression_sql = f"CREATE{modifiers} {kind}{exists_sql} {this}{properties_sql}{expression_sql}{postexpression_props_sql}{index_sql}{no_schema_binding}{clone}" - 728 return self.prepend_ctes(expression, expression_sql) - 729 - 730 def clone_sql(self, expression: exp.Clone) -> str: - 731 this = self.sql(expression, "this") - 732 when = self.sql(expression, "when") - 733 - 734 if when: - 735 kind = self.sql(expression, "kind") - 736 expr = self.sql(expression, "expression") - 737 return f"CLONE {this} {when} ({kind} => {expr})" + 706 postcreate_props_sql = "" + 707 if properties_locs.get(exp.Properties.Location.POST_CREATE): + 708 postcreate_props_sql = self.properties( + 709 exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_CREATE]), + 710 sep=" ", + 711 prefix=" ", + 712 wrapped=False, + 713 ) + 714 + 715 modifiers = "".join((replace, unique, postcreate_props_sql)) + 716 + 717 postexpression_props_sql = "" + 718 if properties_locs.get(exp.Properties.Location.POST_EXPRESSION): + 719 postexpression_props_sql = self.properties( + 720 exp.Properties( + 721 expressions=properties_locs[exp.Properties.Location.POST_EXPRESSION] + 722 ), + 723 sep=" ", + 724 prefix=" ", + 725 wrapped=False, + 726 ) + 727 + 728 exists_sql = " IF NOT EXISTS" if expression.args.get("exists") else "" + 729 no_schema_binding = ( + 730 " WITH NO SCHEMA BINDING" if expression.args.get("no_schema_binding") else "" + 731 ) + 732 + 733 clone = self.sql(expression, "clone") + 734 clone = f" {clone}" if clone else "" + 735 + 736 expression_sql = f"CREATE{modifiers} {kind}{exists_sql} {this}{properties_sql}{expression_sql}{postexpression_props_sql}{index_sql}{no_schema_binding}{clone}" + 737 return self.prepend_ctes(expression, expression_sql) 738 - 739 return f"CLONE {this}" - 740 - 741 def describe_sql(self, expression: exp.Describe) -> str: - 742 return f"DESCRIBE {self.sql(expression, 'this')}" - 743 - 744 def prepend_ctes(self, expression: exp.Expression, sql: str) -> str: - 745 with_ = self.sql(expression, "with") - 746 if with_: - 747 sql = f"{with_}{self.sep()}{sql}" - 748 return sql + 739 def clone_sql(self, expression: exp.Clone) -> str: + 740 this = self.sql(expression, "this") + 741 when = self.sql(expression, "when") + 742 + 743 if when: + 744 kind = self.sql(expression, "kind") + 745 expr = self.sql(expression, "expression") + 746 return f"CLONE {this} {when} ({kind} => {expr})" + 747 + 748 return f"CLONE {this}" 749 - 750 def with_sql(self, expression: exp.With) -> str: - 751 sql = self.expressions(expression, flat=True) - 752 recursive = "RECURSIVE " if expression.args.get("recursive") else "" - 753 - 754 return f"WITH {recursive}{sql}" - 755 - 756 def cte_sql(self, expression: exp.CTE) -> str: - 757 alias = self.sql(expression, "alias") - 758 return f"{alias} AS {self.wrap(expression)}" - 759 - 760 def tablealias_sql(self, expression: exp.TableAlias) -> str: - 761 alias = self.sql(expression, "this") - 762 columns = self.expressions(expression, key="columns", flat=True) - 763 columns = f"({columns})" if columns else "" - 764 return f"{alias}{columns}" - 765 - 766 def bitstring_sql(self, expression: exp.BitString) -> str: - 767 this = self.sql(expression, "this") - 768 if self.bit_start: - 769 return f"{self.bit_start}{this}{self.bit_end}" - 770 return f"{int(this, 2)}" - 771 - 772 def hexstring_sql(self, expression: exp.HexString) -> str: - 773 this = self.sql(expression, "this") - 774 if self.hex_start: - 775 return f"{self.hex_start}{this}{self.hex_end}" - 776 return f"{int(this, 16)}" - 777 - 778 def bytestring_sql(self, expression: exp.ByteString) -> str: - 779 this = self.sql(expression, "this") - 780 if self.byte_start: - 781 return f"{self.byte_start}{this}{self.byte_end}" - 782 return this - 783 - 784 def rawstring_sql(self, expression: exp.RawString) -> str: - 785 if self.raw_start: - 786 return f"{self.raw_start}{expression.name}{self.raw_end}" - 787 return self.sql(exp.Literal.string(expression.name.replace("\\", "\\\\"))) - 788 - 789 def datatypesize_sql(self, expression: exp.DataTypeSize) -> str: - 790 this = self.sql(expression, "this") - 791 specifier = self.sql(expression, "expression") - 792 specifier = f" {specifier}" if specifier else "" - 793 return f"{this}{specifier}" - 794 - 795 def datatype_sql(self, expression: exp.DataType) -> str: - 796 type_value = expression.this - 797 type_sql = self.TYPE_MAPPING.get(type_value, type_value.value) - 798 nested = "" - 799 interior = self.expressions(expression, flat=True) - 800 values = "" - 801 if interior: - 802 if expression.args.get("nested"): - 803 nested = f"{self.STRUCT_DELIMITER[0]}{interior}{self.STRUCT_DELIMITER[1]}" - 804 if expression.args.get("values") is not None: - 805 delimiters = ("[", "]") if type_value == exp.DataType.Type.ARRAY else ("(", ")") - 806 values = f"{delimiters[0]}{self.expressions(expression, key='values')}{delimiters[1]}" - 807 else: - 808 nested = f"({interior})" - 809 - 810 return f"{type_sql}{nested}{values}" - 811 - 812 def directory_sql(self, expression: exp.Directory) -> str: - 813 local = "LOCAL " if expression.args.get("local") else "" - 814 row_format = self.sql(expression, "row_format") - 815 row_format = f" {row_format}" if row_format else "" - 816 return f"{local}DIRECTORY {self.sql(expression, 'this')}{row_format}" - 817 - 818 def delete_sql(self, expression: exp.Delete) -> str: - 819 this = self.sql(expression, "this") - 820 this = f" FROM {this}" if this else "" - 821 using_sql = ( - 822 f" USING {self.expressions(expression, key='using', sep=', USING ')}" - 823 if expression.args.get("using") - 824 else "" - 825 ) - 826 where_sql = self.sql(expression, "where") - 827 returning = self.sql(expression, "returning") - 828 sql = f"DELETE{this}{using_sql}{where_sql}{returning}" - 829 return self.prepend_ctes(expression, sql) - 830 - 831 def drop_sql(self, expression: exp.Drop) -> str: - 832 this = self.sql(expression, "this") - 833 kind = expression.args["kind"] - 834 exists_sql = " IF EXISTS " if expression.args.get("exists") else " " - 835 temporary = " TEMPORARY" if expression.args.get("temporary") else "" - 836 materialized = " MATERIALIZED" if expression.args.get("materialized") else "" - 837 cascade = " CASCADE" if expression.args.get("cascade") else "" - 838 constraints = " CONSTRAINTS" if expression.args.get("constraints") else "" - 839 purge = " PURGE" if expression.args.get("purge") else "" - 840 return ( - 841 f"DROP{temporary}{materialized} {kind}{exists_sql}{this}{cascade}{constraints}{purge}" - 842 ) - 843 - 844 def except_sql(self, expression: exp.Except) -> str: - 845 return self.prepend_ctes( - 846 expression, - 847 self.set_operation(expression, self.except_op(expression)), - 848 ) - 849 - 850 def except_op(self, expression: exp.Except) -> str: - 851 return f"EXCEPT{'' if expression.args.get('distinct') else ' ALL'}" - 852 - 853 def fetch_sql(self, expression: exp.Fetch) -> str: - 854 direction = expression.args.get("direction") - 855 direction = f" {direction.upper()}" if direction else "" - 856 count = expression.args.get("count") - 857 count = f" {count}" if count else "" - 858 if expression.args.get("percent"): - 859 count = f"{count} PERCENT" - 860 with_ties_or_only = "WITH TIES" if expression.args.get("with_ties") else "ONLY" - 861 return f"{self.seg('FETCH')}{direction}{count} ROWS {with_ties_or_only}" + 750 def describe_sql(self, expression: exp.Describe) -> str: + 751 return f"DESCRIBE {self.sql(expression, 'this')}" + 752 + 753 def prepend_ctes(self, expression: exp.Expression, sql: str) -> str: + 754 with_ = self.sql(expression, "with") + 755 if with_: + 756 sql = f"{with_}{self.sep()}{sql}" + 757 return sql + 758 + 759 def with_sql(self, expression: exp.With) -> str: + 760 sql = self.expressions(expression, flat=True) + 761 recursive = "RECURSIVE " if expression.args.get("recursive") else "" + 762 + 763 return f"WITH {recursive}{sql}" + 764 + 765 def cte_sql(self, expression: exp.CTE) -> str: + 766 alias = self.sql(expression, "alias") + 767 return f"{alias} AS {self.wrap(expression)}" + 768 + 769 def tablealias_sql(self, expression: exp.TableAlias) -> str: + 770 alias = self.sql(expression, "this") + 771 columns = self.expressions(expression, key="columns", flat=True) + 772 columns = f"({columns})" if columns else "" + 773 return f"{alias}{columns}" + 774 + 775 def bitstring_sql(self, expression: exp.BitString) -> str: + 776 this = self.sql(expression, "this") + 777 if self.bit_start: + 778 return f"{self.bit_start}{this}{self.bit_end}" + 779 return f"{int(this, 2)}" + 780 + 781 def hexstring_sql(self, expression: exp.HexString) -> str: + 782 this = self.sql(expression, "this") + 783 if self.hex_start: + 784 return f"{self.hex_start}{this}{self.hex_end}" + 785 return f"{int(this, 16)}" + 786 + 787 def bytestring_sql(self, expression: exp.ByteString) -> str: + 788 this = self.sql(expression, "this") + 789 if self.byte_start: + 790 return f"{self.byte_start}{this}{self.byte_end}" + 791 return this + 792 + 793 def rawstring_sql(self, expression: exp.RawString) -> str: + 794 if self.raw_start: + 795 return f"{self.raw_start}{expression.name}{self.raw_end}" + 796 return self.sql(exp.Literal.string(expression.name.replace("\\", "\\\\"))) + 797 + 798 def datatypesize_sql(self, expression: exp.DataTypeSize) -> str: + 799 this = self.sql(expression, "this") + 800 specifier = self.sql(expression, "expression") + 801 specifier = f" {specifier}" if specifier else "" + 802 return f"{this}{specifier}" + 803 + 804 def datatype_sql(self, expression: exp.DataType) -> str: + 805 type_value = expression.this + 806 type_sql = self.TYPE_MAPPING.get(type_value, type_value.value) + 807 nested = "" + 808 interior = self.expressions(expression, flat=True) + 809 values = "" + 810 if interior: + 811 if expression.args.get("nested"): + 812 nested = f"{self.STRUCT_DELIMITER[0]}{interior}{self.STRUCT_DELIMITER[1]}" + 813 if expression.args.get("values") is not None: + 814 delimiters = ("[", "]") if type_value == exp.DataType.Type.ARRAY else ("(", ")") + 815 values = self.expressions(expression, key="values", flat=True) + 816 values = f"{delimiters[0]}{values}{delimiters[1]}" + 817 else: + 818 nested = f"({interior})" + 819 + 820 return f"{type_sql}{nested}{values}" + 821 + 822 def directory_sql(self, expression: exp.Directory) -> str: + 823 local = "LOCAL " if expression.args.get("local") else "" + 824 row_format = self.sql(expression, "row_format") + 825 row_format = f" {row_format}" if row_format else "" + 826 return f"{local}DIRECTORY {self.sql(expression, 'this')}{row_format}" + 827 + 828 def delete_sql(self, expression: exp.Delete) -> str: + 829 this = self.sql(expression, "this") + 830 this = f" FROM {this}" if this else "" + 831 using_sql = ( + 832 f" USING {self.expressions(expression, key='using', sep=', USING ')}" + 833 if expression.args.get("using") + 834 else "" + 835 ) + 836 where_sql = self.sql(expression, "where") + 837 returning = self.sql(expression, "returning") + 838 sql = f"DELETE{this}{using_sql}{where_sql}{returning}" + 839 return self.prepend_ctes(expression, sql) + 840 + 841 def drop_sql(self, expression: exp.Drop) -> str: + 842 this = self.sql(expression, "this") + 843 kind = expression.args["kind"] + 844 exists_sql = " IF EXISTS " if expression.args.get("exists") else " " + 845 temporary = " TEMPORARY" if expression.args.get("temporary") else "" + 846 materialized = " MATERIALIZED" if expression.args.get("materialized") else "" + 847 cascade = " CASCADE" if expression.args.get("cascade") else "" + 848 constraints = " CONSTRAINTS" if expression.args.get("constraints") else "" + 849 purge = " PURGE" if expression.args.get("purge") else "" + 850 return ( + 851 f"DROP{temporary}{materialized} {kind}{exists_sql}{this}{cascade}{constraints}{purge}" + 852 ) + 853 + 854 def except_sql(self, expression: exp.Except) -> str: + 855 return self.prepend_ctes( + 856 expression, + 857 self.set_operation(expression, self.except_op(expression)), + 858 ) + 859 + 860 def except_op(self, expression: exp.Except) -> str: + 861 return f"EXCEPT{'' if expression.args.get('distinct') else ' ALL'}" 862 - 863 def filter_sql(self, expression: exp.Filter) -> str: - 864 this = self.sql(expression, "this") - 865 where = self.sql(expression, "expression")[1:] # where has a leading space - 866 return f"{this} FILTER({where})" - 867 - 868 def hint_sql(self, expression: exp.Hint) -> str: - 869 if self.sql(expression, "this"): - 870 self.unsupported("Hints are not supported") - 871 return "" + 863 def fetch_sql(self, expression: exp.Fetch) -> str: + 864 direction = expression.args.get("direction") + 865 direction = f" {direction.upper()}" if direction else "" + 866 count = expression.args.get("count") + 867 count = f" {count}" if count else "" + 868 if expression.args.get("percent"): + 869 count = f"{count} PERCENT" + 870 with_ties_or_only = "WITH TIES" if expression.args.get("with_ties") else "ONLY" + 871 return f"{self.seg('FETCH')}{direction}{count} ROWS {with_ties_or_only}" 872 - 873 def index_sql(self, expression: exp.Index) -> str: - 874 unique = "UNIQUE " if expression.args.get("unique") else "" - 875 primary = "PRIMARY " if expression.args.get("primary") else "" - 876 amp = "AMP " if expression.args.get("amp") else "" - 877 name = f"{expression.name} " if expression.name else "" - 878 table = self.sql(expression, "table") - 879 table = f"{self.INDEX_ON} {table} " if table else "" - 880 index = "INDEX " if not table else "" - 881 columns = self.expressions(expression, key="columns", flat=True) - 882 return f"{unique}{primary}{amp}{index}{name}{table}({columns})" - 883 - 884 def identifier_sql(self, expression: exp.Identifier) -> str: - 885 text = expression.name - 886 lower = text.lower() - 887 text = lower if self.normalize and not expression.quoted else text - 888 text = text.replace(self.identifier_end, self._escaped_identifier_end) - 889 if ( - 890 expression.quoted - 891 or should_identify(text, self.identify) - 892 or lower in self.RESERVED_KEYWORDS - 893 ): - 894 text = f"{self.identifier_start}{text}{self.identifier_end}" - 895 return text - 896 - 897 def inputoutputformat_sql(self, expression: exp.InputOutputFormat) -> str: - 898 input_format = self.sql(expression, "input_format") - 899 input_format = f"INPUTFORMAT {input_format}" if input_format else "" - 900 output_format = self.sql(expression, "output_format") - 901 output_format = f"OUTPUTFORMAT {output_format}" if output_format else "" - 902 return self.sep().join((input_format, output_format)) - 903 - 904 def national_sql(self, expression: exp.National, prefix: str = "N") -> str: - 905 string = self.sql(exp.Literal.string(expression.name)) - 906 return f"{prefix}{string}" - 907 - 908 def partition_sql(self, expression: exp.Partition) -> str: - 909 return f"PARTITION({self.expressions(expression)})" - 910 - 911 def properties_sql(self, expression: exp.Properties) -> str: - 912 root_properties = [] - 913 with_properties = [] - 914 - 915 for p in expression.expressions: - 916 p_loc = self.PROPERTIES_LOCATION[p.__class__] - 917 if p_loc == exp.Properties.Location.POST_WITH: - 918 with_properties.append(p) - 919 elif p_loc == exp.Properties.Location.POST_SCHEMA: - 920 root_properties.append(p) - 921 - 922 return self.root_properties( - 923 exp.Properties(expressions=root_properties) - 924 ) + self.with_properties(exp.Properties(expressions=with_properties)) - 925 - 926 def root_properties(self, properties: exp.Properties) -> str: - 927 if properties.expressions: - 928 return self.sep() + self.expressions(properties, indent=False, sep=" ") - 929 return "" - 930 - 931 def properties( - 932 self, - 933 properties: exp.Properties, - 934 prefix: str = "", - 935 sep: str = ", ", - 936 suffix: str = "", - 937 wrapped: bool = True, - 938 ) -> str: - 939 if properties.expressions: - 940 expressions = self.expressions(properties, sep=sep, indent=False) - 941 expressions = self.wrap(expressions) if wrapped else expressions - 942 return f"{prefix}{' ' if prefix and prefix != ' ' else ''}{expressions}{suffix}" - 943 return "" - 944 - 945 def with_properties(self, properties: exp.Properties) -> str: - 946 return self.properties(properties, prefix=self.seg("WITH")) - 947 - 948 def locate_properties( - 949 self, properties: exp.Properties - 950 ) -> t.Dict[exp.Properties.Location, list[exp.Property]]: - 951 properties_locs: t.Dict[exp.Properties.Location, list[exp.Property]] = { - 952 key: [] for key in exp.Properties.Location - 953 } - 954 - 955 for p in properties.expressions: - 956 p_loc = self.PROPERTIES_LOCATION[p.__class__] - 957 if p_loc == exp.Properties.Location.POST_NAME: - 958 properties_locs[exp.Properties.Location.POST_NAME].append(p) - 959 elif p_loc == exp.Properties.Location.POST_INDEX: - 960 properties_locs[exp.Properties.Location.POST_INDEX].append(p) - 961 elif p_loc == exp.Properties.Location.POST_SCHEMA: - 962 properties_locs[exp.Properties.Location.POST_SCHEMA].append(p) - 963 elif p_loc == exp.Properties.Location.POST_WITH: - 964 properties_locs[exp.Properties.Location.POST_WITH].append(p) - 965 elif p_loc == exp.Properties.Location.POST_CREATE: - 966 properties_locs[exp.Properties.Location.POST_CREATE].append(p) - 967 elif p_loc == exp.Properties.Location.POST_ALIAS: - 968 properties_locs[exp.Properties.Location.POST_ALIAS].append(p) - 969 elif p_loc == exp.Properties.Location.POST_EXPRESSION: - 970 properties_locs[exp.Properties.Location.POST_EXPRESSION].append(p) - 971 elif p_loc == exp.Properties.Location.UNSUPPORTED: - 972 self.unsupported(f"Unsupported property {p.key}") - 973 - 974 return properties_locs - 975 - 976 def property_sql(self, expression: exp.Property) -> str: - 977 property_cls = expression.__class__ - 978 if property_cls == exp.Property: - 979 return f"{expression.name}={self.sql(expression, 'value')}" - 980 - 981 property_name = exp.Properties.PROPERTY_TO_NAME.get(property_cls) - 982 if not property_name: - 983 self.unsupported(f"Unsupported property {expression.key}") - 984 - 985 return f"{property_name}={self.sql(expression, 'this')}" + 873 def filter_sql(self, expression: exp.Filter) -> str: + 874 this = self.sql(expression, "this") + 875 where = self.sql(expression, "expression")[1:] # where has a leading space + 876 return f"{this} FILTER({where})" + 877 + 878 def hint_sql(self, expression: exp.Hint) -> str: + 879 if self.sql(expression, "this"): + 880 self.unsupported("Hints are not supported") + 881 return "" + 882 + 883 def index_sql(self, expression: exp.Index) -> str: + 884 unique = "UNIQUE " if expression.args.get("unique") else "" + 885 primary = "PRIMARY " if expression.args.get("primary") else "" + 886 amp = "AMP " if expression.args.get("amp") else "" + 887 name = f"{expression.name} " if expression.name else "" + 888 table = self.sql(expression, "table") + 889 table = f"{self.INDEX_ON} {table} " if table else "" + 890 index = "INDEX " if not table else "" + 891 columns = self.expressions(expression, key="columns", flat=True) + 892 partition_by = self.expressions(expression, key="partition_by", flat=True) + 893 partition_by = f" PARTITION BY {partition_by}" if partition_by else "" + 894 return f"{unique}{primary}{amp}{index}{name}{table}({columns}){partition_by}" + 895 + 896 def identifier_sql(self, expression: exp.Identifier) -> str: + 897 text = expression.name + 898 lower = text.lower() + 899 text = lower if self.normalize and not expression.quoted else text + 900 text = text.replace(self.identifier_end, self._escaped_identifier_end) + 901 if ( + 902 expression.quoted + 903 or should_identify(text, self.identify) + 904 or lower in self.RESERVED_KEYWORDS + 905 or (not self.identifiers_can_start_with_digit and text[:1].isdigit()) + 906 ): + 907 text = f"{self.identifier_start}{text}{self.identifier_end}" + 908 return text + 909 + 910 def inputoutputformat_sql(self, expression: exp.InputOutputFormat) -> str: + 911 input_format = self.sql(expression, "input_format") + 912 input_format = f"INPUTFORMAT {input_format}" if input_format else "" + 913 output_format = self.sql(expression, "output_format") + 914 output_format = f"OUTPUTFORMAT {output_format}" if output_format else "" + 915 return self.sep().join((input_format, output_format)) + 916 + 917 def national_sql(self, expression: exp.National, prefix: str = "N") -> str: + 918 string = self.sql(exp.Literal.string(expression.name)) + 919 return f"{prefix}{string}" + 920 + 921 def partition_sql(self, expression: exp.Partition) -> str: + 922 return f"PARTITION({self.expressions(expression)})" + 923 + 924 def properties_sql(self, expression: exp.Properties) -> str: + 925 root_properties = [] + 926 with_properties = [] + 927 + 928 for p in expression.expressions: + 929 p_loc = self.PROPERTIES_LOCATION[p.__class__] + 930 if p_loc == exp.Properties.Location.POST_WITH: + 931 with_properties.append(p) + 932 elif p_loc == exp.Properties.Location.POST_SCHEMA: + 933 root_properties.append(p) + 934 + 935 return self.root_properties( + 936 exp.Properties(expressions=root_properties) + 937 ) + self.with_properties(exp.Properties(expressions=with_properties)) + 938 + 939 def root_properties(self, properties: exp.Properties) -> str: + 940 if properties.expressions: + 941 return self.sep() + self.expressions(properties, indent=False, sep=" ") + 942 return "" + 943 + 944 def properties( + 945 self, + 946 properties: exp.Properties, + 947 prefix: str = "", + 948 sep: str = ", ", + 949 suffix: str = "", + 950 wrapped: bool = True, + 951 ) -> str: + 952 if properties.expressions: + 953 expressions = self.expressions(properties, sep=sep, indent=False) + 954 expressions = self.wrap(expressions) if wrapped else expressions + 955 return f"{prefix}{' ' if prefix and prefix != ' ' else ''}{expressions}{suffix}" + 956 return "" + 957 + 958 def with_properties(self, properties: exp.Properties) -> str: + 959 return self.properties(properties, prefix=self.seg("WITH")) + 960 + 961 def locate_properties( + 962 self, properties: exp.Properties + 963 ) -> t.Dict[exp.Properties.Location, list[exp.Property]]: + 964 properties_locs: t.Dict[exp.Properties.Location, list[exp.Property]] = { + 965 key: [] for key in exp.Properties.Location + 966 } + 967 + 968 for p in properties.expressions: + 969 p_loc = self.PROPERTIES_LOCATION[p.__class__] + 970 if p_loc == exp.Properties.Location.POST_NAME: + 971 properties_locs[exp.Properties.Location.POST_NAME].append(p) + 972 elif p_loc == exp.Properties.Location.POST_INDEX: + 973 properties_locs[exp.Properties.Location.POST_INDEX].append(p) + 974 elif p_loc == exp.Properties.Location.POST_SCHEMA: + 975 properties_locs[exp.Properties.Location.POST_SCHEMA].append(p) + 976 elif p_loc == exp.Properties.Location.POST_WITH: + 977 properties_locs[exp.Properties.Location.POST_WITH].append(p) + 978 elif p_loc == exp.Properties.Location.POST_CREATE: + 979 properties_locs[exp.Properties.Location.POST_CREATE].append(p) + 980 elif p_loc == exp.Properties.Location.POST_ALIAS: + 981 properties_locs[exp.Properties.Location.POST_ALIAS].append(p) + 982 elif p_loc == exp.Properties.Location.POST_EXPRESSION: + 983 properties_locs[exp.Properties.Location.POST_EXPRESSION].append(p) + 984 elif p_loc == exp.Properties.Location.UNSUPPORTED: + 985 self.unsupported(f"Unsupported property {p.key}") 986 - 987 def likeproperty_sql(self, expression: exp.LikeProperty) -> str: - 988 options = " ".join(f"{e.name} {self.sql(e, 'value')}" for e in expression.expressions) - 989 options = f" {options}" if options else "" - 990 return f"LIKE {self.sql(expression, 'this')}{options}" - 991 - 992 def fallbackproperty_sql(self, expression: exp.FallbackProperty) -> str: - 993 no = "NO " if expression.args.get("no") else "" - 994 protection = " PROTECTION" if expression.args.get("protection") else "" - 995 return f"{no}FALLBACK{protection}" - 996 - 997 def journalproperty_sql(self, expression: exp.JournalProperty) -> str: - 998 no = "NO " if expression.args.get("no") else "" - 999 local = expression.args.get("local") -1000 local = f"{local} " if local else "" -1001 dual = "DUAL " if expression.args.get("dual") else "" -1002 before = "BEFORE " if expression.args.get("before") else "" -1003 after = "AFTER " if expression.args.get("after") else "" -1004 return f"{no}{local}{dual}{before}{after}JOURNAL" -1005 -1006 def freespaceproperty_sql(self, expression: exp.FreespaceProperty) -> str: -1007 freespace = self.sql(expression, "this") -1008 percent = " PERCENT" if expression.args.get("percent") else "" -1009 return f"FREESPACE={freespace}{percent}" -1010 -1011 def checksumproperty_sql(self, expression: exp.ChecksumProperty) -> str: -1012 if expression.args.get("default"): -1013 property = "DEFAULT" -1014 elif expression.args.get("on"): -1015 property = "ON" -1016 else: -1017 property = "OFF" -1018 return f"CHECKSUM={property}" -1019 -1020 def mergeblockratioproperty_sql(self, expression: exp.MergeBlockRatioProperty) -> str: -1021 if expression.args.get("no"): -1022 return "NO MERGEBLOCKRATIO" -1023 if expression.args.get("default"): -1024 return "DEFAULT MERGEBLOCKRATIO" -1025 -1026 percent = " PERCENT" if expression.args.get("percent") else "" -1027 return f"MERGEBLOCKRATIO={self.sql(expression, 'this')}{percent}" -1028 -1029 def datablocksizeproperty_sql(self, expression: exp.DataBlocksizeProperty) -> str: -1030 default = expression.args.get("default") -1031 minimum = expression.args.get("minimum") -1032 maximum = expression.args.get("maximum") -1033 if default or minimum or maximum: -1034 if default: -1035 prop = "DEFAULT" -1036 elif minimum: -1037 prop = "MINIMUM" -1038 else: -1039 prop = "MAXIMUM" -1040 return f"{prop} DATABLOCKSIZE" -1041 units = expression.args.get("units") -1042 units = f" {units}" if units else "" -1043 return f"DATABLOCKSIZE={self.sql(expression, 'size')}{units}" -1044 -1045 def blockcompressionproperty_sql(self, expression: exp.BlockCompressionProperty) -> str: -1046 autotemp = expression.args.get("autotemp") -1047 always = expression.args.get("always") -1048 default = expression.args.get("default") -1049 manual = expression.args.get("manual") -1050 never = expression.args.get("never") -1051 -1052 if autotemp is not None: -1053 prop = f"AUTOTEMP({self.expressions(autotemp)})" -1054 elif always: -1055 prop = "ALWAYS" -1056 elif default: -1057 prop = "DEFAULT" -1058 elif manual: -1059 prop = "MANUAL" -1060 elif never: -1061 prop = "NEVER" -1062 return f"BLOCKCOMPRESSION={prop}" -1063 -1064 def isolatedloadingproperty_sql(self, expression: exp.IsolatedLoadingProperty) -> str: -1065 no = expression.args.get("no") -1066 no = " NO" if no else "" -1067 concurrent = expression.args.get("concurrent") -1068 concurrent = " CONCURRENT" if concurrent else "" -1069 -1070 for_ = "" -1071 if expression.args.get("for_all"): -1072 for_ = " FOR ALL" -1073 elif expression.args.get("for_insert"): -1074 for_ = " FOR INSERT" -1075 elif expression.args.get("for_none"): -1076 for_ = " FOR NONE" -1077 return f"WITH{no}{concurrent} ISOLATED LOADING{for_}" -1078 -1079 def lockingproperty_sql(self, expression: exp.LockingProperty) -> str: -1080 kind = expression.args.get("kind") -1081 this: str = f" {this}" if expression.this else "" -1082 for_or_in = expression.args.get("for_or_in") -1083 lock_type = expression.args.get("lock_type") -1084 override = " OVERRIDE" if expression.args.get("override") else "" -1085 return f"LOCKING {kind}{this} {for_or_in} {lock_type}{override}" -1086 -1087 def withdataproperty_sql(self, expression: exp.WithDataProperty) -> str: -1088 data_sql = f"WITH {'NO ' if expression.args.get('no') else ''}DATA" -1089 statistics = expression.args.get("statistics") -1090 statistics_sql = "" -1091 if statistics is not None: -1092 statistics_sql = f" AND {'NO ' if not statistics else ''}STATISTICS" -1093 return f"{data_sql}{statistics_sql}" -1094 -1095 def insert_sql(self, expression: exp.Insert) -> str: -1096 overwrite = expression.args.get("overwrite") -1097 -1098 if isinstance(expression.this, exp.Directory): -1099 this = "OVERWRITE " if overwrite else "INTO " -1100 else: -1101 this = "OVERWRITE TABLE " if overwrite else "INTO " -1102 -1103 alternative = expression.args.get("alternative") -1104 alternative = f" OR {alternative} " if alternative else " " -1105 this = f"{this}{self.sql(expression, 'this')}" -1106 -1107 exists = " IF EXISTS " if expression.args.get("exists") else " " -1108 partition_sql = ( -1109 self.sql(expression, "partition") if expression.args.get("partition") else "" -1110 ) -1111 expression_sql = self.sql(expression, "expression") -1112 conflict = self.sql(expression, "conflict") -1113 returning = self.sql(expression, "returning") -1114 sep = self.sep() if partition_sql else "" -1115 sql = f"INSERT{alternative}{this}{exists}{partition_sql}{sep}{expression_sql}{conflict}{returning}" -1116 return self.prepend_ctes(expression, sql) -1117 -1118 def intersect_sql(self, expression: exp.Intersect) -> str: -1119 return self.prepend_ctes( -1120 expression, -1121 self.set_operation(expression, self.intersect_op(expression)), -1122 ) -1123 -1124 def intersect_op(self, expression: exp.Intersect) -> str: -1125 return f"INTERSECT{'' if expression.args.get('distinct') else ' ALL'}" -1126 -1127 def introducer_sql(self, expression: exp.Introducer) -> str: -1128 return f"{self.sql(expression, 'this')} {self.sql(expression, 'expression')}" -1129 -1130 def pseudotype_sql(self, expression: exp.PseudoType) -> str: -1131 return expression.name.upper() -1132 -1133 def onconflict_sql(self, expression: exp.OnConflict) -> str: -1134 conflict = "ON DUPLICATE KEY" if expression.args.get("duplicate") else "ON CONFLICT" -1135 constraint = self.sql(expression, "constraint") -1136 if constraint: -1137 constraint = f"ON CONSTRAINT {constraint}" -1138 key = self.expressions(expression, key="key", flat=True) -1139 do = "" if expression.args.get("duplicate") else " DO " -1140 nothing = "NOTHING" if expression.args.get("nothing") else "" -1141 expressions = self.expressions(expression, flat=True) -1142 if expressions: -1143 expressions = f"UPDATE SET {expressions}" -1144 return f"{self.seg(conflict)} {constraint}{key}{do}{nothing}{expressions}" + 987 return properties_locs + 988 + 989 def property_sql(self, expression: exp.Property) -> str: + 990 property_cls = expression.__class__ + 991 if property_cls == exp.Property: + 992 return f"{expression.name}={self.sql(expression, 'value')}" + 993 + 994 property_name = exp.Properties.PROPERTY_TO_NAME.get(property_cls) + 995 if not property_name: + 996 self.unsupported(f"Unsupported property {expression.key}") + 997 + 998 return f"{property_name}={self.sql(expression, 'this')}" + 999 +1000 def likeproperty_sql(self, expression: exp.LikeProperty) -> str: +1001 options = " ".join(f"{e.name} {self.sql(e, 'value')}" for e in expression.expressions) +1002 options = f" {options}" if options else "" +1003 return f"LIKE {self.sql(expression, 'this')}{options}" +1004 +1005 def fallbackproperty_sql(self, expression: exp.FallbackProperty) -> str: +1006 no = "NO " if expression.args.get("no") else "" +1007 protection = " PROTECTION" if expression.args.get("protection") else "" +1008 return f"{no}FALLBACK{protection}" +1009 +1010 def journalproperty_sql(self, expression: exp.JournalProperty) -> str: +1011 no = "NO " if expression.args.get("no") else "" +1012 local = expression.args.get("local") +1013 local = f"{local} " if local else "" +1014 dual = "DUAL " if expression.args.get("dual") else "" +1015 before = "BEFORE " if expression.args.get("before") else "" +1016 after = "AFTER " if expression.args.get("after") else "" +1017 return f"{no}{local}{dual}{before}{after}JOURNAL" +1018 +1019 def freespaceproperty_sql(self, expression: exp.FreespaceProperty) -> str: +1020 freespace = self.sql(expression, "this") +1021 percent = " PERCENT" if expression.args.get("percent") else "" +1022 return f"FREESPACE={freespace}{percent}" +1023 +1024 def checksumproperty_sql(self, expression: exp.ChecksumProperty) -> str: +1025 if expression.args.get("default"): +1026 property = "DEFAULT" +1027 elif expression.args.get("on"): +1028 property = "ON" +1029 else: +1030 property = "OFF" +1031 return f"CHECKSUM={property}" +1032 +1033 def mergeblockratioproperty_sql(self, expression: exp.MergeBlockRatioProperty) -> str: +1034 if expression.args.get("no"): +1035 return "NO MERGEBLOCKRATIO" +1036 if expression.args.get("default"): +1037 return "DEFAULT MERGEBLOCKRATIO" +1038 +1039 percent = " PERCENT" if expression.args.get("percent") else "" +1040 return f"MERGEBLOCKRATIO={self.sql(expression, 'this')}{percent}" +1041 +1042 def datablocksizeproperty_sql(self, expression: exp.DataBlocksizeProperty) -> str: +1043 default = expression.args.get("default") +1044 minimum = expression.args.get("minimum") +1045 maximum = expression.args.get("maximum") +1046 if default or minimum or maximum: +1047 if default: +1048 prop = "DEFAULT" +1049 elif minimum: +1050 prop = "MINIMUM" +1051 else: +1052 prop = "MAXIMUM" +1053 return f"{prop} DATABLOCKSIZE" +1054 units = expression.args.get("units") +1055 units = f" {units}" if units else "" +1056 return f"DATABLOCKSIZE={self.sql(expression, 'size')}{units}" +1057 +1058 def blockcompressionproperty_sql(self, expression: exp.BlockCompressionProperty) -> str: +1059 autotemp = expression.args.get("autotemp") +1060 always = expression.args.get("always") +1061 default = expression.args.get("default") +1062 manual = expression.args.get("manual") +1063 never = expression.args.get("never") +1064 +1065 if autotemp is not None: +1066 prop = f"AUTOTEMP({self.expressions(autotemp)})" +1067 elif always: +1068 prop = "ALWAYS" +1069 elif default: +1070 prop = "DEFAULT" +1071 elif manual: +1072 prop = "MANUAL" +1073 elif never: +1074 prop = "NEVER" +1075 return f"BLOCKCOMPRESSION={prop}" +1076 +1077 def isolatedloadingproperty_sql(self, expression: exp.IsolatedLoadingProperty) -> str: +1078 no = expression.args.get("no") +1079 no = " NO" if no else "" +1080 concurrent = expression.args.get("concurrent") +1081 concurrent = " CONCURRENT" if concurrent else "" +1082 +1083 for_ = "" +1084 if expression.args.get("for_all"): +1085 for_ = " FOR ALL" +1086 elif expression.args.get("for_insert"): +1087 for_ = " FOR INSERT" +1088 elif expression.args.get("for_none"): +1089 for_ = " FOR NONE" +1090 return f"WITH{no}{concurrent} ISOLATED LOADING{for_}" +1091 +1092 def lockingproperty_sql(self, expression: exp.LockingProperty) -> str: +1093 kind = expression.args.get("kind") +1094 this = f" {self.sql(expression, 'this')}" if expression.this else "" +1095 for_or_in = expression.args.get("for_or_in") +1096 lock_type = expression.args.get("lock_type") +1097 override = " OVERRIDE" if expression.args.get("override") else "" +1098 return f"LOCKING {kind}{this} {for_or_in} {lock_type}{override}" +1099 +1100 def withdataproperty_sql(self, expression: exp.WithDataProperty) -> str: +1101 data_sql = f"WITH {'NO ' if expression.args.get('no') else ''}DATA" +1102 statistics = expression.args.get("statistics") +1103 statistics_sql = "" +1104 if statistics is not None: +1105 statistics_sql = f" AND {'NO ' if not statistics else ''}STATISTICS" +1106 return f"{data_sql}{statistics_sql}" +1107 +1108 def insert_sql(self, expression: exp.Insert) -> str: +1109 overwrite = expression.args.get("overwrite") +1110 +1111 if isinstance(expression.this, exp.Directory): +1112 this = "OVERWRITE " if overwrite else "INTO " +1113 else: +1114 this = "OVERWRITE TABLE " if overwrite else "INTO " +1115 +1116 alternative = expression.args.get("alternative") +1117 alternative = f" OR {alternative} " if alternative else " " +1118 this = f"{this}{self.sql(expression, 'this')}" +1119 +1120 exists = " IF EXISTS " if expression.args.get("exists") else " " +1121 partition_sql = ( +1122 self.sql(expression, "partition") if expression.args.get("partition") else "" +1123 ) +1124 expression_sql = self.sql(expression, "expression") +1125 conflict = self.sql(expression, "conflict") +1126 returning = self.sql(expression, "returning") +1127 sep = self.sep() if partition_sql else "" +1128 sql = f"INSERT{alternative}{this}{exists}{partition_sql}{sep}{expression_sql}{conflict}{returning}" +1129 return self.prepend_ctes(expression, sql) +1130 +1131 def intersect_sql(self, expression: exp.Intersect) -> str: +1132 return self.prepend_ctes( +1133 expression, +1134 self.set_operation(expression, self.intersect_op(expression)), +1135 ) +1136 +1137 def intersect_op(self, expression: exp.Intersect) -> str: +1138 return f"INTERSECT{'' if expression.args.get('distinct') else ' ALL'}" +1139 +1140 def introducer_sql(self, expression: exp.Introducer) -> str: +1141 return f"{self.sql(expression, 'this')} {self.sql(expression, 'expression')}" +1142 +1143 def pseudotype_sql(self, expression: exp.PseudoType) -> str: +1144 return expression.name.upper() 1145 -1146 def returning_sql(self, expression: exp.Returning) -> str: -1147 return f"{self.seg('RETURNING')} {self.expressions(expression, flat=True)}" -1148 -1149 def rowformatdelimitedproperty_sql(self, expression: exp.RowFormatDelimitedProperty) -> str: -1150 fields = expression.args.get("fields") -1151 fields = f" FIELDS TERMINATED BY {fields}" if fields else "" -1152 escaped = expression.args.get("escaped") -1153 escaped = f" ESCAPED BY {escaped}" if escaped else "" -1154 items = expression.args.get("collection_items") -1155 items = f" COLLECTION ITEMS TERMINATED BY {items}" if items else "" -1156 keys = expression.args.get("map_keys") -1157 keys = f" MAP KEYS TERMINATED BY {keys}" if keys else "" -1158 lines = expression.args.get("lines") -1159 lines = f" LINES TERMINATED BY {lines}" if lines else "" -1160 null = expression.args.get("null") -1161 null = f" NULL DEFINED AS {null}" if null else "" -1162 return f"ROW FORMAT DELIMITED{fields}{escaped}{items}{keys}{lines}{null}" -1163 -1164 def table_sql(self, expression: exp.Table, sep: str = " AS ") -> str: -1165 table = ".".join( -1166 part -1167 for part in [ -1168 self.sql(expression, "catalog"), -1169 self.sql(expression, "db"), -1170 self.sql(expression, "this"), -1171 ] -1172 if part -1173 ) -1174 -1175 alias = self.sql(expression, "alias") -1176 alias = f"{sep}{alias}" if alias else "" -1177 hints = self.expressions(expression, key="hints", flat=True) -1178 hints = f" WITH ({hints})" if hints and self.TABLE_HINTS else "" -1179 pivots = self.expressions(expression, key="pivots", sep=" ", flat=True) -1180 pivots = f" {pivots}" if pivots else "" -1181 joins = self.expressions(expression, key="joins", sep="") -1182 laterals = self.expressions(expression, key="laterals", sep="") -1183 system_time = expression.args.get("system_time") -1184 system_time = f" {self.sql(expression, 'system_time')}" if system_time else "" -1185 -1186 return f"{table}{system_time}{alias}{hints}{pivots}{joins}{laterals}" +1146 def onconflict_sql(self, expression: exp.OnConflict) -> str: +1147 conflict = "ON DUPLICATE KEY" if expression.args.get("duplicate") else "ON CONFLICT" +1148 constraint = self.sql(expression, "constraint") +1149 if constraint: +1150 constraint = f"ON CONSTRAINT {constraint}" +1151 key = self.expressions(expression, key="key", flat=True) +1152 do = "" if expression.args.get("duplicate") else " DO " +1153 nothing = "NOTHING" if expression.args.get("nothing") else "" +1154 expressions = self.expressions(expression, flat=True) +1155 if expressions: +1156 expressions = f"UPDATE SET {expressions}" +1157 return f"{self.seg(conflict)} {constraint}{key}{do}{nothing}{expressions}" +1158 +1159 def returning_sql(self, expression: exp.Returning) -> str: +1160 return f"{self.seg('RETURNING')} {self.expressions(expression, flat=True)}" +1161 +1162 def rowformatdelimitedproperty_sql(self, expression: exp.RowFormatDelimitedProperty) -> str: +1163 fields = expression.args.get("fields") +1164 fields = f" FIELDS TERMINATED BY {fields}" if fields else "" +1165 escaped = expression.args.get("escaped") +1166 escaped = f" ESCAPED BY {escaped}" if escaped else "" +1167 items = expression.args.get("collection_items") +1168 items = f" COLLECTION ITEMS TERMINATED BY {items}" if items else "" +1169 keys = expression.args.get("map_keys") +1170 keys = f" MAP KEYS TERMINATED BY {keys}" if keys else "" +1171 lines = expression.args.get("lines") +1172 lines = f" LINES TERMINATED BY {lines}" if lines else "" +1173 null = expression.args.get("null") +1174 null = f" NULL DEFINED AS {null}" if null else "" +1175 return f"ROW FORMAT DELIMITED{fields}{escaped}{items}{keys}{lines}{null}" +1176 +1177 def table_sql(self, expression: exp.Table, sep: str = " AS ") -> str: +1178 table = ".".join( +1179 part +1180 for part in [ +1181 self.sql(expression, "catalog"), +1182 self.sql(expression, "db"), +1183 self.sql(expression, "this"), +1184 ] +1185 if part +1186 ) 1187 -1188 def tablesample_sql( -1189 self, expression: exp.TableSample, seed_prefix: str = "SEED", sep=" AS " -1190 ) -> str: -1191 if self.alias_post_tablesample and expression.this.alias: -1192 table = expression.this.copy() -1193 table.set("alias", None) -1194 this = self.sql(table) -1195 alias = f"{sep}{self.sql(expression.this, 'alias')}" -1196 else: -1197 this = self.sql(expression, "this") -1198 alias = "" -1199 method = self.sql(expression, "method") -1200 method = f"{method.upper()} " if method and self.TABLESAMPLE_WITH_METHOD else "" -1201 numerator = self.sql(expression, "bucket_numerator") -1202 denominator = self.sql(expression, "bucket_denominator") -1203 field = self.sql(expression, "bucket_field") -1204 field = f" ON {field}" if field else "" -1205 bucket = f"BUCKET {numerator} OUT OF {denominator}{field}" if numerator else "" -1206 percent = self.sql(expression, "percent") -1207 percent = f"{percent} PERCENT" if percent else "" -1208 rows = self.sql(expression, "rows") -1209 rows = f"{rows} ROWS" if rows else "" -1210 size = self.sql(expression, "size") -1211 if size and self.TABLESAMPLE_SIZE_IS_PERCENT: -1212 size = f"{size} PERCENT" -1213 seed = self.sql(expression, "seed") -1214 seed = f" {seed_prefix} ({seed})" if seed else "" -1215 kind = expression.args.get("kind", "TABLESAMPLE") -1216 return f"{this} {kind} {method}({bucket}{percent}{rows}{size}){seed}{alias}" -1217 -1218 def pivot_sql(self, expression: exp.Pivot) -> str: -1219 alias = self.sql(expression, "alias") -1220 alias = f" AS {alias}" if alias else "" -1221 unpivot = expression.args.get("unpivot") -1222 direction = "UNPIVOT" if unpivot else "PIVOT" -1223 expressions = self.expressions(expression, flat=True) -1224 field = self.sql(expression, "field") -1225 return f"{direction}({expressions} FOR {field}){alias}" -1226 -1227 def tuple_sql(self, expression: exp.Tuple) -> str: -1228 return f"({self.expressions(expression, flat=True)})" -1229 -1230 def update_sql(self, expression: exp.Update) -> str: -1231 this = self.sql(expression, "this") -1232 set_sql = self.expressions(expression, flat=True) -1233 from_sql = self.sql(expression, "from") -1234 where_sql = self.sql(expression, "where") -1235 returning = self.sql(expression, "returning") -1236 sql = f"UPDATE {this} SET {set_sql}{from_sql}{where_sql}{returning}" -1237 return self.prepend_ctes(expression, sql) -1238 -1239 def values_sql(self, expression: exp.Values) -> str: -1240 args = self.expressions(expression) -1241 alias = self.sql(expression, "alias") -1242 values = f"VALUES{self.seg('')}{args}" -1243 values = ( -1244 f"({values})" -1245 if self.WRAP_DERIVED_VALUES and (alias or isinstance(expression.parent, exp.From)) -1246 else values -1247 ) -1248 return f"{values} AS {alias}" if alias else values -1249 -1250 def var_sql(self, expression: exp.Var) -> str: -1251 return self.sql(expression, "this") -1252 -1253 def into_sql(self, expression: exp.Into) -> str: -1254 temporary = " TEMPORARY" if expression.args.get("temporary") else "" -1255 unlogged = " UNLOGGED" if expression.args.get("unlogged") else "" -1256 return f"{self.seg('INTO')}{temporary or unlogged} {self.sql(expression, 'this')}" -1257 -1258 def from_sql(self, expression: exp.From) -> str: -1259 return f"{self.seg('FROM')} {self.sql(expression, 'this')}" +1188 alias = self.sql(expression, "alias") +1189 alias = f"{sep}{alias}" if alias else "" +1190 hints = self.expressions(expression, key="hints", flat=True) +1191 hints = f" WITH ({hints})" if hints and self.TABLE_HINTS else "" +1192 pivots = self.expressions(expression, key="pivots", sep=" ", flat=True) +1193 pivots = f" {pivots}" if pivots else "" +1194 joins = self.expressions(expression, key="joins", sep="") +1195 laterals = self.expressions(expression, key="laterals", sep="") +1196 system_time = expression.args.get("system_time") +1197 system_time = f" {self.sql(expression, 'system_time')}" if system_time else "" +1198 +1199 return f"{table}{system_time}{alias}{hints}{pivots}{joins}{laterals}" +1200 +1201 def tablesample_sql( +1202 self, expression: exp.TableSample, seed_prefix: str = "SEED", sep=" AS " +1203 ) -> str: +1204 if self.alias_post_tablesample and expression.this.alias: +1205 table = expression.this.copy() +1206 table.set("alias", None) +1207 this = self.sql(table) +1208 alias = f"{sep}{self.sql(expression.this, 'alias')}" +1209 else: +1210 this = self.sql(expression, "this") +1211 alias = "" +1212 method = self.sql(expression, "method") +1213 method = f"{method.upper()} " if method and self.TABLESAMPLE_WITH_METHOD else "" +1214 numerator = self.sql(expression, "bucket_numerator") +1215 denominator = self.sql(expression, "bucket_denominator") +1216 field = self.sql(expression, "bucket_field") +1217 field = f" ON {field}" if field else "" +1218 bucket = f"BUCKET {numerator} OUT OF {denominator}{field}" if numerator else "" +1219 percent = self.sql(expression, "percent") +1220 percent = f"{percent} PERCENT" if percent else "" +1221 rows = self.sql(expression, "rows") +1222 rows = f"{rows} ROWS" if rows else "" +1223 size = self.sql(expression, "size") +1224 if size and self.TABLESAMPLE_SIZE_IS_PERCENT: +1225 size = f"{size} PERCENT" +1226 seed = self.sql(expression, "seed") +1227 seed = f" {seed_prefix} ({seed})" if seed else "" +1228 kind = expression.args.get("kind", "TABLESAMPLE") +1229 return f"{this} {kind} {method}({bucket}{percent}{rows}{size}){seed}{alias}" +1230 +1231 def pivot_sql(self, expression: exp.Pivot) -> str: +1232 expressions = self.expressions(expression, flat=True) +1233 +1234 if expression.this: +1235 this = self.sql(expression, "this") +1236 on = f"{self.seg('ON')} {expressions}" +1237 using = self.expressions(expression, key="using", flat=True) +1238 using = f"{self.seg('USING')} {using}" if using else "" +1239 group = self.sql(expression, "group") +1240 return f"PIVOT {this}{on}{using}{group}" +1241 +1242 alias = self.sql(expression, "alias") +1243 alias = f" AS {alias}" if alias else "" +1244 unpivot = expression.args.get("unpivot") +1245 direction = "UNPIVOT" if unpivot else "PIVOT" +1246 field = self.sql(expression, "field") +1247 return f"{direction}({expressions} FOR {field}){alias}" +1248 +1249 def tuple_sql(self, expression: exp.Tuple) -> str: +1250 return f"({self.expressions(expression, flat=True)})" +1251 +1252 def update_sql(self, expression: exp.Update) -> str: +1253 this = self.sql(expression, "this") +1254 set_sql = self.expressions(expression, flat=True) +1255 from_sql = self.sql(expression, "from") +1256 where_sql = self.sql(expression, "where") +1257 returning = self.sql(expression, "returning") +1258 sql = f"UPDATE {this} SET {set_sql}{from_sql}{where_sql}{returning}" +1259 return self.prepend_ctes(expression, sql) 1260 -1261 def group_sql(self, expression: exp.Group) -> str: -1262 group_by = self.op_expressions("GROUP BY", expression) -1263 grouping_sets = self.expressions(expression, key="grouping_sets", indent=False) -1264 grouping_sets = ( -1265 f"{self.seg('GROUPING SETS')} {self.wrap(grouping_sets)}" if grouping_sets else "" -1266 ) -1267 -1268 cube = expression.args.get("cube", []) -1269 if seq_get(cube, 0) is True: -1270 return f"{group_by}{self.seg('WITH CUBE')}" -1271 else: -1272 cube_sql = self.expressions(expression, key="cube", indent=False) -1273 cube_sql = f"{self.seg('CUBE')} {self.wrap(cube_sql)}" if cube_sql else "" +1261 def values_sql(self, expression: exp.Values) -> str: +1262 args = self.expressions(expression) +1263 alias = self.sql(expression, "alias") +1264 values = f"VALUES{self.seg('')}{args}" +1265 values = ( +1266 f"({values})" +1267 if self.WRAP_DERIVED_VALUES and (alias or isinstance(expression.parent, exp.From)) +1268 else values +1269 ) +1270 return f"{values} AS {alias}" if alias else values +1271 +1272 def var_sql(self, expression: exp.Var) -> str: +1273 return self.sql(expression, "this") 1274 -1275 rollup = expression.args.get("rollup", []) -1276 if seq_get(rollup, 0) is True: -1277 return f"{group_by}{self.seg('WITH ROLLUP')}" -1278 else: -1279 rollup_sql = self.expressions(expression, key="rollup", indent=False) -1280 rollup_sql = f"{self.seg('ROLLUP')} {self.wrap(rollup_sql)}" if rollup_sql else "" -1281 -1282 groupings = csv( -1283 grouping_sets, -1284 cube_sql, -1285 rollup_sql, -1286 self.seg("WITH TOTALS") if expression.args.get("totals") else "", -1287 sep=self.GROUPINGS_SEP, +1275 def into_sql(self, expression: exp.Into) -> str: +1276 temporary = " TEMPORARY" if expression.args.get("temporary") else "" +1277 unlogged = " UNLOGGED" if expression.args.get("unlogged") else "" +1278 return f"{self.seg('INTO')}{temporary or unlogged} {self.sql(expression, 'this')}" +1279 +1280 def from_sql(self, expression: exp.From) -> str: +1281 return f"{self.seg('FROM')} {self.sql(expression, 'this')}" +1282 +1283 def group_sql(self, expression: exp.Group) -> str: +1284 group_by = self.op_expressions("GROUP BY", expression) +1285 grouping_sets = self.expressions(expression, key="grouping_sets", indent=False) +1286 grouping_sets = ( +1287 f"{self.seg('GROUPING SETS')} {self.wrap(grouping_sets)}" if grouping_sets else "" 1288 ) 1289 -1290 if expression.args.get("expressions") and groupings: -1291 group_by = f"{group_by}{self.GROUPINGS_SEP}" -1292 -1293 return f"{group_by}{groupings}" -1294 -1295 def having_sql(self, expression: exp.Having) -> str: -1296 this = self.indent(self.sql(expression, "this")) -1297 return f"{self.seg('HAVING')}{self.sep()}{this}" -1298 -1299 def join_sql(self, expression: exp.Join) -> str: -1300 op_sql = " ".join( -1301 op -1302 for op in ( -1303 "NATURAL" if expression.args.get("natural") else None, -1304 "GLOBAL" if expression.args.get("global") else None, -1305 expression.side, -1306 expression.kind, -1307 expression.hint if self.JOIN_HINTS else None, -1308 ) -1309 if op +1290 cube = expression.args.get("cube", []) +1291 if seq_get(cube, 0) is True: +1292 return f"{group_by}{self.seg('WITH CUBE')}" +1293 else: +1294 cube_sql = self.expressions(expression, key="cube", indent=False) +1295 cube_sql = f"{self.seg('CUBE')} {self.wrap(cube_sql)}" if cube_sql else "" +1296 +1297 rollup = expression.args.get("rollup", []) +1298 if seq_get(rollup, 0) is True: +1299 return f"{group_by}{self.seg('WITH ROLLUP')}" +1300 else: +1301 rollup_sql = self.expressions(expression, key="rollup", indent=False) +1302 rollup_sql = f"{self.seg('ROLLUP')} {self.wrap(rollup_sql)}" if rollup_sql else "" +1303 +1304 groupings = csv( +1305 grouping_sets, +1306 cube_sql, +1307 rollup_sql, +1308 self.seg("WITH TOTALS") if expression.args.get("totals") else "", +1309 sep=self.GROUPINGS_SEP, 1310 ) -1311 on_sql = self.sql(expression, "on") -1312 using = expression.args.get("using") -1313 -1314 if not on_sql and using: -1315 on_sql = csv(*(self.sql(column) for column in using)) +1311 +1312 if expression.args.get("expressions") and groupings: +1313 group_by = f"{group_by}{self.GROUPINGS_SEP}" +1314 +1315 return f"{group_by}{groupings}" 1316 -1317 this_sql = self.sql(expression, "this") -1318 -1319 if on_sql: -1320 on_sql = self.indent(on_sql, skip_first=True) -1321 space = self.seg(" " * self.pad) if self.pretty else " " -1322 if using: -1323 on_sql = f"{space}USING ({on_sql})" -1324 else: -1325 on_sql = f"{space}ON {on_sql}" -1326 elif not op_sql: -1327 return f", {this_sql}" -1328 -1329 op_sql = f"{op_sql} JOIN" if op_sql else "JOIN" -1330 return f"{self.seg(op_sql)} {this_sql}{on_sql}" -1331 -1332 def lambda_sql(self, expression: exp.Lambda, arrow_sep: str = "->") -> str: -1333 args = self.expressions(expression, flat=True) -1334 args = f"({args})" if len(args.split(",")) > 1 else args -1335 return f"{args} {arrow_sep} {self.sql(expression, 'this')}" -1336 -1337 def lateral_sql(self, expression: exp.Lateral) -> str: -1338 this = self.sql(expression, "this") -1339 -1340 if isinstance(expression.this, exp.Subquery): -1341 return f"LATERAL {this}" -1342 -1343 if expression.args.get("view"): -1344 alias = expression.args["alias"] -1345 columns = self.expressions(alias, key="columns", flat=True) -1346 table = f" {alias.name}" if alias.name else "" -1347 columns = f" AS {columns}" if columns else "" -1348 op_sql = self.seg(f"LATERAL VIEW{' OUTER' if expression.args.get('outer') else ''}") -1349 return f"{op_sql}{self.sep()}{this}{table}{columns}" +1317 def having_sql(self, expression: exp.Having) -> str: +1318 this = self.indent(self.sql(expression, "this")) +1319 return f"{self.seg('HAVING')}{self.sep()}{this}" +1320 +1321 def join_sql(self, expression: exp.Join) -> str: +1322 op_sql = " ".join( +1323 op +1324 for op in ( +1325 expression.method, +1326 "GLOBAL" if expression.args.get("global") else None, +1327 expression.side, +1328 expression.kind, +1329 expression.hint if self.JOIN_HINTS else None, +1330 ) +1331 if op +1332 ) +1333 on_sql = self.sql(expression, "on") +1334 using = expression.args.get("using") +1335 +1336 if not on_sql and using: +1337 on_sql = csv(*(self.sql(column) for column in using)) +1338 +1339 this_sql = self.sql(expression, "this") +1340 +1341 if on_sql: +1342 on_sql = self.indent(on_sql, skip_first=True) +1343 space = self.seg(" " * self.pad) if self.pretty else " " +1344 if using: +1345 on_sql = f"{space}USING ({on_sql})" +1346 else: +1347 on_sql = f"{space}ON {on_sql}" +1348 elif not op_sql: +1349 return f", {this_sql}" 1350 -1351 alias = self.sql(expression, "alias") -1352 alias = f" AS {alias}" if alias else "" -1353 return f"LATERAL {this}{alias}" -1354 -1355 def limit_sql(self, expression: exp.Limit) -> str: -1356 this = self.sql(expression, "this") -1357 return f"{this}{self.seg('LIMIT')} {self.sql(expression, 'expression')}" +1351 op_sql = f"{op_sql} JOIN" if op_sql else "JOIN" +1352 return f"{self.seg(op_sql)} {this_sql}{on_sql}" +1353 +1354 def lambda_sql(self, expression: exp.Lambda, arrow_sep: str = "->") -> str: +1355 args = self.expressions(expression, flat=True) +1356 args = f"({args})" if len(args.split(",")) > 1 else args +1357 return f"{args} {arrow_sep} {self.sql(expression, 'this')}" 1358 -1359 def offset_sql(self, expression: exp.Offset) -> str: +1359 def lateral_sql(self, expression: exp.Lateral) -> str: 1360 this = self.sql(expression, "this") -1361 return f"{this}{self.seg('OFFSET')} {self.sql(expression, 'expression')}" -1362 -1363 def setitem_sql(self, expression: exp.SetItem) -> str: -1364 kind = self.sql(expression, "kind") -1365 kind = f"{kind} " if kind else "" -1366 this = self.sql(expression, "this") -1367 expressions = self.expressions(expression) -1368 collate = self.sql(expression, "collate") -1369 collate = f" COLLATE {collate}" if collate else "" -1370 global_ = "GLOBAL " if expression.args.get("global") else "" -1371 return f"{global_}{kind}{this}{expressions}{collate}" +1361 +1362 if isinstance(expression.this, exp.Subquery): +1363 return f"LATERAL {this}" +1364 +1365 if expression.args.get("view"): +1366 alias = expression.args["alias"] +1367 columns = self.expressions(alias, key="columns", flat=True) +1368 table = f" {alias.name}" if alias.name else "" +1369 columns = f" AS {columns}" if columns else "" +1370 op_sql = self.seg(f"LATERAL VIEW{' OUTER' if expression.args.get('outer') else ''}") +1371 return f"{op_sql}{self.sep()}{this}{table}{columns}" 1372 -1373 def set_sql(self, expression: exp.Set) -> str: -1374 expressions = ( -1375 f" {self.expressions(expression, flat=True)}" if expression.expressions else "" -1376 ) -1377 return f"SET{expressions}" -1378 -1379 def pragma_sql(self, expression: exp.Pragma) -> str: -1380 return f"PRAGMA {self.sql(expression, 'this')}" -1381 -1382 def lock_sql(self, expression: exp.Lock) -> str: -1383 if not self.LOCKING_READS_SUPPORTED: -1384 self.unsupported("Locking reads using 'FOR UPDATE/SHARE' are not supported") -1385 return "" -1386 -1387 lock_type = "FOR UPDATE" if expression.args["update"] else "FOR SHARE" -1388 expressions = self.expressions(expression, flat=True) -1389 expressions = f" OF {expressions}" if expressions else "" -1390 wait = expression.args.get("wait") -1391 -1392 if wait is not None: -1393 if isinstance(wait, exp.Literal): -1394 wait = f" WAIT {self.sql(wait)}" -1395 else: -1396 wait = " NOWAIT" if wait else " SKIP LOCKED" -1397 -1398 return f"{lock_type}{expressions}{wait or ''}" -1399 -1400 def literal_sql(self, expression: exp.Literal) -> str: -1401 text = expression.this or "" -1402 if expression.is_string: -1403 text = text.replace(self.quote_end, self._escaped_quote_end) -1404 if self.pretty: -1405 text = text.replace("\n", self.SENTINEL_LINE_BREAK) -1406 text = f"{self.quote_start}{text}{self.quote_end}" -1407 return text +1373 alias = self.sql(expression, "alias") +1374 alias = f" AS {alias}" if alias else "" +1375 return f"LATERAL {this}{alias}" +1376 +1377 def limit_sql(self, expression: exp.Limit) -> str: +1378 this = self.sql(expression, "this") +1379 return f"{this}{self.seg('LIMIT')} {self.sql(expression, 'expression')}" +1380 +1381 def offset_sql(self, expression: exp.Offset) -> str: +1382 this = self.sql(expression, "this") +1383 return f"{this}{self.seg('OFFSET')} {self.sql(expression, 'expression')}" +1384 +1385 def setitem_sql(self, expression: exp.SetItem) -> str: +1386 kind = self.sql(expression, "kind") +1387 kind = f"{kind} " if kind else "" +1388 this = self.sql(expression, "this") +1389 expressions = self.expressions(expression) +1390 collate = self.sql(expression, "collate") +1391 collate = f" COLLATE {collate}" if collate else "" +1392 global_ = "GLOBAL " if expression.args.get("global") else "" +1393 return f"{global_}{kind}{this}{expressions}{collate}" +1394 +1395 def set_sql(self, expression: exp.Set) -> str: +1396 expressions = ( +1397 f" {self.expressions(expression, flat=True)}" if expression.expressions else "" +1398 ) +1399 return f"SET{expressions}" +1400 +1401 def pragma_sql(self, expression: exp.Pragma) -> str: +1402 return f"PRAGMA {self.sql(expression, 'this')}" +1403 +1404 def lock_sql(self, expression: exp.Lock) -> str: +1405 if not self.LOCKING_READS_SUPPORTED: +1406 self.unsupported("Locking reads using 'FOR UPDATE/SHARE' are not supported") +1407 return "" 1408 -1409 def loaddata_sql(self, expression: exp.LoadData) -> str: -1410 local = " LOCAL" if expression.args.get("local") else "" -1411 inpath = f" INPATH {self.sql(expression, 'inpath')}" -1412 overwrite = " OVERWRITE" if expression.args.get("overwrite") else "" -1413 this = f" INTO TABLE {self.sql(expression, 'this')}" -1414 partition = self.sql(expression, "partition") -1415 partition = f" {partition}" if partition else "" -1416 input_format = self.sql(expression, "input_format") -1417 input_format = f" INPUTFORMAT {input_format}" if input_format else "" -1418 serde = self.sql(expression, "serde") -1419 serde = f" SERDE {serde}" if serde else "" -1420 return f"LOAD DATA{local}{inpath}{overwrite}{this}{partition}{input_format}{serde}" +1409 lock_type = "FOR UPDATE" if expression.args["update"] else "FOR SHARE" +1410 expressions = self.expressions(expression, flat=True) +1411 expressions = f" OF {expressions}" if expressions else "" +1412 wait = expression.args.get("wait") +1413 +1414 if wait is not None: +1415 if isinstance(wait, exp.Literal): +1416 wait = f" WAIT {self.sql(wait)}" +1417 else: +1418 wait = " NOWAIT" if wait else " SKIP LOCKED" +1419 +1420 return f"{lock_type}{expressions}{wait or ''}" 1421 -1422 def null_sql(self, *_) -> str: -1423 return "NULL" -1424 -1425 def boolean_sql(self, expression: exp.Boolean) -> str: -1426 return "TRUE" if expression.this else "FALSE" -1427 -1428 def order_sql(self, expression: exp.Order, flat: bool = False) -> str: -1429 this = self.sql(expression, "this") -1430 this = f"{this} " if this else this -1431 return self.op_expressions(f"{this}ORDER BY", expression, flat=this or flat) # type: ignore -1432 -1433 def cluster_sql(self, expression: exp.Cluster) -> str: -1434 return self.op_expressions("CLUSTER BY", expression) -1435 -1436 def distribute_sql(self, expression: exp.Distribute) -> str: -1437 return self.op_expressions("DISTRIBUTE BY", expression) -1438 -1439 def sort_sql(self, expression: exp.Sort) -> str: -1440 return self.op_expressions("SORT BY", expression) -1441 -1442 def ordered_sql(self, expression: exp.Ordered) -> str: -1443 desc = expression.args.get("desc") -1444 asc = not desc -1445 -1446 nulls_first = expression.args.get("nulls_first") -1447 nulls_last = not nulls_first -1448 nulls_are_large = self.null_ordering == "nulls_are_large" -1449 nulls_are_small = self.null_ordering == "nulls_are_small" -1450 nulls_are_last = self.null_ordering == "nulls_are_last" -1451 -1452 sort_order = " DESC" if desc else "" -1453 nulls_sort_change = "" -1454 if nulls_first and ( -1455 (asc and nulls_are_large) or (desc and nulls_are_small) or nulls_are_last -1456 ): -1457 nulls_sort_change = " NULLS FIRST" -1458 elif ( -1459 nulls_last -1460 and ((asc and nulls_are_small) or (desc and nulls_are_large)) -1461 and not nulls_are_last -1462 ): -1463 nulls_sort_change = " NULLS LAST" -1464 -1465 if nulls_sort_change and not self.NULL_ORDERING_SUPPORTED: -1466 self.unsupported( -1467 "Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect" -1468 ) -1469 nulls_sort_change = "" -1470 -1471 return f"{self.sql(expression, 'this')}{sort_order}{nulls_sort_change}" -1472 -1473 def matchrecognize_sql(self, expression: exp.MatchRecognize) -> str: -1474 partition = self.partition_by_sql(expression) -1475 order = self.sql(expression, "order") -1476 measures = self.expressions(expression, key="measures") -1477 measures = self.seg(f"MEASURES{self.seg(measures)}") if measures else "" -1478 rows = self.sql(expression, "rows") -1479 rows = self.seg(rows) if rows else "" -1480 after = self.sql(expression, "after") -1481 after = self.seg(after) if after else "" -1482 pattern = self.sql(expression, "pattern") -1483 pattern = self.seg(f"PATTERN ({pattern})") if pattern else "" -1484 definition_sqls = [ -1485 f"{self.sql(definition, 'alias')} AS {self.sql(definition, 'this')}" -1486 for definition in expression.args.get("define", []) -1487 ] -1488 definitions = self.expressions(sqls=definition_sqls) -1489 define = self.seg(f"DEFINE{self.seg(definitions)}") if definitions else "" -1490 body = "".join( -1491 ( -1492 partition, -1493 order, -1494 measures, -1495 rows, -1496 after, -1497 pattern, -1498 define, -1499 ) -1500 ) -1501 alias = self.sql(expression, "alias") -1502 alias = f" {alias}" if alias else "" -1503 return f"{self.seg('MATCH_RECOGNIZE')} {self.wrap(body)}{alias}" -1504 -1505 def query_modifiers(self, expression: exp.Expression, *sqls: str) -> str: -1506 limit = expression.args.get("limit") -1507 -1508 if self.LIMIT_FETCH == "LIMIT" and isinstance(limit, exp.Fetch): -1509 limit = exp.Limit(expression=limit.args.get("count")) -1510 elif self.LIMIT_FETCH == "FETCH" and isinstance(limit, exp.Limit): -1511 limit = exp.Fetch(direction="FIRST", count=limit.expression) -1512 -1513 fetch = isinstance(limit, exp.Fetch) -1514 -1515 return csv( -1516 *sqls, -1517 *[self.sql(join) for join in expression.args.get("joins") or []], -1518 self.sql(expression, "match"), -1519 *[self.sql(lateral) for lateral in expression.args.get("laterals") or []], -1520 self.sql(expression, "where"), -1521 self.sql(expression, "group"), -1522 self.sql(expression, "having"), -1523 *self.after_having_modifiers(expression), -1524 self.sql(expression, "order"), -1525 self.sql(expression, "offset") if fetch else self.sql(limit), -1526 self.sql(limit) if fetch else self.sql(expression, "offset"), -1527 *self.after_limit_modifiers(expression), -1528 sep="", -1529 ) -1530 -1531 def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]: -1532 return [ -1533 self.sql(expression, "qualify"), -1534 self.seg("WINDOW ") + self.expressions(expression, key="windows", flat=True) -1535 if expression.args.get("windows") -1536 else "", -1537 ] -1538 -1539 def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]: -1540 locks = self.expressions(expression, key="locks", sep=" ") -1541 locks = f" {locks}" if locks else "" -1542 return [locks, self.sql(expression, "sample")] -1543 -1544 def select_sql(self, expression: exp.Select) -> str: -1545 hint = self.sql(expression, "hint") -1546 distinct = self.sql(expression, "distinct") -1547 distinct = f" {distinct}" if distinct else "" -1548 kind = expression.args.get("kind") -1549 kind = f" AS {kind}" if kind else "" -1550 expressions = self.expressions(expression) -1551 expressions = f"{self.sep()}{expressions}" if expressions else expressions -1552 sql = self.query_modifiers( -1553 expression, -1554 f"SELECT{hint}{distinct}{kind}{expressions}", -1555 self.sql(expression, "into", comment=False), -1556 self.sql(expression, "from", comment=False), -1557 ) -1558 return self.prepend_ctes(expression, sql) -1559 -1560 def schema_sql(self, expression: exp.Schema) -> str: -1561 this = self.sql(expression, "this") -1562 this = f"{this} " if this else "" -1563 sql = f"({self.sep('')}{self.expressions(expression)}{self.seg(')', sep='')}" -1564 return f"{this}{sql}" +1422 def literal_sql(self, expression: exp.Literal) -> str: +1423 text = expression.this or "" +1424 if expression.is_string: +1425 text = text.replace(self.quote_end, self._escaped_quote_end) +1426 if self.pretty: +1427 text = text.replace("\n", self.SENTINEL_LINE_BREAK) +1428 text = f"{self.quote_start}{text}{self.quote_end}" +1429 return text +1430 +1431 def loaddata_sql(self, expression: exp.LoadData) -> str: +1432 local = " LOCAL" if expression.args.get("local") else "" +1433 inpath = f" INPATH {self.sql(expression, 'inpath')}" +1434 overwrite = " OVERWRITE" if expression.args.get("overwrite") else "" +1435 this = f" INTO TABLE {self.sql(expression, 'this')}" +1436 partition = self.sql(expression, "partition") +1437 partition = f" {partition}" if partition else "" +1438 input_format = self.sql(expression, "input_format") +1439 input_format = f" INPUTFORMAT {input_format}" if input_format else "" +1440 serde = self.sql(expression, "serde") +1441 serde = f" SERDE {serde}" if serde else "" +1442 return f"LOAD DATA{local}{inpath}{overwrite}{this}{partition}{input_format}{serde}" +1443 +1444 def null_sql(self, *_) -> str: +1445 return "NULL" +1446 +1447 def boolean_sql(self, expression: exp.Boolean) -> str: +1448 return "TRUE" if expression.this else "FALSE" +1449 +1450 def order_sql(self, expression: exp.Order, flat: bool = False) -> str: +1451 this = self.sql(expression, "this") +1452 this = f"{this} " if this else this +1453 return self.op_expressions(f"{this}ORDER BY", expression, flat=this or flat) # type: ignore +1454 +1455 def cluster_sql(self, expression: exp.Cluster) -> str: +1456 return self.op_expressions("CLUSTER BY", expression) +1457 +1458 def distribute_sql(self, expression: exp.Distribute) -> str: +1459 return self.op_expressions("DISTRIBUTE BY", expression) +1460 +1461 def sort_sql(self, expression: exp.Sort) -> str: +1462 return self.op_expressions("SORT BY", expression) +1463 +1464 def ordered_sql(self, expression: exp.Ordered) -> str: +1465 desc = expression.args.get("desc") +1466 asc = not desc +1467 +1468 nulls_first = expression.args.get("nulls_first") +1469 nulls_last = not nulls_first +1470 nulls_are_large = self.null_ordering == "nulls_are_large" +1471 nulls_are_small = self.null_ordering == "nulls_are_small" +1472 nulls_are_last = self.null_ordering == "nulls_are_last" +1473 +1474 sort_order = " DESC" if desc else "" +1475 nulls_sort_change = "" +1476 if nulls_first and ( +1477 (asc and nulls_are_large) or (desc and nulls_are_small) or nulls_are_last +1478 ): +1479 nulls_sort_change = " NULLS FIRST" +1480 elif ( +1481 nulls_last +1482 and ((asc and nulls_are_small) or (desc and nulls_are_large)) +1483 and not nulls_are_last +1484 ): +1485 nulls_sort_change = " NULLS LAST" +1486 +1487 if nulls_sort_change and not self.NULL_ORDERING_SUPPORTED: +1488 self.unsupported( +1489 "Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect" +1490 ) +1491 nulls_sort_change = "" +1492 +1493 return f"{self.sql(expression, 'this')}{sort_order}{nulls_sort_change}" +1494 +1495 def matchrecognize_sql(self, expression: exp.MatchRecognize) -> str: +1496 partition = self.partition_by_sql(expression) +1497 order = self.sql(expression, "order") +1498 measures = self.expressions(expression, key="measures") +1499 measures = self.seg(f"MEASURES{self.seg(measures)}") if measures else "" +1500 rows = self.sql(expression, "rows") +1501 rows = self.seg(rows) if rows else "" +1502 after = self.sql(expression, "after") +1503 after = self.seg(after) if after else "" +1504 pattern = self.sql(expression, "pattern") +1505 pattern = self.seg(f"PATTERN ({pattern})") if pattern else "" +1506 definition_sqls = [ +1507 f"{self.sql(definition, 'alias')} AS {self.sql(definition, 'this')}" +1508 for definition in expression.args.get("define", []) +1509 ] +1510 definitions = self.expressions(sqls=definition_sqls) +1511 define = self.seg(f"DEFINE{self.seg(definitions)}") if definitions else "" +1512 body = "".join( +1513 ( +1514 partition, +1515 order, +1516 measures, +1517 rows, +1518 after, +1519 pattern, +1520 define, +1521 ) +1522 ) +1523 alias = self.sql(expression, "alias") +1524 alias = f" {alias}" if alias else "" +1525 return f"{self.seg('MATCH_RECOGNIZE')} {self.wrap(body)}{alias}" +1526 +1527 def query_modifiers(self, expression: exp.Expression, *sqls: str) -> str: +1528 limit = expression.args.get("limit") +1529 +1530 if self.LIMIT_FETCH == "LIMIT" and isinstance(limit, exp.Fetch): +1531 limit = exp.Limit(expression=limit.args.get("count")) +1532 elif self.LIMIT_FETCH == "FETCH" and isinstance(limit, exp.Limit): +1533 limit = exp.Fetch(direction="FIRST", count=limit.expression) +1534 +1535 fetch = isinstance(limit, exp.Fetch) +1536 +1537 return csv( +1538 *sqls, +1539 *[self.sql(join) for join in expression.args.get("joins") or []], +1540 self.sql(expression, "match"), +1541 *[self.sql(lateral) for lateral in expression.args.get("laterals") or []], +1542 self.sql(expression, "where"), +1543 self.sql(expression, "group"), +1544 self.sql(expression, "having"), +1545 *self.after_having_modifiers(expression), +1546 self.sql(expression, "order"), +1547 self.sql(expression, "offset") if fetch else self.sql(limit), +1548 self.sql(limit) if fetch else self.sql(expression, "offset"), +1549 *self.after_limit_modifiers(expression), +1550 sep="", +1551 ) +1552 +1553 def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]: +1554 return [ +1555 self.sql(expression, "qualify"), +1556 self.seg("WINDOW ") + self.expressions(expression, key="windows", flat=True) +1557 if expression.args.get("windows") +1558 else "", +1559 ] +1560 +1561 def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]: +1562 locks = self.expressions(expression, key="locks", sep=" ") +1563 locks = f" {locks}" if locks else "" +1564 return [locks, self.sql(expression, "sample")] 1565 -1566 def star_sql(self, expression: exp.Star) -> str: -1567 except_ = self.expressions(expression, key="except", flat=True) -1568 except_ = f"{self.seg(self.STAR_MAPPING['except'])} ({except_})" if except_ else "" -1569 replace = self.expressions(expression, key="replace", flat=True) -1570 replace = f"{self.seg(self.STAR_MAPPING['replace'])} ({replace})" if replace else "" -1571 return f"*{except_}{replace}" -1572 -1573 def parameter_sql(self, expression: exp.Parameter) -> str: -1574 this = self.sql(expression, "this") -1575 this = f"{{{this}}}" if expression.args.get("wrapped") else f"{this}" -1576 return f"{self.PARAMETER_TOKEN}{this}" -1577 -1578 def sessionparameter_sql(self, expression: exp.SessionParameter) -> str: -1579 this = self.sql(expression, "this") -1580 kind = expression.text("kind") -1581 if kind: -1582 kind = f"{kind}." -1583 return f"@@{kind}{this}" -1584 -1585 def placeholder_sql(self, expression: exp.Placeholder) -> str: -1586 return f":{expression.name}" if expression.name else "?" +1566 def select_sql(self, expression: exp.Select) -> str: +1567 hint = self.sql(expression, "hint") +1568 distinct = self.sql(expression, "distinct") +1569 distinct = f" {distinct}" if distinct else "" +1570 kind = expression.args.get("kind") +1571 kind = f" AS {kind}" if kind else "" +1572 expressions = self.expressions(expression) +1573 expressions = f"{self.sep()}{expressions}" if expressions else expressions +1574 sql = self.query_modifiers( +1575 expression, +1576 f"SELECT{hint}{distinct}{kind}{expressions}", +1577 self.sql(expression, "into", comment=False), +1578 self.sql(expression, "from", comment=False), +1579 ) +1580 return self.prepend_ctes(expression, sql) +1581 +1582 def schema_sql(self, expression: exp.Schema) -> str: +1583 this = self.sql(expression, "this") +1584 this = f"{this} " if this else "" +1585 sql = f"({self.sep('')}{self.expressions(expression)}{self.seg(')', sep='')}" +1586 return f"{this}{sql}" 1587 -1588 def subquery_sql(self, expression: exp.Subquery, sep: str = " AS ") -> str: -1589 alias = self.sql(expression, "alias") -1590 alias = f"{sep}{alias}" if alias else "" -1591 -1592 pivots = self.expressions(expression, key="pivots", sep=" ", flat=True) -1593 pivots = f" {pivots}" if pivots else "" +1588 def star_sql(self, expression: exp.Star) -> str: +1589 except_ = self.expressions(expression, key="except", flat=True) +1590 except_ = f"{self.seg(self.STAR_MAPPING['except'])} ({except_})" if except_ else "" +1591 replace = self.expressions(expression, key="replace", flat=True) +1592 replace = f"{self.seg(self.STAR_MAPPING['replace'])} ({replace})" if replace else "" +1593 return f"*{except_}{replace}" 1594 -1595 sql = self.query_modifiers(expression, self.wrap(expression), alias, pivots) -1596 return self.prepend_ctes(expression, sql) -1597 -1598 def qualify_sql(self, expression: exp.Qualify) -> str: -1599 this = self.indent(self.sql(expression, "this")) -1600 return f"{self.seg('QUALIFY')}{self.sep()}{this}" -1601 -1602 def union_sql(self, expression: exp.Union) -> str: -1603 return self.prepend_ctes( -1604 expression, -1605 self.set_operation(expression, self.union_op(expression)), -1606 ) -1607 -1608 def union_op(self, expression: exp.Union) -> str: -1609 kind = " DISTINCT" if self.EXPLICIT_UNION else "" -1610 kind = kind if expression.args.get("distinct") else " ALL" -1611 return f"UNION{kind}" -1612 -1613 def unnest_sql(self, expression: exp.Unnest) -> str: -1614 args = self.expressions(expression, flat=True) -1615 alias = expression.args.get("alias") -1616 if alias and self.unnest_column_only: -1617 columns = alias.columns -1618 alias = self.sql(columns[0]) if columns else "" -1619 else: -1620 alias = self.sql(expression, "alias") -1621 alias = f" AS {alias}" if alias else alias -1622 ordinality = " WITH ORDINALITY" if expression.args.get("ordinality") else "" -1623 offset = expression.args.get("offset") -1624 offset = f" WITH OFFSET AS {self.sql(offset)}" if offset else "" -1625 return f"UNNEST({args}){ordinality}{alias}{offset}" -1626 -1627 def where_sql(self, expression: exp.Where) -> str: -1628 this = self.indent(self.sql(expression, "this")) -1629 return f"{self.seg('WHERE')}{self.sep()}{this}" -1630 -1631 def window_sql(self, expression: exp.Window) -> str: -1632 this = self.sql(expression, "this") -1633 -1634 partition = self.partition_by_sql(expression) -1635 -1636 order = expression.args.get("order") -1637 order_sql = self.order_sql(order, flat=True) if order else "" -1638 -1639 partition_sql = partition + " " if partition and order else partition -1640 -1641 spec = expression.args.get("spec") -1642 spec_sql = " " + self.windowspec_sql(spec) if spec else "" -1643 -1644 alias = self.sql(expression, "alias") -1645 over = self.sql(expression, "over") or "OVER" -1646 this = f"{this} {'AS' if expression.arg_key == 'windows' else over}" -1647 -1648 first = expression.args.get("first") -1649 if first is not None: -1650 first = " FIRST " if first else " LAST " -1651 first = first or "" +1595 def parameter_sql(self, expression: exp.Parameter) -> str: +1596 this = self.sql(expression, "this") +1597 this = f"{{{this}}}" if expression.args.get("wrapped") else f"{this}" +1598 return f"{self.PARAMETER_TOKEN}{this}" +1599 +1600 def sessionparameter_sql(self, expression: exp.SessionParameter) -> str: +1601 this = self.sql(expression, "this") +1602 kind = expression.text("kind") +1603 if kind: +1604 kind = f"{kind}." +1605 return f"@@{kind}{this}" +1606 +1607 def placeholder_sql(self, expression: exp.Placeholder) -> str: +1608 return f":{expression.name}" if expression.name else "?" +1609 +1610 def subquery_sql(self, expression: exp.Subquery, sep: str = " AS ") -> str: +1611 alias = self.sql(expression, "alias") +1612 alias = f"{sep}{alias}" if alias else "" +1613 +1614 pivots = self.expressions(expression, key="pivots", sep=" ", flat=True) +1615 pivots = f" {pivots}" if pivots else "" +1616 +1617 sql = self.query_modifiers(expression, self.wrap(expression), alias, pivots) +1618 return self.prepend_ctes(expression, sql) +1619 +1620 def qualify_sql(self, expression: exp.Qualify) -> str: +1621 this = self.indent(self.sql(expression, "this")) +1622 return f"{self.seg('QUALIFY')}{self.sep()}{this}" +1623 +1624 def union_sql(self, expression: exp.Union) -> str: +1625 return self.prepend_ctes( +1626 expression, +1627 self.set_operation(expression, self.union_op(expression)), +1628 ) +1629 +1630 def union_op(self, expression: exp.Union) -> str: +1631 kind = " DISTINCT" if self.EXPLICIT_UNION else "" +1632 kind = kind if expression.args.get("distinct") else " ALL" +1633 return f"UNION{kind}" +1634 +1635 def unnest_sql(self, expression: exp.Unnest) -> str: +1636 args = self.expressions(expression, flat=True) +1637 alias = expression.args.get("alias") +1638 if alias and self.unnest_column_only: +1639 columns = alias.columns +1640 alias = self.sql(columns[0]) if columns else "" +1641 else: +1642 alias = self.sql(expression, "alias") +1643 alias = f" AS {alias}" if alias else alias +1644 ordinality = " WITH ORDINALITY" if expression.args.get("ordinality") else "" +1645 offset = expression.args.get("offset") +1646 offset = f" WITH OFFSET AS {self.sql(offset)}" if offset else "" +1647 return f"UNNEST({args}){ordinality}{alias}{offset}" +1648 +1649 def where_sql(self, expression: exp.Where) -> str: +1650 this = self.indent(self.sql(expression, "this")) +1651 return f"{self.seg('WHERE')}{self.sep()}{this}" 1652 -1653 if not partition and not order and not spec and alias: -1654 return f"{this} {alias}" -1655 -1656 window_args = alias + first + partition_sql + order_sql + spec_sql -1657 -1658 return f"{this} ({window_args.strip()})" -1659 -1660 def partition_by_sql(self, expression: exp.Window | exp.MatchRecognize) -> str: -1661 partition = self.expressions(expression, key="partition_by", flat=True) -1662 return f"PARTITION BY {partition}" if partition else "" +1653 def window_sql(self, expression: exp.Window) -> str: +1654 this = self.sql(expression, "this") +1655 partition = self.partition_by_sql(expression) +1656 order = expression.args.get("order") +1657 order = self.order_sql(order, flat=True) if order else "" +1658 spec = self.sql(expression, "spec") +1659 alias = self.sql(expression, "alias") +1660 over = self.sql(expression, "over") or "OVER" +1661 +1662 this = f"{this} {'AS' if expression.arg_key == 'windows' else over}" 1663 -1664 def windowspec_sql(self, expression: exp.WindowSpec) -> str: -1665 kind = self.sql(expression, "kind") -1666 start = csv(self.sql(expression, "start"), self.sql(expression, "start_side"), sep=" ") -1667 end = ( -1668 csv(self.sql(expression, "end"), self.sql(expression, "end_side"), sep=" ") -1669 or "CURRENT ROW" -1670 ) -1671 return f"{kind} BETWEEN {start} AND {end}" +1664 first = expression.args.get("first") +1665 if first is None: +1666 first = "" +1667 else: +1668 first = "FIRST" if first else "LAST" +1669 +1670 if not partition and not order and not spec and alias: +1671 return f"{this} {alias}" 1672 -1673 def withingroup_sql(self, expression: exp.WithinGroup) -> str: -1674 this = self.sql(expression, "this") -1675 expression_sql = self.sql(expression, "expression")[1:] # order has a leading space -1676 return f"{this} WITHIN GROUP ({expression_sql})" -1677 -1678 def between_sql(self, expression: exp.Between) -> str: -1679 this = self.sql(expression, "this") -1680 low = self.sql(expression, "low") -1681 high = self.sql(expression, "high") -1682 return f"{this} BETWEEN {low} AND {high}" -1683 -1684 def bracket_sql(self, expression: exp.Bracket) -> str: -1685 expressions = apply_index_offset(expression.this, expression.expressions, self.index_offset) -1686 expressions_sql = ", ".join(self.sql(e) for e in expressions) -1687 -1688 return f"{self.sql(expression, 'this')}[{expressions_sql}]" -1689 -1690 def all_sql(self, expression: exp.All) -> str: -1691 return f"ALL {self.wrap(expression)}" -1692 -1693 def any_sql(self, expression: exp.Any) -> str: -1694 this = self.sql(expression, "this") -1695 if isinstance(expression.this, exp.Subqueryable): -1696 this = self.wrap(this) -1697 return f"ANY {this}" -1698 -1699 def exists_sql(self, expression: exp.Exists) -> str: -1700 return f"EXISTS{self.wrap(expression)}" -1701 -1702 def case_sql(self, expression: exp.Case) -> str: -1703 this = self.sql(expression, "this") -1704 statements = [f"CASE {this}" if this else "CASE"] +1673 args = " ".join(arg for arg in (alias, first, partition, order, spec) if arg) +1674 return f"{this} ({args})" +1675 +1676 def partition_by_sql(self, expression: exp.Window | exp.MatchRecognize) -> str: +1677 partition = self.expressions(expression, key="partition_by", flat=True) +1678 return f"PARTITION BY {partition}" if partition else "" +1679 +1680 def windowspec_sql(self, expression: exp.WindowSpec) -> str: +1681 kind = self.sql(expression, "kind") +1682 start = csv(self.sql(expression, "start"), self.sql(expression, "start_side"), sep=" ") +1683 end = ( +1684 csv(self.sql(expression, "end"), self.sql(expression, "end_side"), sep=" ") +1685 or "CURRENT ROW" +1686 ) +1687 return f"{kind} BETWEEN {start} AND {end}" +1688 +1689 def withingroup_sql(self, expression: exp.WithinGroup) -> str: +1690 this = self.sql(expression, "this") +1691 expression_sql = self.sql(expression, "expression")[1:] # order has a leading space +1692 return f"{this} WITHIN GROUP ({expression_sql})" +1693 +1694 def between_sql(self, expression: exp.Between) -> str: +1695 this = self.sql(expression, "this") +1696 low = self.sql(expression, "low") +1697 high = self.sql(expression, "high") +1698 return f"{this} BETWEEN {low} AND {high}" +1699 +1700 def bracket_sql(self, expression: exp.Bracket) -> str: +1701 expressions = apply_index_offset(expression.this, expression.expressions, self.index_offset) +1702 expressions_sql = ", ".join(self.sql(e) for e in expressions) +1703 +1704 return f"{self.sql(expression, 'this')}[{expressions_sql}]" 1705 -1706 for e in expression.args["ifs"]: -1707 statements.append(f"WHEN {self.sql(e, 'this')}") -1708 statements.append(f"THEN {self.sql(e, 'true')}") -1709 -1710 default = self.sql(expression, "default") -1711 -1712 if default: -1713 statements.append(f"ELSE {default}") +1706 def all_sql(self, expression: exp.All) -> str: +1707 return f"ALL {self.wrap(expression)}" +1708 +1709 def any_sql(self, expression: exp.Any) -> str: +1710 this = self.sql(expression, "this") +1711 if isinstance(expression.this, exp.Subqueryable): +1712 this = self.wrap(this) +1713 return f"ANY {this}" 1714 -1715 statements.append("END") -1716 -1717 if self.pretty and self.text_width(statements) > self._max_text_width: -1718 return self.indent("\n".join(statements), skip_first=True, skip_last=True) -1719 -1720 return " ".join(statements) +1715 def exists_sql(self, expression: exp.Exists) -> str: +1716 return f"EXISTS{self.wrap(expression)}" +1717 +1718 def case_sql(self, expression: exp.Case) -> str: +1719 this = self.sql(expression, "this") +1720 statements = [f"CASE {this}" if this else "CASE"] 1721 -1722 def constraint_sql(self, expression: exp.Constraint) -> str: -1723 this = self.sql(expression, "this") -1724 expressions = self.expressions(expression, flat=True) -1725 return f"CONSTRAINT {this} {expressions}" -1726 -1727 def nextvaluefor_sql(self, expression: exp.NextValueFor) -> str: -1728 order = expression.args.get("order") -1729 order = f" OVER ({self.order_sql(order, flat=True)})" if order else "" -1730 return f"NEXT VALUE FOR {self.sql(expression, 'this')}{order}" -1731 -1732 def extract_sql(self, expression: exp.Extract) -> str: -1733 this = self.sql(expression, "this") -1734 expression_sql = self.sql(expression, "expression") -1735 return f"EXTRACT({this} FROM {expression_sql})" -1736 -1737 def trim_sql(self, expression: exp.Trim) -> str: -1738 trim_type = self.sql(expression, "position") -1739 -1740 if trim_type == "LEADING": -1741 return self.func("LTRIM", expression.this) -1742 elif trim_type == "TRAILING": -1743 return self.func("RTRIM", expression.this) -1744 else: -1745 return self.func("TRIM", expression.this, expression.expression) -1746 -1747 def concat_sql(self, expression: exp.Concat) -> str: -1748 if len(expression.expressions) == 1: -1749 return self.sql(expression.expressions[0]) -1750 return self.function_fallback_sql(expression) -1751 -1752 def check_sql(self, expression: exp.Check) -> str: -1753 this = self.sql(expression, key="this") -1754 return f"CHECK ({this})" +1722 for e in expression.args["ifs"]: +1723 statements.append(f"WHEN {self.sql(e, 'this')}") +1724 statements.append(f"THEN {self.sql(e, 'true')}") +1725 +1726 default = self.sql(expression, "default") +1727 +1728 if default: +1729 statements.append(f"ELSE {default}") +1730 +1731 statements.append("END") +1732 +1733 if self.pretty and self.text_width(statements) > self._max_text_width: +1734 return self.indent("\n".join(statements), skip_first=True, skip_last=True) +1735 +1736 return " ".join(statements) +1737 +1738 def constraint_sql(self, expression: exp.Constraint) -> str: +1739 this = self.sql(expression, "this") +1740 expressions = self.expressions(expression, flat=True) +1741 return f"CONSTRAINT {this} {expressions}" +1742 +1743 def nextvaluefor_sql(self, expression: exp.NextValueFor) -> str: +1744 order = expression.args.get("order") +1745 order = f" OVER ({self.order_sql(order, flat=True)})" if order else "" +1746 return f"NEXT VALUE FOR {self.sql(expression, 'this')}{order}" +1747 +1748 def extract_sql(self, expression: exp.Extract) -> str: +1749 this = self.sql(expression, "this") +1750 expression_sql = self.sql(expression, "expression") +1751 return f"EXTRACT({this} FROM {expression_sql})" +1752 +1753 def trim_sql(self, expression: exp.Trim) -> str: +1754 trim_type = self.sql(expression, "position") 1755 -1756 def foreignkey_sql(self, expression: exp.ForeignKey) -> str: -1757 expressions = self.expressions(expression, flat=True) -1758 reference = self.sql(expression, "reference") -1759 reference = f" {reference}" if reference else "" -1760 delete = self.sql(expression, "delete") -1761 delete = f" ON DELETE {delete}" if delete else "" -1762 update = self.sql(expression, "update") -1763 update = f" ON UPDATE {update}" if update else "" -1764 return f"FOREIGN KEY ({expressions}){reference}{delete}{update}" -1765 -1766 def primarykey_sql(self, expression: exp.ForeignKey) -> str: -1767 expressions = self.expressions(expression, flat=True) -1768 options = self.expressions(expression, key="options", flat=True, sep=" ") -1769 options = f" {options}" if options else "" -1770 return f"PRIMARY KEY ({expressions}){options}" +1756 if trim_type == "LEADING": +1757 return self.func("LTRIM", expression.this) +1758 elif trim_type == "TRAILING": +1759 return self.func("RTRIM", expression.this) +1760 else: +1761 return self.func("TRIM", expression.this, expression.expression) +1762 +1763 def concat_sql(self, expression: exp.Concat) -> str: +1764 if len(expression.expressions) == 1: +1765 return self.sql(expression.expressions[0]) +1766 return self.function_fallback_sql(expression) +1767 +1768 def check_sql(self, expression: exp.Check) -> str: +1769 this = self.sql(expression, key="this") +1770 return f"CHECK ({this})" 1771 -1772 def unique_sql(self, expression: exp.Unique) -> str: -1773 columns = self.expressions(expression, key="expressions") -1774 return f"UNIQUE ({columns})" -1775 -1776 def if_sql(self, expression: exp.If) -> str: -1777 return self.case_sql( -1778 exp.Case(ifs=[expression.copy()], default=expression.args.get("false")) -1779 ) -1780 -1781 def matchagainst_sql(self, expression: exp.MatchAgainst) -> str: -1782 modifier = expression.args.get("modifier") -1783 modifier = f" {modifier}" if modifier else "" -1784 return f"{self.func('MATCH', *expression.expressions)} AGAINST({self.sql(expression, 'this')}{modifier})" -1785 -1786 def jsonkeyvalue_sql(self, expression: exp.JSONKeyValue) -> str: -1787 return f"{self.sql(expression, 'this')}: {self.sql(expression, 'expression')}" -1788 -1789 def jsonobject_sql(self, expression: exp.JSONObject) -> str: -1790 expressions = self.expressions(expression) -1791 null_handling = expression.args.get("null_handling") -1792 null_handling = f" {null_handling}" if null_handling else "" -1793 unique_keys = expression.args.get("unique_keys") -1794 if unique_keys is not None: -1795 unique_keys = f" {'WITH' if unique_keys else 'WITHOUT'} UNIQUE KEYS" -1796 else: -1797 unique_keys = "" -1798 return_type = self.sql(expression, "return_type") -1799 return_type = f" RETURNING {return_type}" if return_type else "" -1800 format_json = " FORMAT JSON" if expression.args.get("format_json") else "" -1801 encoding = self.sql(expression, "encoding") -1802 encoding = f" ENCODING {encoding}" if encoding else "" -1803 return f"JSON_OBJECT({expressions}{null_handling}{unique_keys}{return_type}{format_json}{encoding})" -1804 -1805 def openjsoncolumndef_sql(self, expression: exp.OpenJSONColumnDef) -> str: -1806 this = self.sql(expression, "this") -1807 kind = self.sql(expression, "kind") -1808 path = self.sql(expression, "path") -1809 path = f" {path}" if path else "" -1810 as_json = " AS JSON" if expression.args.get("as_json") else "" -1811 return f"{this} {kind}{path}{as_json}" -1812 -1813 def openjson_sql(self, expression: exp.OpenJSON) -> str: -1814 this = self.sql(expression, "this") -1815 path = self.sql(expression, "path") -1816 path = f", {path}" if path else "" -1817 expressions = self.expressions(expression) -1818 with_ = ( -1819 f" WITH ({self.seg(self.indent(expressions), sep='')}{self.seg(')', sep='')}" -1820 if expressions -1821 else "" -1822 ) -1823 return f"OPENJSON({this}{path}){with_}" +1772 def foreignkey_sql(self, expression: exp.ForeignKey) -> str: +1773 expressions = self.expressions(expression, flat=True) +1774 reference = self.sql(expression, "reference") +1775 reference = f" {reference}" if reference else "" +1776 delete = self.sql(expression, "delete") +1777 delete = f" ON DELETE {delete}" if delete else "" +1778 update = self.sql(expression, "update") +1779 update = f" ON UPDATE {update}" if update else "" +1780 return f"FOREIGN KEY ({expressions}){reference}{delete}{update}" +1781 +1782 def primarykey_sql(self, expression: exp.ForeignKey) -> str: +1783 expressions = self.expressions(expression, flat=True) +1784 options = self.expressions(expression, key="options", flat=True, sep=" ") +1785 options = f" {options}" if options else "" +1786 return f"PRIMARY KEY ({expressions}){options}" +1787 +1788 def if_sql(self, expression: exp.If) -> str: +1789 return self.case_sql( +1790 exp.Case(ifs=[expression.copy()], default=expression.args.get("false")) +1791 ) +1792 +1793 def matchagainst_sql(self, expression: exp.MatchAgainst) -> str: +1794 modifier = expression.args.get("modifier") +1795 modifier = f" {modifier}" if modifier else "" +1796 return f"{self.func('MATCH', *expression.expressions)} AGAINST({self.sql(expression, 'this')}{modifier})" +1797 +1798 def jsonkeyvalue_sql(self, expression: exp.JSONKeyValue) -> str: +1799 return f"{self.sql(expression, 'this')}: {self.sql(expression, 'expression')}" +1800 +1801 def jsonobject_sql(self, expression: exp.JSONObject) -> str: +1802 expressions = self.expressions(expression) +1803 null_handling = expression.args.get("null_handling") +1804 null_handling = f" {null_handling}" if null_handling else "" +1805 unique_keys = expression.args.get("unique_keys") +1806 if unique_keys is not None: +1807 unique_keys = f" {'WITH' if unique_keys else 'WITHOUT'} UNIQUE KEYS" +1808 else: +1809 unique_keys = "" +1810 return_type = self.sql(expression, "return_type") +1811 return_type = f" RETURNING {return_type}" if return_type else "" +1812 format_json = " FORMAT JSON" if expression.args.get("format_json") else "" +1813 encoding = self.sql(expression, "encoding") +1814 encoding = f" ENCODING {encoding}" if encoding else "" +1815 return f"JSON_OBJECT({expressions}{null_handling}{unique_keys}{return_type}{format_json}{encoding})" +1816 +1817 def openjsoncolumndef_sql(self, expression: exp.OpenJSONColumnDef) -> str: +1818 this = self.sql(expression, "this") +1819 kind = self.sql(expression, "kind") +1820 path = self.sql(expression, "path") +1821 path = f" {path}" if path else "" +1822 as_json = " AS JSON" if expression.args.get("as_json") else "" +1823 return f"{this} {kind}{path}{as_json}" 1824 -1825 def in_sql(self, expression: exp.In) -> str: -1826 query = expression.args.get("query") -1827 unnest = expression.args.get("unnest") -1828 field = expression.args.get("field") -1829 is_global = " GLOBAL" if expression.args.get("is_global") else "" -1830 -1831 if query: -1832 in_sql = self.wrap(query) -1833 elif unnest: -1834 in_sql = self.in_unnest_op(unnest) -1835 elif field: -1836 in_sql = self.sql(field) -1837 else: -1838 in_sql = f"({self.expressions(expression, flat=True)})" -1839 -1840 return f"{self.sql(expression, 'this')}{is_global} IN {in_sql}" -1841 -1842 def in_unnest_op(self, unnest: exp.Unnest) -> str: -1843 return f"(SELECT {self.sql(unnest)})" -1844 -1845 def interval_sql(self, expression: exp.Interval) -> str: -1846 unit = self.sql(expression, "unit") -1847 if not self.INTERVAL_ALLOWS_PLURAL_FORM: -1848 unit = self.TIME_PART_SINGULARS.get(unit.lower(), unit) -1849 unit = f" {unit}" if unit else "" -1850 -1851 if self.SINGLE_STRING_INTERVAL: -1852 this = expression.this.name if expression.this else "" -1853 return f"INTERVAL '{this}{unit}'" if this else f"INTERVAL{unit}" -1854 -1855 this = self.sql(expression, "this") -1856 if this: -1857 unwrapped = isinstance(expression.this, self.UNWRAPPED_INTERVAL_VALUES) -1858 this = f" {this}" if unwrapped else f" ({this})" -1859 -1860 return f"INTERVAL{this}{unit}" -1861 -1862 def return_sql(self, expression: exp.Return) -> str: -1863 return f"RETURN {self.sql(expression, 'this')}" -1864 -1865 def reference_sql(self, expression: exp.Reference) -> str: -1866 this = self.sql(expression, "this") -1867 expressions = self.expressions(expression, flat=True) -1868 expressions = f"({expressions})" if expressions else "" -1869 options = self.expressions(expression, key="options", flat=True, sep=" ") -1870 options = f" {options}" if options else "" -1871 return f"REFERENCES {this}{expressions}{options}" -1872 -1873 def anonymous_sql(self, expression: exp.Anonymous) -> str: -1874 return self.func(expression.name, *expression.expressions) -1875 -1876 def paren_sql(self, expression: exp.Paren) -> str: -1877 if isinstance(expression.unnest(), exp.Select): -1878 sql = self.wrap(expression) -1879 else: -1880 sql = self.seg(self.indent(self.sql(expression, "this")), sep="") -1881 sql = f"({sql}{self.seg(')', sep='')}" -1882 -1883 return self.prepend_ctes(expression, sql) +1825 def openjson_sql(self, expression: exp.OpenJSON) -> str: +1826 this = self.sql(expression, "this") +1827 path = self.sql(expression, "path") +1828 path = f", {path}" if path else "" +1829 expressions = self.expressions(expression) +1830 with_ = ( +1831 f" WITH ({self.seg(self.indent(expressions), sep='')}{self.seg(')', sep='')}" +1832 if expressions +1833 else "" +1834 ) +1835 return f"OPENJSON({this}{path}){with_}" +1836 +1837 def in_sql(self, expression: exp.In) -> str: +1838 query = expression.args.get("query") +1839 unnest = expression.args.get("unnest") +1840 field = expression.args.get("field") +1841 is_global = " GLOBAL" if expression.args.get("is_global") else "" +1842 +1843 if query: +1844 in_sql = self.wrap(query) +1845 elif unnest: +1846 in_sql = self.in_unnest_op(unnest) +1847 elif field: +1848 in_sql = self.sql(field) +1849 else: +1850 in_sql = f"({self.expressions(expression, flat=True)})" +1851 +1852 return f"{self.sql(expression, 'this')}{is_global} IN {in_sql}" +1853 +1854 def in_unnest_op(self, unnest: exp.Unnest) -> str: +1855 return f"(SELECT {self.sql(unnest)})" +1856 +1857 def interval_sql(self, expression: exp.Interval) -> str: +1858 unit = self.sql(expression, "unit") +1859 if not self.INTERVAL_ALLOWS_PLURAL_FORM: +1860 unit = self.TIME_PART_SINGULARS.get(unit.lower(), unit) +1861 unit = f" {unit}" if unit else "" +1862 +1863 if self.SINGLE_STRING_INTERVAL: +1864 this = expression.this.name if expression.this else "" +1865 return f"INTERVAL '{this}{unit}'" if this else f"INTERVAL{unit}" +1866 +1867 this = self.sql(expression, "this") +1868 if this: +1869 unwrapped = isinstance(expression.this, self.UNWRAPPED_INTERVAL_VALUES) +1870 this = f" {this}" if unwrapped else f" ({this})" +1871 +1872 return f"INTERVAL{this}{unit}" +1873 +1874 def return_sql(self, expression: exp.Return) -> str: +1875 return f"RETURN {self.sql(expression, 'this')}" +1876 +1877 def reference_sql(self, expression: exp.Reference) -> str: +1878 this = self.sql(expression, "this") +1879 expressions = self.expressions(expression, flat=True) +1880 expressions = f"({expressions})" if expressions else "" +1881 options = self.expressions(expression, key="options", flat=True, sep=" ") +1882 options = f" {options}" if options else "" +1883 return f"REFERENCES {this}{expressions}{options}" 1884 -1885 def neg_sql(self, expression: exp.Neg) -> str: -1886 # This makes sure we don't convert "- - 5" to "--5", which is a comment -1887 this_sql = self.sql(expression, "this") -1888 sep = " " if this_sql[0] == "-" else "" -1889 return f"-{sep}{this_sql}" -1890 -1891 def not_sql(self, expression: exp.Not) -> str: -1892 return f"NOT {self.sql(expression, 'this')}" -1893 -1894 def alias_sql(self, expression: exp.Alias) -> str: -1895 alias = self.sql(expression, "alias") -1896 alias = f" AS {alias}" if alias else "" -1897 return f"{self.sql(expression, 'this')}{alias}" -1898 -1899 def aliases_sql(self, expression: exp.Aliases) -> str: -1900 return f"{self.sql(expression, 'this')} AS ({self.expressions(expression, flat=True)})" -1901 -1902 def attimezone_sql(self, expression: exp.AtTimeZone) -> str: -1903 this = self.sql(expression, "this") -1904 zone = self.sql(expression, "zone") -1905 return f"{this} AT TIME ZONE {zone}" -1906 -1907 def add_sql(self, expression: exp.Add) -> str: -1908 return self.binary(expression, "+") -1909 -1910 def and_sql(self, expression: exp.And) -> str: -1911 return self.connector_sql(expression, "AND") -1912 -1913 def connector_sql(self, expression: exp.Connector, op: str) -> str: -1914 if not self.pretty: -1915 return self.binary(expression, op) -1916 -1917 sqls = tuple( -1918 self.maybe_comment(self.sql(e), e, e.parent.comments or []) if i != 1 else self.sql(e) -1919 for i, e in enumerate(expression.flatten(unnest=False)) -1920 ) +1885 def anonymous_sql(self, expression: exp.Anonymous) -> str: +1886 return self.func(expression.name, *expression.expressions) +1887 +1888 def paren_sql(self, expression: exp.Paren) -> str: +1889 if isinstance(expression.unnest(), exp.Select): +1890 sql = self.wrap(expression) +1891 else: +1892 sql = self.seg(self.indent(self.sql(expression, "this")), sep="") +1893 sql = f"({sql}{self.seg(')', sep='')}" +1894 +1895 return self.prepend_ctes(expression, sql) +1896 +1897 def neg_sql(self, expression: exp.Neg) -> str: +1898 # This makes sure we don't convert "- - 5" to "--5", which is a comment +1899 this_sql = self.sql(expression, "this") +1900 sep = " " if this_sql[0] == "-" else "" +1901 return f"-{sep}{this_sql}" +1902 +1903 def not_sql(self, expression: exp.Not) -> str: +1904 return f"NOT {self.sql(expression, 'this')}" +1905 +1906 def alias_sql(self, expression: exp.Alias) -> str: +1907 alias = self.sql(expression, "alias") +1908 alias = f" AS {alias}" if alias else "" +1909 return f"{self.sql(expression, 'this')}{alias}" +1910 +1911 def aliases_sql(self, expression: exp.Aliases) -> str: +1912 return f"{self.sql(expression, 'this')} AS ({self.expressions(expression, flat=True)})" +1913 +1914 def attimezone_sql(self, expression: exp.AtTimeZone) -> str: +1915 this = self.sql(expression, "this") +1916 zone = self.sql(expression, "zone") +1917 return f"{this} AT TIME ZONE {zone}" +1918 +1919 def add_sql(self, expression: exp.Add) -> str: +1920 return self.binary(expression, "+") 1921 -1922 sep = "\n" if self.text_width(sqls) > self._max_text_width else " " -1923 return f"{sep}{op} ".join(sqls) +1922 def and_sql(self, expression: exp.And) -> str: +1923 return self.connector_sql(expression, "AND") 1924 -1925 def bitwiseand_sql(self, expression: exp.BitwiseAnd) -> str: -1926 return self.binary(expression, "&") -1927 -1928 def bitwiseleftshift_sql(self, expression: exp.BitwiseLeftShift) -> str: -1929 return self.binary(expression, "<<") -1930 -1931 def bitwisenot_sql(self, expression: exp.BitwiseNot) -> str: -1932 return f"~{self.sql(expression, 'this')}" +1925 def connector_sql(self, expression: exp.Connector, op: str) -> str: +1926 if not self.pretty: +1927 return self.binary(expression, op) +1928 +1929 sqls = tuple( +1930 self.maybe_comment(self.sql(e), e, e.parent.comments or []) if i != 1 else self.sql(e) +1931 for i, e in enumerate(expression.flatten(unnest=False)) +1932 ) 1933 -1934 def bitwiseor_sql(self, expression: exp.BitwiseOr) -> str: -1935 return self.binary(expression, "|") +1934 sep = "\n" if self.text_width(sqls) > self._max_text_width else " " +1935 return f"{sep}{op} ".join(sqls) 1936 -1937 def bitwiserightshift_sql(self, expression: exp.BitwiseRightShift) -> str: -1938 return self.binary(expression, ">>") +1937 def bitwiseand_sql(self, expression: exp.BitwiseAnd) -> str: +1938 return self.binary(expression, "&") 1939 -1940 def bitwisexor_sql(self, expression: exp.BitwiseXor) -> str: -1941 return self.binary(expression, "^") +1940 def bitwiseleftshift_sql(self, expression: exp.BitwiseLeftShift) -> str: +1941 return self.binary(expression, "<<") 1942 -1943 def cast_sql(self, expression: exp.Cast) -> str: -1944 return f"CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})" +1943 def bitwisenot_sql(self, expression: exp.BitwiseNot) -> str: +1944 return f"~{self.sql(expression, 'this')}" 1945 -1946 def currentdate_sql(self, expression: exp.CurrentDate) -> str: -1947 zone = self.sql(expression, "this") -1948 return f"CURRENT_DATE({zone})" if zone else "CURRENT_DATE" -1949 -1950 def collate_sql(self, expression: exp.Collate) -> str: -1951 return self.binary(expression, "COLLATE") -1952 -1953 def command_sql(self, expression: exp.Command) -> str: -1954 return f"{self.sql(expression, 'this').upper()} {expression.text('expression').strip()}" -1955 -1956 def comment_sql(self, expression: exp.Comment) -> str: -1957 this = self.sql(expression, "this") -1958 kind = expression.args["kind"] -1959 exists_sql = " IF EXISTS " if expression.args.get("exists") else " " -1960 expression_sql = self.sql(expression, "expression") -1961 return f"COMMENT{exists_sql}ON {kind} {this} IS {expression_sql}" -1962 -1963 def mergetreettlaction_sql(self, expression: exp.MergeTreeTTLAction) -> str: -1964 this = self.sql(expression, "this") -1965 delete = " DELETE" if expression.args.get("delete") else "" -1966 recompress = self.sql(expression, "recompress") -1967 recompress = f" RECOMPRESS {recompress}" if recompress else "" -1968 to_disk = self.sql(expression, "to_disk") -1969 to_disk = f" TO DISK {to_disk}" if to_disk else "" -1970 to_volume = self.sql(expression, "to_volume") -1971 to_volume = f" TO VOLUME {to_volume}" if to_volume else "" -1972 return f"{this}{delete}{recompress}{to_disk}{to_volume}" -1973 -1974 def mergetreettl_sql(self, expression: exp.MergeTreeTTL) -> str: -1975 where = self.sql(expression, "where") -1976 group = self.sql(expression, "group") -1977 aggregates = self.expressions(expression, key="aggregates") -1978 aggregates = self.seg("SET") + self.seg(aggregates) if aggregates else "" -1979 -1980 if not (where or group or aggregates) and len(expression.expressions) == 1: -1981 return f"TTL {self.expressions(expression, flat=True)}" -1982 -1983 return f"TTL{self.seg(self.expressions(expression))}{where}{group}{aggregates}" -1984 -1985 def transaction_sql(self, expression: exp.Transaction) -> str: -1986 return "BEGIN" -1987 -1988 def commit_sql(self, expression: exp.Commit) -> str: -1989 chain = expression.args.get("chain") -1990 if chain is not None: -1991 chain = " AND CHAIN" if chain else " AND NO CHAIN" -1992 -1993 return f"COMMIT{chain or ''}" +1946 def bitwiseor_sql(self, expression: exp.BitwiseOr) -> str: +1947 return self.binary(expression, "|") +1948 +1949 def bitwiserightshift_sql(self, expression: exp.BitwiseRightShift) -> str: +1950 return self.binary(expression, ">>") +1951 +1952 def bitwisexor_sql(self, expression: exp.BitwiseXor) -> str: +1953 return self.binary(expression, "^") +1954 +1955 def cast_sql(self, expression: exp.Cast) -> str: +1956 return f"CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})" +1957 +1958 def currentdate_sql(self, expression: exp.CurrentDate) -> str: +1959 zone = self.sql(expression, "this") +1960 return f"CURRENT_DATE({zone})" if zone else "CURRENT_DATE" +1961 +1962 def collate_sql(self, expression: exp.Collate) -> str: +1963 return self.binary(expression, "COLLATE") +1964 +1965 def command_sql(self, expression: exp.Command) -> str: +1966 return f"{self.sql(expression, 'this').upper()} {expression.text('expression').strip()}" +1967 +1968 def comment_sql(self, expression: exp.Comment) -> str: +1969 this = self.sql(expression, "this") +1970 kind = expression.args["kind"] +1971 exists_sql = " IF EXISTS " if expression.args.get("exists") else " " +1972 expression_sql = self.sql(expression, "expression") +1973 return f"COMMENT{exists_sql}ON {kind} {this} IS {expression_sql}" +1974 +1975 def mergetreettlaction_sql(self, expression: exp.MergeTreeTTLAction) -> str: +1976 this = self.sql(expression, "this") +1977 delete = " DELETE" if expression.args.get("delete") else "" +1978 recompress = self.sql(expression, "recompress") +1979 recompress = f" RECOMPRESS {recompress}" if recompress else "" +1980 to_disk = self.sql(expression, "to_disk") +1981 to_disk = f" TO DISK {to_disk}" if to_disk else "" +1982 to_volume = self.sql(expression, "to_volume") +1983 to_volume = f" TO VOLUME {to_volume}" if to_volume else "" +1984 return f"{this}{delete}{recompress}{to_disk}{to_volume}" +1985 +1986 def mergetreettl_sql(self, expression: exp.MergeTreeTTL) -> str: +1987 where = self.sql(expression, "where") +1988 group = self.sql(expression, "group") +1989 aggregates = self.expressions(expression, key="aggregates") +1990 aggregates = self.seg("SET") + self.seg(aggregates) if aggregates else "" +1991 +1992 if not (where or group or aggregates) and len(expression.expressions) == 1: +1993 return f"TTL {self.expressions(expression, flat=True)}" 1994 -1995 def rollback_sql(self, expression: exp.Rollback) -> str: -1996 savepoint = expression.args.get("savepoint") -1997 savepoint = f" TO {savepoint}" if savepoint else "" -1998 return f"ROLLBACK{savepoint}" +1995 return f"TTL{self.seg(self.expressions(expression))}{where}{group}{aggregates}" +1996 +1997 def transaction_sql(self, expression: exp.Transaction) -> str: +1998 return "BEGIN" 1999 -2000 def altercolumn_sql(self, expression: exp.AlterColumn) -> str: -2001 this = self.sql(expression, "this") -2002 -2003 dtype = self.sql(expression, "dtype") -2004 if dtype: -2005 collate = self.sql(expression, "collate") -2006 collate = f" COLLATE {collate}" if collate else "" -2007 using = self.sql(expression, "using") -2008 using = f" USING {using}" if using else "" -2009 return f"ALTER COLUMN {this} TYPE {dtype}{collate}{using}" -2010 -2011 default = self.sql(expression, "default") -2012 if default: -2013 return f"ALTER COLUMN {this} SET DEFAULT {default}" +2000 def commit_sql(self, expression: exp.Commit) -> str: +2001 chain = expression.args.get("chain") +2002 if chain is not None: +2003 chain = " AND CHAIN" if chain else " AND NO CHAIN" +2004 +2005 return f"COMMIT{chain or ''}" +2006 +2007 def rollback_sql(self, expression: exp.Rollback) -> str: +2008 savepoint = expression.args.get("savepoint") +2009 savepoint = f" TO {savepoint}" if savepoint else "" +2010 return f"ROLLBACK{savepoint}" +2011 +2012 def altercolumn_sql(self, expression: exp.AlterColumn) -> str: +2013 this = self.sql(expression, "this") 2014 -2015 if not expression.args.get("drop"): -2016 self.unsupported("Unsupported ALTER COLUMN syntax") -2017 -2018 return f"ALTER COLUMN {this} DROP DEFAULT" -2019 -2020 def renametable_sql(self, expression: exp.RenameTable) -> str: -2021 if not self.RENAME_TABLE_WITH_DB: -2022 # Remove db from tables -2023 expression = expression.transform( -2024 lambda n: exp.table_(n.this) if isinstance(n, exp.Table) else n -2025 ) -2026 this = self.sql(expression, "this") -2027 return f"RENAME TO {this}" -2028 -2029 def altertable_sql(self, expression: exp.AlterTable) -> str: -2030 actions = expression.args["actions"] +2015 dtype = self.sql(expression, "dtype") +2016 if dtype: +2017 collate = self.sql(expression, "collate") +2018 collate = f" COLLATE {collate}" if collate else "" +2019 using = self.sql(expression, "using") +2020 using = f" USING {using}" if using else "" +2021 return f"ALTER COLUMN {this} TYPE {dtype}{collate}{using}" +2022 +2023 default = self.sql(expression, "default") +2024 if default: +2025 return f"ALTER COLUMN {this} SET DEFAULT {default}" +2026 +2027 if not expression.args.get("drop"): +2028 self.unsupported("Unsupported ALTER COLUMN syntax") +2029 +2030 return f"ALTER COLUMN {this} DROP DEFAULT" 2031 -2032 if isinstance(actions[0], exp.ColumnDef): -2033 actions = self.expressions(expression, key="actions", prefix="ADD COLUMN ") -2034 elif isinstance(actions[0], exp.Schema): -2035 actions = self.expressions(expression, key="actions", prefix="ADD COLUMNS ") -2036 elif isinstance(actions[0], exp.Delete): -2037 actions = self.expressions(expression, key="actions", flat=True) -2038 else: -2039 actions = self.expressions(expression, key="actions") +2032 def renametable_sql(self, expression: exp.RenameTable) -> str: +2033 if not self.RENAME_TABLE_WITH_DB: +2034 # Remove db from tables +2035 expression = expression.transform( +2036 lambda n: exp.table_(n.this) if isinstance(n, exp.Table) else n +2037 ) +2038 this = self.sql(expression, "this") +2039 return f"RENAME TO {this}" 2040 -2041 exists = " IF EXISTS" if expression.args.get("exists") else "" -2042 return f"ALTER TABLE{exists} {self.sql(expression, 'this')} {actions}" +2041 def altertable_sql(self, expression: exp.AlterTable) -> str: +2042 actions = expression.args["actions"] 2043 -2044 def droppartition_sql(self, expression: exp.DropPartition) -> str: -2045 expressions = self.expressions(expression) -2046 exists = " IF EXISTS " if expression.args.get("exists") else " " -2047 return f"DROP{exists}{expressions}" -2048 -2049 def addconstraint_sql(self, expression: exp.AddConstraint) -> str: -2050 this = self.sql(expression, "this") -2051 expression_ = self.sql(expression, "expression") -2052 add_constraint = f"ADD CONSTRAINT {this}" if this else "ADD" -2053 -2054 enforced = expression.args.get("enforced") -2055 if enforced is not None: -2056 return f"{add_constraint} CHECK ({expression_}){' ENFORCED' if enforced else ''}" -2057 -2058 return f"{add_constraint} {expression_}" -2059 -2060 def distinct_sql(self, expression: exp.Distinct) -> str: -2061 this = self.expressions(expression, flat=True) -2062 this = f" {this}" if this else "" -2063 -2064 on = self.sql(expression, "on") -2065 on = f" ON {on}" if on else "" -2066 return f"DISTINCT{this}{on}" -2067 -2068 def ignorenulls_sql(self, expression: exp.IgnoreNulls) -> str: -2069 return f"{self.sql(expression, 'this')} IGNORE NULLS" -2070 -2071 def respectnulls_sql(self, expression: exp.RespectNulls) -> str: -2072 return f"{self.sql(expression, 'this')} RESPECT NULLS" -2073 -2074 def intdiv_sql(self, expression: exp.IntDiv) -> str: -2075 return self.sql( -2076 exp.Cast( -2077 this=exp.Div(this=expression.this, expression=expression.expression), -2078 to=exp.DataType(this=exp.DataType.Type.INT), -2079 ) -2080 ) -2081 -2082 def dpipe_sql(self, expression: exp.DPipe) -> str: -2083 return self.binary(expression, "||") -2084 -2085 def div_sql(self, expression: exp.Div) -> str: -2086 return self.binary(expression, "/") -2087 -2088 def overlaps_sql(self, expression: exp.Overlaps) -> str: -2089 return self.binary(expression, "OVERLAPS") -2090 -2091 def distance_sql(self, expression: exp.Distance) -> str: -2092 return self.binary(expression, "<->") +2044 if isinstance(actions[0], exp.ColumnDef): +2045 actions = self.expressions(expression, key="actions", prefix="ADD COLUMN ") +2046 elif isinstance(actions[0], exp.Schema): +2047 actions = self.expressions(expression, key="actions", prefix="ADD COLUMNS ") +2048 elif isinstance(actions[0], exp.Delete): +2049 actions = self.expressions(expression, key="actions", flat=True) +2050 else: +2051 actions = self.expressions(expression, key="actions") +2052 +2053 exists = " IF EXISTS" if expression.args.get("exists") else "" +2054 return f"ALTER TABLE{exists} {self.sql(expression, 'this')} {actions}" +2055 +2056 def droppartition_sql(self, expression: exp.DropPartition) -> str: +2057 expressions = self.expressions(expression) +2058 exists = " IF EXISTS " if expression.args.get("exists") else " " +2059 return f"DROP{exists}{expressions}" +2060 +2061 def addconstraint_sql(self, expression: exp.AddConstraint) -> str: +2062 this = self.sql(expression, "this") +2063 expression_ = self.sql(expression, "expression") +2064 add_constraint = f"ADD CONSTRAINT {this}" if this else "ADD" +2065 +2066 enforced = expression.args.get("enforced") +2067 if enforced is not None: +2068 return f"{add_constraint} CHECK ({expression_}){' ENFORCED' if enforced else ''}" +2069 +2070 return f"{add_constraint} {expression_}" +2071 +2072 def distinct_sql(self, expression: exp.Distinct) -> str: +2073 this = self.expressions(expression, flat=True) +2074 this = f" {this}" if this else "" +2075 +2076 on = self.sql(expression, "on") +2077 on = f" ON {on}" if on else "" +2078 return f"DISTINCT{this}{on}" +2079 +2080 def ignorenulls_sql(self, expression: exp.IgnoreNulls) -> str: +2081 return f"{self.sql(expression, 'this')} IGNORE NULLS" +2082 +2083 def respectnulls_sql(self, expression: exp.RespectNulls) -> str: +2084 return f"{self.sql(expression, 'this')} RESPECT NULLS" +2085 +2086 def intdiv_sql(self, expression: exp.IntDiv) -> str: +2087 return self.sql( +2088 exp.Cast( +2089 this=exp.Div(this=expression.this, expression=expression.expression), +2090 to=exp.DataType(this=exp.DataType.Type.INT), +2091 ) +2092 ) 2093 -2094 def dot_sql(self, expression: exp.Dot) -> str: -2095 return f"{self.sql(expression, 'this')}.{self.sql(expression, 'expression')}" +2094 def dpipe_sql(self, expression: exp.DPipe) -> str: +2095 return self.binary(expression, "||") 2096 -2097 def eq_sql(self, expression: exp.EQ) -> str: -2098 return self.binary(expression, "=") +2097 def div_sql(self, expression: exp.Div) -> str: +2098 return self.binary(expression, "/") 2099 -2100 def escape_sql(self, expression: exp.Escape) -> str: -2101 return self.binary(expression, "ESCAPE") +2100 def overlaps_sql(self, expression: exp.Overlaps) -> str: +2101 return self.binary(expression, "OVERLAPS") 2102 -2103 def glob_sql(self, expression: exp.Glob) -> str: -2104 return self.binary(expression, "GLOB") +2103 def distance_sql(self, expression: exp.Distance) -> str: +2104 return self.binary(expression, "<->") 2105 -2106 def gt_sql(self, expression: exp.GT) -> str: -2107 return self.binary(expression, ">") +2106 def dot_sql(self, expression: exp.Dot) -> str: +2107 return f"{self.sql(expression, 'this')}.{self.sql(expression, 'expression')}" 2108 -2109 def gte_sql(self, expression: exp.GTE) -> str: -2110 return self.binary(expression, ">=") +2109 def eq_sql(self, expression: exp.EQ) -> str: +2110 return self.binary(expression, "=") 2111 -2112 def ilike_sql(self, expression: exp.ILike) -> str: -2113 return self.binary(expression, "ILIKE") +2112 def escape_sql(self, expression: exp.Escape) -> str: +2113 return self.binary(expression, "ESCAPE") 2114 -2115 def ilikeany_sql(self, expression: exp.ILikeAny) -> str: -2116 return self.binary(expression, "ILIKE ANY") +2115 def glob_sql(self, expression: exp.Glob) -> str: +2116 return self.binary(expression, "GLOB") 2117 -2118 def is_sql(self, expression: exp.Is) -> str: -2119 return self.binary(expression, "IS") +2118 def gt_sql(self, expression: exp.GT) -> str: +2119 return self.binary(expression, ">") 2120 -2121 def like_sql(self, expression: exp.Like) -> str: -2122 return self.binary(expression, "LIKE") +2121 def gte_sql(self, expression: exp.GTE) -> str: +2122 return self.binary(expression, ">=") 2123 -2124 def likeany_sql(self, expression: exp.LikeAny) -> str: -2125 return self.binary(expression, "LIKE ANY") +2124 def ilike_sql(self, expression: exp.ILike) -> str: +2125 return self.binary(expression, "ILIKE") 2126 -2127 def similarto_sql(self, expression: exp.SimilarTo) -> str: -2128 return self.binary(expression, "SIMILAR TO") +2127 def ilikeany_sql(self, expression: exp.ILikeAny) -> str: +2128 return self.binary(expression, "ILIKE ANY") 2129 -2130 def lt_sql(self, expression: exp.LT) -> str: -2131 return self.binary(expression, "<") +2130 def is_sql(self, expression: exp.Is) -> str: +2131 return self.binary(expression, "IS") 2132 -2133 def lte_sql(self, expression: exp.LTE) -> str: -2134 return self.binary(expression, "<=") +2133 def like_sql(self, expression: exp.Like) -> str: +2134 return self.binary(expression, "LIKE") 2135 -2136 def mod_sql(self, expression: exp.Mod) -> str: -2137 return self.binary(expression, "%") +2136 def likeany_sql(self, expression: exp.LikeAny) -> str: +2137 return self.binary(expression, "LIKE ANY") 2138 -2139 def mul_sql(self, expression: exp.Mul) -> str: -2140 return self.binary(expression, "*") +2139 def similarto_sql(self, expression: exp.SimilarTo) -> str: +2140 return self.binary(expression, "SIMILAR TO") 2141 -2142 def neq_sql(self, expression: exp.NEQ) -> str: -2143 return self.binary(expression, "<>") +2142 def lt_sql(self, expression: exp.LT) -> str: +2143 return self.binary(expression, "<") 2144 -2145 def nullsafeeq_sql(self, expression: exp.NullSafeEQ) -> str: -2146 return self.binary(expression, "IS NOT DISTINCT FROM") +2145 def lte_sql(self, expression: exp.LTE) -> str: +2146 return self.binary(expression, "<=") 2147 -2148 def nullsafeneq_sql(self, expression: exp.NullSafeNEQ) -> str: -2149 return self.binary(expression, "IS DISTINCT FROM") +2148 def mod_sql(self, expression: exp.Mod) -> str: +2149 return self.binary(expression, "%") 2150 -2151 def or_sql(self, expression: exp.Or) -> str: -2152 return self.connector_sql(expression, "OR") +2151 def mul_sql(self, expression: exp.Mul) -> str: +2152 return self.binary(expression, "*") 2153 -2154 def slice_sql(self, expression: exp.Slice) -> str: -2155 return self.binary(expression, ":") +2154 def neq_sql(self, expression: exp.NEQ) -> str: +2155 return self.binary(expression, "<>") 2156 -2157 def sub_sql(self, expression: exp.Sub) -> str: -2158 return self.binary(expression, "-") +2157 def nullsafeeq_sql(self, expression: exp.NullSafeEQ) -> str: +2158 return self.binary(expression, "IS NOT DISTINCT FROM") 2159 -2160 def trycast_sql(self, expression: exp.TryCast) -> str: -2161 return f"TRY_CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})" +2160 def nullsafeneq_sql(self, expression: exp.NullSafeNEQ) -> str: +2161 return self.binary(expression, "IS DISTINCT FROM") 2162 -2163 def use_sql(self, expression: exp.Use) -> str: -2164 kind = self.sql(expression, "kind") -2165 kind = f" {kind}" if kind else "" -2166 this = self.sql(expression, "this") -2167 this = f" {this}" if this else "" -2168 return f"USE{kind}{this}" -2169 -2170 def binary(self, expression: exp.Binary, op: str) -> str: -2171 op = self.maybe_comment(op, comments=expression.comments) -2172 return f"{self.sql(expression, 'this')} {op} {self.sql(expression, 'expression')}" -2173 -2174 def function_fallback_sql(self, expression: exp.Func) -> str: -2175 args = [] -2176 for arg_value in expression.args.values(): -2177 if isinstance(arg_value, list): -2178 for value in arg_value: -2179 args.append(value) -2180 else: -2181 args.append(arg_value) -2182 -2183 return self.func(expression.sql_name(), *args) -2184 -2185 def func(self, name: str, *args: t.Optional[exp.Expression | str]) -> str: -2186 return f"{self.normalize_func(name)}({self.format_args(*args)})" -2187 -2188 def format_args(self, *args: t.Optional[str | exp.Expression]) -> str: -2189 arg_sqls = tuple(self.sql(arg) for arg in args if arg is not None) -2190 if self.pretty and self.text_width(arg_sqls) > self._max_text_width: -2191 return self.indent("\n" + f",\n".join(arg_sqls) + "\n", skip_first=True, skip_last=True) -2192 return ", ".join(arg_sqls) -2193 -2194 def text_width(self, args: t.Iterable) -> int: -2195 return sum(len(arg) for arg in args) +2163 def or_sql(self, expression: exp.Or) -> str: +2164 return self.connector_sql(expression, "OR") +2165 +2166 def slice_sql(self, expression: exp.Slice) -> str: +2167 return self.binary(expression, ":") +2168 +2169 def sub_sql(self, expression: exp.Sub) -> str: +2170 return self.binary(expression, "-") +2171 +2172 def trycast_sql(self, expression: exp.TryCast) -> str: +2173 return f"TRY_CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})" +2174 +2175 def use_sql(self, expression: exp.Use) -> str: +2176 kind = self.sql(expression, "kind") +2177 kind = f" {kind}" if kind else "" +2178 this = self.sql(expression, "this") +2179 this = f" {this}" if this else "" +2180 return f"USE{kind}{this}" +2181 +2182 def binary(self, expression: exp.Binary, op: str) -> str: +2183 op = self.maybe_comment(op, comments=expression.comments) +2184 return f"{self.sql(expression, 'this')} {op} {self.sql(expression, 'expression')}" +2185 +2186 def function_fallback_sql(self, expression: exp.Func) -> str: +2187 args = [] +2188 for arg_value in expression.args.values(): +2189 if isinstance(arg_value, list): +2190 for value in arg_value: +2191 args.append(value) +2192 else: +2193 args.append(arg_value) +2194 +2195 return self.func(expression.sql_name(), *args) 2196 -2197 def format_time(self, expression: exp.Expression) -> t.Optional[str]: -2198 return format_time(self.sql(expression, "format"), self.time_mapping, self.time_trie) +2197 def func(self, name: str, *args: t.Optional[exp.Expression | str]) -> str: +2198 return f"{self.normalize_func(name)}({self.format_args(*args)})" 2199 -2200 def expressions( -2201 self, -2202 expression: t.Optional[exp.Expression] = None, -2203 key: t.Optional[str] = None, -2204 sqls: t.Optional[t.List[str]] = None, -2205 flat: bool = False, -2206 indent: bool = True, -2207 sep: str = ", ", -2208 prefix: str = "", -2209 ) -> str: -2210 expressions = expression.args.get(key or "expressions") if expression else sqls +2200 def format_args(self, *args: t.Optional[str | exp.Expression]) -> str: +2201 arg_sqls = tuple(self.sql(arg) for arg in args if arg is not None) +2202 if self.pretty and self.text_width(arg_sqls) > self._max_text_width: +2203 return self.indent("\n" + f",\n".join(arg_sqls) + "\n", skip_first=True, skip_last=True) +2204 return ", ".join(arg_sqls) +2205 +2206 def text_width(self, args: t.Iterable) -> int: +2207 return sum(len(arg) for arg in args) +2208 +2209 def format_time(self, expression: exp.Expression) -> t.Optional[str]: +2210 return format_time(self.sql(expression, "format"), self.time_mapping, self.time_trie) 2211 -2212 if not expressions: -2213 return "" -2214 -2215 if flat: -2216 return sep.join(self.sql(e) for e in expressions) -2217 -2218 num_sqls = len(expressions) -2219 -2220 # These are calculated once in case we have the leading_comma / pretty option set, correspondingly -2221 pad = " " * self.pad -2222 stripped_sep = sep.strip() +2212 def expressions( +2213 self, +2214 expression: t.Optional[exp.Expression] = None, +2215 key: t.Optional[str] = None, +2216 sqls: t.Optional[t.List[str]] = None, +2217 flat: bool = False, +2218 indent: bool = True, +2219 sep: str = ", ", +2220 prefix: str = "", +2221 ) -> str: +2222 expressions = expression.args.get(key or "expressions") if expression else sqls 2223 -2224 result_sqls = [] -2225 for i, e in enumerate(expressions): -2226 sql = self.sql(e, comment=False) -2227 comments = self.maybe_comment("", e) if isinstance(e, exp.Expression) else "" -2228 -2229 if self.pretty: -2230 if self._leading_comma: -2231 result_sqls.append(f"{sep if i > 0 else pad}{prefix}{sql}{comments}") -2232 else: -2233 result_sqls.append( -2234 f"{prefix}{sql}{stripped_sep if i + 1 < num_sqls else ''}{comments}" -2235 ) -2236 else: -2237 result_sqls.append(f"{prefix}{sql}{comments}{sep if i + 1 < num_sqls else ''}") -2238 -2239 result_sql = "\n".join(result_sqls) if self.pretty else "".join(result_sqls) -2240 return self.indent(result_sql, skip_first=False) if indent else result_sql -2241 -2242 def op_expressions(self, op: str, expression: exp.Expression, flat: bool = False) -> str: -2243 flat = flat or isinstance(expression.parent, exp.Properties) -2244 expressions_sql = self.expressions(expression, flat=flat) -2245 if flat: -2246 return f"{op} {expressions_sql}" -2247 return f"{self.seg(op)}{self.sep() if expressions_sql else ''}{expressions_sql}" -2248 -2249 def naked_property(self, expression: exp.Property) -> str: -2250 property_name = exp.Properties.PROPERTY_TO_NAME.get(expression.__class__) -2251 if not property_name: -2252 self.unsupported(f"Unsupported property {expression.__class__.__name__}") -2253 return f"{property_name} {self.sql(expression, 'this')}" -2254 -2255 def set_operation(self, expression: exp.Expression, op: str) -> str: -2256 this = self.sql(expression, "this") -2257 op = self.seg(op) -2258 return self.query_modifiers( -2259 expression, f"{this}{op}{self.sep()}{self.sql(expression, 'expression')}" -2260 ) -2261 -2262 def tag_sql(self, expression: exp.Tag) -> str: -2263 return f"{expression.args.get('prefix')}{self.sql(expression.this)}{expression.args.get('postfix')}" -2264 -2265 def token_sql(self, token_type: TokenType) -> str: -2266 return self.TOKEN_MAPPING.get(token_type, token_type.name) -2267 -2268 def userdefinedfunction_sql(self, expression: exp.UserDefinedFunction) -> str: -2269 this = self.sql(expression, "this") -2270 expressions = self.no_identify(self.expressions, expression) -2271 expressions = ( -2272 self.wrap(expressions) if expression.args.get("wrapped") else f" {expressions}" -2273 ) -2274 return f"{this}{expressions}" -2275 -2276 def joinhint_sql(self, expression: exp.JoinHint) -> str: -2277 this = self.sql(expression, "this") -2278 expressions = self.expressions(expression, flat=True) -2279 return f"{this}({expressions})" -2280 -2281 def kwarg_sql(self, expression: exp.Kwarg) -> str: -2282 return self.binary(expression, "=>") -2283 -2284 def when_sql(self, expression: exp.When) -> str: -2285 matched = "MATCHED" if expression.args["matched"] else "NOT MATCHED" -2286 source = " BY SOURCE" if self.MATCHED_BY_SOURCE and expression.args.get("source") else "" -2287 condition = self.sql(expression, "condition") -2288 condition = f" AND {condition}" if condition else "" -2289 -2290 then_expression = expression.args.get("then") -2291 if isinstance(then_expression, exp.Insert): -2292 then = f"INSERT {self.sql(then_expression, 'this')}" -2293 if "expression" in then_expression.args: -2294 then += f" VALUES {self.sql(then_expression, 'expression')}" -2295 elif isinstance(then_expression, exp.Update): -2296 if isinstance(then_expression.args.get("expressions"), exp.Star): -2297 then = f"UPDATE {self.sql(then_expression, 'expressions')}" -2298 else: -2299 then = f"UPDATE SET {self.expressions(then_expression, flat=True)}" -2300 else: -2301 then = self.sql(then_expression) -2302 return f"WHEN {matched}{source}{condition} THEN {then}" -2303 -2304 def merge_sql(self, expression: exp.Merge) -> str: -2305 this = self.sql(expression, "this") -2306 using = f"USING {self.sql(expression, 'using')}" -2307 on = f"ON {self.sql(expression, 'on')}" -2308 return f"MERGE INTO {this} {using} {on} {self.expressions(expression, sep=' ')}" -2309 -2310 def tochar_sql(self, expression: exp.ToChar) -> str: -2311 if expression.args.get("format"): -2312 self.unsupported("Format argument unsupported for TO_CHAR/TO_VARCHAR function") -2313 -2314 return self.sql(exp.cast(expression.this, "text")) +2224 if not expressions: +2225 return "" +2226 +2227 if flat: +2228 return sep.join(self.sql(e) for e in expressions) +2229 +2230 num_sqls = len(expressions) +2231 +2232 # These are calculated once in case we have the leading_comma / pretty option set, correspondingly +2233 pad = " " * self.pad +2234 stripped_sep = sep.strip() +2235 +2236 result_sqls = [] +2237 for i, e in enumerate(expressions): +2238 sql = self.sql(e, comment=False) +2239 comments = self.maybe_comment("", e) if isinstance(e, exp.Expression) else "" +2240 +2241 if self.pretty: +2242 if self._leading_comma: +2243 result_sqls.append(f"{sep if i > 0 else pad}{prefix}{sql}{comments}") +2244 else: +2245 result_sqls.append( +2246 f"{prefix}{sql}{stripped_sep if i + 1 < num_sqls else ''}{comments}" +2247 ) +2248 else: +2249 result_sqls.append(f"{prefix}{sql}{comments}{sep if i + 1 < num_sqls else ''}") +2250 +2251 result_sql = "\n".join(result_sqls) if self.pretty else "".join(result_sqls) +2252 return self.indent(result_sql, skip_first=False) if indent else result_sql +2253 +2254 def op_expressions(self, op: str, expression: exp.Expression, flat: bool = False) -> str: +2255 flat = flat or isinstance(expression.parent, exp.Properties) +2256 expressions_sql = self.expressions(expression, flat=flat) +2257 if flat: +2258 return f"{op} {expressions_sql}" +2259 return f"{self.seg(op)}{self.sep() if expressions_sql else ''}{expressions_sql}" +2260 +2261 def naked_property(self, expression: exp.Property) -> str: +2262 property_name = exp.Properties.PROPERTY_TO_NAME.get(expression.__class__) +2263 if not property_name: +2264 self.unsupported(f"Unsupported property {expression.__class__.__name__}") +2265 return f"{property_name} {self.sql(expression, 'this')}" +2266 +2267 def set_operation(self, expression: exp.Expression, op: str) -> str: +2268 this = self.sql(expression, "this") +2269 op = self.seg(op) +2270 return self.query_modifiers( +2271 expression, f"{this}{op}{self.sep()}{self.sql(expression, 'expression')}" +2272 ) +2273 +2274 def tag_sql(self, expression: exp.Tag) -> str: +2275 return f"{expression.args.get('prefix')}{self.sql(expression.this)}{expression.args.get('postfix')}" +2276 +2277 def token_sql(self, token_type: TokenType) -> str: +2278 return self.TOKEN_MAPPING.get(token_type, token_type.name) +2279 +2280 def userdefinedfunction_sql(self, expression: exp.UserDefinedFunction) -> str: +2281 this = self.sql(expression, "this") +2282 expressions = self.no_identify(self.expressions, expression) +2283 expressions = ( +2284 self.wrap(expressions) if expression.args.get("wrapped") else f" {expressions}" +2285 ) +2286 return f"{this}{expressions}" +2287 +2288 def joinhint_sql(self, expression: exp.JoinHint) -> str: +2289 this = self.sql(expression, "this") +2290 expressions = self.expressions(expression, flat=True) +2291 return f"{this}({expressions})" +2292 +2293 def kwarg_sql(self, expression: exp.Kwarg) -> str: +2294 return self.binary(expression, "=>") +2295 +2296 def when_sql(self, expression: exp.When) -> str: +2297 matched = "MATCHED" if expression.args["matched"] else "NOT MATCHED" +2298 source = " BY SOURCE" if self.MATCHED_BY_SOURCE and expression.args.get("source") else "" +2299 condition = self.sql(expression, "condition") +2300 condition = f" AND {condition}" if condition else "" +2301 +2302 then_expression = expression.args.get("then") +2303 if isinstance(then_expression, exp.Insert): +2304 then = f"INSERT {self.sql(then_expression, 'this')}" +2305 if "expression" in then_expression.args: +2306 then += f" VALUES {self.sql(then_expression, 'expression')}" +2307 elif isinstance(then_expression, exp.Update): +2308 if isinstance(then_expression.args.get("expressions"), exp.Star): +2309 then = f"UPDATE {self.sql(then_expression, 'expressions')}" +2310 else: +2311 then = f"UPDATE SET {self.expressions(then_expression, flat=True)}" +2312 else: +2313 then = self.sql(then_expression) +2314 return f"WHEN {matched}{source}{condition} THEN {then}" +2315 +2316 def merge_sql(self, expression: exp.Merge) -> str: +2317 this = self.sql(expression, "this") +2318 using = f"USING {self.sql(expression, 'using')}" +2319 on = f"ON {self.sql(expression, 'on')}" +2320 return f"MERGE INTO {this} {using} {on} {self.expressions(expression, sep=' ')}" +2321 +2322 def tochar_sql(self, expression: exp.ToChar) -> str: +2323 if expression.args.get("format"): +2324 self.unsupported("Format argument unsupported for TO_CHAR/TO_VARCHAR function") +2325 +2326 return self.sql(exp.cast(expression.this, "text")) +2327 +2328 def dictproperty_sql(self, expression: exp.DictProperty) -> str: +2329 this = self.sql(expression, "this") +2330 kind = self.sql(expression, "kind") +2331 settings_sql = self.expressions(expression, key="settings", sep=" ") +2332 args = f"({self.sep('')}{settings_sql}{self.seg(')', sep='')}" if settings_sql else "()" +2333 return f"{this}({kind}{args})" +2334 +2335 def dictrange_sql(self, expression: exp.DictRange) -> str: +2336 this = self.sql(expression, "this") +2337 max = self.sql(expression, "max") +2338 min = self.sql(expression, "min") +2339 return f"{this}(MIN {min} MAX {max})" +2340 +2341 def dictsubproperty_sql(self, expression: exp.DictSubProperty) -> str: +2342 return f"{self.sql(expression, 'this')} {self.sql(expression, 'value')}" @@ -5429,6 +5491,8 @@ represents a python time format and the output the target time format Default: "upper"
                  • alias_post_tablesample (bool): if the table alias comes after tablesample Default: False
                  • +
                  • identifiers_can_start_with_digit (bool): if an unquoted identifier can start with digit +Default: False
                  • unsupported_level (ErrorLevel): determines the generator's behavior when it encounters unsupported expressions. Default ErrorLevel.WARN.
                  • null_ordering (str): Indicates the default null ordering method to use if not explicitly set. @@ -5453,83 +5517,85 @@ Default: True
                  • - Generator( time_mapping=None, time_trie=None, pretty=None, quote_start=None, quote_end=None, identifier_start=None, identifier_end=None, bit_start=None, bit_end=None, hex_start=None, hex_end=None, byte_start=None, byte_end=None, raw_start=None, raw_end=None, identify=False, normalize=False, string_escape=None, identifier_escape=None, pad=2, indent=2, index_offset=0, unnest_column_only=False, alias_post_tablesample=False, normalize_functions='upper', unsupported_level=<ErrorLevel.WARN: 'WARN'>, null_ordering=None, max_unsupported=3, leading_comma=False, max_text_width=80, comments=True) + Generator( time_mapping=None, time_trie=None, pretty=None, quote_start=None, quote_end=None, identifier_start=None, identifier_end=None, bit_start=None, bit_end=None, hex_start=None, hex_end=None, byte_start=None, byte_end=None, raw_start=None, raw_end=None, identify=False, normalize=False, string_escape=None, identifier_escape=None, pad=2, indent=2, index_offset=0, unnest_column_only=False, alias_post_tablesample=False, identifiers_can_start_with_digit=False, normalize_functions='upper', unsupported_level=<ErrorLevel.WARN: 'WARN'>, null_ordering=None, max_unsupported=3, leading_comma=False, max_text_width=80, comments=True)
                    -
                    282    def __init__(
                    -283        self,
                    -284        time_mapping=None,
                    -285        time_trie=None,
                    -286        pretty=None,
                    -287        quote_start=None,
                    -288        quote_end=None,
                    -289        identifier_start=None,
                    -290        identifier_end=None,
                    -291        bit_start=None,
                    -292        bit_end=None,
                    -293        hex_start=None,
                    -294        hex_end=None,
                    -295        byte_start=None,
                    -296        byte_end=None,
                    -297        raw_start=None,
                    -298        raw_end=None,
                    -299        identify=False,
                    -300        normalize=False,
                    -301        string_escape=None,
                    -302        identifier_escape=None,
                    -303        pad=2,
                    -304        indent=2,
                    -305        index_offset=0,
                    -306        unnest_column_only=False,
                    -307        alias_post_tablesample=False,
                    -308        normalize_functions="upper",
                    -309        unsupported_level=ErrorLevel.WARN,
                    -310        null_ordering=None,
                    -311        max_unsupported=3,
                    -312        leading_comma=False,
                    -313        max_text_width=80,
                    -314        comments=True,
                    -315    ):
                    -316        import sqlglot
                    -317
                    -318        self.time_mapping = time_mapping or {}
                    -319        self.time_trie = time_trie
                    -320        self.pretty = pretty if pretty is not None else sqlglot.pretty
                    -321        self.quote_start = quote_start or "'"
                    -322        self.quote_end = quote_end or "'"
                    -323        self.identifier_start = identifier_start or '"'
                    -324        self.identifier_end = identifier_end or '"'
                    -325        self.bit_start = bit_start
                    -326        self.bit_end = bit_end
                    -327        self.hex_start = hex_start
                    -328        self.hex_end = hex_end
                    -329        self.byte_start = byte_start
                    -330        self.byte_end = byte_end
                    -331        self.raw_start = raw_start
                    -332        self.raw_end = raw_end
                    -333        self.identify = identify
                    -334        self.normalize = normalize
                    -335        self.string_escape = string_escape or "'"
                    -336        self.identifier_escape = identifier_escape or '"'
                    -337        self.pad = pad
                    -338        self.index_offset = index_offset
                    -339        self.unnest_column_only = unnest_column_only
                    -340        self.alias_post_tablesample = alias_post_tablesample
                    -341        self.normalize_functions = normalize_functions
                    -342        self.unsupported_level = unsupported_level
                    -343        self.unsupported_messages = []
                    -344        self.max_unsupported = max_unsupported
                    -345        self.null_ordering = null_ordering
                    -346        self._indent = indent
                    -347        self._escaped_quote_end = self.string_escape + self.quote_end
                    -348        self._escaped_identifier_end = self.identifier_escape + self.identifier_end
                    -349        self._leading_comma = leading_comma
                    -350        self._max_text_width = max_text_width
                    -351        self._comments = comments
                    -352        self._cache = None
                    +            
                    287    def __init__(
                    +288        self,
                    +289        time_mapping=None,
                    +290        time_trie=None,
                    +291        pretty=None,
                    +292        quote_start=None,
                    +293        quote_end=None,
                    +294        identifier_start=None,
                    +295        identifier_end=None,
                    +296        bit_start=None,
                    +297        bit_end=None,
                    +298        hex_start=None,
                    +299        hex_end=None,
                    +300        byte_start=None,
                    +301        byte_end=None,
                    +302        raw_start=None,
                    +303        raw_end=None,
                    +304        identify=False,
                    +305        normalize=False,
                    +306        string_escape=None,
                    +307        identifier_escape=None,
                    +308        pad=2,
                    +309        indent=2,
                    +310        index_offset=0,
                    +311        unnest_column_only=False,
                    +312        alias_post_tablesample=False,
                    +313        identifiers_can_start_with_digit=False,
                    +314        normalize_functions="upper",
                    +315        unsupported_level=ErrorLevel.WARN,
                    +316        null_ordering=None,
                    +317        max_unsupported=3,
                    +318        leading_comma=False,
                    +319        max_text_width=80,
                    +320        comments=True,
                    +321    ):
                    +322        import sqlglot
                    +323
                    +324        self.time_mapping = time_mapping or {}
                    +325        self.time_trie = time_trie
                    +326        self.pretty = pretty if pretty is not None else sqlglot.pretty
                    +327        self.quote_start = quote_start or "'"
                    +328        self.quote_end = quote_end or "'"
                    +329        self.identifier_start = identifier_start or '"'
                    +330        self.identifier_end = identifier_end or '"'
                    +331        self.bit_start = bit_start
                    +332        self.bit_end = bit_end
                    +333        self.hex_start = hex_start
                    +334        self.hex_end = hex_end
                    +335        self.byte_start = byte_start
                    +336        self.byte_end = byte_end
                    +337        self.raw_start = raw_start
                    +338        self.raw_end = raw_end
                    +339        self.identify = identify
                    +340        self.normalize = normalize
                    +341        self.string_escape = string_escape or "'"
                    +342        self.identifier_escape = identifier_escape or '"'
                    +343        self.pad = pad
                    +344        self.index_offset = index_offset
                    +345        self.unnest_column_only = unnest_column_only
                    +346        self.alias_post_tablesample = alias_post_tablesample
                    +347        self.identifiers_can_start_with_digit = identifiers_can_start_with_digit
                    +348        self.normalize_functions = normalize_functions
                    +349        self.unsupported_level = unsupported_level
                    +350        self.unsupported_messages = []
                    +351        self.max_unsupported = max_unsupported
                    +352        self.null_ordering = null_ordering
                    +353        self._indent = indent
                    +354        self._escaped_quote_end = self.string_escape + self.quote_end
                    +355        self._escaped_identifier_end = self.identifier_escape + self.identifier_end
                    +356        self._leading_comma = leading_comma
                    +357        self._max_text_width = max_text_width
                    +358        self._comments = comments
                    +359        self._cache = None
                     
                    @@ -5547,39 +5613,39 @@ Default: True
                    -
                    354    def generate(
                    -355        self,
                    -356        expression: t.Optional[exp.Expression],
                    -357        cache: t.Optional[t.Dict[int, str]] = None,
                    -358    ) -> str:
                    -359        """
                    -360        Generates a SQL string by interpreting the given syntax tree.
                    -361
                    -362        Args
                    -363            expression: the syntax tree.
                    -364            cache: an optional sql string cache. this leverages the hash of an expression which is slow, so only use this if you set _hash on each node.
                    -365
                    -366        Returns
                    -367            the SQL string.
                    -368        """
                    -369        if cache is not None:
                    -370            self._cache = cache
                    -371        self.unsupported_messages = []
                    -372        sql = self.sql(expression).strip()
                    -373        self._cache = None
                    -374
                    -375        if self.unsupported_level == ErrorLevel.IGNORE:
                    -376            return sql
                    -377
                    -378        if self.unsupported_level == ErrorLevel.WARN:
                    -379            for msg in self.unsupported_messages:
                    -380                logger.warning(msg)
                    -381        elif self.unsupported_level == ErrorLevel.RAISE and self.unsupported_messages:
                    -382            raise UnsupportedError(concat_messages(self.unsupported_messages, self.max_unsupported))
                    -383
                    -384        if self.pretty:
                    -385            sql = sql.replace(self.SENTINEL_LINE_BREAK, "\n")
                    -386        return sql
                    +            
                    361    def generate(
                    +362        self,
                    +363        expression: t.Optional[exp.Expression],
                    +364        cache: t.Optional[t.Dict[int, str]] = None,
                    +365    ) -> str:
                    +366        """
                    +367        Generates a SQL string by interpreting the given syntax tree.
                    +368
                    +369        Args
                    +370            expression: the syntax tree.
                    +371            cache: an optional sql string cache. this leverages the hash of an expression which is slow, so only use this if you set _hash on each node.
                    +372
                    +373        Returns
                    +374            the SQL string.
                    +375        """
                    +376        if cache is not None:
                    +377            self._cache = cache
                    +378        self.unsupported_messages = []
                    +379        sql = self.sql(expression).strip()
                    +380        self._cache = None
                    +381
                    +382        if self.unsupported_level == ErrorLevel.IGNORE:
                    +383            return sql
                    +384
                    +385        if self.unsupported_level == ErrorLevel.WARN:
                    +386            for msg in self.unsupported_messages:
                    +387                logger.warning(msg)
                    +388        elif self.unsupported_level == ErrorLevel.RAISE and self.unsupported_messages:
                    +389            raise UnsupportedError(concat_messages(self.unsupported_messages, self.max_unsupported))
                    +390
                    +391        if self.pretty:
                    +392            sql = sql.replace(self.SENTINEL_LINE_BREAK, "\n")
                    +393        return sql
                     
                    @@ -5606,10 +5672,10 @@ Default: True
                    -
                    388    def unsupported(self, message: str) -> None:
                    -389        if self.unsupported_level == ErrorLevel.IMMEDIATE:
                    -390            raise UnsupportedError(message)
                    -391        self.unsupported_messages.append(message)
                    +            
                    395    def unsupported(self, message: str) -> None:
                    +396        if self.unsupported_level == ErrorLevel.IMMEDIATE:
                    +397            raise UnsupportedError(message)
                    +398        self.unsupported_messages.append(message)
                     
                    @@ -5627,8 +5693,8 @@ Default: True
                    -
                    393    def sep(self, sep: str = " ") -> str:
                    -394        return f"{sep.strip()}\n" if self.pretty else sep
                    +            
                    400    def sep(self, sep: str = " ") -> str:
                    +401        return f"{sep.strip()}\n" if self.pretty else sep
                     
                    @@ -5646,8 +5712,8 @@ Default: True
                    -
                    396    def seg(self, sql: str, sep: str = " ") -> str:
                    -397        return f"{self.sep(sep)}{sql}"
                    +            
                    403    def seg(self, sql: str, sep: str = " ") -> str:
                    +404        return f"{self.sep(sep)}{sql}"
                     
                    @@ -5665,10 +5731,10 @@ Default: True
                    -
                    399    def pad_comment(self, comment: str) -> str:
                    -400        comment = " " + comment if comment[0].strip() else comment
                    -401        comment = comment + " " if comment[-1].strip() else comment
                    -402        return comment
                    +            
                    406    def pad_comment(self, comment: str) -> str:
                    +407        comment = " " + comment if comment[0].strip() else comment
                    +408        comment = comment + " " if comment[-1].strip() else comment
                    +409        return comment
                     
                    @@ -5686,33 +5752,33 @@ Default: True
                    -
                    404    def maybe_comment(
                    -405        self,
                    -406        sql: str,
                    -407        expression: t.Optional[exp.Expression] = None,
                    -408        comments: t.Optional[t.List[str]] = None,
                    -409    ) -> str:
                    -410        comments = ((expression and expression.comments) if comments is None else comments) if self._comments else None  # type: ignore
                    -411
                    -412        if not comments or isinstance(expression, exp.Binary):
                    -413            return sql
                    -414
                    -415        sep = "\n" if self.pretty else " "
                    -416        comments_sql = sep.join(
                    -417            f"/*{self.pad_comment(comment)}*/" for comment in comments if comment
                    -418        )
                    -419
                    -420        if not comments_sql:
                    -421            return sql
                    -422
                    -423        if isinstance(expression, self.WITH_SEPARATED_COMMENTS):
                    -424            return (
                    -425                f"{self.sep()}{comments_sql}{sql}"
                    -426                if sql[0].isspace()
                    -427                else f"{comments_sql}{self.sep()}{sql}"
                    -428            )
                    +            
                    411    def maybe_comment(
                    +412        self,
                    +413        sql: str,
                    +414        expression: t.Optional[exp.Expression] = None,
                    +415        comments: t.Optional[t.List[str]] = None,
                    +416    ) -> str:
                    +417        comments = ((expression and expression.comments) if comments is None else comments) if self._comments else None  # type: ignore
                    +418
                    +419        if not comments or isinstance(expression, exp.Binary):
                    +420            return sql
                    +421
                    +422        sep = "\n" if self.pretty else " "
                    +423        comments_sql = sep.join(
                    +424            f"/*{self.pad_comment(comment)}*/" for comment in comments if comment
                    +425        )
                    +426
                    +427        if not comments_sql:
                    +428            return sql
                     429
                    -430        return f"{sql} {comments_sql}"
                    +430        if isinstance(expression, self.WITH_SEPARATED_COMMENTS):
                    +431            return (
                    +432                f"{self.sep()}{comments_sql}{sql}"
                    +433                if sql[0].isspace()
                    +434                else f"{comments_sql}{self.sep()}{sql}"
                    +435            )
                    +436
                    +437        return f"{sql} {comments_sql}"
                     
                    @@ -5730,15 +5796,15 @@ Default: True
                    -
                    432    def wrap(self, expression: exp.Expression | str) -> str:
                    -433        this_sql = self.indent(
                    -434            self.sql(expression)
                    -435            if isinstance(expression, (exp.Select, exp.Union))
                    -436            else self.sql(expression, "this"),
                    -437            level=1,
                    -438            pad=0,
                    -439        )
                    -440        return f"({self.sep('')}{this_sql}{self.seg(')', sep='')}"
                    +            
                    439    def wrap(self, expression: exp.Expression | str) -> str:
                    +440        this_sql = self.indent(
                    +441            self.sql(expression)
                    +442            if isinstance(expression, (exp.Select, exp.Union))
                    +443            else self.sql(expression, "this"),
                    +444            level=1,
                    +445            pad=0,
                    +446        )
                    +447        return f"({self.sep('')}{this_sql}{self.seg(')', sep='')}"
                     
                    @@ -5756,12 +5822,12 @@ Default: True
                    -
                    442    def no_identify(self, func: t.Callable[..., str], *args, **kwargs) -> str:
                    -443        original = self.identify
                    -444        self.identify = False
                    -445        result = func(*args, **kwargs)
                    -446        self.identify = original
                    -447        return result
                    +            
                    449    def no_identify(self, func: t.Callable[..., str], *args, **kwargs) -> str:
                    +450        original = self.identify
                    +451        self.identify = False
                    +452        result = func(*args, **kwargs)
                    +453        self.identify = original
                    +454        return result
                     
                    @@ -5779,12 +5845,12 @@ Default: True
                    -
                    449    def normalize_func(self, name: str) -> str:
                    -450        if self.normalize_functions == "upper":
                    -451            return name.upper()
                    -452        if self.normalize_functions == "lower":
                    -453            return name.lower()
                    -454        return name
                    +            
                    456    def normalize_func(self, name: str) -> str:
                    +457        if self.normalize_functions == "upper":
                    +458            return name.upper()
                    +459        if self.normalize_functions == "lower":
                    +460            return name.lower()
                    +461        return name
                     
                    @@ -5802,26 +5868,26 @@ Default: True
                    -
                    456    def indent(
                    -457        self,
                    -458        sql: str,
                    -459        level: int = 0,
                    -460        pad: t.Optional[int] = None,
                    -461        skip_first: bool = False,
                    -462        skip_last: bool = False,
                    -463    ) -> str:
                    -464        if not self.pretty:
                    -465            return sql
                    -466
                    -467        pad = self.pad if pad is None else pad
                    -468        lines = sql.split("\n")
                    -469
                    -470        return "\n".join(
                    -471            line
                    -472            if (skip_first and i == 0) or (skip_last and i == len(lines) - 1)
                    -473            else f"{' ' * (level * self._indent + pad)}{line}"
                    -474            for i, line in enumerate(lines)
                    -475        )
                    +            
                    463    def indent(
                    +464        self,
                    +465        sql: str,
                    +466        level: int = 0,
                    +467        pad: t.Optional[int] = None,
                    +468        skip_first: bool = False,
                    +469        skip_last: bool = False,
                    +470    ) -> str:
                    +471        if not self.pretty:
                    +472            return sql
                    +473
                    +474        pad = self.pad if pad is None else pad
                    +475        lines = sql.split("\n")
                    +476
                    +477        return "\n".join(
                    +478            line
                    +479            if (skip_first and i == 0) or (skip_last and i == len(lines) - 1)
                    +480            else f"{' ' * (level * self._indent + pad)}{line}"
                    +481            for i, line in enumerate(lines)
                    +482        )
                     
                    @@ -5839,52 +5905,52 @@ Default: True
                    -
                    477    def sql(
                    -478        self,
                    -479        expression: t.Optional[str | exp.Expression],
                    -480        key: t.Optional[str] = None,
                    -481        comment: bool = True,
                    -482    ) -> str:
                    -483        if not expression:
                    -484            return ""
                    -485
                    -486        if isinstance(expression, str):
                    -487            return expression
                    -488
                    -489        if key:
                    -490            return self.sql(expression.args.get(key))
                    -491
                    -492        if self._cache is not None:
                    -493            expression_id = hash(expression)
                    -494
                    -495            if expression_id in self._cache:
                    -496                return self._cache[expression_id]
                    -497
                    -498        transform = self.TRANSFORMS.get(expression.__class__)
                    -499
                    -500        if callable(transform):
                    -501            sql = transform(self, expression)
                    -502        elif transform:
                    -503            sql = transform
                    -504        elif isinstance(expression, exp.Expression):
                    -505            exp_handler_name = f"{expression.key}_sql"
                    +            
                    484    def sql(
                    +485        self,
                    +486        expression: t.Optional[str | exp.Expression],
                    +487        key: t.Optional[str] = None,
                    +488        comment: bool = True,
                    +489    ) -> str:
                    +490        if not expression:
                    +491            return ""
                    +492
                    +493        if isinstance(expression, str):
                    +494            return expression
                    +495
                    +496        if key:
                    +497            return self.sql(expression.args.get(key))
                    +498
                    +499        if self._cache is not None:
                    +500            expression_id = hash(expression)
                    +501
                    +502            if expression_id in self._cache:
                    +503                return self._cache[expression_id]
                    +504
                    +505        transform = self.TRANSFORMS.get(expression.__class__)
                     506
                    -507            if hasattr(self, exp_handler_name):
                    -508                sql = getattr(self, exp_handler_name)(expression)
                    -509            elif isinstance(expression, exp.Func):
                    -510                sql = self.function_fallback_sql(expression)
                    -511            elif isinstance(expression, exp.Property):
                    -512                sql = self.property_sql(expression)
                    -513            else:
                    -514                raise ValueError(f"Unsupported expression type {expression.__class__.__name__}")
                    -515        else:
                    -516            raise ValueError(f"Expected an Expression. Received {type(expression)}: {expression}")
                    -517
                    -518        sql = self.maybe_comment(sql, expression) if self._comments and comment else sql
                    -519
                    -520        if self._cache is not None:
                    -521            self._cache[expression_id] = sql
                    -522        return sql
                    +507        if callable(transform):
                    +508            sql = transform(self, expression)
                    +509        elif transform:
                    +510            sql = transform
                    +511        elif isinstance(expression, exp.Expression):
                    +512            exp_handler_name = f"{expression.key}_sql"
                    +513
                    +514            if hasattr(self, exp_handler_name):
                    +515                sql = getattr(self, exp_handler_name)(expression)
                    +516            elif isinstance(expression, exp.Func):
                    +517                sql = self.function_fallback_sql(expression)
                    +518            elif isinstance(expression, exp.Property):
                    +519                sql = self.property_sql(expression)
                    +520            else:
                    +521                raise ValueError(f"Unsupported expression type {expression.__class__.__name__}")
                    +522        else:
                    +523            raise ValueError(f"Expected an Expression. Received {type(expression)}: {expression}")
                    +524
                    +525        sql = self.maybe_comment(sql, expression) if self._comments and comment else sql
                    +526
                    +527        if self._cache is not None:
                    +528            self._cache[expression_id] = sql
                    +529        return sql
                     
                    @@ -5902,10 +5968,10 @@ Default: True
                    -
                    524    def uncache_sql(self, expression: exp.Uncache) -> str:
                    -525        table = self.sql(expression, "this")
                    -526        exists_sql = " IF EXISTS" if expression.args.get("exists") else ""
                    -527        return f"UNCACHE TABLE{exists_sql} {table}"
                    +            
                    531    def uncache_sql(self, expression: exp.Uncache) -> str:
                    +532        table = self.sql(expression, "this")
                    +533        exists_sql = " IF EXISTS" if expression.args.get("exists") else ""
                    +534        return f"UNCACHE TABLE{exists_sql} {table}"
                     
                    @@ -5923,15 +5989,15 @@ Default: True
                    -
                    529    def cache_sql(self, expression: exp.Cache) -> str:
                    -530        lazy = " LAZY" if expression.args.get("lazy") else ""
                    -531        table = self.sql(expression, "this")
                    -532        options = expression.args.get("options")
                    -533        options = f" OPTIONS({self.sql(options[0])} = {self.sql(options[1])})" if options else ""
                    -534        sql = self.sql(expression, "expression")
                    -535        sql = f" AS{self.sep()}{sql}" if sql else ""
                    -536        sql = f"CACHE{lazy} TABLE {table}{options}{sql}"
                    -537        return self.prepend_ctes(expression, sql)
                    +            
                    536    def cache_sql(self, expression: exp.Cache) -> str:
                    +537        lazy = " LAZY" if expression.args.get("lazy") else ""
                    +538        table = self.sql(expression, "this")
                    +539        options = expression.args.get("options")
                    +540        options = f" OPTIONS({self.sql(options[0])} = {self.sql(options[1])})" if options else ""
                    +541        sql = self.sql(expression, "expression")
                    +542        sql = f" AS{self.sep()}{sql}" if sql else ""
                    +543        sql = f"CACHE{lazy} TABLE {table}{options}{sql}"
                    +544        return self.prepend_ctes(expression, sql)
                     
                    @@ -5949,11 +6015,11 @@ Default: True
                    -
                    539    def characterset_sql(self, expression: exp.CharacterSet) -> str:
                    -540        if isinstance(expression.parent, exp.Cast):
                    -541            return f"CHAR CHARACTER SET {self.sql(expression, 'this')}"
                    -542        default = "DEFAULT " if expression.args.get("default") else ""
                    -543        return f"{default}CHARACTER SET={self.sql(expression, 'this')}"
                    +            
                    546    def characterset_sql(self, expression: exp.CharacterSet) -> str:
                    +547        if isinstance(expression.parent, exp.Cast):
                    +548            return f"CHAR CHARACTER SET {self.sql(expression, 'this')}"
                    +549        default = "DEFAULT " if expression.args.get("default") else ""
                    +550        return f"{default}CHARACTER SET={self.sql(expression, 'this')}"
                     
                    @@ -5971,17 +6037,17 @@ Default: True
                    -
                    545    def column_sql(self, expression: exp.Column) -> str:
                    -546        return ".".join(
                    -547            self.sql(part)
                    -548            for part in (
                    -549                expression.args.get("catalog"),
                    -550                expression.args.get("db"),
                    -551                expression.args.get("table"),
                    -552                expression.args.get("this"),
                    -553            )
                    -554            if part
                    -555        )
                    +            
                    552    def column_sql(self, expression: exp.Column) -> str:
                    +553        return ".".join(
                    +554            self.sql(part)
                    +555            for part in (
                    +556                expression.args.get("catalog"),
                    +557                expression.args.get("db"),
                    +558                expression.args.get("table"),
                    +559                expression.args.get("this"),
                    +560            )
                    +561            if part
                    +562        )
                     
                    @@ -5999,11 +6065,11 @@ Default: True
                    -
                    557    def columnposition_sql(self, expression: exp.ColumnPosition) -> str:
                    -558        this = self.sql(expression, "this")
                    -559        this = f" {this}" if this else ""
                    -560        position = self.sql(expression, "position")
                    -561        return f"{position}{this}"
                    +            
                    564    def columnposition_sql(self, expression: exp.ColumnPosition) -> str:
                    +565        this = self.sql(expression, "this")
                    +566        this = f" {this}" if this else ""
                    +567        position = self.sql(expression, "position")
                    +568        return f"{position}{this}"
                     
                    @@ -6021,17 +6087,17 @@ Default: True
                    -
                    563    def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str:
                    -564        column = self.sql(expression, "this")
                    -565        kind = self.sql(expression, "kind")
                    -566        constraints = self.expressions(expression, key="constraints", sep=" ", flat=True)
                    -567        exists = "IF NOT EXISTS " if expression.args.get("exists") else ""
                    -568        kind = f"{sep}{kind}" if kind else ""
                    -569        constraints = f" {constraints}" if constraints else ""
                    -570        position = self.sql(expression, "position")
                    -571        position = f" {position}" if position else ""
                    -572
                    -573        return f"{exists}{column}{kind}{constraints}{position}"
                    +            
                    570    def columndef_sql(self, expression: exp.ColumnDef, sep: str = " ") -> str:
                    +571        column = self.sql(expression, "this")
                    +572        kind = self.sql(expression, "kind")
                    +573        constraints = self.expressions(expression, key="constraints", sep=" ", flat=True)
                    +574        exists = "IF NOT EXISTS " if expression.args.get("exists") else ""
                    +575        kind = f"{sep}{kind}" if kind else ""
                    +576        constraints = f" {constraints}" if constraints else ""
                    +577        position = self.sql(expression, "position")
                    +578        position = f" {position}" if position else ""
                    +579
                    +580        return f"{exists}{column}{kind}{constraints}{position}"
                     
                    @@ -6049,10 +6115,10 @@ Default: True
                    -
                    575    def columnconstraint_sql(self, expression: exp.ColumnConstraint) -> str:
                    -576        this = self.sql(expression, "this")
                    -577        kind_sql = self.sql(expression, "kind").strip()
                    -578        return f"CONSTRAINT {this} {kind_sql}" if this else kind_sql
                    +            
                    582    def columnconstraint_sql(self, expression: exp.ColumnConstraint) -> str:
                    +583        this = self.sql(expression, "this")
                    +584        kind_sql = self.sql(expression, "kind").strip()
                    +585        return f"CONSTRAINT {this} {kind_sql}" if this else kind_sql
                     
                    @@ -6070,8 +6136,8 @@ Default: True
                    -
                    580    def autoincrementcolumnconstraint_sql(self, _) -> str:
                    -581        return self.token_sql(TokenType.AUTO_INCREMENT)
                    +            
                    587    def autoincrementcolumnconstraint_sql(self, _) -> str:
                    +588        return self.token_sql(TokenType.AUTO_INCREMENT)
                     
                    @@ -6089,13 +6155,13 @@ Default: True
                    -
                    583    def compresscolumnconstraint_sql(self, expression: exp.CompressColumnConstraint) -> str:
                    -584        if isinstance(expression.this, list):
                    -585            this = self.wrap(self.expressions(expression, key="this", flat=True))
                    -586        else:
                    -587            this = self.sql(expression, "this")
                    -588
                    -589        return f"COMPRESS {this}"
                    +            
                    590    def compresscolumnconstraint_sql(self, expression: exp.CompressColumnConstraint) -> str:
                    +591        if isinstance(expression.this, list):
                    +592            this = self.wrap(self.expressions(expression, key="this", flat=True))
                    +593        else:
                    +594            this = self.sql(expression, "this")
                    +595
                    +596        return f"COMPRESS {this}"
                     
                    @@ -6113,38 +6179,38 @@ Default: True
                    -
                    591    def generatedasidentitycolumnconstraint_sql(
                    -592        self, expression: exp.GeneratedAsIdentityColumnConstraint
                    -593    ) -> str:
                    -594        this = ""
                    -595        if expression.this is not None:
                    -596            on_null = "ON NULL " if expression.args.get("on_null") else ""
                    -597            this = " ALWAYS " if expression.this else f" BY DEFAULT {on_null}"
                    -598
                    -599        start = expression.args.get("start")
                    -600        start = f"START WITH {start}" if start else ""
                    -601        increment = expression.args.get("increment")
                    -602        increment = f" INCREMENT BY {increment}" if increment else ""
                    -603        minvalue = expression.args.get("minvalue")
                    -604        minvalue = f" MINVALUE {minvalue}" if minvalue else ""
                    -605        maxvalue = expression.args.get("maxvalue")
                    -606        maxvalue = f" MAXVALUE {maxvalue}" if maxvalue else ""
                    -607        cycle = expression.args.get("cycle")
                    -608        cycle_sql = ""
                    -609
                    -610        if cycle is not None:
                    -611            cycle_sql = f"{' NO' if not cycle else ''} CYCLE"
                    -612            cycle_sql = cycle_sql.strip() if not start and not increment else cycle_sql
                    -613
                    -614        sequence_opts = ""
                    -615        if start or increment or cycle_sql:
                    -616            sequence_opts = f"{start}{increment}{minvalue}{maxvalue}{cycle_sql}"
                    -617            sequence_opts = f" ({sequence_opts.strip()})"
                    -618
                    -619        expr = self.sql(expression, "expression")
                    -620        expr = f"({expr})" if expr else "IDENTITY"
                    -621
                    -622        return f"GENERATED{this}AS {expr}{sequence_opts}"
                    +            
                    598    def generatedasidentitycolumnconstraint_sql(
                    +599        self, expression: exp.GeneratedAsIdentityColumnConstraint
                    +600    ) -> str:
                    +601        this = ""
                    +602        if expression.this is not None:
                    +603            on_null = "ON NULL " if expression.args.get("on_null") else ""
                    +604            this = " ALWAYS " if expression.this else f" BY DEFAULT {on_null}"
                    +605
                    +606        start = expression.args.get("start")
                    +607        start = f"START WITH {start}" if start else ""
                    +608        increment = expression.args.get("increment")
                    +609        increment = f" INCREMENT BY {increment}" if increment else ""
                    +610        minvalue = expression.args.get("minvalue")
                    +611        minvalue = f" MINVALUE {minvalue}" if minvalue else ""
                    +612        maxvalue = expression.args.get("maxvalue")
                    +613        maxvalue = f" MAXVALUE {maxvalue}" if maxvalue else ""
                    +614        cycle = expression.args.get("cycle")
                    +615        cycle_sql = ""
                    +616
                    +617        if cycle is not None:
                    +618            cycle_sql = f"{' NO' if not cycle else ''} CYCLE"
                    +619            cycle_sql = cycle_sql.strip() if not start and not increment else cycle_sql
                    +620
                    +621        sequence_opts = ""
                    +622        if start or increment or cycle_sql:
                    +623            sequence_opts = f"{start}{increment}{minvalue}{maxvalue}{cycle_sql}"
                    +624            sequence_opts = f" ({sequence_opts.strip()})"
                    +625
                    +626        expr = self.sql(expression, "expression")
                    +627        expr = f"({expr})" if expr else "IDENTITY"
                    +628
                    +629        return f"GENERATED{this}AS {expr}{sequence_opts}"
                     
                    @@ -6162,8 +6228,8 @@ Default: True
                    -
                    624    def notnullcolumnconstraint_sql(self, expression: exp.NotNullColumnConstraint) -> str:
                    -625        return f"{'' if expression.args.get('allow_null') else 'NOT '}NULL"
                    +            
                    631    def notnullcolumnconstraint_sql(self, expression: exp.NotNullColumnConstraint) -> str:
                    +632        return f"{'' if expression.args.get('allow_null') else 'NOT '}NULL"
                     
                    @@ -6181,11 +6247,11 @@ Default: True
                    -
                    627    def primarykeycolumnconstraint_sql(self, expression: exp.PrimaryKeyColumnConstraint) -> str:
                    -628        desc = expression.args.get("desc")
                    -629        if desc is not None:
                    -630            return f"PRIMARY KEY{' DESC' if desc else ' ASC'}"
                    -631        return f"PRIMARY KEY"
                    +            
                    634    def primarykeycolumnconstraint_sql(self, expression: exp.PrimaryKeyColumnConstraint) -> str:
                    +635        desc = expression.args.get("desc")
                    +636        if desc is not None:
                    +637            return f"PRIMARY KEY{' DESC' if desc else ' ASC'}"
                    +638        return f"PRIMARY KEY"
                     
                    @@ -6197,14 +6263,16 @@ Default: True
                    def - uniquecolumnconstraint_sql(self, _) -> str: + uniquecolumnconstraint_sql(self, expression: sqlglot.expressions.UniqueColumnConstraint) -> str:
                    -
                    633    def uniquecolumnconstraint_sql(self, _) -> str:
                    -634        return "UNIQUE"
                    +            
                    640    def uniquecolumnconstraint_sql(self, expression: exp.UniqueColumnConstraint) -> str:
                    +641        this = self.sql(expression, "this")
                    +642        this = f" {this}" if this else ""
                    +643        return f"UNIQUE{this}"
                     
                    @@ -6222,99 +6290,99 @@ Default: True
                    -
                    636    def create_sql(self, expression: exp.Create) -> str:
                    -637        kind = self.sql(expression, "kind").upper()
                    -638        properties = expression.args.get("properties")
                    -639        properties_exp = expression.copy()
                    -640        properties_locs = self.locate_properties(properties) if properties else {}
                    -641        if properties_locs.get(exp.Properties.Location.POST_SCHEMA) or properties_locs.get(
                    -642            exp.Properties.Location.POST_WITH
                    -643        ):
                    -644            properties_exp.set(
                    -645                "properties",
                    -646                exp.Properties(
                    -647                    expressions=[
                    -648                        *properties_locs[exp.Properties.Location.POST_SCHEMA],
                    -649                        *properties_locs[exp.Properties.Location.POST_WITH],
                    -650                    ]
                    -651                ),
                    -652            )
                    -653        if kind == "TABLE" and properties_locs.get(exp.Properties.Location.POST_NAME):
                    -654            this_name = self.sql(expression.this, "this")
                    -655            this_properties = self.properties(
                    -656                exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_NAME]),
                    -657                wrapped=False,
                    -658            )
                    -659            this_schema = f"({self.expressions(expression.this)})"
                    -660            this = f"{this_name}, {this_properties} {this_schema}"
                    -661            properties_sql = ""
                    -662        else:
                    -663            this = self.sql(expression, "this")
                    -664            properties_sql = self.sql(properties_exp, "properties")
                    -665        begin = " BEGIN" if expression.args.get("begin") else ""
                    -666        expression_sql = self.sql(expression, "expression")
                    -667        if expression_sql:
                    -668            expression_sql = f"{begin}{self.sep()}{expression_sql}"
                    -669
                    -670            if self.CREATE_FUNCTION_RETURN_AS or not isinstance(expression.expression, exp.Return):
                    -671                if properties_locs.get(exp.Properties.Location.POST_ALIAS):
                    -672                    postalias_props_sql = self.properties(
                    -673                        exp.Properties(
                    -674                            expressions=properties_locs[exp.Properties.Location.POST_ALIAS]
                    -675                        ),
                    -676                        wrapped=False,
                    -677                    )
                    -678                    expression_sql = f" AS {postalias_props_sql}{expression_sql}"
                    -679                else:
                    -680                    expression_sql = f" AS{expression_sql}"
                    -681
                    -682        postindex_props_sql = ""
                    -683        if properties_locs.get(exp.Properties.Location.POST_INDEX):
                    -684            postindex_props_sql = self.properties(
                    -685                exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_INDEX]),
                    -686                wrapped=False,
                    -687                prefix=" ",
                    -688            )
                    -689
                    -690        indexes = self.expressions(expression, key="indexes", indent=False, sep=" ")
                    -691        indexes = f" {indexes}" if indexes else ""
                    -692        index_sql = indexes + postindex_props_sql
                    -693
                    -694        replace = " OR REPLACE" if expression.args.get("replace") else ""
                    -695        unique = " UNIQUE" if expression.args.get("unique") else ""
                    -696
                    -697        postcreate_props_sql = ""
                    -698        if properties_locs.get(exp.Properties.Location.POST_CREATE):
                    -699            postcreate_props_sql = self.properties(
                    -700                exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_CREATE]),
                    -701                sep=" ",
                    -702                prefix=" ",
                    -703                wrapped=False,
                    -704            )
                    +            
                    645    def create_sql(self, expression: exp.Create) -> str:
                    +646        kind = self.sql(expression, "kind").upper()
                    +647        properties = expression.args.get("properties")
                    +648        properties_exp = expression.copy()
                    +649        properties_locs = self.locate_properties(properties) if properties else {}
                    +650        if properties_locs.get(exp.Properties.Location.POST_SCHEMA) or properties_locs.get(
                    +651            exp.Properties.Location.POST_WITH
                    +652        ):
                    +653            properties_exp.set(
                    +654                "properties",
                    +655                exp.Properties(
                    +656                    expressions=[
                    +657                        *properties_locs[exp.Properties.Location.POST_SCHEMA],
                    +658                        *properties_locs[exp.Properties.Location.POST_WITH],
                    +659                    ]
                    +660                ),
                    +661            )
                    +662        if kind == "TABLE" and properties_locs.get(exp.Properties.Location.POST_NAME):
                    +663            this_name = self.sql(expression.this, "this")
                    +664            this_properties = self.properties(
                    +665                exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_NAME]),
                    +666                wrapped=False,
                    +667            )
                    +668            this_schema = f"({self.expressions(expression.this)})"
                    +669            this = f"{this_name}, {this_properties} {this_schema}"
                    +670            properties_sql = ""
                    +671        else:
                    +672            this = self.sql(expression, "this")
                    +673            properties_sql = self.sql(properties_exp, "properties")
                    +674        begin = " BEGIN" if expression.args.get("begin") else ""
                    +675        expression_sql = self.sql(expression, "expression")
                    +676        if expression_sql:
                    +677            expression_sql = f"{begin}{self.sep()}{expression_sql}"
                    +678
                    +679            if self.CREATE_FUNCTION_RETURN_AS or not isinstance(expression.expression, exp.Return):
                    +680                if properties_locs.get(exp.Properties.Location.POST_ALIAS):
                    +681                    postalias_props_sql = self.properties(
                    +682                        exp.Properties(
                    +683                            expressions=properties_locs[exp.Properties.Location.POST_ALIAS]
                    +684                        ),
                    +685                        wrapped=False,
                    +686                    )
                    +687                    expression_sql = f" AS {postalias_props_sql}{expression_sql}"
                    +688                else:
                    +689                    expression_sql = f" AS{expression_sql}"
                    +690
                    +691        postindex_props_sql = ""
                    +692        if properties_locs.get(exp.Properties.Location.POST_INDEX):
                    +693            postindex_props_sql = self.properties(
                    +694                exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_INDEX]),
                    +695                wrapped=False,
                    +696                prefix=" ",
                    +697            )
                    +698
                    +699        indexes = self.expressions(expression, key="indexes", indent=False, sep=" ")
                    +700        indexes = f" {indexes}" if indexes else ""
                    +701        index_sql = indexes + postindex_props_sql
                    +702
                    +703        replace = " OR REPLACE" if expression.args.get("replace") else ""
                    +704        unique = " UNIQUE" if expression.args.get("unique") else ""
                     705
                    -706        modifiers = "".join((replace, unique, postcreate_props_sql))
                    -707
                    -708        postexpression_props_sql = ""
                    -709        if properties_locs.get(exp.Properties.Location.POST_EXPRESSION):
                    -710            postexpression_props_sql = self.properties(
                    -711                exp.Properties(
                    -712                    expressions=properties_locs[exp.Properties.Location.POST_EXPRESSION]
                    -713                ),
                    -714                sep=" ",
                    -715                prefix=" ",
                    -716                wrapped=False,
                    -717            )
                    -718
                    -719        exists_sql = " IF NOT EXISTS" if expression.args.get("exists") else ""
                    -720        no_schema_binding = (
                    -721            " WITH NO SCHEMA BINDING" if expression.args.get("no_schema_binding") else ""
                    -722        )
                    -723
                    -724        clone = self.sql(expression, "clone")
                    -725        clone = f" {clone}" if clone else ""
                    -726
                    -727        expression_sql = f"CREATE{modifiers} {kind}{exists_sql} {this}{properties_sql}{expression_sql}{postexpression_props_sql}{index_sql}{no_schema_binding}{clone}"
                    -728        return self.prepend_ctes(expression, expression_sql)
                    +706        postcreate_props_sql = ""
                    +707        if properties_locs.get(exp.Properties.Location.POST_CREATE):
                    +708            postcreate_props_sql = self.properties(
                    +709                exp.Properties(expressions=properties_locs[exp.Properties.Location.POST_CREATE]),
                    +710                sep=" ",
                    +711                prefix=" ",
                    +712                wrapped=False,
                    +713            )
                    +714
                    +715        modifiers = "".join((replace, unique, postcreate_props_sql))
                    +716
                    +717        postexpression_props_sql = ""
                    +718        if properties_locs.get(exp.Properties.Location.POST_EXPRESSION):
                    +719            postexpression_props_sql = self.properties(
                    +720                exp.Properties(
                    +721                    expressions=properties_locs[exp.Properties.Location.POST_EXPRESSION]
                    +722                ),
                    +723                sep=" ",
                    +724                prefix=" ",
                    +725                wrapped=False,
                    +726            )
                    +727
                    +728        exists_sql = " IF NOT EXISTS" if expression.args.get("exists") else ""
                    +729        no_schema_binding = (
                    +730            " WITH NO SCHEMA BINDING" if expression.args.get("no_schema_binding") else ""
                    +731        )
                    +732
                    +733        clone = self.sql(expression, "clone")
                    +734        clone = f" {clone}" if clone else ""
                    +735
                    +736        expression_sql = f"CREATE{modifiers} {kind}{exists_sql} {this}{properties_sql}{expression_sql}{postexpression_props_sql}{index_sql}{no_schema_binding}{clone}"
                    +737        return self.prepend_ctes(expression, expression_sql)
                     
                    @@ -6332,16 +6400,16 @@ Default: True
                    -
                    730    def clone_sql(self, expression: exp.Clone) -> str:
                    -731        this = self.sql(expression, "this")
                    -732        when = self.sql(expression, "when")
                    -733
                    -734        if when:
                    -735            kind = self.sql(expression, "kind")
                    -736            expr = self.sql(expression, "expression")
                    -737            return f"CLONE {this} {when} ({kind} => {expr})"
                    -738
                    -739        return f"CLONE {this}"
                    +            
                    739    def clone_sql(self, expression: exp.Clone) -> str:
                    +740        this = self.sql(expression, "this")
                    +741        when = self.sql(expression, "when")
                    +742
                    +743        if when:
                    +744            kind = self.sql(expression, "kind")
                    +745            expr = self.sql(expression, "expression")
                    +746            return f"CLONE {this} {when} ({kind} => {expr})"
                    +747
                    +748        return f"CLONE {this}"
                     
                    @@ -6359,8 +6427,8 @@ Default: True
                    -
                    741    def describe_sql(self, expression: exp.Describe) -> str:
                    -742        return f"DESCRIBE {self.sql(expression, 'this')}"
                    +            
                    750    def describe_sql(self, expression: exp.Describe) -> str:
                    +751        return f"DESCRIBE {self.sql(expression, 'this')}"
                     
                    @@ -6378,11 +6446,11 @@ Default: True
                    -
                    744    def prepend_ctes(self, expression: exp.Expression, sql: str) -> str:
                    -745        with_ = self.sql(expression, "with")
                    -746        if with_:
                    -747            sql = f"{with_}{self.sep()}{sql}"
                    -748        return sql
                    +            
                    753    def prepend_ctes(self, expression: exp.Expression, sql: str) -> str:
                    +754        with_ = self.sql(expression, "with")
                    +755        if with_:
                    +756            sql = f"{with_}{self.sep()}{sql}"
                    +757        return sql
                     
                    @@ -6400,11 +6468,11 @@ Default: True
                    -
                    750    def with_sql(self, expression: exp.With) -> str:
                    -751        sql = self.expressions(expression, flat=True)
                    -752        recursive = "RECURSIVE " if expression.args.get("recursive") else ""
                    -753
                    -754        return f"WITH {recursive}{sql}"
                    +            
                    759    def with_sql(self, expression: exp.With) -> str:
                    +760        sql = self.expressions(expression, flat=True)
                    +761        recursive = "RECURSIVE " if expression.args.get("recursive") else ""
                    +762
                    +763        return f"WITH {recursive}{sql}"
                     
                    @@ -6422,9 +6490,9 @@ Default: True
                    -
                    756    def cte_sql(self, expression: exp.CTE) -> str:
                    -757        alias = self.sql(expression, "alias")
                    -758        return f"{alias} AS {self.wrap(expression)}"
                    +            
                    765    def cte_sql(self, expression: exp.CTE) -> str:
                    +766        alias = self.sql(expression, "alias")
                    +767        return f"{alias} AS {self.wrap(expression)}"
                     
                    @@ -6442,11 +6510,11 @@ Default: True
                    -
                    760    def tablealias_sql(self, expression: exp.TableAlias) -> str:
                    -761        alias = self.sql(expression, "this")
                    -762        columns = self.expressions(expression, key="columns", flat=True)
                    -763        columns = f"({columns})" if columns else ""
                    -764        return f"{alias}{columns}"
                    +            
                    769    def tablealias_sql(self, expression: exp.TableAlias) -> str:
                    +770        alias = self.sql(expression, "this")
                    +771        columns = self.expressions(expression, key="columns", flat=True)
                    +772        columns = f"({columns})" if columns else ""
                    +773        return f"{alias}{columns}"
                     
                    @@ -6464,11 +6532,11 @@ Default: True
                    -
                    766    def bitstring_sql(self, expression: exp.BitString) -> str:
                    -767        this = self.sql(expression, "this")
                    -768        if self.bit_start:
                    -769            return f"{self.bit_start}{this}{self.bit_end}"
                    -770        return f"{int(this, 2)}"
                    +            
                    775    def bitstring_sql(self, expression: exp.BitString) -> str:
                    +776        this = self.sql(expression, "this")
                    +777        if self.bit_start:
                    +778            return f"{self.bit_start}{this}{self.bit_end}"
                    +779        return f"{int(this, 2)}"
                     
                    @@ -6486,11 +6554,11 @@ Default: True
                    -
                    772    def hexstring_sql(self, expression: exp.HexString) -> str:
                    -773        this = self.sql(expression, "this")
                    -774        if self.hex_start:
                    -775            return f"{self.hex_start}{this}{self.hex_end}"
                    -776        return f"{int(this, 16)}"
                    +            
                    781    def hexstring_sql(self, expression: exp.HexString) -> str:
                    +782        this = self.sql(expression, "this")
                    +783        if self.hex_start:
                    +784            return f"{self.hex_start}{this}{self.hex_end}"
                    +785        return f"{int(this, 16)}"
                     
                    @@ -6508,11 +6576,11 @@ Default: True
                    -
                    778    def bytestring_sql(self, expression: exp.ByteString) -> str:
                    -779        this = self.sql(expression, "this")
                    -780        if self.byte_start:
                    -781            return f"{self.byte_start}{this}{self.byte_end}"
                    -782        return this
                    +            
                    787    def bytestring_sql(self, expression: exp.ByteString) -> str:
                    +788        this = self.sql(expression, "this")
                    +789        if self.byte_start:
                    +790            return f"{self.byte_start}{this}{self.byte_end}"
                    +791        return this
                     
                    @@ -6530,10 +6598,10 @@ Default: True
                    -
                    784    def rawstring_sql(self, expression: exp.RawString) -> str:
                    -785        if self.raw_start:
                    -786            return f"{self.raw_start}{expression.name}{self.raw_end}"
                    -787        return self.sql(exp.Literal.string(expression.name.replace("\\", "\\\\")))
                    +            
                    793    def rawstring_sql(self, expression: exp.RawString) -> str:
                    +794        if self.raw_start:
                    +795            return f"{self.raw_start}{expression.name}{self.raw_end}"
                    +796        return self.sql(exp.Literal.string(expression.name.replace("\\", "\\\\")))
                     
                    @@ -6551,11 +6619,11 @@ Default: True
                    -
                    789    def datatypesize_sql(self, expression: exp.DataTypeSize) -> str:
                    -790        this = self.sql(expression, "this")
                    -791        specifier = self.sql(expression, "expression")
                    -792        specifier = f" {specifier}" if specifier else ""
                    -793        return f"{this}{specifier}"
                    +            
                    798    def datatypesize_sql(self, expression: exp.DataTypeSize) -> str:
                    +799        this = self.sql(expression, "this")
                    +800        specifier = self.sql(expression, "expression")
                    +801        specifier = f" {specifier}" if specifier else ""
                    +802        return f"{this}{specifier}"
                     
                    @@ -6573,22 +6641,23 @@ Default: True
                    -
                    795    def datatype_sql(self, expression: exp.DataType) -> str:
                    -796        type_value = expression.this
                    -797        type_sql = self.TYPE_MAPPING.get(type_value, type_value.value)
                    -798        nested = ""
                    -799        interior = self.expressions(expression, flat=True)
                    -800        values = ""
                    -801        if interior:
                    -802            if expression.args.get("nested"):
                    -803                nested = f"{self.STRUCT_DELIMITER[0]}{interior}{self.STRUCT_DELIMITER[1]}"
                    -804                if expression.args.get("values") is not None:
                    -805                    delimiters = ("[", "]") if type_value == exp.DataType.Type.ARRAY else ("(", ")")
                    -806                    values = f"{delimiters[0]}{self.expressions(expression, key='values')}{delimiters[1]}"
                    -807            else:
                    -808                nested = f"({interior})"
                    -809
                    -810        return f"{type_sql}{nested}{values}"
                    +            
                    804    def datatype_sql(self, expression: exp.DataType) -> str:
                    +805        type_value = expression.this
                    +806        type_sql = self.TYPE_MAPPING.get(type_value, type_value.value)
                    +807        nested = ""
                    +808        interior = self.expressions(expression, flat=True)
                    +809        values = ""
                    +810        if interior:
                    +811            if expression.args.get("nested"):
                    +812                nested = f"{self.STRUCT_DELIMITER[0]}{interior}{self.STRUCT_DELIMITER[1]}"
                    +813                if expression.args.get("values") is not None:
                    +814                    delimiters = ("[", "]") if type_value == exp.DataType.Type.ARRAY else ("(", ")")
                    +815                    values = self.expressions(expression, key="values", flat=True)
                    +816                    values = f"{delimiters[0]}{values}{delimiters[1]}"
                    +817            else:
                    +818                nested = f"({interior})"
                    +819
                    +820        return f"{type_sql}{nested}{values}"
                     
                    @@ -6606,11 +6675,11 @@ Default: True
                    -
                    812    def directory_sql(self, expression: exp.Directory) -> str:
                    -813        local = "LOCAL " if expression.args.get("local") else ""
                    -814        row_format = self.sql(expression, "row_format")
                    -815        row_format = f" {row_format}" if row_format else ""
                    -816        return f"{local}DIRECTORY {self.sql(expression, 'this')}{row_format}"
                    +            
                    822    def directory_sql(self, expression: exp.Directory) -> str:
                    +823        local = "LOCAL " if expression.args.get("local") else ""
                    +824        row_format = self.sql(expression, "row_format")
                    +825        row_format = f" {row_format}" if row_format else ""
                    +826        return f"{local}DIRECTORY {self.sql(expression, 'this')}{row_format}"
                     
                    @@ -6628,18 +6697,18 @@ Default: True
                    -
                    818    def delete_sql(self, expression: exp.Delete) -> str:
                    -819        this = self.sql(expression, "this")
                    -820        this = f" FROM {this}" if this else ""
                    -821        using_sql = (
                    -822            f" USING {self.expressions(expression, key='using', sep=', USING ')}"
                    -823            if expression.args.get("using")
                    -824            else ""
                    -825        )
                    -826        where_sql = self.sql(expression, "where")
                    -827        returning = self.sql(expression, "returning")
                    -828        sql = f"DELETE{this}{using_sql}{where_sql}{returning}"
                    -829        return self.prepend_ctes(expression, sql)
                    +            
                    828    def delete_sql(self, expression: exp.Delete) -> str:
                    +829        this = self.sql(expression, "this")
                    +830        this = f" FROM {this}" if this else ""
                    +831        using_sql = (
                    +832            f" USING {self.expressions(expression, key='using', sep=', USING ')}"
                    +833            if expression.args.get("using")
                    +834            else ""
                    +835        )
                    +836        where_sql = self.sql(expression, "where")
                    +837        returning = self.sql(expression, "returning")
                    +838        sql = f"DELETE{this}{using_sql}{where_sql}{returning}"
                    +839        return self.prepend_ctes(expression, sql)
                     
                    @@ -6657,18 +6726,18 @@ Default: True
                    -
                    831    def drop_sql(self, expression: exp.Drop) -> str:
                    -832        this = self.sql(expression, "this")
                    -833        kind = expression.args["kind"]
                    -834        exists_sql = " IF EXISTS " if expression.args.get("exists") else " "
                    -835        temporary = " TEMPORARY" if expression.args.get("temporary") else ""
                    -836        materialized = " MATERIALIZED" if expression.args.get("materialized") else ""
                    -837        cascade = " CASCADE" if expression.args.get("cascade") else ""
                    -838        constraints = " CONSTRAINTS" if expression.args.get("constraints") else ""
                    -839        purge = " PURGE" if expression.args.get("purge") else ""
                    -840        return (
                    -841            f"DROP{temporary}{materialized} {kind}{exists_sql}{this}{cascade}{constraints}{purge}"
                    -842        )
                    +            
                    841    def drop_sql(self, expression: exp.Drop) -> str:
                    +842        this = self.sql(expression, "this")
                    +843        kind = expression.args["kind"]
                    +844        exists_sql = " IF EXISTS " if expression.args.get("exists") else " "
                    +845        temporary = " TEMPORARY" if expression.args.get("temporary") else ""
                    +846        materialized = " MATERIALIZED" if expression.args.get("materialized") else ""
                    +847        cascade = " CASCADE" if expression.args.get("cascade") else ""
                    +848        constraints = " CONSTRAINTS" if expression.args.get("constraints") else ""
                    +849        purge = " PURGE" if expression.args.get("purge") else ""
                    +850        return (
                    +851            f"DROP{temporary}{materialized} {kind}{exists_sql}{this}{cascade}{constraints}{purge}"
                    +852        )
                     
                    @@ -6686,11 +6755,11 @@ Default: True
                    -
                    844    def except_sql(self, expression: exp.Except) -> str:
                    -845        return self.prepend_ctes(
                    -846            expression,
                    -847            self.set_operation(expression, self.except_op(expression)),
                    -848        )
                    +            
                    854    def except_sql(self, expression: exp.Except) -> str:
                    +855        return self.prepend_ctes(
                    +856            expression,
                    +857            self.set_operation(expression, self.except_op(expression)),
                    +858        )
                     
                    @@ -6708,8 +6777,8 @@ Default: True
                    -
                    850    def except_op(self, expression: exp.Except) -> str:
                    -851        return f"EXCEPT{'' if expression.args.get('distinct') else ' ALL'}"
                    +            
                    860    def except_op(self, expression: exp.Except) -> str:
                    +861        return f"EXCEPT{'' if expression.args.get('distinct') else ' ALL'}"
                     
                    @@ -6727,15 +6796,15 @@ Default: True
                    -
                    853    def fetch_sql(self, expression: exp.Fetch) -> str:
                    -854        direction = expression.args.get("direction")
                    -855        direction = f" {direction.upper()}" if direction else ""
                    -856        count = expression.args.get("count")
                    -857        count = f" {count}" if count else ""
                    -858        if expression.args.get("percent"):
                    -859            count = f"{count} PERCENT"
                    -860        with_ties_or_only = "WITH TIES" if expression.args.get("with_ties") else "ONLY"
                    -861        return f"{self.seg('FETCH')}{direction}{count} ROWS {with_ties_or_only}"
                    +            
                    863    def fetch_sql(self, expression: exp.Fetch) -> str:
                    +864        direction = expression.args.get("direction")
                    +865        direction = f" {direction.upper()}" if direction else ""
                    +866        count = expression.args.get("count")
                    +867        count = f" {count}" if count else ""
                    +868        if expression.args.get("percent"):
                    +869            count = f"{count} PERCENT"
                    +870        with_ties_or_only = "WITH TIES" if expression.args.get("with_ties") else "ONLY"
                    +871        return f"{self.seg('FETCH')}{direction}{count} ROWS {with_ties_or_only}"
                     
                    @@ -6753,10 +6822,10 @@ Default: True
                    -
                    863    def filter_sql(self, expression: exp.Filter) -> str:
                    -864        this = self.sql(expression, "this")
                    -865        where = self.sql(expression, "expression")[1:]  # where has a leading space
                    -866        return f"{this} FILTER({where})"
                    +            
                    873    def filter_sql(self, expression: exp.Filter) -> str:
                    +874        this = self.sql(expression, "this")
                    +875        where = self.sql(expression, "expression")[1:]  # where has a leading space
                    +876        return f"{this} FILTER({where})"
                     
                    @@ -6774,10 +6843,10 @@ Default: True
                    -
                    868    def hint_sql(self, expression: exp.Hint) -> str:
                    -869        if self.sql(expression, "this"):
                    -870            self.unsupported("Hints are not supported")
                    -871        return ""
                    +            
                    878    def hint_sql(self, expression: exp.Hint) -> str:
                    +879        if self.sql(expression, "this"):
                    +880            self.unsupported("Hints are not supported")
                    +881        return ""
                     
                    @@ -6795,16 +6864,18 @@ Default: True
                    -
                    873    def index_sql(self, expression: exp.Index) -> str:
                    -874        unique = "UNIQUE " if expression.args.get("unique") else ""
                    -875        primary = "PRIMARY " if expression.args.get("primary") else ""
                    -876        amp = "AMP " if expression.args.get("amp") else ""
                    -877        name = f"{expression.name} " if expression.name else ""
                    -878        table = self.sql(expression, "table")
                    -879        table = f"{self.INDEX_ON} {table} " if table else ""
                    -880        index = "INDEX " if not table else ""
                    -881        columns = self.expressions(expression, key="columns", flat=True)
                    -882        return f"{unique}{primary}{amp}{index}{name}{table}({columns})"
                    +            
                    883    def index_sql(self, expression: exp.Index) -> str:
                    +884        unique = "UNIQUE " if expression.args.get("unique") else ""
                    +885        primary = "PRIMARY " if expression.args.get("primary") else ""
                    +886        amp = "AMP " if expression.args.get("amp") else ""
                    +887        name = f"{expression.name} " if expression.name else ""
                    +888        table = self.sql(expression, "table")
                    +889        table = f"{self.INDEX_ON} {table} " if table else ""
                    +890        index = "INDEX " if not table else ""
                    +891        columns = self.expressions(expression, key="columns", flat=True)
                    +892        partition_by = self.expressions(expression, key="partition_by", flat=True)
                    +893        partition_by = f" PARTITION BY {partition_by}" if partition_by else ""
                    +894        return f"{unique}{primary}{amp}{index}{name}{table}({columns}){partition_by}"
                     
                    @@ -6822,18 +6893,19 @@ Default: True
                    -
                    884    def identifier_sql(self, expression: exp.Identifier) -> str:
                    -885        text = expression.name
                    -886        lower = text.lower()
                    -887        text = lower if self.normalize and not expression.quoted else text
                    -888        text = text.replace(self.identifier_end, self._escaped_identifier_end)
                    -889        if (
                    -890            expression.quoted
                    -891            or should_identify(text, self.identify)
                    -892            or lower in self.RESERVED_KEYWORDS
                    -893        ):
                    -894            text = f"{self.identifier_start}{text}{self.identifier_end}"
                    -895        return text
                    +            
                    896    def identifier_sql(self, expression: exp.Identifier) -> str:
                    +897        text = expression.name
                    +898        lower = text.lower()
                    +899        text = lower if self.normalize and not expression.quoted else text
                    +900        text = text.replace(self.identifier_end, self._escaped_identifier_end)
                    +901        if (
                    +902            expression.quoted
                    +903            or should_identify(text, self.identify)
                    +904            or lower in self.RESERVED_KEYWORDS
                    +905            or (not self.identifiers_can_start_with_digit and text[:1].isdigit())
                    +906        ):
                    +907            text = f"{self.identifier_start}{text}{self.identifier_end}"
                    +908        return text
                     
                    @@ -6851,12 +6923,12 @@ Default: True
                    -
                    897    def inputoutputformat_sql(self, expression: exp.InputOutputFormat) -> str:
                    -898        input_format = self.sql(expression, "input_format")
                    -899        input_format = f"INPUTFORMAT {input_format}" if input_format else ""
                    -900        output_format = self.sql(expression, "output_format")
                    -901        output_format = f"OUTPUTFORMAT {output_format}" if output_format else ""
                    -902        return self.sep().join((input_format, output_format))
                    +            
                    910    def inputoutputformat_sql(self, expression: exp.InputOutputFormat) -> str:
                    +911        input_format = self.sql(expression, "input_format")
                    +912        input_format = f"INPUTFORMAT {input_format}" if input_format else ""
                    +913        output_format = self.sql(expression, "output_format")
                    +914        output_format = f"OUTPUTFORMAT {output_format}" if output_format else ""
                    +915        return self.sep().join((input_format, output_format))
                     
                    @@ -6874,9 +6946,9 @@ Default: True
                    -
                    904    def national_sql(self, expression: exp.National, prefix: str = "N") -> str:
                    -905        string = self.sql(exp.Literal.string(expression.name))
                    -906        return f"{prefix}{string}"
                    +            
                    917    def national_sql(self, expression: exp.National, prefix: str = "N") -> str:
                    +918        string = self.sql(exp.Literal.string(expression.name))
                    +919        return f"{prefix}{string}"
                     
                    @@ -6894,8 +6966,8 @@ Default: True
                    -
                    908    def partition_sql(self, expression: exp.Partition) -> str:
                    -909        return f"PARTITION({self.expressions(expression)})"
                    +            
                    921    def partition_sql(self, expression: exp.Partition) -> str:
                    +922        return f"PARTITION({self.expressions(expression)})"
                     
                    @@ -6913,20 +6985,20 @@ Default: True
                    -
                    911    def properties_sql(self, expression: exp.Properties) -> str:
                    -912        root_properties = []
                    -913        with_properties = []
                    -914
                    -915        for p in expression.expressions:
                    -916            p_loc = self.PROPERTIES_LOCATION[p.__class__]
                    -917            if p_loc == exp.Properties.Location.POST_WITH:
                    -918                with_properties.append(p)
                    -919            elif p_loc == exp.Properties.Location.POST_SCHEMA:
                    -920                root_properties.append(p)
                    -921
                    -922        return self.root_properties(
                    -923            exp.Properties(expressions=root_properties)
                    -924        ) + self.with_properties(exp.Properties(expressions=with_properties))
                    +            
                    924    def properties_sql(self, expression: exp.Properties) -> str:
                    +925        root_properties = []
                    +926        with_properties = []
                    +927
                    +928        for p in expression.expressions:
                    +929            p_loc = self.PROPERTIES_LOCATION[p.__class__]
                    +930            if p_loc == exp.Properties.Location.POST_WITH:
                    +931                with_properties.append(p)
                    +932            elif p_loc == exp.Properties.Location.POST_SCHEMA:
                    +933                root_properties.append(p)
                    +934
                    +935        return self.root_properties(
                    +936            exp.Properties(expressions=root_properties)
                    +937        ) + self.with_properties(exp.Properties(expressions=with_properties))
                     
                    @@ -6944,10 +7016,10 @@ Default: True
                    -
                    926    def root_properties(self, properties: exp.Properties) -> str:
                    -927        if properties.expressions:
                    -928            return self.sep() + self.expressions(properties, indent=False, sep=" ")
                    -929        return ""
                    +            
                    939    def root_properties(self, properties: exp.Properties) -> str:
                    +940        if properties.expressions:
                    +941            return self.sep() + self.expressions(properties, indent=False, sep=" ")
                    +942        return ""
                     
                    @@ -6965,19 +7037,19 @@ Default: True
                    -
                    931    def properties(
                    -932        self,
                    -933        properties: exp.Properties,
                    -934        prefix: str = "",
                    -935        sep: str = ", ",
                    -936        suffix: str = "",
                    -937        wrapped: bool = True,
                    -938    ) -> str:
                    -939        if properties.expressions:
                    -940            expressions = self.expressions(properties, sep=sep, indent=False)
                    -941            expressions = self.wrap(expressions) if wrapped else expressions
                    -942            return f"{prefix}{' ' if prefix and prefix != ' ' else ''}{expressions}{suffix}"
                    -943        return ""
                    +            
                    944    def properties(
                    +945        self,
                    +946        properties: exp.Properties,
                    +947        prefix: str = "",
                    +948        sep: str = ", ",
                    +949        suffix: str = "",
                    +950        wrapped: bool = True,
                    +951    ) -> str:
                    +952        if properties.expressions:
                    +953            expressions = self.expressions(properties, sep=sep, indent=False)
                    +954            expressions = self.wrap(expressions) if wrapped else expressions
                    +955            return f"{prefix}{' ' if prefix and prefix != ' ' else ''}{expressions}{suffix}"
                    +956        return ""
                     
                    @@ -6995,8 +7067,8 @@ Default: True
                    -
                    945    def with_properties(self, properties: exp.Properties) -> str:
                    -946        return self.properties(properties, prefix=self.seg("WITH"))
                    +            
                    958    def with_properties(self, properties: exp.Properties) -> str:
                    +959        return self.properties(properties, prefix=self.seg("WITH"))
                     
                    @@ -7014,33 +7086,33 @@ Default: True
                    -
                    948    def locate_properties(
                    -949        self, properties: exp.Properties
                    -950    ) -> t.Dict[exp.Properties.Location, list[exp.Property]]:
                    -951        properties_locs: t.Dict[exp.Properties.Location, list[exp.Property]] = {
                    -952            key: [] for key in exp.Properties.Location
                    -953        }
                    -954
                    -955        for p in properties.expressions:
                    -956            p_loc = self.PROPERTIES_LOCATION[p.__class__]
                    -957            if p_loc == exp.Properties.Location.POST_NAME:
                    -958                properties_locs[exp.Properties.Location.POST_NAME].append(p)
                    -959            elif p_loc == exp.Properties.Location.POST_INDEX:
                    -960                properties_locs[exp.Properties.Location.POST_INDEX].append(p)
                    -961            elif p_loc == exp.Properties.Location.POST_SCHEMA:
                    -962                properties_locs[exp.Properties.Location.POST_SCHEMA].append(p)
                    -963            elif p_loc == exp.Properties.Location.POST_WITH:
                    -964                properties_locs[exp.Properties.Location.POST_WITH].append(p)
                    -965            elif p_loc == exp.Properties.Location.POST_CREATE:
                    -966                properties_locs[exp.Properties.Location.POST_CREATE].append(p)
                    -967            elif p_loc == exp.Properties.Location.POST_ALIAS:
                    -968                properties_locs[exp.Properties.Location.POST_ALIAS].append(p)
                    -969            elif p_loc == exp.Properties.Location.POST_EXPRESSION:
                    -970                properties_locs[exp.Properties.Location.POST_EXPRESSION].append(p)
                    -971            elif p_loc == exp.Properties.Location.UNSUPPORTED:
                    -972                self.unsupported(f"Unsupported property {p.key}")
                    -973
                    -974        return properties_locs
                    +            
                    961    def locate_properties(
                    +962        self, properties: exp.Properties
                    +963    ) -> t.Dict[exp.Properties.Location, list[exp.Property]]:
                    +964        properties_locs: t.Dict[exp.Properties.Location, list[exp.Property]] = {
                    +965            key: [] for key in exp.Properties.Location
                    +966        }
                    +967
                    +968        for p in properties.expressions:
                    +969            p_loc = self.PROPERTIES_LOCATION[p.__class__]
                    +970            if p_loc == exp.Properties.Location.POST_NAME:
                    +971                properties_locs[exp.Properties.Location.POST_NAME].append(p)
                    +972            elif p_loc == exp.Properties.Location.POST_INDEX:
                    +973                properties_locs[exp.Properties.Location.POST_INDEX].append(p)
                    +974            elif p_loc == exp.Properties.Location.POST_SCHEMA:
                    +975                properties_locs[exp.Properties.Location.POST_SCHEMA].append(p)
                    +976            elif p_loc == exp.Properties.Location.POST_WITH:
                    +977                properties_locs[exp.Properties.Location.POST_WITH].append(p)
                    +978            elif p_loc == exp.Properties.Location.POST_CREATE:
                    +979                properties_locs[exp.Properties.Location.POST_CREATE].append(p)
                    +980            elif p_loc == exp.Properties.Location.POST_ALIAS:
                    +981                properties_locs[exp.Properties.Location.POST_ALIAS].append(p)
                    +982            elif p_loc == exp.Properties.Location.POST_EXPRESSION:
                    +983                properties_locs[exp.Properties.Location.POST_EXPRESSION].append(p)
                    +984            elif p_loc == exp.Properties.Location.UNSUPPORTED:
                    +985                self.unsupported(f"Unsupported property {p.key}")
                    +986
                    +987        return properties_locs
                     
                    @@ -7058,16 +7130,16 @@ Default: True
                    -
                    976    def property_sql(self, expression: exp.Property) -> str:
                    -977        property_cls = expression.__class__
                    -978        if property_cls == exp.Property:
                    -979            return f"{expression.name}={self.sql(expression, 'value')}"
                    -980
                    -981        property_name = exp.Properties.PROPERTY_TO_NAME.get(property_cls)
                    -982        if not property_name:
                    -983            self.unsupported(f"Unsupported property {expression.key}")
                    -984
                    -985        return f"{property_name}={self.sql(expression, 'this')}"
                    +            
                    989    def property_sql(self, expression: exp.Property) -> str:
                    +990        property_cls = expression.__class__
                    +991        if property_cls == exp.Property:
                    +992            return f"{expression.name}={self.sql(expression, 'value')}"
                    +993
                    +994        property_name = exp.Properties.PROPERTY_TO_NAME.get(property_cls)
                    +995        if not property_name:
                    +996            self.unsupported(f"Unsupported property {expression.key}")
                    +997
                    +998        return f"{property_name}={self.sql(expression, 'this')}"
                     
                    @@ -7085,10 +7157,10 @@ Default: True
                    -
                    987    def likeproperty_sql(self, expression: exp.LikeProperty) -> str:
                    -988        options = " ".join(f"{e.name} {self.sql(e, 'value')}" for e in expression.expressions)
                    -989        options = f" {options}" if options else ""
                    -990        return f"LIKE {self.sql(expression, 'this')}{options}"
                    +            
                    1000    def likeproperty_sql(self, expression: exp.LikeProperty) -> str:
                    +1001        options = " ".join(f"{e.name} {self.sql(e, 'value')}" for e in expression.expressions)
                    +1002        options = f" {options}" if options else ""
                    +1003        return f"LIKE {self.sql(expression, 'this')}{options}"
                     
                    @@ -7106,10 +7178,10 @@ Default: True
                    -
                    992    def fallbackproperty_sql(self, expression: exp.FallbackProperty) -> str:
                    -993        no = "NO " if expression.args.get("no") else ""
                    -994        protection = " PROTECTION" if expression.args.get("protection") else ""
                    -995        return f"{no}FALLBACK{protection}"
                    +            
                    1005    def fallbackproperty_sql(self, expression: exp.FallbackProperty) -> str:
                    +1006        no = "NO " if expression.args.get("no") else ""
                    +1007        protection = " PROTECTION" if expression.args.get("protection") else ""
                    +1008        return f"{no}FALLBACK{protection}"
                     
                    @@ -7127,14 +7199,14 @@ Default: True
                    -
                     997    def journalproperty_sql(self, expression: exp.JournalProperty) -> str:
                    - 998        no = "NO " if expression.args.get("no") else ""
                    - 999        local = expression.args.get("local")
                    -1000        local = f"{local} " if local else ""
                    -1001        dual = "DUAL " if expression.args.get("dual") else ""
                    -1002        before = "BEFORE " if expression.args.get("before") else ""
                    -1003        after = "AFTER " if expression.args.get("after") else ""
                    -1004        return f"{no}{local}{dual}{before}{after}JOURNAL"
                    +            
                    1010    def journalproperty_sql(self, expression: exp.JournalProperty) -> str:
                    +1011        no = "NO " if expression.args.get("no") else ""
                    +1012        local = expression.args.get("local")
                    +1013        local = f"{local} " if local else ""
                    +1014        dual = "DUAL " if expression.args.get("dual") else ""
                    +1015        before = "BEFORE " if expression.args.get("before") else ""
                    +1016        after = "AFTER " if expression.args.get("after") else ""
                    +1017        return f"{no}{local}{dual}{before}{after}JOURNAL"
                     
                    @@ -7152,10 +7224,10 @@ Default: True
                    -
                    1006    def freespaceproperty_sql(self, expression: exp.FreespaceProperty) -> str:
                    -1007        freespace = self.sql(expression, "this")
                    -1008        percent = " PERCENT" if expression.args.get("percent") else ""
                    -1009        return f"FREESPACE={freespace}{percent}"
                    +            
                    1019    def freespaceproperty_sql(self, expression: exp.FreespaceProperty) -> str:
                    +1020        freespace = self.sql(expression, "this")
                    +1021        percent = " PERCENT" if expression.args.get("percent") else ""
                    +1022        return f"FREESPACE={freespace}{percent}"
                     
                    @@ -7173,14 +7245,14 @@ Default: True
                    -
                    1011    def checksumproperty_sql(self, expression: exp.ChecksumProperty) -> str:
                    -1012        if expression.args.get("default"):
                    -1013            property = "DEFAULT"
                    -1014        elif expression.args.get("on"):
                    -1015            property = "ON"
                    -1016        else:
                    -1017            property = "OFF"
                    -1018        return f"CHECKSUM={property}"
                    +            
                    1024    def checksumproperty_sql(self, expression: exp.ChecksumProperty) -> str:
                    +1025        if expression.args.get("default"):
                    +1026            property = "DEFAULT"
                    +1027        elif expression.args.get("on"):
                    +1028            property = "ON"
                    +1029        else:
                    +1030            property = "OFF"
                    +1031        return f"CHECKSUM={property}"
                     
                    @@ -7198,14 +7270,14 @@ Default: True
                    -
                    1020    def mergeblockratioproperty_sql(self, expression: exp.MergeBlockRatioProperty) -> str:
                    -1021        if expression.args.get("no"):
                    -1022            return "NO MERGEBLOCKRATIO"
                    -1023        if expression.args.get("default"):
                    -1024            return "DEFAULT MERGEBLOCKRATIO"
                    -1025
                    -1026        percent = " PERCENT" if expression.args.get("percent") else ""
                    -1027        return f"MERGEBLOCKRATIO={self.sql(expression, 'this')}{percent}"
                    +            
                    1033    def mergeblockratioproperty_sql(self, expression: exp.MergeBlockRatioProperty) -> str:
                    +1034        if expression.args.get("no"):
                    +1035            return "NO MERGEBLOCKRATIO"
                    +1036        if expression.args.get("default"):
                    +1037            return "DEFAULT MERGEBLOCKRATIO"
                    +1038
                    +1039        percent = " PERCENT" if expression.args.get("percent") else ""
                    +1040        return f"MERGEBLOCKRATIO={self.sql(expression, 'this')}{percent}"
                     
                    @@ -7223,21 +7295,21 @@ Default: True
                    -
                    1029    def datablocksizeproperty_sql(self, expression: exp.DataBlocksizeProperty) -> str:
                    -1030        default = expression.args.get("default")
                    -1031        minimum = expression.args.get("minimum")
                    -1032        maximum = expression.args.get("maximum")
                    -1033        if default or minimum or maximum:
                    -1034            if default:
                    -1035                prop = "DEFAULT"
                    -1036            elif minimum:
                    -1037                prop = "MINIMUM"
                    -1038            else:
                    -1039                prop = "MAXIMUM"
                    -1040            return f"{prop} DATABLOCKSIZE"
                    -1041        units = expression.args.get("units")
                    -1042        units = f" {units}" if units else ""
                    -1043        return f"DATABLOCKSIZE={self.sql(expression, 'size')}{units}"
                    +            
                    1042    def datablocksizeproperty_sql(self, expression: exp.DataBlocksizeProperty) -> str:
                    +1043        default = expression.args.get("default")
                    +1044        minimum = expression.args.get("minimum")
                    +1045        maximum = expression.args.get("maximum")
                    +1046        if default or minimum or maximum:
                    +1047            if default:
                    +1048                prop = "DEFAULT"
                    +1049            elif minimum:
                    +1050                prop = "MINIMUM"
                    +1051            else:
                    +1052                prop = "MAXIMUM"
                    +1053            return f"{prop} DATABLOCKSIZE"
                    +1054        units = expression.args.get("units")
                    +1055        units = f" {units}" if units else ""
                    +1056        return f"DATABLOCKSIZE={self.sql(expression, 'size')}{units}"
                     
                    @@ -7255,24 +7327,24 @@ Default: True
                    -
                    1045    def blockcompressionproperty_sql(self, expression: exp.BlockCompressionProperty) -> str:
                    -1046        autotemp = expression.args.get("autotemp")
                    -1047        always = expression.args.get("always")
                    -1048        default = expression.args.get("default")
                    -1049        manual = expression.args.get("manual")
                    -1050        never = expression.args.get("never")
                    -1051
                    -1052        if autotemp is not None:
                    -1053            prop = f"AUTOTEMP({self.expressions(autotemp)})"
                    -1054        elif always:
                    -1055            prop = "ALWAYS"
                    -1056        elif default:
                    -1057            prop = "DEFAULT"
                    -1058        elif manual:
                    -1059            prop = "MANUAL"
                    -1060        elif never:
                    -1061            prop = "NEVER"
                    -1062        return f"BLOCKCOMPRESSION={prop}"
                    +            
                    1058    def blockcompressionproperty_sql(self, expression: exp.BlockCompressionProperty) -> str:
                    +1059        autotemp = expression.args.get("autotemp")
                    +1060        always = expression.args.get("always")
                    +1061        default = expression.args.get("default")
                    +1062        manual = expression.args.get("manual")
                    +1063        never = expression.args.get("never")
                    +1064
                    +1065        if autotemp is not None:
                    +1066            prop = f"AUTOTEMP({self.expressions(autotemp)})"
                    +1067        elif always:
                    +1068            prop = "ALWAYS"
                    +1069        elif default:
                    +1070            prop = "DEFAULT"
                    +1071        elif manual:
                    +1072            prop = "MANUAL"
                    +1073        elif never:
                    +1074            prop = "NEVER"
                    +1075        return f"BLOCKCOMPRESSION={prop}"
                     
                    @@ -7290,20 +7362,20 @@ Default: True
                    -
                    1064    def isolatedloadingproperty_sql(self, expression: exp.IsolatedLoadingProperty) -> str:
                    -1065        no = expression.args.get("no")
                    -1066        no = " NO" if no else ""
                    -1067        concurrent = expression.args.get("concurrent")
                    -1068        concurrent = " CONCURRENT" if concurrent else ""
                    -1069
                    -1070        for_ = ""
                    -1071        if expression.args.get("for_all"):
                    -1072            for_ = " FOR ALL"
                    -1073        elif expression.args.get("for_insert"):
                    -1074            for_ = " FOR INSERT"
                    -1075        elif expression.args.get("for_none"):
                    -1076            for_ = " FOR NONE"
                    -1077        return f"WITH{no}{concurrent} ISOLATED LOADING{for_}"
                    +            
                    1077    def isolatedloadingproperty_sql(self, expression: exp.IsolatedLoadingProperty) -> str:
                    +1078        no = expression.args.get("no")
                    +1079        no = " NO" if no else ""
                    +1080        concurrent = expression.args.get("concurrent")
                    +1081        concurrent = " CONCURRENT" if concurrent else ""
                    +1082
                    +1083        for_ = ""
                    +1084        if expression.args.get("for_all"):
                    +1085            for_ = " FOR ALL"
                    +1086        elif expression.args.get("for_insert"):
                    +1087            for_ = " FOR INSERT"
                    +1088        elif expression.args.get("for_none"):
                    +1089            for_ = " FOR NONE"
                    +1090        return f"WITH{no}{concurrent} ISOLATED LOADING{for_}"
                     
                    @@ -7321,13 +7393,13 @@ Default: True
                    -
                    1079    def lockingproperty_sql(self, expression: exp.LockingProperty) -> str:
                    -1080        kind = expression.args.get("kind")
                    -1081        this: str = f" {this}" if expression.this else ""
                    -1082        for_or_in = expression.args.get("for_or_in")
                    -1083        lock_type = expression.args.get("lock_type")
                    -1084        override = " OVERRIDE" if expression.args.get("override") else ""
                    -1085        return f"LOCKING {kind}{this} {for_or_in} {lock_type}{override}"
                    +            
                    1092    def lockingproperty_sql(self, expression: exp.LockingProperty) -> str:
                    +1093        kind = expression.args.get("kind")
                    +1094        this = f" {self.sql(expression, 'this')}" if expression.this else ""
                    +1095        for_or_in = expression.args.get("for_or_in")
                    +1096        lock_type = expression.args.get("lock_type")
                    +1097        override = " OVERRIDE" if expression.args.get("override") else ""
                    +1098        return f"LOCKING {kind}{this} {for_or_in} {lock_type}{override}"
                     
                    @@ -7345,13 +7417,13 @@ Default: True
                    -
                    1087    def withdataproperty_sql(self, expression: exp.WithDataProperty) -> str:
                    -1088        data_sql = f"WITH {'NO ' if expression.args.get('no') else ''}DATA"
                    -1089        statistics = expression.args.get("statistics")
                    -1090        statistics_sql = ""
                    -1091        if statistics is not None:
                    -1092            statistics_sql = f" AND {'NO ' if not statistics else ''}STATISTICS"
                    -1093        return f"{data_sql}{statistics_sql}"
                    +            
                    1100    def withdataproperty_sql(self, expression: exp.WithDataProperty) -> str:
                    +1101        data_sql = f"WITH {'NO ' if expression.args.get('no') else ''}DATA"
                    +1102        statistics = expression.args.get("statistics")
                    +1103        statistics_sql = ""
                    +1104        if statistics is not None:
                    +1105            statistics_sql = f" AND {'NO ' if not statistics else ''}STATISTICS"
                    +1106        return f"{data_sql}{statistics_sql}"
                     
                    @@ -7369,28 +7441,28 @@ Default: True
                    -
                    1095    def insert_sql(self, expression: exp.Insert) -> str:
                    -1096        overwrite = expression.args.get("overwrite")
                    -1097
                    -1098        if isinstance(expression.this, exp.Directory):
                    -1099            this = "OVERWRITE " if overwrite else "INTO "
                    -1100        else:
                    -1101            this = "OVERWRITE TABLE " if overwrite else "INTO "
                    -1102
                    -1103        alternative = expression.args.get("alternative")
                    -1104        alternative = f" OR {alternative} " if alternative else " "
                    -1105        this = f"{this}{self.sql(expression, 'this')}"
                    -1106
                    -1107        exists = " IF EXISTS " if expression.args.get("exists") else " "
                    -1108        partition_sql = (
                    -1109            self.sql(expression, "partition") if expression.args.get("partition") else ""
                    -1110        )
                    -1111        expression_sql = self.sql(expression, "expression")
                    -1112        conflict = self.sql(expression, "conflict")
                    -1113        returning = self.sql(expression, "returning")
                    -1114        sep = self.sep() if partition_sql else ""
                    -1115        sql = f"INSERT{alternative}{this}{exists}{partition_sql}{sep}{expression_sql}{conflict}{returning}"
                    -1116        return self.prepend_ctes(expression, sql)
                    +            
                    1108    def insert_sql(self, expression: exp.Insert) -> str:
                    +1109        overwrite = expression.args.get("overwrite")
                    +1110
                    +1111        if isinstance(expression.this, exp.Directory):
                    +1112            this = "OVERWRITE " if overwrite else "INTO "
                    +1113        else:
                    +1114            this = "OVERWRITE TABLE " if overwrite else "INTO "
                    +1115
                    +1116        alternative = expression.args.get("alternative")
                    +1117        alternative = f" OR {alternative} " if alternative else " "
                    +1118        this = f"{this}{self.sql(expression, 'this')}"
                    +1119
                    +1120        exists = " IF EXISTS " if expression.args.get("exists") else " "
                    +1121        partition_sql = (
                    +1122            self.sql(expression, "partition") if expression.args.get("partition") else ""
                    +1123        )
                    +1124        expression_sql = self.sql(expression, "expression")
                    +1125        conflict = self.sql(expression, "conflict")
                    +1126        returning = self.sql(expression, "returning")
                    +1127        sep = self.sep() if partition_sql else ""
                    +1128        sql = f"INSERT{alternative}{this}{exists}{partition_sql}{sep}{expression_sql}{conflict}{returning}"
                    +1129        return self.prepend_ctes(expression, sql)
                     
                    @@ -7408,11 +7480,11 @@ Default: True
                    -
                    1118    def intersect_sql(self, expression: exp.Intersect) -> str:
                    -1119        return self.prepend_ctes(
                    -1120            expression,
                    -1121            self.set_operation(expression, self.intersect_op(expression)),
                    -1122        )
                    +            
                    1131    def intersect_sql(self, expression: exp.Intersect) -> str:
                    +1132        return self.prepend_ctes(
                    +1133            expression,
                    +1134            self.set_operation(expression, self.intersect_op(expression)),
                    +1135        )
                     
                    @@ -7430,8 +7502,8 @@ Default: True
                    -
                    1124    def intersect_op(self, expression: exp.Intersect) -> str:
                    -1125        return f"INTERSECT{'' if expression.args.get('distinct') else ' ALL'}"
                    +            
                    1137    def intersect_op(self, expression: exp.Intersect) -> str:
                    +1138        return f"INTERSECT{'' if expression.args.get('distinct') else ' ALL'}"
                     
                    @@ -7449,8 +7521,8 @@ Default: True
                    -
                    1127    def introducer_sql(self, expression: exp.Introducer) -> str:
                    -1128        return f"{self.sql(expression, 'this')} {self.sql(expression, 'expression')}"
                    +            
                    1140    def introducer_sql(self, expression: exp.Introducer) -> str:
                    +1141        return f"{self.sql(expression, 'this')} {self.sql(expression, 'expression')}"
                     
                    @@ -7468,8 +7540,8 @@ Default: True
                    -
                    1130    def pseudotype_sql(self, expression: exp.PseudoType) -> str:
                    -1131        return expression.name.upper()
                    +            
                    1143    def pseudotype_sql(self, expression: exp.PseudoType) -> str:
                    +1144        return expression.name.upper()
                     
                    @@ -7487,18 +7559,18 @@ Default: True
                    -
                    1133    def onconflict_sql(self, expression: exp.OnConflict) -> str:
                    -1134        conflict = "ON DUPLICATE KEY" if expression.args.get("duplicate") else "ON CONFLICT"
                    -1135        constraint = self.sql(expression, "constraint")
                    -1136        if constraint:
                    -1137            constraint = f"ON CONSTRAINT {constraint}"
                    -1138        key = self.expressions(expression, key="key", flat=True)
                    -1139        do = "" if expression.args.get("duplicate") else " DO "
                    -1140        nothing = "NOTHING" if expression.args.get("nothing") else ""
                    -1141        expressions = self.expressions(expression, flat=True)
                    -1142        if expressions:
                    -1143            expressions = f"UPDATE SET {expressions}"
                    -1144        return f"{self.seg(conflict)} {constraint}{key}{do}{nothing}{expressions}"
                    +            
                    1146    def onconflict_sql(self, expression: exp.OnConflict) -> str:
                    +1147        conflict = "ON DUPLICATE KEY" if expression.args.get("duplicate") else "ON CONFLICT"
                    +1148        constraint = self.sql(expression, "constraint")
                    +1149        if constraint:
                    +1150            constraint = f"ON CONSTRAINT {constraint}"
                    +1151        key = self.expressions(expression, key="key", flat=True)
                    +1152        do = "" if expression.args.get("duplicate") else " DO "
                    +1153        nothing = "NOTHING" if expression.args.get("nothing") else ""
                    +1154        expressions = self.expressions(expression, flat=True)
                    +1155        if expressions:
                    +1156            expressions = f"UPDATE SET {expressions}"
                    +1157        return f"{self.seg(conflict)} {constraint}{key}{do}{nothing}{expressions}"
                     
                    @@ -7516,8 +7588,8 @@ Default: True
                    -
                    1146    def returning_sql(self, expression: exp.Returning) -> str:
                    -1147        return f"{self.seg('RETURNING')} {self.expressions(expression, flat=True)}"
                    +            
                    1159    def returning_sql(self, expression: exp.Returning) -> str:
                    +1160        return f"{self.seg('RETURNING')} {self.expressions(expression, flat=True)}"
                     
                    @@ -7535,20 +7607,20 @@ Default: True
                    -
                    1149    def rowformatdelimitedproperty_sql(self, expression: exp.RowFormatDelimitedProperty) -> str:
                    -1150        fields = expression.args.get("fields")
                    -1151        fields = f" FIELDS TERMINATED BY {fields}" if fields else ""
                    -1152        escaped = expression.args.get("escaped")
                    -1153        escaped = f" ESCAPED BY {escaped}" if escaped else ""
                    -1154        items = expression.args.get("collection_items")
                    -1155        items = f" COLLECTION ITEMS TERMINATED BY {items}" if items else ""
                    -1156        keys = expression.args.get("map_keys")
                    -1157        keys = f" MAP KEYS TERMINATED BY {keys}" if keys else ""
                    -1158        lines = expression.args.get("lines")
                    -1159        lines = f" LINES TERMINATED BY {lines}" if lines else ""
                    -1160        null = expression.args.get("null")
                    -1161        null = f" NULL DEFINED AS {null}" if null else ""
                    -1162        return f"ROW FORMAT DELIMITED{fields}{escaped}{items}{keys}{lines}{null}"
                    +            
                    1162    def rowformatdelimitedproperty_sql(self, expression: exp.RowFormatDelimitedProperty) -> str:
                    +1163        fields = expression.args.get("fields")
                    +1164        fields = f" FIELDS TERMINATED BY {fields}" if fields else ""
                    +1165        escaped = expression.args.get("escaped")
                    +1166        escaped = f" ESCAPED BY {escaped}" if escaped else ""
                    +1167        items = expression.args.get("collection_items")
                    +1168        items = f" COLLECTION ITEMS TERMINATED BY {items}" if items else ""
                    +1169        keys = expression.args.get("map_keys")
                    +1170        keys = f" MAP KEYS TERMINATED BY {keys}" if keys else ""
                    +1171        lines = expression.args.get("lines")
                    +1172        lines = f" LINES TERMINATED BY {lines}" if lines else ""
                    +1173        null = expression.args.get("null")
                    +1174        null = f" NULL DEFINED AS {null}" if null else ""
                    +1175        return f"ROW FORMAT DELIMITED{fields}{escaped}{items}{keys}{lines}{null}"
                     
                    @@ -7566,29 +7638,29 @@ Default: True
                    -
                    1164    def table_sql(self, expression: exp.Table, sep: str = " AS ") -> str:
                    -1165        table = ".".join(
                    -1166            part
                    -1167            for part in [
                    -1168                self.sql(expression, "catalog"),
                    -1169                self.sql(expression, "db"),
                    -1170                self.sql(expression, "this"),
                    -1171            ]
                    -1172            if part
                    -1173        )
                    -1174
                    -1175        alias = self.sql(expression, "alias")
                    -1176        alias = f"{sep}{alias}" if alias else ""
                    -1177        hints = self.expressions(expression, key="hints", flat=True)
                    -1178        hints = f" WITH ({hints})" if hints and self.TABLE_HINTS else ""
                    -1179        pivots = self.expressions(expression, key="pivots", sep=" ", flat=True)
                    -1180        pivots = f" {pivots}" if pivots else ""
                    -1181        joins = self.expressions(expression, key="joins", sep="")
                    -1182        laterals = self.expressions(expression, key="laterals", sep="")
                    -1183        system_time = expression.args.get("system_time")
                    -1184        system_time = f" {self.sql(expression, 'system_time')}" if system_time else ""
                    -1185
                    -1186        return f"{table}{system_time}{alias}{hints}{pivots}{joins}{laterals}"
                    +            
                    1177    def table_sql(self, expression: exp.Table, sep: str = " AS ") -> str:
                    +1178        table = ".".join(
                    +1179            part
                    +1180            for part in [
                    +1181                self.sql(expression, "catalog"),
                    +1182                self.sql(expression, "db"),
                    +1183                self.sql(expression, "this"),
                    +1184            ]
                    +1185            if part
                    +1186        )
                    +1187
                    +1188        alias = self.sql(expression, "alias")
                    +1189        alias = f"{sep}{alias}" if alias else ""
                    +1190        hints = self.expressions(expression, key="hints", flat=True)
                    +1191        hints = f" WITH ({hints})" if hints and self.TABLE_HINTS else ""
                    +1192        pivots = self.expressions(expression, key="pivots", sep=" ", flat=True)
                    +1193        pivots = f" {pivots}" if pivots else ""
                    +1194        joins = self.expressions(expression, key="joins", sep="")
                    +1195        laterals = self.expressions(expression, key="laterals", sep="")
                    +1196        system_time = expression.args.get("system_time")
                    +1197        system_time = f" {self.sql(expression, 'system_time')}" if system_time else ""
                    +1198
                    +1199        return f"{table}{system_time}{alias}{hints}{pivots}{joins}{laterals}"
                     
                    @@ -7606,35 +7678,35 @@ Default: True
                    -
                    1188    def tablesample_sql(
                    -1189        self, expression: exp.TableSample, seed_prefix: str = "SEED", sep=" AS "
                    -1190    ) -> str:
                    -1191        if self.alias_post_tablesample and expression.this.alias:
                    -1192            table = expression.this.copy()
                    -1193            table.set("alias", None)
                    -1194            this = self.sql(table)
                    -1195            alias = f"{sep}{self.sql(expression.this, 'alias')}"
                    -1196        else:
                    -1197            this = self.sql(expression, "this")
                    -1198            alias = ""
                    -1199        method = self.sql(expression, "method")
                    -1200        method = f"{method.upper()} " if method and self.TABLESAMPLE_WITH_METHOD else ""
                    -1201        numerator = self.sql(expression, "bucket_numerator")
                    -1202        denominator = self.sql(expression, "bucket_denominator")
                    -1203        field = self.sql(expression, "bucket_field")
                    -1204        field = f" ON {field}" if field else ""
                    -1205        bucket = f"BUCKET {numerator} OUT OF {denominator}{field}" if numerator else ""
                    -1206        percent = self.sql(expression, "percent")
                    -1207        percent = f"{percent} PERCENT" if percent else ""
                    -1208        rows = self.sql(expression, "rows")
                    -1209        rows = f"{rows} ROWS" if rows else ""
                    -1210        size = self.sql(expression, "size")
                    -1211        if size and self.TABLESAMPLE_SIZE_IS_PERCENT:
                    -1212            size = f"{size} PERCENT"
                    -1213        seed = self.sql(expression, "seed")
                    -1214        seed = f" {seed_prefix} ({seed})" if seed else ""
                    -1215        kind = expression.args.get("kind", "TABLESAMPLE")
                    -1216        return f"{this} {kind} {method}({bucket}{percent}{rows}{size}){seed}{alias}"
                    +            
                    1201    def tablesample_sql(
                    +1202        self, expression: exp.TableSample, seed_prefix: str = "SEED", sep=" AS "
                    +1203    ) -> str:
                    +1204        if self.alias_post_tablesample and expression.this.alias:
                    +1205            table = expression.this.copy()
                    +1206            table.set("alias", None)
                    +1207            this = self.sql(table)
                    +1208            alias = f"{sep}{self.sql(expression.this, 'alias')}"
                    +1209        else:
                    +1210            this = self.sql(expression, "this")
                    +1211            alias = ""
                    +1212        method = self.sql(expression, "method")
                    +1213        method = f"{method.upper()} " if method and self.TABLESAMPLE_WITH_METHOD else ""
                    +1214        numerator = self.sql(expression, "bucket_numerator")
                    +1215        denominator = self.sql(expression, "bucket_denominator")
                    +1216        field = self.sql(expression, "bucket_field")
                    +1217        field = f" ON {field}" if field else ""
                    +1218        bucket = f"BUCKET {numerator} OUT OF {denominator}{field}" if numerator else ""
                    +1219        percent = self.sql(expression, "percent")
                    +1220        percent = f"{percent} PERCENT" if percent else ""
                    +1221        rows = self.sql(expression, "rows")
                    +1222        rows = f"{rows} ROWS" if rows else ""
                    +1223        size = self.sql(expression, "size")
                    +1224        if size and self.TABLESAMPLE_SIZE_IS_PERCENT:
                    +1225            size = f"{size} PERCENT"
                    +1226        seed = self.sql(expression, "seed")
                    +1227        seed = f" {seed_prefix} ({seed})" if seed else ""
                    +1228        kind = expression.args.get("kind", "TABLESAMPLE")
                    +1229        return f"{this} {kind} {method}({bucket}{percent}{rows}{size}){seed}{alias}"
                     
                    @@ -7652,14 +7724,23 @@ Default: True
                    -
                    1218    def pivot_sql(self, expression: exp.Pivot) -> str:
                    -1219        alias = self.sql(expression, "alias")
                    -1220        alias = f" AS {alias}" if alias else ""
                    -1221        unpivot = expression.args.get("unpivot")
                    -1222        direction = "UNPIVOT" if unpivot else "PIVOT"
                    -1223        expressions = self.expressions(expression, flat=True)
                    -1224        field = self.sql(expression, "field")
                    -1225        return f"{direction}({expressions} FOR {field}){alias}"
                    +            
                    1231    def pivot_sql(self, expression: exp.Pivot) -> str:
                    +1232        expressions = self.expressions(expression, flat=True)
                    +1233
                    +1234        if expression.this:
                    +1235            this = self.sql(expression, "this")
                    +1236            on = f"{self.seg('ON')} {expressions}"
                    +1237            using = self.expressions(expression, key="using", flat=True)
                    +1238            using = f"{self.seg('USING')} {using}" if using else ""
                    +1239            group = self.sql(expression, "group")
                    +1240            return f"PIVOT {this}{on}{using}{group}"
                    +1241
                    +1242        alias = self.sql(expression, "alias")
                    +1243        alias = f" AS {alias}" if alias else ""
                    +1244        unpivot = expression.args.get("unpivot")
                    +1245        direction = "UNPIVOT" if unpivot else "PIVOT"
                    +1246        field = self.sql(expression, "field")
                    +1247        return f"{direction}({expressions} FOR {field}){alias}"
                     
                    @@ -7677,8 +7758,8 @@ Default: True
                    -
                    1227    def tuple_sql(self, expression: exp.Tuple) -> str:
                    -1228        return f"({self.expressions(expression, flat=True)})"
                    +            
                    1249    def tuple_sql(self, expression: exp.Tuple) -> str:
                    +1250        return f"({self.expressions(expression, flat=True)})"
                     
                    @@ -7696,14 +7777,14 @@ Default: True
                    -
                    1230    def update_sql(self, expression: exp.Update) -> str:
                    -1231        this = self.sql(expression, "this")
                    -1232        set_sql = self.expressions(expression, flat=True)
                    -1233        from_sql = self.sql(expression, "from")
                    -1234        where_sql = self.sql(expression, "where")
                    -1235        returning = self.sql(expression, "returning")
                    -1236        sql = f"UPDATE {this} SET {set_sql}{from_sql}{where_sql}{returning}"
                    -1237        return self.prepend_ctes(expression, sql)
                    +            
                    1252    def update_sql(self, expression: exp.Update) -> str:
                    +1253        this = self.sql(expression, "this")
                    +1254        set_sql = self.expressions(expression, flat=True)
                    +1255        from_sql = self.sql(expression, "from")
                    +1256        where_sql = self.sql(expression, "where")
                    +1257        returning = self.sql(expression, "returning")
                    +1258        sql = f"UPDATE {this} SET {set_sql}{from_sql}{where_sql}{returning}"
                    +1259        return self.prepend_ctes(expression, sql)
                     
                    @@ -7721,16 +7802,16 @@ Default: True
                    -
                    1239    def values_sql(self, expression: exp.Values) -> str:
                    -1240        args = self.expressions(expression)
                    -1241        alias = self.sql(expression, "alias")
                    -1242        values = f"VALUES{self.seg('')}{args}"
                    -1243        values = (
                    -1244            f"({values})"
                    -1245            if self.WRAP_DERIVED_VALUES and (alias or isinstance(expression.parent, exp.From))
                    -1246            else values
                    -1247        )
                    -1248        return f"{values} AS {alias}" if alias else values
                    +            
                    1261    def values_sql(self, expression: exp.Values) -> str:
                    +1262        args = self.expressions(expression)
                    +1263        alias = self.sql(expression, "alias")
                    +1264        values = f"VALUES{self.seg('')}{args}"
                    +1265        values = (
                    +1266            f"({values})"
                    +1267            if self.WRAP_DERIVED_VALUES and (alias or isinstance(expression.parent, exp.From))
                    +1268            else values
                    +1269        )
                    +1270        return f"{values} AS {alias}" if alias else values
                     
                    @@ -7748,8 +7829,8 @@ Default: True
                    -
                    1250    def var_sql(self, expression: exp.Var) -> str:
                    -1251        return self.sql(expression, "this")
                    +            
                    1272    def var_sql(self, expression: exp.Var) -> str:
                    +1273        return self.sql(expression, "this")
                     
                    @@ -7767,10 +7848,10 @@ Default: True
                    -
                    1253    def into_sql(self, expression: exp.Into) -> str:
                    -1254        temporary = " TEMPORARY" if expression.args.get("temporary") else ""
                    -1255        unlogged = " UNLOGGED" if expression.args.get("unlogged") else ""
                    -1256        return f"{self.seg('INTO')}{temporary or unlogged} {self.sql(expression, 'this')}"
                    +            
                    1275    def into_sql(self, expression: exp.Into) -> str:
                    +1276        temporary = " TEMPORARY" if expression.args.get("temporary") else ""
                    +1277        unlogged = " UNLOGGED" if expression.args.get("unlogged") else ""
                    +1278        return f"{self.seg('INTO')}{temporary or unlogged} {self.sql(expression, 'this')}"
                     
                    @@ -7788,8 +7869,8 @@ Default: True
                    -
                    1258    def from_sql(self, expression: exp.From) -> str:
                    -1259        return f"{self.seg('FROM')} {self.sql(expression, 'this')}"
                    +            
                    1280    def from_sql(self, expression: exp.From) -> str:
                    +1281        return f"{self.seg('FROM')} {self.sql(expression, 'this')}"
                     
                    @@ -7807,39 +7888,39 @@ Default: True
                    -
                    1261    def group_sql(self, expression: exp.Group) -> str:
                    -1262        group_by = self.op_expressions("GROUP BY", expression)
                    -1263        grouping_sets = self.expressions(expression, key="grouping_sets", indent=False)
                    -1264        grouping_sets = (
                    -1265            f"{self.seg('GROUPING SETS')} {self.wrap(grouping_sets)}" if grouping_sets else ""
                    -1266        )
                    -1267
                    -1268        cube = expression.args.get("cube", [])
                    -1269        if seq_get(cube, 0) is True:
                    -1270            return f"{group_by}{self.seg('WITH CUBE')}"
                    -1271        else:
                    -1272            cube_sql = self.expressions(expression, key="cube", indent=False)
                    -1273            cube_sql = f"{self.seg('CUBE')} {self.wrap(cube_sql)}" if cube_sql else ""
                    -1274
                    -1275        rollup = expression.args.get("rollup", [])
                    -1276        if seq_get(rollup, 0) is True:
                    -1277            return f"{group_by}{self.seg('WITH ROLLUP')}"
                    -1278        else:
                    -1279            rollup_sql = self.expressions(expression, key="rollup", indent=False)
                    -1280            rollup_sql = f"{self.seg('ROLLUP')} {self.wrap(rollup_sql)}" if rollup_sql else ""
                    -1281
                    -1282        groupings = csv(
                    -1283            grouping_sets,
                    -1284            cube_sql,
                    -1285            rollup_sql,
                    -1286            self.seg("WITH TOTALS") if expression.args.get("totals") else "",
                    -1287            sep=self.GROUPINGS_SEP,
                    +            
                    1283    def group_sql(self, expression: exp.Group) -> str:
                    +1284        group_by = self.op_expressions("GROUP BY", expression)
                    +1285        grouping_sets = self.expressions(expression, key="grouping_sets", indent=False)
                    +1286        grouping_sets = (
                    +1287            f"{self.seg('GROUPING SETS')} {self.wrap(grouping_sets)}" if grouping_sets else ""
                     1288        )
                     1289
                    -1290        if expression.args.get("expressions") and groupings:
                    -1291            group_by = f"{group_by}{self.GROUPINGS_SEP}"
                    -1292
                    -1293        return f"{group_by}{groupings}"
                    +1290        cube = expression.args.get("cube", [])
                    +1291        if seq_get(cube, 0) is True:
                    +1292            return f"{group_by}{self.seg('WITH CUBE')}"
                    +1293        else:
                    +1294            cube_sql = self.expressions(expression, key="cube", indent=False)
                    +1295            cube_sql = f"{self.seg('CUBE')} {self.wrap(cube_sql)}" if cube_sql else ""
                    +1296
                    +1297        rollup = expression.args.get("rollup", [])
                    +1298        if seq_get(rollup, 0) is True:
                    +1299            return f"{group_by}{self.seg('WITH ROLLUP')}"
                    +1300        else:
                    +1301            rollup_sql = self.expressions(expression, key="rollup", indent=False)
                    +1302            rollup_sql = f"{self.seg('ROLLUP')} {self.wrap(rollup_sql)}" if rollup_sql else ""
                    +1303
                    +1304        groupings = csv(
                    +1305            grouping_sets,
                    +1306            cube_sql,
                    +1307            rollup_sql,
                    +1308            self.seg("WITH TOTALS") if expression.args.get("totals") else "",
                    +1309            sep=self.GROUPINGS_SEP,
                    +1310        )
                    +1311
                    +1312        if expression.args.get("expressions") and groupings:
                    +1313            group_by = f"{group_by}{self.GROUPINGS_SEP}"
                    +1314
                    +1315        return f"{group_by}{groupings}"
                     
                    @@ -7857,9 +7938,9 @@ Default: True
                    -
                    1295    def having_sql(self, expression: exp.Having) -> str:
                    -1296        this = self.indent(self.sql(expression, "this"))
                    -1297        return f"{self.seg('HAVING')}{self.sep()}{this}"
                    +            
                    1317    def having_sql(self, expression: exp.Having) -> str:
                    +1318        this = self.indent(self.sql(expression, "this"))
                    +1319        return f"{self.seg('HAVING')}{self.sep()}{this}"
                     
                    @@ -7877,38 +7958,38 @@ Default: True
                    -
                    1299    def join_sql(self, expression: exp.Join) -> str:
                    -1300        op_sql = " ".join(
                    -1301            op
                    -1302            for op in (
                    -1303                "NATURAL" if expression.args.get("natural") else None,
                    -1304                "GLOBAL" if expression.args.get("global") else None,
                    -1305                expression.side,
                    -1306                expression.kind,
                    -1307                expression.hint if self.JOIN_HINTS else None,
                    -1308            )
                    -1309            if op
                    -1310        )
                    -1311        on_sql = self.sql(expression, "on")
                    -1312        using = expression.args.get("using")
                    -1313
                    -1314        if not on_sql and using:
                    -1315            on_sql = csv(*(self.sql(column) for column in using))
                    -1316
                    -1317        this_sql = self.sql(expression, "this")
                    -1318
                    -1319        if on_sql:
                    -1320            on_sql = self.indent(on_sql, skip_first=True)
                    -1321            space = self.seg(" " * self.pad) if self.pretty else " "
                    -1322            if using:
                    -1323                on_sql = f"{space}USING ({on_sql})"
                    -1324            else:
                    -1325                on_sql = f"{space}ON {on_sql}"
                    -1326        elif not op_sql:
                    -1327            return f", {this_sql}"
                    -1328
                    -1329        op_sql = f"{op_sql} JOIN" if op_sql else "JOIN"
                    -1330        return f"{self.seg(op_sql)} {this_sql}{on_sql}"
                    +            
                    1321    def join_sql(self, expression: exp.Join) -> str:
                    +1322        op_sql = " ".join(
                    +1323            op
                    +1324            for op in (
                    +1325                expression.method,
                    +1326                "GLOBAL" if expression.args.get("global") else None,
                    +1327                expression.side,
                    +1328                expression.kind,
                    +1329                expression.hint if self.JOIN_HINTS else None,
                    +1330            )
                    +1331            if op
                    +1332        )
                    +1333        on_sql = self.sql(expression, "on")
                    +1334        using = expression.args.get("using")
                    +1335
                    +1336        if not on_sql and using:
                    +1337            on_sql = csv(*(self.sql(column) for column in using))
                    +1338
                    +1339        this_sql = self.sql(expression, "this")
                    +1340
                    +1341        if on_sql:
                    +1342            on_sql = self.indent(on_sql, skip_first=True)
                    +1343            space = self.seg(" " * self.pad) if self.pretty else " "
                    +1344            if using:
                    +1345                on_sql = f"{space}USING ({on_sql})"
                    +1346            else:
                    +1347                on_sql = f"{space}ON {on_sql}"
                    +1348        elif not op_sql:
                    +1349            return f", {this_sql}"
                    +1350
                    +1351        op_sql = f"{op_sql} JOIN" if op_sql else "JOIN"
                    +1352        return f"{self.seg(op_sql)} {this_sql}{on_sql}"
                     
                    @@ -7926,10 +8007,10 @@ Default: True
                    -
                    1332    def lambda_sql(self, expression: exp.Lambda, arrow_sep: str = "->") -> str:
                    -1333        args = self.expressions(expression, flat=True)
                    -1334        args = f"({args})" if len(args.split(",")) > 1 else args
                    -1335        return f"{args} {arrow_sep} {self.sql(expression, 'this')}"
                    +            
                    1354    def lambda_sql(self, expression: exp.Lambda, arrow_sep: str = "->") -> str:
                    +1355        args = self.expressions(expression, flat=True)
                    +1356        args = f"({args})" if len(args.split(",")) > 1 else args
                    +1357        return f"{args} {arrow_sep} {self.sql(expression, 'this')}"
                     
                    @@ -7947,23 +8028,23 @@ Default: True
                    -
                    1337    def lateral_sql(self, expression: exp.Lateral) -> str:
                    -1338        this = self.sql(expression, "this")
                    -1339
                    -1340        if isinstance(expression.this, exp.Subquery):
                    -1341            return f"LATERAL {this}"
                    -1342
                    -1343        if expression.args.get("view"):
                    -1344            alias = expression.args["alias"]
                    -1345            columns = self.expressions(alias, key="columns", flat=True)
                    -1346            table = f" {alias.name}" if alias.name else ""
                    -1347            columns = f" AS {columns}" if columns else ""
                    -1348            op_sql = self.seg(f"LATERAL VIEW{' OUTER' if expression.args.get('outer') else ''}")
                    -1349            return f"{op_sql}{self.sep()}{this}{table}{columns}"
                    -1350
                    -1351        alias = self.sql(expression, "alias")
                    -1352        alias = f" AS {alias}" if alias else ""
                    -1353        return f"LATERAL {this}{alias}"
                    +            
                    1359    def lateral_sql(self, expression: exp.Lateral) -> str:
                    +1360        this = self.sql(expression, "this")
                    +1361
                    +1362        if isinstance(expression.this, exp.Subquery):
                    +1363            return f"LATERAL {this}"
                    +1364
                    +1365        if expression.args.get("view"):
                    +1366            alias = expression.args["alias"]
                    +1367            columns = self.expressions(alias, key="columns", flat=True)
                    +1368            table = f" {alias.name}" if alias.name else ""
                    +1369            columns = f" AS {columns}" if columns else ""
                    +1370            op_sql = self.seg(f"LATERAL VIEW{' OUTER' if expression.args.get('outer') else ''}")
                    +1371            return f"{op_sql}{self.sep()}{this}{table}{columns}"
                    +1372
                    +1373        alias = self.sql(expression, "alias")
                    +1374        alias = f" AS {alias}" if alias else ""
                    +1375        return f"LATERAL {this}{alias}"
                     
                    @@ -7981,9 +8062,9 @@ Default: True
                    -
                    1355    def limit_sql(self, expression: exp.Limit) -> str:
                    -1356        this = self.sql(expression, "this")
                    -1357        return f"{this}{self.seg('LIMIT')} {self.sql(expression, 'expression')}"
                    +            
                    1377    def limit_sql(self, expression: exp.Limit) -> str:
                    +1378        this = self.sql(expression, "this")
                    +1379        return f"{this}{self.seg('LIMIT')} {self.sql(expression, 'expression')}"
                     
                    @@ -8001,9 +8082,9 @@ Default: True
                    -
                    1359    def offset_sql(self, expression: exp.Offset) -> str:
                    -1360        this = self.sql(expression, "this")
                    -1361        return f"{this}{self.seg('OFFSET')} {self.sql(expression, 'expression')}"
                    +            
                    1381    def offset_sql(self, expression: exp.Offset) -> str:
                    +1382        this = self.sql(expression, "this")
                    +1383        return f"{this}{self.seg('OFFSET')} {self.sql(expression, 'expression')}"
                     
                    @@ -8021,15 +8102,15 @@ Default: True
                    -
                    1363    def setitem_sql(self, expression: exp.SetItem) -> str:
                    -1364        kind = self.sql(expression, "kind")
                    -1365        kind = f"{kind} " if kind else ""
                    -1366        this = self.sql(expression, "this")
                    -1367        expressions = self.expressions(expression)
                    -1368        collate = self.sql(expression, "collate")
                    -1369        collate = f" COLLATE {collate}" if collate else ""
                    -1370        global_ = "GLOBAL " if expression.args.get("global") else ""
                    -1371        return f"{global_}{kind}{this}{expressions}{collate}"
                    +            
                    1385    def setitem_sql(self, expression: exp.SetItem) -> str:
                    +1386        kind = self.sql(expression, "kind")
                    +1387        kind = f"{kind} " if kind else ""
                    +1388        this = self.sql(expression, "this")
                    +1389        expressions = self.expressions(expression)
                    +1390        collate = self.sql(expression, "collate")
                    +1391        collate = f" COLLATE {collate}" if collate else ""
                    +1392        global_ = "GLOBAL " if expression.args.get("global") else ""
                    +1393        return f"{global_}{kind}{this}{expressions}{collate}"
                     
                    @@ -8047,11 +8128,11 @@ Default: True
                    -
                    1373    def set_sql(self, expression: exp.Set) -> str:
                    -1374        expressions = (
                    -1375            f" {self.expressions(expression, flat=True)}" if expression.expressions else ""
                    -1376        )
                    -1377        return f"SET{expressions}"
                    +            
                    1395    def set_sql(self, expression: exp.Set) -> str:
                    +1396        expressions = (
                    +1397            f" {self.expressions(expression, flat=True)}" if expression.expressions else ""
                    +1398        )
                    +1399        return f"SET{expressions}"
                     
                    @@ -8069,8 +8150,8 @@ Default: True
                    -
                    1379    def pragma_sql(self, expression: exp.Pragma) -> str:
                    -1380        return f"PRAGMA {self.sql(expression, 'this')}"
                    +            
                    1401    def pragma_sql(self, expression: exp.Pragma) -> str:
                    +1402        return f"PRAGMA {self.sql(expression, 'this')}"
                     
                    @@ -8088,23 +8169,23 @@ Default: True
                    -
                    1382    def lock_sql(self, expression: exp.Lock) -> str:
                    -1383        if not self.LOCKING_READS_SUPPORTED:
                    -1384            self.unsupported("Locking reads using 'FOR UPDATE/SHARE' are not supported")
                    -1385            return ""
                    -1386
                    -1387        lock_type = "FOR UPDATE" if expression.args["update"] else "FOR SHARE"
                    -1388        expressions = self.expressions(expression, flat=True)
                    -1389        expressions = f" OF {expressions}" if expressions else ""
                    -1390        wait = expression.args.get("wait")
                    -1391
                    -1392        if wait is not None:
                    -1393            if isinstance(wait, exp.Literal):
                    -1394                wait = f" WAIT {self.sql(wait)}"
                    -1395            else:
                    -1396                wait = " NOWAIT" if wait else " SKIP LOCKED"
                    -1397
                    -1398        return f"{lock_type}{expressions}{wait or ''}"
                    +            
                    1404    def lock_sql(self, expression: exp.Lock) -> str:
                    +1405        if not self.LOCKING_READS_SUPPORTED:
                    +1406            self.unsupported("Locking reads using 'FOR UPDATE/SHARE' are not supported")
                    +1407            return ""
                    +1408
                    +1409        lock_type = "FOR UPDATE" if expression.args["update"] else "FOR SHARE"
                    +1410        expressions = self.expressions(expression, flat=True)
                    +1411        expressions = f" OF {expressions}" if expressions else ""
                    +1412        wait = expression.args.get("wait")
                    +1413
                    +1414        if wait is not None:
                    +1415            if isinstance(wait, exp.Literal):
                    +1416                wait = f" WAIT {self.sql(wait)}"
                    +1417            else:
                    +1418                wait = " NOWAIT" if wait else " SKIP LOCKED"
                    +1419
                    +1420        return f"{lock_type}{expressions}{wait or ''}"
                     
                    @@ -8122,14 +8203,14 @@ Default: True
                    -
                    1400    def literal_sql(self, expression: exp.Literal) -> str:
                    -1401        text = expression.this or ""
                    -1402        if expression.is_string:
                    -1403            text = text.replace(self.quote_end, self._escaped_quote_end)
                    -1404            if self.pretty:
                    -1405                text = text.replace("\n", self.SENTINEL_LINE_BREAK)
                    -1406            text = f"{self.quote_start}{text}{self.quote_end}"
                    -1407        return text
                    +            
                    1422    def literal_sql(self, expression: exp.Literal) -> str:
                    +1423        text = expression.this or ""
                    +1424        if expression.is_string:
                    +1425            text = text.replace(self.quote_end, self._escaped_quote_end)
                    +1426            if self.pretty:
                    +1427                text = text.replace("\n", self.SENTINEL_LINE_BREAK)
                    +1428            text = f"{self.quote_start}{text}{self.quote_end}"
                    +1429        return text
                     
                    @@ -8147,18 +8228,18 @@ Default: True
                    -
                    1409    def loaddata_sql(self, expression: exp.LoadData) -> str:
                    -1410        local = " LOCAL" if expression.args.get("local") else ""
                    -1411        inpath = f" INPATH {self.sql(expression, 'inpath')}"
                    -1412        overwrite = " OVERWRITE" if expression.args.get("overwrite") else ""
                    -1413        this = f" INTO TABLE {self.sql(expression, 'this')}"
                    -1414        partition = self.sql(expression, "partition")
                    -1415        partition = f" {partition}" if partition else ""
                    -1416        input_format = self.sql(expression, "input_format")
                    -1417        input_format = f" INPUTFORMAT {input_format}" if input_format else ""
                    -1418        serde = self.sql(expression, "serde")
                    -1419        serde = f" SERDE {serde}" if serde else ""
                    -1420        return f"LOAD DATA{local}{inpath}{overwrite}{this}{partition}{input_format}{serde}"
                    +            
                    1431    def loaddata_sql(self, expression: exp.LoadData) -> str:
                    +1432        local = " LOCAL" if expression.args.get("local") else ""
                    +1433        inpath = f" INPATH {self.sql(expression, 'inpath')}"
                    +1434        overwrite = " OVERWRITE" if expression.args.get("overwrite") else ""
                    +1435        this = f" INTO TABLE {self.sql(expression, 'this')}"
                    +1436        partition = self.sql(expression, "partition")
                    +1437        partition = f" {partition}" if partition else ""
                    +1438        input_format = self.sql(expression, "input_format")
                    +1439        input_format = f" INPUTFORMAT {input_format}" if input_format else ""
                    +1440        serde = self.sql(expression, "serde")
                    +1441        serde = f" SERDE {serde}" if serde else ""
                    +1442        return f"LOAD DATA{local}{inpath}{overwrite}{this}{partition}{input_format}{serde}"
                     
                    @@ -8176,8 +8257,8 @@ Default: True
                    -
                    1422    def null_sql(self, *_) -> str:
                    -1423        return "NULL"
                    +            
                    1444    def null_sql(self, *_) -> str:
                    +1445        return "NULL"
                     
                    @@ -8195,8 +8276,8 @@ Default: True
                    -
                    1425    def boolean_sql(self, expression: exp.Boolean) -> str:
                    -1426        return "TRUE" if expression.this else "FALSE"
                    +            
                    1447    def boolean_sql(self, expression: exp.Boolean) -> str:
                    +1448        return "TRUE" if expression.this else "FALSE"
                     
                    @@ -8214,10 +8295,10 @@ Default: True
                    -
                    1428    def order_sql(self, expression: exp.Order, flat: bool = False) -> str:
                    -1429        this = self.sql(expression, "this")
                    -1430        this = f"{this} " if this else this
                    -1431        return self.op_expressions(f"{this}ORDER BY", expression, flat=this or flat)  # type: ignore
                    +            
                    1450    def order_sql(self, expression: exp.Order, flat: bool = False) -> str:
                    +1451        this = self.sql(expression, "this")
                    +1452        this = f"{this} " if this else this
                    +1453        return self.op_expressions(f"{this}ORDER BY", expression, flat=this or flat)  # type: ignore
                     
                    @@ -8235,8 +8316,8 @@ Default: True
                    -
                    1433    def cluster_sql(self, expression: exp.Cluster) -> str:
                    -1434        return self.op_expressions("CLUSTER BY", expression)
                    +            
                    1455    def cluster_sql(self, expression: exp.Cluster) -> str:
                    +1456        return self.op_expressions("CLUSTER BY", expression)
                     
                    @@ -8254,8 +8335,8 @@ Default: True
                    -
                    1436    def distribute_sql(self, expression: exp.Distribute) -> str:
                    -1437        return self.op_expressions("DISTRIBUTE BY", expression)
                    +            
                    1458    def distribute_sql(self, expression: exp.Distribute) -> str:
                    +1459        return self.op_expressions("DISTRIBUTE BY", expression)
                     
                    @@ -8273,8 +8354,8 @@ Default: True
                    -
                    1439    def sort_sql(self, expression: exp.Sort) -> str:
                    -1440        return self.op_expressions("SORT BY", expression)
                    +            
                    1461    def sort_sql(self, expression: exp.Sort) -> str:
                    +1462        return self.op_expressions("SORT BY", expression)
                     
                    @@ -8292,36 +8373,36 @@ Default: True
                    -
                    1442    def ordered_sql(self, expression: exp.Ordered) -> str:
                    -1443        desc = expression.args.get("desc")
                    -1444        asc = not desc
                    -1445
                    -1446        nulls_first = expression.args.get("nulls_first")
                    -1447        nulls_last = not nulls_first
                    -1448        nulls_are_large = self.null_ordering == "nulls_are_large"
                    -1449        nulls_are_small = self.null_ordering == "nulls_are_small"
                    -1450        nulls_are_last = self.null_ordering == "nulls_are_last"
                    -1451
                    -1452        sort_order = " DESC" if desc else ""
                    -1453        nulls_sort_change = ""
                    -1454        if nulls_first and (
                    -1455            (asc and nulls_are_large) or (desc and nulls_are_small) or nulls_are_last
                    -1456        ):
                    -1457            nulls_sort_change = " NULLS FIRST"
                    -1458        elif (
                    -1459            nulls_last
                    -1460            and ((asc and nulls_are_small) or (desc and nulls_are_large))
                    -1461            and not nulls_are_last
                    -1462        ):
                    -1463            nulls_sort_change = " NULLS LAST"
                    -1464
                    -1465        if nulls_sort_change and not self.NULL_ORDERING_SUPPORTED:
                    -1466            self.unsupported(
                    -1467                "Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect"
                    -1468            )
                    -1469            nulls_sort_change = ""
                    -1470
                    -1471        return f"{self.sql(expression, 'this')}{sort_order}{nulls_sort_change}"
                    +            
                    1464    def ordered_sql(self, expression: exp.Ordered) -> str:
                    +1465        desc = expression.args.get("desc")
                    +1466        asc = not desc
                    +1467
                    +1468        nulls_first = expression.args.get("nulls_first")
                    +1469        nulls_last = not nulls_first
                    +1470        nulls_are_large = self.null_ordering == "nulls_are_large"
                    +1471        nulls_are_small = self.null_ordering == "nulls_are_small"
                    +1472        nulls_are_last = self.null_ordering == "nulls_are_last"
                    +1473
                    +1474        sort_order = " DESC" if desc else ""
                    +1475        nulls_sort_change = ""
                    +1476        if nulls_first and (
                    +1477            (asc and nulls_are_large) or (desc and nulls_are_small) or nulls_are_last
                    +1478        ):
                    +1479            nulls_sort_change = " NULLS FIRST"
                    +1480        elif (
                    +1481            nulls_last
                    +1482            and ((asc and nulls_are_small) or (desc and nulls_are_large))
                    +1483            and not nulls_are_last
                    +1484        ):
                    +1485            nulls_sort_change = " NULLS LAST"
                    +1486
                    +1487        if nulls_sort_change and not self.NULL_ORDERING_SUPPORTED:
                    +1488            self.unsupported(
                    +1489                "Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect"
                    +1490            )
                    +1491            nulls_sort_change = ""
                    +1492
                    +1493        return f"{self.sql(expression, 'this')}{sort_order}{nulls_sort_change}"
                     
                    @@ -8339,37 +8420,37 @@ Default: True
                    -
                    1473    def matchrecognize_sql(self, expression: exp.MatchRecognize) -> str:
                    -1474        partition = self.partition_by_sql(expression)
                    -1475        order = self.sql(expression, "order")
                    -1476        measures = self.expressions(expression, key="measures")
                    -1477        measures = self.seg(f"MEASURES{self.seg(measures)}") if measures else ""
                    -1478        rows = self.sql(expression, "rows")
                    -1479        rows = self.seg(rows) if rows else ""
                    -1480        after = self.sql(expression, "after")
                    -1481        after = self.seg(after) if after else ""
                    -1482        pattern = self.sql(expression, "pattern")
                    -1483        pattern = self.seg(f"PATTERN ({pattern})") if pattern else ""
                    -1484        definition_sqls = [
                    -1485            f"{self.sql(definition, 'alias')} AS {self.sql(definition, 'this')}"
                    -1486            for definition in expression.args.get("define", [])
                    -1487        ]
                    -1488        definitions = self.expressions(sqls=definition_sqls)
                    -1489        define = self.seg(f"DEFINE{self.seg(definitions)}") if definitions else ""
                    -1490        body = "".join(
                    -1491            (
                    -1492                partition,
                    -1493                order,
                    -1494                measures,
                    -1495                rows,
                    -1496                after,
                    -1497                pattern,
                    -1498                define,
                    -1499            )
                    -1500        )
                    -1501        alias = self.sql(expression, "alias")
                    -1502        alias = f" {alias}" if alias else ""
                    -1503        return f"{self.seg('MATCH_RECOGNIZE')} {self.wrap(body)}{alias}"
                    +            
                    1495    def matchrecognize_sql(self, expression: exp.MatchRecognize) -> str:
                    +1496        partition = self.partition_by_sql(expression)
                    +1497        order = self.sql(expression, "order")
                    +1498        measures = self.expressions(expression, key="measures")
                    +1499        measures = self.seg(f"MEASURES{self.seg(measures)}") if measures else ""
                    +1500        rows = self.sql(expression, "rows")
                    +1501        rows = self.seg(rows) if rows else ""
                    +1502        after = self.sql(expression, "after")
                    +1503        after = self.seg(after) if after else ""
                    +1504        pattern = self.sql(expression, "pattern")
                    +1505        pattern = self.seg(f"PATTERN ({pattern})") if pattern else ""
                    +1506        definition_sqls = [
                    +1507            f"{self.sql(definition, 'alias')} AS {self.sql(definition, 'this')}"
                    +1508            for definition in expression.args.get("define", [])
                    +1509        ]
                    +1510        definitions = self.expressions(sqls=definition_sqls)
                    +1511        define = self.seg(f"DEFINE{self.seg(definitions)}") if definitions else ""
                    +1512        body = "".join(
                    +1513            (
                    +1514                partition,
                    +1515                order,
                    +1516                measures,
                    +1517                rows,
                    +1518                after,
                    +1519                pattern,
                    +1520                define,
                    +1521            )
                    +1522        )
                    +1523        alias = self.sql(expression, "alias")
                    +1524        alias = f" {alias}" if alias else ""
                    +1525        return f"{self.seg('MATCH_RECOGNIZE')} {self.wrap(body)}{alias}"
                     
                    @@ -8387,31 +8468,31 @@ Default: True
                    -
                    1505    def query_modifiers(self, expression: exp.Expression, *sqls: str) -> str:
                    -1506        limit = expression.args.get("limit")
                    -1507
                    -1508        if self.LIMIT_FETCH == "LIMIT" and isinstance(limit, exp.Fetch):
                    -1509            limit = exp.Limit(expression=limit.args.get("count"))
                    -1510        elif self.LIMIT_FETCH == "FETCH" and isinstance(limit, exp.Limit):
                    -1511            limit = exp.Fetch(direction="FIRST", count=limit.expression)
                    -1512
                    -1513        fetch = isinstance(limit, exp.Fetch)
                    -1514
                    -1515        return csv(
                    -1516            *sqls,
                    -1517            *[self.sql(join) for join in expression.args.get("joins") or []],
                    -1518            self.sql(expression, "match"),
                    -1519            *[self.sql(lateral) for lateral in expression.args.get("laterals") or []],
                    -1520            self.sql(expression, "where"),
                    -1521            self.sql(expression, "group"),
                    -1522            self.sql(expression, "having"),
                    -1523            *self.after_having_modifiers(expression),
                    -1524            self.sql(expression, "order"),
                    -1525            self.sql(expression, "offset") if fetch else self.sql(limit),
                    -1526            self.sql(limit) if fetch else self.sql(expression, "offset"),
                    -1527            *self.after_limit_modifiers(expression),
                    -1528            sep="",
                    -1529        )
                    +            
                    1527    def query_modifiers(self, expression: exp.Expression, *sqls: str) -> str:
                    +1528        limit = expression.args.get("limit")
                    +1529
                    +1530        if self.LIMIT_FETCH == "LIMIT" and isinstance(limit, exp.Fetch):
                    +1531            limit = exp.Limit(expression=limit.args.get("count"))
                    +1532        elif self.LIMIT_FETCH == "FETCH" and isinstance(limit, exp.Limit):
                    +1533            limit = exp.Fetch(direction="FIRST", count=limit.expression)
                    +1534
                    +1535        fetch = isinstance(limit, exp.Fetch)
                    +1536
                    +1537        return csv(
                    +1538            *sqls,
                    +1539            *[self.sql(join) for join in expression.args.get("joins") or []],
                    +1540            self.sql(expression, "match"),
                    +1541            *[self.sql(lateral) for lateral in expression.args.get("laterals") or []],
                    +1542            self.sql(expression, "where"),
                    +1543            self.sql(expression, "group"),
                    +1544            self.sql(expression, "having"),
                    +1545            *self.after_having_modifiers(expression),
                    +1546            self.sql(expression, "order"),
                    +1547            self.sql(expression, "offset") if fetch else self.sql(limit),
                    +1548            self.sql(limit) if fetch else self.sql(expression, "offset"),
                    +1549            *self.after_limit_modifiers(expression),
                    +1550            sep="",
                    +1551        )
                     
                    @@ -8429,13 +8510,13 @@ Default: True
                    -
                    1531    def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]:
                    -1532        return [
                    -1533            self.sql(expression, "qualify"),
                    -1534            self.seg("WINDOW ") + self.expressions(expression, key="windows", flat=True)
                    -1535            if expression.args.get("windows")
                    -1536            else "",
                    -1537        ]
                    +            
                    1553    def after_having_modifiers(self, expression: exp.Expression) -> t.List[str]:
                    +1554        return [
                    +1555            self.sql(expression, "qualify"),
                    +1556            self.seg("WINDOW ") + self.expressions(expression, key="windows", flat=True)
                    +1557            if expression.args.get("windows")
                    +1558            else "",
                    +1559        ]
                     
                    @@ -8453,10 +8534,10 @@ Default: True
                    -
                    1539    def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]:
                    -1540        locks = self.expressions(expression, key="locks", sep=" ")
                    -1541        locks = f" {locks}" if locks else ""
                    -1542        return [locks, self.sql(expression, "sample")]
                    +            
                    1561    def after_limit_modifiers(self, expression: exp.Expression) -> t.List[str]:
                    +1562        locks = self.expressions(expression, key="locks", sep=" ")
                    +1563        locks = f" {locks}" if locks else ""
                    +1564        return [locks, self.sql(expression, "sample")]
                     
                    @@ -8474,21 +8555,21 @@ Default: True
                    -
                    1544    def select_sql(self, expression: exp.Select) -> str:
                    -1545        hint = self.sql(expression, "hint")
                    -1546        distinct = self.sql(expression, "distinct")
                    -1547        distinct = f" {distinct}" if distinct else ""
                    -1548        kind = expression.args.get("kind")
                    -1549        kind = f" AS {kind}" if kind else ""
                    -1550        expressions = self.expressions(expression)
                    -1551        expressions = f"{self.sep()}{expressions}" if expressions else expressions
                    -1552        sql = self.query_modifiers(
                    -1553            expression,
                    -1554            f"SELECT{hint}{distinct}{kind}{expressions}",
                    -1555            self.sql(expression, "into", comment=False),
                    -1556            self.sql(expression, "from", comment=False),
                    -1557        )
                    -1558        return self.prepend_ctes(expression, sql)
                    +            
                    1566    def select_sql(self, expression: exp.Select) -> str:
                    +1567        hint = self.sql(expression, "hint")
                    +1568        distinct = self.sql(expression, "distinct")
                    +1569        distinct = f" {distinct}" if distinct else ""
                    +1570        kind = expression.args.get("kind")
                    +1571        kind = f" AS {kind}" if kind else ""
                    +1572        expressions = self.expressions(expression)
                    +1573        expressions = f"{self.sep()}{expressions}" if expressions else expressions
                    +1574        sql = self.query_modifiers(
                    +1575            expression,
                    +1576            f"SELECT{hint}{distinct}{kind}{expressions}",
                    +1577            self.sql(expression, "into", comment=False),
                    +1578            self.sql(expression, "from", comment=False),
                    +1579        )
                    +1580        return self.prepend_ctes(expression, sql)
                     
                    @@ -8506,11 +8587,11 @@ Default: True
                    -
                    1560    def schema_sql(self, expression: exp.Schema) -> str:
                    -1561        this = self.sql(expression, "this")
                    -1562        this = f"{this} " if this else ""
                    -1563        sql = f"({self.sep('')}{self.expressions(expression)}{self.seg(')', sep='')}"
                    -1564        return f"{this}{sql}"
                    +            
                    1582    def schema_sql(self, expression: exp.Schema) -> str:
                    +1583        this = self.sql(expression, "this")
                    +1584        this = f"{this} " if this else ""
                    +1585        sql = f"({self.sep('')}{self.expressions(expression)}{self.seg(')', sep='')}"
                    +1586        return f"{this}{sql}"
                     
                    @@ -8528,12 +8609,12 @@ Default: True
                    -
                    1566    def star_sql(self, expression: exp.Star) -> str:
                    -1567        except_ = self.expressions(expression, key="except", flat=True)
                    -1568        except_ = f"{self.seg(self.STAR_MAPPING['except'])} ({except_})" if except_ else ""
                    -1569        replace = self.expressions(expression, key="replace", flat=True)
                    -1570        replace = f"{self.seg(self.STAR_MAPPING['replace'])} ({replace})" if replace else ""
                    -1571        return f"*{except_}{replace}"
                    +            
                    1588    def star_sql(self, expression: exp.Star) -> str:
                    +1589        except_ = self.expressions(expression, key="except", flat=True)
                    +1590        except_ = f"{self.seg(self.STAR_MAPPING['except'])} ({except_})" if except_ else ""
                    +1591        replace = self.expressions(expression, key="replace", flat=True)
                    +1592        replace = f"{self.seg(self.STAR_MAPPING['replace'])} ({replace})" if replace else ""
                    +1593        return f"*{except_}{replace}"
                     
                    @@ -8551,10 +8632,10 @@ Default: True
                    -
                    1573    def parameter_sql(self, expression: exp.Parameter) -> str:
                    -1574        this = self.sql(expression, "this")
                    -1575        this = f"{{{this}}}" if expression.args.get("wrapped") else f"{this}"
                    -1576        return f"{self.PARAMETER_TOKEN}{this}"
                    +            
                    1595    def parameter_sql(self, expression: exp.Parameter) -> str:
                    +1596        this = self.sql(expression, "this")
                    +1597        this = f"{{{this}}}" if expression.args.get("wrapped") else f"{this}"
                    +1598        return f"{self.PARAMETER_TOKEN}{this}"
                     
                    @@ -8572,12 +8653,12 @@ Default: True
                    -
                    1578    def sessionparameter_sql(self, expression: exp.SessionParameter) -> str:
                    -1579        this = self.sql(expression, "this")
                    -1580        kind = expression.text("kind")
                    -1581        if kind:
                    -1582            kind = f"{kind}."
                    -1583        return f"@@{kind}{this}"
                    +            
                    1600    def sessionparameter_sql(self, expression: exp.SessionParameter) -> str:
                    +1601        this = self.sql(expression, "this")
                    +1602        kind = expression.text("kind")
                    +1603        if kind:
                    +1604            kind = f"{kind}."
                    +1605        return f"@@{kind}{this}"
                     
                    @@ -8595,8 +8676,8 @@ Default: True
                    -
                    1585    def placeholder_sql(self, expression: exp.Placeholder) -> str:
                    -1586        return f":{expression.name}" if expression.name else "?"
                    +            
                    1607    def placeholder_sql(self, expression: exp.Placeholder) -> str:
                    +1608        return f":{expression.name}" if expression.name else "?"
                     
                    @@ -8614,15 +8695,15 @@ Default: True
                    -
                    1588    def subquery_sql(self, expression: exp.Subquery, sep: str = " AS ") -> str:
                    -1589        alias = self.sql(expression, "alias")
                    -1590        alias = f"{sep}{alias}" if alias else ""
                    -1591
                    -1592        pivots = self.expressions(expression, key="pivots", sep=" ", flat=True)
                    -1593        pivots = f" {pivots}" if pivots else ""
                    -1594
                    -1595        sql = self.query_modifiers(expression, self.wrap(expression), alias, pivots)
                    -1596        return self.prepend_ctes(expression, sql)
                    +            
                    1610    def subquery_sql(self, expression: exp.Subquery, sep: str = " AS ") -> str:
                    +1611        alias = self.sql(expression, "alias")
                    +1612        alias = f"{sep}{alias}" if alias else ""
                    +1613
                    +1614        pivots = self.expressions(expression, key="pivots", sep=" ", flat=True)
                    +1615        pivots = f" {pivots}" if pivots else ""
                    +1616
                    +1617        sql = self.query_modifiers(expression, self.wrap(expression), alias, pivots)
                    +1618        return self.prepend_ctes(expression, sql)
                     
                    @@ -8640,9 +8721,9 @@ Default: True
                    -
                    1598    def qualify_sql(self, expression: exp.Qualify) -> str:
                    -1599        this = self.indent(self.sql(expression, "this"))
                    -1600        return f"{self.seg('QUALIFY')}{self.sep()}{this}"
                    +            
                    1620    def qualify_sql(self, expression: exp.Qualify) -> str:
                    +1621        this = self.indent(self.sql(expression, "this"))
                    +1622        return f"{self.seg('QUALIFY')}{self.sep()}{this}"
                     
                    @@ -8660,11 +8741,11 @@ Default: True
                    -
                    1602    def union_sql(self, expression: exp.Union) -> str:
                    -1603        return self.prepend_ctes(
                    -1604            expression,
                    -1605            self.set_operation(expression, self.union_op(expression)),
                    -1606        )
                    +            
                    1624    def union_sql(self, expression: exp.Union) -> str:
                    +1625        return self.prepend_ctes(
                    +1626            expression,
                    +1627            self.set_operation(expression, self.union_op(expression)),
                    +1628        )
                     
                    @@ -8682,10 +8763,10 @@ Default: True
                    -
                    1608    def union_op(self, expression: exp.Union) -> str:
                    -1609        kind = " DISTINCT" if self.EXPLICIT_UNION else ""
                    -1610        kind = kind if expression.args.get("distinct") else " ALL"
                    -1611        return f"UNION{kind}"
                    +            
                    1630    def union_op(self, expression: exp.Union) -> str:
                    +1631        kind = " DISTINCT" if self.EXPLICIT_UNION else ""
                    +1632        kind = kind if expression.args.get("distinct") else " ALL"
                    +1633        return f"UNION{kind}"
                     
                    @@ -8703,19 +8784,19 @@ Default: True
                    -
                    1613    def unnest_sql(self, expression: exp.Unnest) -> str:
                    -1614        args = self.expressions(expression, flat=True)
                    -1615        alias = expression.args.get("alias")
                    -1616        if alias and self.unnest_column_only:
                    -1617            columns = alias.columns
                    -1618            alias = self.sql(columns[0]) if columns else ""
                    -1619        else:
                    -1620            alias = self.sql(expression, "alias")
                    -1621        alias = f" AS {alias}" if alias else alias
                    -1622        ordinality = " WITH ORDINALITY" if expression.args.get("ordinality") else ""
                    -1623        offset = expression.args.get("offset")
                    -1624        offset = f" WITH OFFSET AS {self.sql(offset)}" if offset else ""
                    -1625        return f"UNNEST({args}){ordinality}{alias}{offset}"
                    +            
                    1635    def unnest_sql(self, expression: exp.Unnest) -> str:
                    +1636        args = self.expressions(expression, flat=True)
                    +1637        alias = expression.args.get("alias")
                    +1638        if alias and self.unnest_column_only:
                    +1639            columns = alias.columns
                    +1640            alias = self.sql(columns[0]) if columns else ""
                    +1641        else:
                    +1642            alias = self.sql(expression, "alias")
                    +1643        alias = f" AS {alias}" if alias else alias
                    +1644        ordinality = " WITH ORDINALITY" if expression.args.get("ordinality") else ""
                    +1645        offset = expression.args.get("offset")
                    +1646        offset = f" WITH OFFSET AS {self.sql(offset)}" if offset else ""
                    +1647        return f"UNNEST({args}){ordinality}{alias}{offset}"
                     
                    @@ -8733,9 +8814,9 @@ Default: True
                    -
                    1627    def where_sql(self, expression: exp.Where) -> str:
                    -1628        this = self.indent(self.sql(expression, "this"))
                    -1629        return f"{self.seg('WHERE')}{self.sep()}{this}"
                    +            
                    1649    def where_sql(self, expression: exp.Where) -> str:
                    +1650        this = self.indent(self.sql(expression, "this"))
                    +1651        return f"{self.seg('WHERE')}{self.sep()}{this}"
                     
                    @@ -8753,34 +8834,28 @@ Default: True
                    -
                    1631    def window_sql(self, expression: exp.Window) -> str:
                    -1632        this = self.sql(expression, "this")
                    -1633
                    -1634        partition = self.partition_by_sql(expression)
                    -1635
                    -1636        order = expression.args.get("order")
                    -1637        order_sql = self.order_sql(order, flat=True) if order else ""
                    -1638
                    -1639        partition_sql = partition + " " if partition and order else partition
                    -1640
                    -1641        spec = expression.args.get("spec")
                    -1642        spec_sql = " " + self.windowspec_sql(spec) if spec else ""
                    -1643
                    -1644        alias = self.sql(expression, "alias")
                    -1645        over = self.sql(expression, "over") or "OVER"
                    -1646        this = f"{this} {'AS' if expression.arg_key == 'windows' else over}"
                    -1647
                    -1648        first = expression.args.get("first")
                    -1649        if first is not None:
                    -1650            first = " FIRST " if first else " LAST "
                    -1651        first = first or ""
                    -1652
                    -1653        if not partition and not order and not spec and alias:
                    -1654            return f"{this} {alias}"
                    -1655
                    -1656        window_args = alias + first + partition_sql + order_sql + spec_sql
                    -1657
                    -1658        return f"{this} ({window_args.strip()})"
                    +            
                    1653    def window_sql(self, expression: exp.Window) -> str:
                    +1654        this = self.sql(expression, "this")
                    +1655        partition = self.partition_by_sql(expression)
                    +1656        order = expression.args.get("order")
                    +1657        order = self.order_sql(order, flat=True) if order else ""
                    +1658        spec = self.sql(expression, "spec")
                    +1659        alias = self.sql(expression, "alias")
                    +1660        over = self.sql(expression, "over") or "OVER"
                    +1661
                    +1662        this = f"{this} {'AS' if expression.arg_key == 'windows' else over}"
                    +1663
                    +1664        first = expression.args.get("first")
                    +1665        if first is None:
                    +1666            first = ""
                    +1667        else:
                    +1668            first = "FIRST" if first else "LAST"
                    +1669
                    +1670        if not partition and not order and not spec and alias:
                    +1671            return f"{this} {alias}"
                    +1672
                    +1673        args = " ".join(arg for arg in (alias, first, partition, order, spec) if arg)
                    +1674        return f"{this} ({args})"
                     
                    @@ -8798,9 +8873,9 @@ Default: True
                    -
                    1660    def partition_by_sql(self, expression: exp.Window | exp.MatchRecognize) -> str:
                    -1661        partition = self.expressions(expression, key="partition_by", flat=True)
                    -1662        return f"PARTITION BY {partition}" if partition else ""
                    +            
                    1676    def partition_by_sql(self, expression: exp.Window | exp.MatchRecognize) -> str:
                    +1677        partition = self.expressions(expression, key="partition_by", flat=True)
                    +1678        return f"PARTITION BY {partition}" if partition else ""
                     
                    @@ -8818,14 +8893,14 @@ Default: True
                    -
                    1664    def windowspec_sql(self, expression: exp.WindowSpec) -> str:
                    -1665        kind = self.sql(expression, "kind")
                    -1666        start = csv(self.sql(expression, "start"), self.sql(expression, "start_side"), sep=" ")
                    -1667        end = (
                    -1668            csv(self.sql(expression, "end"), self.sql(expression, "end_side"), sep=" ")
                    -1669            or "CURRENT ROW"
                    -1670        )
                    -1671        return f"{kind} BETWEEN {start} AND {end}"
                    +            
                    1680    def windowspec_sql(self, expression: exp.WindowSpec) -> str:
                    +1681        kind = self.sql(expression, "kind")
                    +1682        start = csv(self.sql(expression, "start"), self.sql(expression, "start_side"), sep=" ")
                    +1683        end = (
                    +1684            csv(self.sql(expression, "end"), self.sql(expression, "end_side"), sep=" ")
                    +1685            or "CURRENT ROW"
                    +1686        )
                    +1687        return f"{kind} BETWEEN {start} AND {end}"
                     
                    @@ -8843,10 +8918,10 @@ Default: True
                    -
                    1673    def withingroup_sql(self, expression: exp.WithinGroup) -> str:
                    -1674        this = self.sql(expression, "this")
                    -1675        expression_sql = self.sql(expression, "expression")[1:]  # order has a leading space
                    -1676        return f"{this} WITHIN GROUP ({expression_sql})"
                    +            
                    1689    def withingroup_sql(self, expression: exp.WithinGroup) -> str:
                    +1690        this = self.sql(expression, "this")
                    +1691        expression_sql = self.sql(expression, "expression")[1:]  # order has a leading space
                    +1692        return f"{this} WITHIN GROUP ({expression_sql})"
                     
                    @@ -8864,11 +8939,11 @@ Default: True
                    -
                    1678    def between_sql(self, expression: exp.Between) -> str:
                    -1679        this = self.sql(expression, "this")
                    -1680        low = self.sql(expression, "low")
                    -1681        high = self.sql(expression, "high")
                    -1682        return f"{this} BETWEEN {low} AND {high}"
                    +            
                    1694    def between_sql(self, expression: exp.Between) -> str:
                    +1695        this = self.sql(expression, "this")
                    +1696        low = self.sql(expression, "low")
                    +1697        high = self.sql(expression, "high")
                    +1698        return f"{this} BETWEEN {low} AND {high}"
                     
                    @@ -8886,11 +8961,11 @@ Default: True
                    -
                    1684    def bracket_sql(self, expression: exp.Bracket) -> str:
                    -1685        expressions = apply_index_offset(expression.this, expression.expressions, self.index_offset)
                    -1686        expressions_sql = ", ".join(self.sql(e) for e in expressions)
                    -1687
                    -1688        return f"{self.sql(expression, 'this')}[{expressions_sql}]"
                    +            
                    1700    def bracket_sql(self, expression: exp.Bracket) -> str:
                    +1701        expressions = apply_index_offset(expression.this, expression.expressions, self.index_offset)
                    +1702        expressions_sql = ", ".join(self.sql(e) for e in expressions)
                    +1703
                    +1704        return f"{self.sql(expression, 'this')}[{expressions_sql}]"
                     
                    @@ -8908,8 +8983,8 @@ Default: True
                    -
                    1690    def all_sql(self, expression: exp.All) -> str:
                    -1691        return f"ALL {self.wrap(expression)}"
                    +            
                    1706    def all_sql(self, expression: exp.All) -> str:
                    +1707        return f"ALL {self.wrap(expression)}"
                     
                    @@ -8927,11 +9002,11 @@ Default: True
                    -
                    1693    def any_sql(self, expression: exp.Any) -> str:
                    -1694        this = self.sql(expression, "this")
                    -1695        if isinstance(expression.this, exp.Subqueryable):
                    -1696            this = self.wrap(this)
                    -1697        return f"ANY {this}"
                    +            
                    1709    def any_sql(self, expression: exp.Any) -> str:
                    +1710        this = self.sql(expression, "this")
                    +1711        if isinstance(expression.this, exp.Subqueryable):
                    +1712            this = self.wrap(this)
                    +1713        return f"ANY {this}"
                     
                    @@ -8949,8 +9024,8 @@ Default: True
                    -
                    1699    def exists_sql(self, expression: exp.Exists) -> str:
                    -1700        return f"EXISTS{self.wrap(expression)}"
                    +            
                    1715    def exists_sql(self, expression: exp.Exists) -> str:
                    +1716        return f"EXISTS{self.wrap(expression)}"
                     
                    @@ -8968,25 +9043,25 @@ Default: True
                    -
                    1702    def case_sql(self, expression: exp.Case) -> str:
                    -1703        this = self.sql(expression, "this")
                    -1704        statements = [f"CASE {this}" if this else "CASE"]
                    -1705
                    -1706        for e in expression.args["ifs"]:
                    -1707            statements.append(f"WHEN {self.sql(e, 'this')}")
                    -1708            statements.append(f"THEN {self.sql(e, 'true')}")
                    -1709
                    -1710        default = self.sql(expression, "default")
                    -1711
                    -1712        if default:
                    -1713            statements.append(f"ELSE {default}")
                    -1714
                    -1715        statements.append("END")
                    -1716
                    -1717        if self.pretty and self.text_width(statements) > self._max_text_width:
                    -1718            return self.indent("\n".join(statements), skip_first=True, skip_last=True)
                    -1719
                    -1720        return " ".join(statements)
                    +            
                    1718    def case_sql(self, expression: exp.Case) -> str:
                    +1719        this = self.sql(expression, "this")
                    +1720        statements = [f"CASE {this}" if this else "CASE"]
                    +1721
                    +1722        for e in expression.args["ifs"]:
                    +1723            statements.append(f"WHEN {self.sql(e, 'this')}")
                    +1724            statements.append(f"THEN {self.sql(e, 'true')}")
                    +1725
                    +1726        default = self.sql(expression, "default")
                    +1727
                    +1728        if default:
                    +1729            statements.append(f"ELSE {default}")
                    +1730
                    +1731        statements.append("END")
                    +1732
                    +1733        if self.pretty and self.text_width(statements) > self._max_text_width:
                    +1734            return self.indent("\n".join(statements), skip_first=True, skip_last=True)
                    +1735
                    +1736        return " ".join(statements)
                     
                    @@ -9004,10 +9079,10 @@ Default: True
                    -
                    1722    def constraint_sql(self, expression: exp.Constraint) -> str:
                    -1723        this = self.sql(expression, "this")
                    -1724        expressions = self.expressions(expression, flat=True)
                    -1725        return f"CONSTRAINT {this} {expressions}"
                    +            
                    1738    def constraint_sql(self, expression: exp.Constraint) -> str:
                    +1739        this = self.sql(expression, "this")
                    +1740        expressions = self.expressions(expression, flat=True)
                    +1741        return f"CONSTRAINT {this} {expressions}"
                     
                    @@ -9025,10 +9100,10 @@ Default: True
                    -
                    1727    def nextvaluefor_sql(self, expression: exp.NextValueFor) -> str:
                    -1728        order = expression.args.get("order")
                    -1729        order = f" OVER ({self.order_sql(order, flat=True)})" if order else ""
                    -1730        return f"NEXT VALUE FOR {self.sql(expression, 'this')}{order}"
                    +            
                    1743    def nextvaluefor_sql(self, expression: exp.NextValueFor) -> str:
                    +1744        order = expression.args.get("order")
                    +1745        order = f" OVER ({self.order_sql(order, flat=True)})" if order else ""
                    +1746        return f"NEXT VALUE FOR {self.sql(expression, 'this')}{order}"
                     
                    @@ -9046,10 +9121,10 @@ Default: True
                    -
                    1732    def extract_sql(self, expression: exp.Extract) -> str:
                    -1733        this = self.sql(expression, "this")
                    -1734        expression_sql = self.sql(expression, "expression")
                    -1735        return f"EXTRACT({this} FROM {expression_sql})"
                    +            
                    1748    def extract_sql(self, expression: exp.Extract) -> str:
                    +1749        this = self.sql(expression, "this")
                    +1750        expression_sql = self.sql(expression, "expression")
                    +1751        return f"EXTRACT({this} FROM {expression_sql})"
                     
                    @@ -9067,15 +9142,15 @@ Default: True
                    -
                    1737    def trim_sql(self, expression: exp.Trim) -> str:
                    -1738        trim_type = self.sql(expression, "position")
                    -1739
                    -1740        if trim_type == "LEADING":
                    -1741            return self.func("LTRIM", expression.this)
                    -1742        elif trim_type == "TRAILING":
                    -1743            return self.func("RTRIM", expression.this)
                    -1744        else:
                    -1745            return self.func("TRIM", expression.this, expression.expression)
                    +            
                    1753    def trim_sql(self, expression: exp.Trim) -> str:
                    +1754        trim_type = self.sql(expression, "position")
                    +1755
                    +1756        if trim_type == "LEADING":
                    +1757            return self.func("LTRIM", expression.this)
                    +1758        elif trim_type == "TRAILING":
                    +1759            return self.func("RTRIM", expression.this)
                    +1760        else:
                    +1761            return self.func("TRIM", expression.this, expression.expression)
                     
                    @@ -9093,10 +9168,10 @@ Default: True
                    -
                    1747    def concat_sql(self, expression: exp.Concat) -> str:
                    -1748        if len(expression.expressions) == 1:
                    -1749            return self.sql(expression.expressions[0])
                    -1750        return self.function_fallback_sql(expression)
                    +            
                    1763    def concat_sql(self, expression: exp.Concat) -> str:
                    +1764        if len(expression.expressions) == 1:
                    +1765            return self.sql(expression.expressions[0])
                    +1766        return self.function_fallback_sql(expression)
                     
                    @@ -9114,9 +9189,9 @@ Default: True
                    -
                    1752    def check_sql(self, expression: exp.Check) -> str:
                    -1753        this = self.sql(expression, key="this")
                    -1754        return f"CHECK ({this})"
                    +            
                    1768    def check_sql(self, expression: exp.Check) -> str:
                    +1769        this = self.sql(expression, key="this")
                    +1770        return f"CHECK ({this})"
                     
                    @@ -9134,15 +9209,15 @@ Default: True
                    -
                    1756    def foreignkey_sql(self, expression: exp.ForeignKey) -> str:
                    -1757        expressions = self.expressions(expression, flat=True)
                    -1758        reference = self.sql(expression, "reference")
                    -1759        reference = f" {reference}" if reference else ""
                    -1760        delete = self.sql(expression, "delete")
                    -1761        delete = f" ON DELETE {delete}" if delete else ""
                    -1762        update = self.sql(expression, "update")
                    -1763        update = f" ON UPDATE {update}" if update else ""
                    -1764        return f"FOREIGN KEY ({expressions}){reference}{delete}{update}"
                    +            
                    1772    def foreignkey_sql(self, expression: exp.ForeignKey) -> str:
                    +1773        expressions = self.expressions(expression, flat=True)
                    +1774        reference = self.sql(expression, "reference")
                    +1775        reference = f" {reference}" if reference else ""
                    +1776        delete = self.sql(expression, "delete")
                    +1777        delete = f" ON DELETE {delete}" if delete else ""
                    +1778        update = self.sql(expression, "update")
                    +1779        update = f" ON UPDATE {update}" if update else ""
                    +1780        return f"FOREIGN KEY ({expressions}){reference}{delete}{update}"
                     
                    @@ -9160,31 +9235,11 @@ Default: True
                    -
                    1766    def primarykey_sql(self, expression: exp.ForeignKey) -> str:
                    -1767        expressions = self.expressions(expression, flat=True)
                    -1768        options = self.expressions(expression, key="options", flat=True, sep=" ")
                    -1769        options = f" {options}" if options else ""
                    -1770        return f"PRIMARY KEY ({expressions}){options}"
                    -
                    - - - - -
                    -
                    - -
                    - - def - unique_sql(self, expression: sqlglot.expressions.Unique) -> str: - - - -
                    - -
                    1772    def unique_sql(self, expression: exp.Unique) -> str:
                    -1773        columns = self.expressions(expression, key="expressions")
                    -1774        return f"UNIQUE ({columns})"
                    +            
                    1782    def primarykey_sql(self, expression: exp.ForeignKey) -> str:
                    +1783        expressions = self.expressions(expression, flat=True)
                    +1784        options = self.expressions(expression, key="options", flat=True, sep=" ")
                    +1785        options = f" {options}" if options else ""
                    +1786        return f"PRIMARY KEY ({expressions}){options}"
                     
                    @@ -9202,10 +9257,10 @@ Default: True
                    -
                    1776    def if_sql(self, expression: exp.If) -> str:
                    -1777        return self.case_sql(
                    -1778            exp.Case(ifs=[expression.copy()], default=expression.args.get("false"))
                    -1779        )
                    +            
                    1788    def if_sql(self, expression: exp.If) -> str:
                    +1789        return self.case_sql(
                    +1790            exp.Case(ifs=[expression.copy()], default=expression.args.get("false"))
                    +1791        )
                     
                    @@ -9223,10 +9278,10 @@ Default: True
                    -
                    1781    def matchagainst_sql(self, expression: exp.MatchAgainst) -> str:
                    -1782        modifier = expression.args.get("modifier")
                    -1783        modifier = f" {modifier}" if modifier else ""
                    -1784        return f"{self.func('MATCH', *expression.expressions)} AGAINST({self.sql(expression, 'this')}{modifier})"
                    +            
                    1793    def matchagainst_sql(self, expression: exp.MatchAgainst) -> str:
                    +1794        modifier = expression.args.get("modifier")
                    +1795        modifier = f" {modifier}" if modifier else ""
                    +1796        return f"{self.func('MATCH', *expression.expressions)} AGAINST({self.sql(expression, 'this')}{modifier})"
                     
                    @@ -9244,8 +9299,8 @@ Default: True
                    -
                    1786    def jsonkeyvalue_sql(self, expression: exp.JSONKeyValue) -> str:
                    -1787        return f"{self.sql(expression, 'this')}: {self.sql(expression, 'expression')}"
                    +            
                    1798    def jsonkeyvalue_sql(self, expression: exp.JSONKeyValue) -> str:
                    +1799        return f"{self.sql(expression, 'this')}: {self.sql(expression, 'expression')}"
                     
                    @@ -9263,21 +9318,21 @@ Default: True
                    -
                    1789    def jsonobject_sql(self, expression: exp.JSONObject) -> str:
                    -1790        expressions = self.expressions(expression)
                    -1791        null_handling = expression.args.get("null_handling")
                    -1792        null_handling = f" {null_handling}" if null_handling else ""
                    -1793        unique_keys = expression.args.get("unique_keys")
                    -1794        if unique_keys is not None:
                    -1795            unique_keys = f" {'WITH' if unique_keys else 'WITHOUT'} UNIQUE KEYS"
                    -1796        else:
                    -1797            unique_keys = ""
                    -1798        return_type = self.sql(expression, "return_type")
                    -1799        return_type = f" RETURNING {return_type}" if return_type else ""
                    -1800        format_json = " FORMAT JSON" if expression.args.get("format_json") else ""
                    -1801        encoding = self.sql(expression, "encoding")
                    -1802        encoding = f" ENCODING {encoding}" if encoding else ""
                    -1803        return f"JSON_OBJECT({expressions}{null_handling}{unique_keys}{return_type}{format_json}{encoding})"
                    +            
                    1801    def jsonobject_sql(self, expression: exp.JSONObject) -> str:
                    +1802        expressions = self.expressions(expression)
                    +1803        null_handling = expression.args.get("null_handling")
                    +1804        null_handling = f" {null_handling}" if null_handling else ""
                    +1805        unique_keys = expression.args.get("unique_keys")
                    +1806        if unique_keys is not None:
                    +1807            unique_keys = f" {'WITH' if unique_keys else 'WITHOUT'} UNIQUE KEYS"
                    +1808        else:
                    +1809            unique_keys = ""
                    +1810        return_type = self.sql(expression, "return_type")
                    +1811        return_type = f" RETURNING {return_type}" if return_type else ""
                    +1812        format_json = " FORMAT JSON" if expression.args.get("format_json") else ""
                    +1813        encoding = self.sql(expression, "encoding")
                    +1814        encoding = f" ENCODING {encoding}" if encoding else ""
                    +1815        return f"JSON_OBJECT({expressions}{null_handling}{unique_keys}{return_type}{format_json}{encoding})"
                     
                    @@ -9295,13 +9350,13 @@ Default: True
                    -
                    1805    def openjsoncolumndef_sql(self, expression: exp.OpenJSONColumnDef) -> str:
                    -1806        this = self.sql(expression, "this")
                    -1807        kind = self.sql(expression, "kind")
                    -1808        path = self.sql(expression, "path")
                    -1809        path = f" {path}" if path else ""
                    -1810        as_json = " AS JSON" if expression.args.get("as_json") else ""
                    -1811        return f"{this} {kind}{path}{as_json}"
                    +            
                    1817    def openjsoncolumndef_sql(self, expression: exp.OpenJSONColumnDef) -> str:
                    +1818        this = self.sql(expression, "this")
                    +1819        kind = self.sql(expression, "kind")
                    +1820        path = self.sql(expression, "path")
                    +1821        path = f" {path}" if path else ""
                    +1822        as_json = " AS JSON" if expression.args.get("as_json") else ""
                    +1823        return f"{this} {kind}{path}{as_json}"
                     
                    @@ -9319,17 +9374,17 @@ Default: True
                    -
                    1813    def openjson_sql(self, expression: exp.OpenJSON) -> str:
                    -1814        this = self.sql(expression, "this")
                    -1815        path = self.sql(expression, "path")
                    -1816        path = f", {path}" if path else ""
                    -1817        expressions = self.expressions(expression)
                    -1818        with_ = (
                    -1819            f" WITH ({self.seg(self.indent(expressions), sep='')}{self.seg(')', sep='')}"
                    -1820            if expressions
                    -1821            else ""
                    -1822        )
                    -1823        return f"OPENJSON({this}{path}){with_}"
                    +            
                    1825    def openjson_sql(self, expression: exp.OpenJSON) -> str:
                    +1826        this = self.sql(expression, "this")
                    +1827        path = self.sql(expression, "path")
                    +1828        path = f", {path}" if path else ""
                    +1829        expressions = self.expressions(expression)
                    +1830        with_ = (
                    +1831            f" WITH ({self.seg(self.indent(expressions), sep='')}{self.seg(')', sep='')}"
                    +1832            if expressions
                    +1833            else ""
                    +1834        )
                    +1835        return f"OPENJSON({this}{path}){with_}"
                     
                    @@ -9347,22 +9402,22 @@ Default: True
                    -
                    1825    def in_sql(self, expression: exp.In) -> str:
                    -1826        query = expression.args.get("query")
                    -1827        unnest = expression.args.get("unnest")
                    -1828        field = expression.args.get("field")
                    -1829        is_global = " GLOBAL" if expression.args.get("is_global") else ""
                    -1830
                    -1831        if query:
                    -1832            in_sql = self.wrap(query)
                    -1833        elif unnest:
                    -1834            in_sql = self.in_unnest_op(unnest)
                    -1835        elif field:
                    -1836            in_sql = self.sql(field)
                    -1837        else:
                    -1838            in_sql = f"({self.expressions(expression, flat=True)})"
                    -1839
                    -1840        return f"{self.sql(expression, 'this')}{is_global} IN {in_sql}"
                    +            
                    1837    def in_sql(self, expression: exp.In) -> str:
                    +1838        query = expression.args.get("query")
                    +1839        unnest = expression.args.get("unnest")
                    +1840        field = expression.args.get("field")
                    +1841        is_global = " GLOBAL" if expression.args.get("is_global") else ""
                    +1842
                    +1843        if query:
                    +1844            in_sql = self.wrap(query)
                    +1845        elif unnest:
                    +1846            in_sql = self.in_unnest_op(unnest)
                    +1847        elif field:
                    +1848            in_sql = self.sql(field)
                    +1849        else:
                    +1850            in_sql = f"({self.expressions(expression, flat=True)})"
                    +1851
                    +1852        return f"{self.sql(expression, 'this')}{is_global} IN {in_sql}"
                     
                    @@ -9380,8 +9435,8 @@ Default: True
                    -
                    1842    def in_unnest_op(self, unnest: exp.Unnest) -> str:
                    -1843        return f"(SELECT {self.sql(unnest)})"
                    +            
                    1854    def in_unnest_op(self, unnest: exp.Unnest) -> str:
                    +1855        return f"(SELECT {self.sql(unnest)})"
                     
                    @@ -9399,22 +9454,22 @@ Default: True
                    -
                    1845    def interval_sql(self, expression: exp.Interval) -> str:
                    -1846        unit = self.sql(expression, "unit")
                    -1847        if not self.INTERVAL_ALLOWS_PLURAL_FORM:
                    -1848            unit = self.TIME_PART_SINGULARS.get(unit.lower(), unit)
                    -1849        unit = f" {unit}" if unit else ""
                    -1850
                    -1851        if self.SINGLE_STRING_INTERVAL:
                    -1852            this = expression.this.name if expression.this else ""
                    -1853            return f"INTERVAL '{this}{unit}'" if this else f"INTERVAL{unit}"
                    -1854
                    -1855        this = self.sql(expression, "this")
                    -1856        if this:
                    -1857            unwrapped = isinstance(expression.this, self.UNWRAPPED_INTERVAL_VALUES)
                    -1858            this = f" {this}" if unwrapped else f" ({this})"
                    -1859
                    -1860        return f"INTERVAL{this}{unit}"
                    +            
                    1857    def interval_sql(self, expression: exp.Interval) -> str:
                    +1858        unit = self.sql(expression, "unit")
                    +1859        if not self.INTERVAL_ALLOWS_PLURAL_FORM:
                    +1860            unit = self.TIME_PART_SINGULARS.get(unit.lower(), unit)
                    +1861        unit = f" {unit}" if unit else ""
                    +1862
                    +1863        if self.SINGLE_STRING_INTERVAL:
                    +1864            this = expression.this.name if expression.this else ""
                    +1865            return f"INTERVAL '{this}{unit}'" if this else f"INTERVAL{unit}"
                    +1866
                    +1867        this = self.sql(expression, "this")
                    +1868        if this:
                    +1869            unwrapped = isinstance(expression.this, self.UNWRAPPED_INTERVAL_VALUES)
                    +1870            this = f" {this}" if unwrapped else f" ({this})"
                    +1871
                    +1872        return f"INTERVAL{this}{unit}"
                     
                    @@ -9432,8 +9487,8 @@ Default: True
                    -
                    1862    def return_sql(self, expression: exp.Return) -> str:
                    -1863        return f"RETURN {self.sql(expression, 'this')}"
                    +            
                    1874    def return_sql(self, expression: exp.Return) -> str:
                    +1875        return f"RETURN {self.sql(expression, 'this')}"
                     
                    @@ -9451,13 +9506,13 @@ Default: True
                    -
                    1865    def reference_sql(self, expression: exp.Reference) -> str:
                    -1866        this = self.sql(expression, "this")
                    -1867        expressions = self.expressions(expression, flat=True)
                    -1868        expressions = f"({expressions})" if expressions else ""
                    -1869        options = self.expressions(expression, key="options", flat=True, sep=" ")
                    -1870        options = f" {options}" if options else ""
                    -1871        return f"REFERENCES {this}{expressions}{options}"
                    +            
                    1877    def reference_sql(self, expression: exp.Reference) -> str:
                    +1878        this = self.sql(expression, "this")
                    +1879        expressions = self.expressions(expression, flat=True)
                    +1880        expressions = f"({expressions})" if expressions else ""
                    +1881        options = self.expressions(expression, key="options", flat=True, sep=" ")
                    +1882        options = f" {options}" if options else ""
                    +1883        return f"REFERENCES {this}{expressions}{options}"
                     
                    @@ -9475,8 +9530,8 @@ Default: True
                    -
                    1873    def anonymous_sql(self, expression: exp.Anonymous) -> str:
                    -1874        return self.func(expression.name, *expression.expressions)
                    +            
                    1885    def anonymous_sql(self, expression: exp.Anonymous) -> str:
                    +1886        return self.func(expression.name, *expression.expressions)
                     
                    @@ -9494,14 +9549,14 @@ Default: True
                    -
                    1876    def paren_sql(self, expression: exp.Paren) -> str:
                    -1877        if isinstance(expression.unnest(), exp.Select):
                    -1878            sql = self.wrap(expression)
                    -1879        else:
                    -1880            sql = self.seg(self.indent(self.sql(expression, "this")), sep="")
                    -1881            sql = f"({sql}{self.seg(')', sep='')}"
                    -1882
                    -1883        return self.prepend_ctes(expression, sql)
                    +            
                    1888    def paren_sql(self, expression: exp.Paren) -> str:
                    +1889        if isinstance(expression.unnest(), exp.Select):
                    +1890            sql = self.wrap(expression)
                    +1891        else:
                    +1892            sql = self.seg(self.indent(self.sql(expression, "this")), sep="")
                    +1893            sql = f"({sql}{self.seg(')', sep='')}"
                    +1894
                    +1895        return self.prepend_ctes(expression, sql)
                     
                    @@ -9519,11 +9574,11 @@ Default: True
                    -
                    1885    def neg_sql(self, expression: exp.Neg) -> str:
                    -1886        # This makes sure we don't convert "- - 5" to "--5", which is a comment
                    -1887        this_sql = self.sql(expression, "this")
                    -1888        sep = " " if this_sql[0] == "-" else ""
                    -1889        return f"-{sep}{this_sql}"
                    +            
                    1897    def neg_sql(self, expression: exp.Neg) -> str:
                    +1898        # This makes sure we don't convert "- - 5" to "--5", which is a comment
                    +1899        this_sql = self.sql(expression, "this")
                    +1900        sep = " " if this_sql[0] == "-" else ""
                    +1901        return f"-{sep}{this_sql}"
                     
                    @@ -9541,8 +9596,8 @@ Default: True
                    -
                    1891    def not_sql(self, expression: exp.Not) -> str:
                    -1892        return f"NOT {self.sql(expression, 'this')}"
                    +            
                    1903    def not_sql(self, expression: exp.Not) -> str:
                    +1904        return f"NOT {self.sql(expression, 'this')}"
                     
                    @@ -9560,10 +9615,10 @@ Default: True
                    -
                    1894    def alias_sql(self, expression: exp.Alias) -> str:
                    -1895        alias = self.sql(expression, "alias")
                    -1896        alias = f" AS {alias}" if alias else ""
                    -1897        return f"{self.sql(expression, 'this')}{alias}"
                    +            
                    1906    def alias_sql(self, expression: exp.Alias) -> str:
                    +1907        alias = self.sql(expression, "alias")
                    +1908        alias = f" AS {alias}" if alias else ""
                    +1909        return f"{self.sql(expression, 'this')}{alias}"
                     
                    @@ -9581,8 +9636,8 @@ Default: True
                    -
                    1899    def aliases_sql(self, expression: exp.Aliases) -> str:
                    -1900        return f"{self.sql(expression, 'this')} AS ({self.expressions(expression, flat=True)})"
                    +            
                    1911    def aliases_sql(self, expression: exp.Aliases) -> str:
                    +1912        return f"{self.sql(expression, 'this')} AS ({self.expressions(expression, flat=True)})"
                     
                    @@ -9600,10 +9655,10 @@ Default: True
                    -
                    1902    def attimezone_sql(self, expression: exp.AtTimeZone) -> str:
                    -1903        this = self.sql(expression, "this")
                    -1904        zone = self.sql(expression, "zone")
                    -1905        return f"{this} AT TIME ZONE {zone}"
                    +            
                    1914    def attimezone_sql(self, expression: exp.AtTimeZone) -> str:
                    +1915        this = self.sql(expression, "this")
                    +1916        zone = self.sql(expression, "zone")
                    +1917        return f"{this} AT TIME ZONE {zone}"
                     
                    @@ -9621,8 +9676,8 @@ Default: True
                    -
                    1907    def add_sql(self, expression: exp.Add) -> str:
                    -1908        return self.binary(expression, "+")
                    +            
                    1919    def add_sql(self, expression: exp.Add) -> str:
                    +1920        return self.binary(expression, "+")
                     
                    @@ -9640,8 +9695,8 @@ Default: True
                    -
                    1910    def and_sql(self, expression: exp.And) -> str:
                    -1911        return self.connector_sql(expression, "AND")
                    +            
                    1922    def and_sql(self, expression: exp.And) -> str:
                    +1923        return self.connector_sql(expression, "AND")
                     
                    @@ -9659,17 +9714,17 @@ Default: True
                    -
                    1913    def connector_sql(self, expression: exp.Connector, op: str) -> str:
                    -1914        if not self.pretty:
                    -1915            return self.binary(expression, op)
                    -1916
                    -1917        sqls = tuple(
                    -1918            self.maybe_comment(self.sql(e), e, e.parent.comments or []) if i != 1 else self.sql(e)
                    -1919            for i, e in enumerate(expression.flatten(unnest=False))
                    -1920        )
                    -1921
                    -1922        sep = "\n" if self.text_width(sqls) > self._max_text_width else " "
                    -1923        return f"{sep}{op} ".join(sqls)
                    +            
                    1925    def connector_sql(self, expression: exp.Connector, op: str) -> str:
                    +1926        if not self.pretty:
                    +1927            return self.binary(expression, op)
                    +1928
                    +1929        sqls = tuple(
                    +1930            self.maybe_comment(self.sql(e), e, e.parent.comments or []) if i != 1 else self.sql(e)
                    +1931            for i, e in enumerate(expression.flatten(unnest=False))
                    +1932        )
                    +1933
                    +1934        sep = "\n" if self.text_width(sqls) > self._max_text_width else " "
                    +1935        return f"{sep}{op} ".join(sqls)
                     
                    @@ -9687,8 +9742,8 @@ Default: True
                    -
                    1925    def bitwiseand_sql(self, expression: exp.BitwiseAnd) -> str:
                    -1926        return self.binary(expression, "&")
                    +            
                    1937    def bitwiseand_sql(self, expression: exp.BitwiseAnd) -> str:
                    +1938        return self.binary(expression, "&")
                     
                    @@ -9706,8 +9761,8 @@ Default: True
                    -
                    1928    def bitwiseleftshift_sql(self, expression: exp.BitwiseLeftShift) -> str:
                    -1929        return self.binary(expression, "<<")
                    +            
                    1940    def bitwiseleftshift_sql(self, expression: exp.BitwiseLeftShift) -> str:
                    +1941        return self.binary(expression, "<<")
                     
                    @@ -9725,8 +9780,8 @@ Default: True
                    -
                    1931    def bitwisenot_sql(self, expression: exp.BitwiseNot) -> str:
                    -1932        return f"~{self.sql(expression, 'this')}"
                    +            
                    1943    def bitwisenot_sql(self, expression: exp.BitwiseNot) -> str:
                    +1944        return f"~{self.sql(expression, 'this')}"
                     
                    @@ -9744,8 +9799,8 @@ Default: True
                    -
                    1934    def bitwiseor_sql(self, expression: exp.BitwiseOr) -> str:
                    -1935        return self.binary(expression, "|")
                    +            
                    1946    def bitwiseor_sql(self, expression: exp.BitwiseOr) -> str:
                    +1947        return self.binary(expression, "|")
                     
                    @@ -9763,8 +9818,8 @@ Default: True
                    -
                    1937    def bitwiserightshift_sql(self, expression: exp.BitwiseRightShift) -> str:
                    -1938        return self.binary(expression, ">>")
                    +            
                    1949    def bitwiserightshift_sql(self, expression: exp.BitwiseRightShift) -> str:
                    +1950        return self.binary(expression, ">>")
                     
                    @@ -9782,8 +9837,8 @@ Default: True
                    -
                    1940    def bitwisexor_sql(self, expression: exp.BitwiseXor) -> str:
                    -1941        return self.binary(expression, "^")
                    +            
                    1952    def bitwisexor_sql(self, expression: exp.BitwiseXor) -> str:
                    +1953        return self.binary(expression, "^")
                     
                    @@ -9801,8 +9856,8 @@ Default: True
                    -
                    1943    def cast_sql(self, expression: exp.Cast) -> str:
                    -1944        return f"CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})"
                    +            
                    1955    def cast_sql(self, expression: exp.Cast) -> str:
                    +1956        return f"CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})"
                     
                    @@ -9820,9 +9875,9 @@ Default: True
                    -
                    1946    def currentdate_sql(self, expression: exp.CurrentDate) -> str:
                    -1947        zone = self.sql(expression, "this")
                    -1948        return f"CURRENT_DATE({zone})" if zone else "CURRENT_DATE"
                    +            
                    1958    def currentdate_sql(self, expression: exp.CurrentDate) -> str:
                    +1959        zone = self.sql(expression, "this")
                    +1960        return f"CURRENT_DATE({zone})" if zone else "CURRENT_DATE"
                     
                    @@ -9840,8 +9895,8 @@ Default: True
                    -
                    1950    def collate_sql(self, expression: exp.Collate) -> str:
                    -1951        return self.binary(expression, "COLLATE")
                    +            
                    1962    def collate_sql(self, expression: exp.Collate) -> str:
                    +1963        return self.binary(expression, "COLLATE")
                     
                    @@ -9859,8 +9914,8 @@ Default: True
                    -
                    1953    def command_sql(self, expression: exp.Command) -> str:
                    -1954        return f"{self.sql(expression, 'this').upper()} {expression.text('expression').strip()}"
                    +            
                    1965    def command_sql(self, expression: exp.Command) -> str:
                    +1966        return f"{self.sql(expression, 'this').upper()} {expression.text('expression').strip()}"
                     
                    @@ -9878,12 +9933,12 @@ Default: True
                    -
                    1956    def comment_sql(self, expression: exp.Comment) -> str:
                    -1957        this = self.sql(expression, "this")
                    -1958        kind = expression.args["kind"]
                    -1959        exists_sql = " IF EXISTS " if expression.args.get("exists") else " "
                    -1960        expression_sql = self.sql(expression, "expression")
                    -1961        return f"COMMENT{exists_sql}ON {kind} {this} IS {expression_sql}"
                    +            
                    1968    def comment_sql(self, expression: exp.Comment) -> str:
                    +1969        this = self.sql(expression, "this")
                    +1970        kind = expression.args["kind"]
                    +1971        exists_sql = " IF EXISTS " if expression.args.get("exists") else " "
                    +1972        expression_sql = self.sql(expression, "expression")
                    +1973        return f"COMMENT{exists_sql}ON {kind} {this} IS {expression_sql}"
                     
                    @@ -9901,16 +9956,16 @@ Default: True
                    -
                    1963    def mergetreettlaction_sql(self, expression: exp.MergeTreeTTLAction) -> str:
                    -1964        this = self.sql(expression, "this")
                    -1965        delete = " DELETE" if expression.args.get("delete") else ""
                    -1966        recompress = self.sql(expression, "recompress")
                    -1967        recompress = f" RECOMPRESS {recompress}" if recompress else ""
                    -1968        to_disk = self.sql(expression, "to_disk")
                    -1969        to_disk = f" TO DISK {to_disk}" if to_disk else ""
                    -1970        to_volume = self.sql(expression, "to_volume")
                    -1971        to_volume = f" TO VOLUME {to_volume}" if to_volume else ""
                    -1972        return f"{this}{delete}{recompress}{to_disk}{to_volume}"
                    +            
                    1975    def mergetreettlaction_sql(self, expression: exp.MergeTreeTTLAction) -> str:
                    +1976        this = self.sql(expression, "this")
                    +1977        delete = " DELETE" if expression.args.get("delete") else ""
                    +1978        recompress = self.sql(expression, "recompress")
                    +1979        recompress = f" RECOMPRESS {recompress}" if recompress else ""
                    +1980        to_disk = self.sql(expression, "to_disk")
                    +1981        to_disk = f" TO DISK {to_disk}" if to_disk else ""
                    +1982        to_volume = self.sql(expression, "to_volume")
                    +1983        to_volume = f" TO VOLUME {to_volume}" if to_volume else ""
                    +1984        return f"{this}{delete}{recompress}{to_disk}{to_volume}"
                     
                    @@ -9928,16 +9983,16 @@ Default: True
                    -
                    1974    def mergetreettl_sql(self, expression: exp.MergeTreeTTL) -> str:
                    -1975        where = self.sql(expression, "where")
                    -1976        group = self.sql(expression, "group")
                    -1977        aggregates = self.expressions(expression, key="aggregates")
                    -1978        aggregates = self.seg("SET") + self.seg(aggregates) if aggregates else ""
                    -1979
                    -1980        if not (where or group or aggregates) and len(expression.expressions) == 1:
                    -1981            return f"TTL {self.expressions(expression, flat=True)}"
                    -1982
                    -1983        return f"TTL{self.seg(self.expressions(expression))}{where}{group}{aggregates}"
                    +            
                    1986    def mergetreettl_sql(self, expression: exp.MergeTreeTTL) -> str:
                    +1987        where = self.sql(expression, "where")
                    +1988        group = self.sql(expression, "group")
                    +1989        aggregates = self.expressions(expression, key="aggregates")
                    +1990        aggregates = self.seg("SET") + self.seg(aggregates) if aggregates else ""
                    +1991
                    +1992        if not (where or group or aggregates) and len(expression.expressions) == 1:
                    +1993            return f"TTL {self.expressions(expression, flat=True)}"
                    +1994
                    +1995        return f"TTL{self.seg(self.expressions(expression))}{where}{group}{aggregates}"
                     
                    @@ -9955,8 +10010,8 @@ Default: True
                    -
                    1985    def transaction_sql(self, expression: exp.Transaction) -> str:
                    -1986        return "BEGIN"
                    +            
                    1997    def transaction_sql(self, expression: exp.Transaction) -> str:
                    +1998        return "BEGIN"
                     
                    @@ -9974,12 +10029,12 @@ Default: True
                    -
                    1988    def commit_sql(self, expression: exp.Commit) -> str:
                    -1989        chain = expression.args.get("chain")
                    -1990        if chain is not None:
                    -1991            chain = " AND CHAIN" if chain else " AND NO CHAIN"
                    -1992
                    -1993        return f"COMMIT{chain or ''}"
                    +            
                    2000    def commit_sql(self, expression: exp.Commit) -> str:
                    +2001        chain = expression.args.get("chain")
                    +2002        if chain is not None:
                    +2003            chain = " AND CHAIN" if chain else " AND NO CHAIN"
                    +2004
                    +2005        return f"COMMIT{chain or ''}"
                     
                    @@ -9997,10 +10052,10 @@ Default: True
                    -
                    1995    def rollback_sql(self, expression: exp.Rollback) -> str:
                    -1996        savepoint = expression.args.get("savepoint")
                    -1997        savepoint = f" TO {savepoint}" if savepoint else ""
                    -1998        return f"ROLLBACK{savepoint}"
                    +            
                    2007    def rollback_sql(self, expression: exp.Rollback) -> str:
                    +2008        savepoint = expression.args.get("savepoint")
                    +2009        savepoint = f" TO {savepoint}" if savepoint else ""
                    +2010        return f"ROLLBACK{savepoint}"
                     
                    @@ -10018,25 +10073,25 @@ Default: True
                    -
                    2000    def altercolumn_sql(self, expression: exp.AlterColumn) -> str:
                    -2001        this = self.sql(expression, "this")
                    -2002
                    -2003        dtype = self.sql(expression, "dtype")
                    -2004        if dtype:
                    -2005            collate = self.sql(expression, "collate")
                    -2006            collate = f" COLLATE {collate}" if collate else ""
                    -2007            using = self.sql(expression, "using")
                    -2008            using = f" USING {using}" if using else ""
                    -2009            return f"ALTER COLUMN {this} TYPE {dtype}{collate}{using}"
                    -2010
                    -2011        default = self.sql(expression, "default")
                    -2012        if default:
                    -2013            return f"ALTER COLUMN {this} SET DEFAULT {default}"
                    +            
                    2012    def altercolumn_sql(self, expression: exp.AlterColumn) -> str:
                    +2013        this = self.sql(expression, "this")
                     2014
                    -2015        if not expression.args.get("drop"):
                    -2016            self.unsupported("Unsupported ALTER COLUMN syntax")
                    -2017
                    -2018        return f"ALTER COLUMN {this} DROP DEFAULT"
                    +2015        dtype = self.sql(expression, "dtype")
                    +2016        if dtype:
                    +2017            collate = self.sql(expression, "collate")
                    +2018            collate = f" COLLATE {collate}" if collate else ""
                    +2019            using = self.sql(expression, "using")
                    +2020            using = f" USING {using}" if using else ""
                    +2021            return f"ALTER COLUMN {this} TYPE {dtype}{collate}{using}"
                    +2022
                    +2023        default = self.sql(expression, "default")
                    +2024        if default:
                    +2025            return f"ALTER COLUMN {this} SET DEFAULT {default}"
                    +2026
                    +2027        if not expression.args.get("drop"):
                    +2028            self.unsupported("Unsupported ALTER COLUMN syntax")
                    +2029
                    +2030        return f"ALTER COLUMN {this} DROP DEFAULT"
                     
                    @@ -10054,14 +10109,14 @@ Default: True
                    -
                    2020    def renametable_sql(self, expression: exp.RenameTable) -> str:
                    -2021        if not self.RENAME_TABLE_WITH_DB:
                    -2022            # Remove db from tables
                    -2023            expression = expression.transform(
                    -2024                lambda n: exp.table_(n.this) if isinstance(n, exp.Table) else n
                    -2025            )
                    -2026        this = self.sql(expression, "this")
                    -2027        return f"RENAME TO {this}"
                    +            
                    2032    def renametable_sql(self, expression: exp.RenameTable) -> str:
                    +2033        if not self.RENAME_TABLE_WITH_DB:
                    +2034            # Remove db from tables
                    +2035            expression = expression.transform(
                    +2036                lambda n: exp.table_(n.this) if isinstance(n, exp.Table) else n
                    +2037            )
                    +2038        this = self.sql(expression, "this")
                    +2039        return f"RENAME TO {this}"
                     
                    @@ -10079,20 +10134,20 @@ Default: True
                    -
                    2029    def altertable_sql(self, expression: exp.AlterTable) -> str:
                    -2030        actions = expression.args["actions"]
                    -2031
                    -2032        if isinstance(actions[0], exp.ColumnDef):
                    -2033            actions = self.expressions(expression, key="actions", prefix="ADD COLUMN ")
                    -2034        elif isinstance(actions[0], exp.Schema):
                    -2035            actions = self.expressions(expression, key="actions", prefix="ADD COLUMNS ")
                    -2036        elif isinstance(actions[0], exp.Delete):
                    -2037            actions = self.expressions(expression, key="actions", flat=True)
                    -2038        else:
                    -2039            actions = self.expressions(expression, key="actions")
                    -2040
                    -2041        exists = " IF EXISTS" if expression.args.get("exists") else ""
                    -2042        return f"ALTER TABLE{exists} {self.sql(expression, 'this')} {actions}"
                    +            
                    2041    def altertable_sql(self, expression: exp.AlterTable) -> str:
                    +2042        actions = expression.args["actions"]
                    +2043
                    +2044        if isinstance(actions[0], exp.ColumnDef):
                    +2045            actions = self.expressions(expression, key="actions", prefix="ADD COLUMN ")
                    +2046        elif isinstance(actions[0], exp.Schema):
                    +2047            actions = self.expressions(expression, key="actions", prefix="ADD COLUMNS ")
                    +2048        elif isinstance(actions[0], exp.Delete):
                    +2049            actions = self.expressions(expression, key="actions", flat=True)
                    +2050        else:
                    +2051            actions = self.expressions(expression, key="actions")
                    +2052
                    +2053        exists = " IF EXISTS" if expression.args.get("exists") else ""
                    +2054        return f"ALTER TABLE{exists} {self.sql(expression, 'this')} {actions}"
                     
                    @@ -10110,10 +10165,10 @@ Default: True
                    -
                    2044    def droppartition_sql(self, expression: exp.DropPartition) -> str:
                    -2045        expressions = self.expressions(expression)
                    -2046        exists = " IF EXISTS " if expression.args.get("exists") else " "
                    -2047        return f"DROP{exists}{expressions}"
                    +            
                    2056    def droppartition_sql(self, expression: exp.DropPartition) -> str:
                    +2057        expressions = self.expressions(expression)
                    +2058        exists = " IF EXISTS " if expression.args.get("exists") else " "
                    +2059        return f"DROP{exists}{expressions}"
                     
                    @@ -10131,16 +10186,16 @@ Default: True
                    -
                    2049    def addconstraint_sql(self, expression: exp.AddConstraint) -> str:
                    -2050        this = self.sql(expression, "this")
                    -2051        expression_ = self.sql(expression, "expression")
                    -2052        add_constraint = f"ADD CONSTRAINT {this}" if this else "ADD"
                    -2053
                    -2054        enforced = expression.args.get("enforced")
                    -2055        if enforced is not None:
                    -2056            return f"{add_constraint} CHECK ({expression_}){' ENFORCED' if enforced else ''}"
                    -2057
                    -2058        return f"{add_constraint} {expression_}"
                    +            
                    2061    def addconstraint_sql(self, expression: exp.AddConstraint) -> str:
                    +2062        this = self.sql(expression, "this")
                    +2063        expression_ = self.sql(expression, "expression")
                    +2064        add_constraint = f"ADD CONSTRAINT {this}" if this else "ADD"
                    +2065
                    +2066        enforced = expression.args.get("enforced")
                    +2067        if enforced is not None:
                    +2068            return f"{add_constraint} CHECK ({expression_}){' ENFORCED' if enforced else ''}"
                    +2069
                    +2070        return f"{add_constraint} {expression_}"
                     
                    @@ -10158,13 +10213,13 @@ Default: True
                    -
                    2060    def distinct_sql(self, expression: exp.Distinct) -> str:
                    -2061        this = self.expressions(expression, flat=True)
                    -2062        this = f" {this}" if this else ""
                    -2063
                    -2064        on = self.sql(expression, "on")
                    -2065        on = f" ON {on}" if on else ""
                    -2066        return f"DISTINCT{this}{on}"
                    +            
                    2072    def distinct_sql(self, expression: exp.Distinct) -> str:
                    +2073        this = self.expressions(expression, flat=True)
                    +2074        this = f" {this}" if this else ""
                    +2075
                    +2076        on = self.sql(expression, "on")
                    +2077        on = f" ON {on}" if on else ""
                    +2078        return f"DISTINCT{this}{on}"
                     
                    @@ -10182,8 +10237,8 @@ Default: True
                    -
                    2068    def ignorenulls_sql(self, expression: exp.IgnoreNulls) -> str:
                    -2069        return f"{self.sql(expression, 'this')} IGNORE NULLS"
                    +            
                    2080    def ignorenulls_sql(self, expression: exp.IgnoreNulls) -> str:
                    +2081        return f"{self.sql(expression, 'this')} IGNORE NULLS"
                     
                    @@ -10201,8 +10256,8 @@ Default: True
                    -
                    2071    def respectnulls_sql(self, expression: exp.RespectNulls) -> str:
                    -2072        return f"{self.sql(expression, 'this')} RESPECT NULLS"
                    +            
                    2083    def respectnulls_sql(self, expression: exp.RespectNulls) -> str:
                    +2084        return f"{self.sql(expression, 'this')} RESPECT NULLS"
                     
                    @@ -10220,13 +10275,13 @@ Default: True
                    -
                    2074    def intdiv_sql(self, expression: exp.IntDiv) -> str:
                    -2075        return self.sql(
                    -2076            exp.Cast(
                    -2077                this=exp.Div(this=expression.this, expression=expression.expression),
                    -2078                to=exp.DataType(this=exp.DataType.Type.INT),
                    -2079            )
                    -2080        )
                    +            
                    2086    def intdiv_sql(self, expression: exp.IntDiv) -> str:
                    +2087        return self.sql(
                    +2088            exp.Cast(
                    +2089                this=exp.Div(this=expression.this, expression=expression.expression),
                    +2090                to=exp.DataType(this=exp.DataType.Type.INT),
                    +2091            )
                    +2092        )
                     
                    @@ -10244,8 +10299,8 @@ Default: True
                    -
                    2082    def dpipe_sql(self, expression: exp.DPipe) -> str:
                    -2083        return self.binary(expression, "||")
                    +            
                    2094    def dpipe_sql(self, expression: exp.DPipe) -> str:
                    +2095        return self.binary(expression, "||")
                     
                    @@ -10263,8 +10318,8 @@ Default: True
                    -
                    2085    def div_sql(self, expression: exp.Div) -> str:
                    -2086        return self.binary(expression, "/")
                    +            
                    2097    def div_sql(self, expression: exp.Div) -> str:
                    +2098        return self.binary(expression, "/")
                     
                    @@ -10282,8 +10337,8 @@ Default: True
                    -
                    2088    def overlaps_sql(self, expression: exp.Overlaps) -> str:
                    -2089        return self.binary(expression, "OVERLAPS")
                    +            
                    2100    def overlaps_sql(self, expression: exp.Overlaps) -> str:
                    +2101        return self.binary(expression, "OVERLAPS")
                     
                    @@ -10301,8 +10356,8 @@ Default: True
                    -
                    2091    def distance_sql(self, expression: exp.Distance) -> str:
                    -2092        return self.binary(expression, "<->")
                    +            
                    2103    def distance_sql(self, expression: exp.Distance) -> str:
                    +2104        return self.binary(expression, "<->")
                     
                    @@ -10320,8 +10375,8 @@ Default: True
                    -
                    2094    def dot_sql(self, expression: exp.Dot) -> str:
                    -2095        return f"{self.sql(expression, 'this')}.{self.sql(expression, 'expression')}"
                    +            
                    2106    def dot_sql(self, expression: exp.Dot) -> str:
                    +2107        return f"{self.sql(expression, 'this')}.{self.sql(expression, 'expression')}"
                     
                    @@ -10339,8 +10394,8 @@ Default: True
                    -
                    2097    def eq_sql(self, expression: exp.EQ) -> str:
                    -2098        return self.binary(expression, "=")
                    +            
                    2109    def eq_sql(self, expression: exp.EQ) -> str:
                    +2110        return self.binary(expression, "=")
                     
                    @@ -10358,8 +10413,8 @@ Default: True
                    -
                    2100    def escape_sql(self, expression: exp.Escape) -> str:
                    -2101        return self.binary(expression, "ESCAPE")
                    +            
                    2112    def escape_sql(self, expression: exp.Escape) -> str:
                    +2113        return self.binary(expression, "ESCAPE")
                     
                    @@ -10377,8 +10432,8 @@ Default: True
                    -
                    2103    def glob_sql(self, expression: exp.Glob) -> str:
                    -2104        return self.binary(expression, "GLOB")
                    +            
                    2115    def glob_sql(self, expression: exp.Glob) -> str:
                    +2116        return self.binary(expression, "GLOB")
                     
                    @@ -10396,8 +10451,8 @@ Default: True
                    -
                    2106    def gt_sql(self, expression: exp.GT) -> str:
                    -2107        return self.binary(expression, ">")
                    +            
                    2118    def gt_sql(self, expression: exp.GT) -> str:
                    +2119        return self.binary(expression, ">")
                     
                    @@ -10415,8 +10470,8 @@ Default: True
                    -
                    2109    def gte_sql(self, expression: exp.GTE) -> str:
                    -2110        return self.binary(expression, ">=")
                    +            
                    2121    def gte_sql(self, expression: exp.GTE) -> str:
                    +2122        return self.binary(expression, ">=")
                     
                    @@ -10434,8 +10489,8 @@ Default: True
                    -
                    2112    def ilike_sql(self, expression: exp.ILike) -> str:
                    -2113        return self.binary(expression, "ILIKE")
                    +            
                    2124    def ilike_sql(self, expression: exp.ILike) -> str:
                    +2125        return self.binary(expression, "ILIKE")
                     
                    @@ -10453,8 +10508,8 @@ Default: True
                    -
                    2115    def ilikeany_sql(self, expression: exp.ILikeAny) -> str:
                    -2116        return self.binary(expression, "ILIKE ANY")
                    +            
                    2127    def ilikeany_sql(self, expression: exp.ILikeAny) -> str:
                    +2128        return self.binary(expression, "ILIKE ANY")
                     
                    @@ -10472,8 +10527,8 @@ Default: True
                    -
                    2118    def is_sql(self, expression: exp.Is) -> str:
                    -2119        return self.binary(expression, "IS")
                    +            
                    2130    def is_sql(self, expression: exp.Is) -> str:
                    +2131        return self.binary(expression, "IS")
                     
                    @@ -10491,8 +10546,8 @@ Default: True
                    -
                    2121    def like_sql(self, expression: exp.Like) -> str:
                    -2122        return self.binary(expression, "LIKE")
                    +            
                    2133    def like_sql(self, expression: exp.Like) -> str:
                    +2134        return self.binary(expression, "LIKE")
                     
                    @@ -10510,8 +10565,8 @@ Default: True
                    -
                    2124    def likeany_sql(self, expression: exp.LikeAny) -> str:
                    -2125        return self.binary(expression, "LIKE ANY")
                    +            
                    2136    def likeany_sql(self, expression: exp.LikeAny) -> str:
                    +2137        return self.binary(expression, "LIKE ANY")
                     
                    @@ -10529,8 +10584,8 @@ Default: True
                    -
                    2127    def similarto_sql(self, expression: exp.SimilarTo) -> str:
                    -2128        return self.binary(expression, "SIMILAR TO")
                    +            
                    2139    def similarto_sql(self, expression: exp.SimilarTo) -> str:
                    +2140        return self.binary(expression, "SIMILAR TO")
                     
                    @@ -10548,8 +10603,8 @@ Default: True
                    -
                    2130    def lt_sql(self, expression: exp.LT) -> str:
                    -2131        return self.binary(expression, "<")
                    +            
                    2142    def lt_sql(self, expression: exp.LT) -> str:
                    +2143        return self.binary(expression, "<")
                     
                    @@ -10567,8 +10622,8 @@ Default: True
                    -
                    2133    def lte_sql(self, expression: exp.LTE) -> str:
                    -2134        return self.binary(expression, "<=")
                    +            
                    2145    def lte_sql(self, expression: exp.LTE) -> str:
                    +2146        return self.binary(expression, "<=")
                     
                    @@ -10586,8 +10641,8 @@ Default: True
                    -
                    2136    def mod_sql(self, expression: exp.Mod) -> str:
                    -2137        return self.binary(expression, "%")
                    +            
                    2148    def mod_sql(self, expression: exp.Mod) -> str:
                    +2149        return self.binary(expression, "%")
                     
                    @@ -10605,8 +10660,8 @@ Default: True
                    -
                    2139    def mul_sql(self, expression: exp.Mul) -> str:
                    -2140        return self.binary(expression, "*")
                    +            
                    2151    def mul_sql(self, expression: exp.Mul) -> str:
                    +2152        return self.binary(expression, "*")
                     
                    @@ -10624,8 +10679,8 @@ Default: True
                    -
                    2142    def neq_sql(self, expression: exp.NEQ) -> str:
                    -2143        return self.binary(expression, "<>")
                    +            
                    2154    def neq_sql(self, expression: exp.NEQ) -> str:
                    +2155        return self.binary(expression, "<>")
                     
                    @@ -10643,8 +10698,8 @@ Default: True
                    -
                    2145    def nullsafeeq_sql(self, expression: exp.NullSafeEQ) -> str:
                    -2146        return self.binary(expression, "IS NOT DISTINCT FROM")
                    +            
                    2157    def nullsafeeq_sql(self, expression: exp.NullSafeEQ) -> str:
                    +2158        return self.binary(expression, "IS NOT DISTINCT FROM")
                     
                    @@ -10662,8 +10717,8 @@ Default: True
                    -
                    2148    def nullsafeneq_sql(self, expression: exp.NullSafeNEQ) -> str:
                    -2149        return self.binary(expression, "IS DISTINCT FROM")
                    +            
                    2160    def nullsafeneq_sql(self, expression: exp.NullSafeNEQ) -> str:
                    +2161        return self.binary(expression, "IS DISTINCT FROM")
                     
                    @@ -10681,8 +10736,8 @@ Default: True
                    -
                    2151    def or_sql(self, expression: exp.Or) -> str:
                    -2152        return self.connector_sql(expression, "OR")
                    +            
                    2163    def or_sql(self, expression: exp.Or) -> str:
                    +2164        return self.connector_sql(expression, "OR")
                     
                    @@ -10700,8 +10755,8 @@ Default: True
                    -
                    2154    def slice_sql(self, expression: exp.Slice) -> str:
                    -2155        return self.binary(expression, ":")
                    +            
                    2166    def slice_sql(self, expression: exp.Slice) -> str:
                    +2167        return self.binary(expression, ":")
                     
                    @@ -10719,8 +10774,8 @@ Default: True
                    -
                    2157    def sub_sql(self, expression: exp.Sub) -> str:
                    -2158        return self.binary(expression, "-")
                    +            
                    2169    def sub_sql(self, expression: exp.Sub) -> str:
                    +2170        return self.binary(expression, "-")
                     
                    @@ -10738,8 +10793,8 @@ Default: True
                    -
                    2160    def trycast_sql(self, expression: exp.TryCast) -> str:
                    -2161        return f"TRY_CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})"
                    +            
                    2172    def trycast_sql(self, expression: exp.TryCast) -> str:
                    +2173        return f"TRY_CAST({self.sql(expression, 'this')} AS {self.sql(expression, 'to')})"
                     
                    @@ -10757,12 +10812,12 @@ Default: True
                    -
                    2163    def use_sql(self, expression: exp.Use) -> str:
                    -2164        kind = self.sql(expression, "kind")
                    -2165        kind = f" {kind}" if kind else ""
                    -2166        this = self.sql(expression, "this")
                    -2167        this = f" {this}" if this else ""
                    -2168        return f"USE{kind}{this}"
                    +            
                    2175    def use_sql(self, expression: exp.Use) -> str:
                    +2176        kind = self.sql(expression, "kind")
                    +2177        kind = f" {kind}" if kind else ""
                    +2178        this = self.sql(expression, "this")
                    +2179        this = f" {this}" if this else ""
                    +2180        return f"USE{kind}{this}"
                     
                    @@ -10780,9 +10835,9 @@ Default: True
                    -
                    2170    def binary(self, expression: exp.Binary, op: str) -> str:
                    -2171        op = self.maybe_comment(op, comments=expression.comments)
                    -2172        return f"{self.sql(expression, 'this')} {op} {self.sql(expression, 'expression')}"
                    +            
                    2182    def binary(self, expression: exp.Binary, op: str) -> str:
                    +2183        op = self.maybe_comment(op, comments=expression.comments)
                    +2184        return f"{self.sql(expression, 'this')} {op} {self.sql(expression, 'expression')}"
                     
                    @@ -10800,16 +10855,16 @@ Default: True
                    -
                    2174    def function_fallback_sql(self, expression: exp.Func) -> str:
                    -2175        args = []
                    -2176        for arg_value in expression.args.values():
                    -2177            if isinstance(arg_value, list):
                    -2178                for value in arg_value:
                    -2179                    args.append(value)
                    -2180            else:
                    -2181                args.append(arg_value)
                    -2182
                    -2183        return self.func(expression.sql_name(), *args)
                    +            
                    2186    def function_fallback_sql(self, expression: exp.Func) -> str:
                    +2187        args = []
                    +2188        for arg_value in expression.args.values():
                    +2189            if isinstance(arg_value, list):
                    +2190                for value in arg_value:
                    +2191                    args.append(value)
                    +2192            else:
                    +2193                args.append(arg_value)
                    +2194
                    +2195        return self.func(expression.sql_name(), *args)
                     
                    @@ -10827,8 +10882,8 @@ Default: True
                    -
                    2185    def func(self, name: str, *args: t.Optional[exp.Expression | str]) -> str:
                    -2186        return f"{self.normalize_func(name)}({self.format_args(*args)})"
                    +            
                    2197    def func(self, name: str, *args: t.Optional[exp.Expression | str]) -> str:
                    +2198        return f"{self.normalize_func(name)}({self.format_args(*args)})"
                     
                    @@ -10846,11 +10901,11 @@ Default: True
                    -
                    2188    def format_args(self, *args: t.Optional[str | exp.Expression]) -> str:
                    -2189        arg_sqls = tuple(self.sql(arg) for arg in args if arg is not None)
                    -2190        if self.pretty and self.text_width(arg_sqls) > self._max_text_width:
                    -2191            return self.indent("\n" + f",\n".join(arg_sqls) + "\n", skip_first=True, skip_last=True)
                    -2192        return ", ".join(arg_sqls)
                    +            
                    2200    def format_args(self, *args: t.Optional[str | exp.Expression]) -> str:
                    +2201        arg_sqls = tuple(self.sql(arg) for arg in args if arg is not None)
                    +2202        if self.pretty and self.text_width(arg_sqls) > self._max_text_width:
                    +2203            return self.indent("\n" + f",\n".join(arg_sqls) + "\n", skip_first=True, skip_last=True)
                    +2204        return ", ".join(arg_sqls)
                     
                    @@ -10868,8 +10923,8 @@ Default: True
                    -
                    2194    def text_width(self, args: t.Iterable) -> int:
                    -2195        return sum(len(arg) for arg in args)
                    +            
                    2206    def text_width(self, args: t.Iterable) -> int:
                    +2207        return sum(len(arg) for arg in args)
                     
                    @@ -10887,8 +10942,8 @@ Default: True
                    -
                    2197    def format_time(self, expression: exp.Expression) -> t.Optional[str]:
                    -2198        return format_time(self.sql(expression, "format"), self.time_mapping, self.time_trie)
                    +            
                    2209    def format_time(self, expression: exp.Expression) -> t.Optional[str]:
                    +2210        return format_time(self.sql(expression, "format"), self.time_mapping, self.time_trie)
                     
                    @@ -10906,47 +10961,47 @@ Default: True
                    -
                    2200    def expressions(
                    -2201        self,
                    -2202        expression: t.Optional[exp.Expression] = None,
                    -2203        key: t.Optional[str] = None,
                    -2204        sqls: t.Optional[t.List[str]] = None,
                    -2205        flat: bool = False,
                    -2206        indent: bool = True,
                    -2207        sep: str = ", ",
                    -2208        prefix: str = "",
                    -2209    ) -> str:
                    -2210        expressions = expression.args.get(key or "expressions") if expression else sqls
                    -2211
                    -2212        if not expressions:
                    -2213            return ""
                    -2214
                    -2215        if flat:
                    -2216            return sep.join(self.sql(e) for e in expressions)
                    -2217
                    -2218        num_sqls = len(expressions)
                    -2219
                    -2220        # These are calculated once in case we have the leading_comma / pretty option set, correspondingly
                    -2221        pad = " " * self.pad
                    -2222        stripped_sep = sep.strip()
                    +            
                    2212    def expressions(
                    +2213        self,
                    +2214        expression: t.Optional[exp.Expression] = None,
                    +2215        key: t.Optional[str] = None,
                    +2216        sqls: t.Optional[t.List[str]] = None,
                    +2217        flat: bool = False,
                    +2218        indent: bool = True,
                    +2219        sep: str = ", ",
                    +2220        prefix: str = "",
                    +2221    ) -> str:
                    +2222        expressions = expression.args.get(key or "expressions") if expression else sqls
                     2223
                    -2224        result_sqls = []
                    -2225        for i, e in enumerate(expressions):
                    -2226            sql = self.sql(e, comment=False)
                    -2227            comments = self.maybe_comment("", e) if isinstance(e, exp.Expression) else ""
                    -2228
                    -2229            if self.pretty:
                    -2230                if self._leading_comma:
                    -2231                    result_sqls.append(f"{sep if i > 0 else pad}{prefix}{sql}{comments}")
                    -2232                else:
                    -2233                    result_sqls.append(
                    -2234                        f"{prefix}{sql}{stripped_sep if i + 1 < num_sqls else ''}{comments}"
                    -2235                    )
                    -2236            else:
                    -2237                result_sqls.append(f"{prefix}{sql}{comments}{sep if i + 1 < num_sqls else ''}")
                    -2238
                    -2239        result_sql = "\n".join(result_sqls) if self.pretty else "".join(result_sqls)
                    -2240        return self.indent(result_sql, skip_first=False) if indent else result_sql
                    +2224        if not expressions:
                    +2225            return ""
                    +2226
                    +2227        if flat:
                    +2228            return sep.join(self.sql(e) for e in expressions)
                    +2229
                    +2230        num_sqls = len(expressions)
                    +2231
                    +2232        # These are calculated once in case we have the leading_comma / pretty option set, correspondingly
                    +2233        pad = " " * self.pad
                    +2234        stripped_sep = sep.strip()
                    +2235
                    +2236        result_sqls = []
                    +2237        for i, e in enumerate(expressions):
                    +2238            sql = self.sql(e, comment=False)
                    +2239            comments = self.maybe_comment("", e) if isinstance(e, exp.Expression) else ""
                    +2240
                    +2241            if self.pretty:
                    +2242                if self._leading_comma:
                    +2243                    result_sqls.append(f"{sep if i > 0 else pad}{prefix}{sql}{comments}")
                    +2244                else:
                    +2245                    result_sqls.append(
                    +2246                        f"{prefix}{sql}{stripped_sep if i + 1 < num_sqls else ''}{comments}"
                    +2247                    )
                    +2248            else:
                    +2249                result_sqls.append(f"{prefix}{sql}{comments}{sep if i + 1 < num_sqls else ''}")
                    +2250
                    +2251        result_sql = "\n".join(result_sqls) if self.pretty else "".join(result_sqls)
                    +2252        return self.indent(result_sql, skip_first=False) if indent else result_sql
                     
                    @@ -10964,12 +11019,12 @@ Default: True
                    -
                    2242    def op_expressions(self, op: str, expression: exp.Expression, flat: bool = False) -> str:
                    -2243        flat = flat or isinstance(expression.parent, exp.Properties)
                    -2244        expressions_sql = self.expressions(expression, flat=flat)
                    -2245        if flat:
                    -2246            return f"{op} {expressions_sql}"
                    -2247        return f"{self.seg(op)}{self.sep() if expressions_sql else ''}{expressions_sql}"
                    +            
                    2254    def op_expressions(self, op: str, expression: exp.Expression, flat: bool = False) -> str:
                    +2255        flat = flat or isinstance(expression.parent, exp.Properties)
                    +2256        expressions_sql = self.expressions(expression, flat=flat)
                    +2257        if flat:
                    +2258            return f"{op} {expressions_sql}"
                    +2259        return f"{self.seg(op)}{self.sep() if expressions_sql else ''}{expressions_sql}"
                     
                    @@ -10987,11 +11042,11 @@ Default: True
                    -
                    2249    def naked_property(self, expression: exp.Property) -> str:
                    -2250        property_name = exp.Properties.PROPERTY_TO_NAME.get(expression.__class__)
                    -2251        if not property_name:
                    -2252            self.unsupported(f"Unsupported property {expression.__class__.__name__}")
                    -2253        return f"{property_name} {self.sql(expression, 'this')}"
                    +            
                    2261    def naked_property(self, expression: exp.Property) -> str:
                    +2262        property_name = exp.Properties.PROPERTY_TO_NAME.get(expression.__class__)
                    +2263        if not property_name:
                    +2264            self.unsupported(f"Unsupported property {expression.__class__.__name__}")
                    +2265        return f"{property_name} {self.sql(expression, 'this')}"
                     
                    @@ -11009,12 +11064,12 @@ Default: True
                    -
                    2255    def set_operation(self, expression: exp.Expression, op: str) -> str:
                    -2256        this = self.sql(expression, "this")
                    -2257        op = self.seg(op)
                    -2258        return self.query_modifiers(
                    -2259            expression, f"{this}{op}{self.sep()}{self.sql(expression, 'expression')}"
                    -2260        )
                    +            
                    2267    def set_operation(self, expression: exp.Expression, op: str) -> str:
                    +2268        this = self.sql(expression, "this")
                    +2269        op = self.seg(op)
                    +2270        return self.query_modifiers(
                    +2271            expression, f"{this}{op}{self.sep()}{self.sql(expression, 'expression')}"
                    +2272        )
                     
                    @@ -11032,8 +11087,8 @@ Default: True
                    -
                    2262    def tag_sql(self, expression: exp.Tag) -> str:
                    -2263        return f"{expression.args.get('prefix')}{self.sql(expression.this)}{expression.args.get('postfix')}"
                    +            
                    2274    def tag_sql(self, expression: exp.Tag) -> str:
                    +2275        return f"{expression.args.get('prefix')}{self.sql(expression.this)}{expression.args.get('postfix')}"
                     
                    @@ -11051,8 +11106,8 @@ Default: True
                    -
                    2265    def token_sql(self, token_type: TokenType) -> str:
                    -2266        return self.TOKEN_MAPPING.get(token_type, token_type.name)
                    +            
                    2277    def token_sql(self, token_type: TokenType) -> str:
                    +2278        return self.TOKEN_MAPPING.get(token_type, token_type.name)
                     
                    @@ -11070,13 +11125,13 @@ Default: True
                    -
                    2268    def userdefinedfunction_sql(self, expression: exp.UserDefinedFunction) -> str:
                    -2269        this = self.sql(expression, "this")
                    -2270        expressions = self.no_identify(self.expressions, expression)
                    -2271        expressions = (
                    -2272            self.wrap(expressions) if expression.args.get("wrapped") else f" {expressions}"
                    -2273        )
                    -2274        return f"{this}{expressions}"
                    +            
                    2280    def userdefinedfunction_sql(self, expression: exp.UserDefinedFunction) -> str:
                    +2281        this = self.sql(expression, "this")
                    +2282        expressions = self.no_identify(self.expressions, expression)
                    +2283        expressions = (
                    +2284            self.wrap(expressions) if expression.args.get("wrapped") else f" {expressions}"
                    +2285        )
                    +2286        return f"{this}{expressions}"
                     
                    @@ -11094,10 +11149,10 @@ Default: True
                    -
                    2276    def joinhint_sql(self, expression: exp.JoinHint) -> str:
                    -2277        this = self.sql(expression, "this")
                    -2278        expressions = self.expressions(expression, flat=True)
                    -2279        return f"{this}({expressions})"
                    +            
                    2288    def joinhint_sql(self, expression: exp.JoinHint) -> str:
                    +2289        this = self.sql(expression, "this")
                    +2290        expressions = self.expressions(expression, flat=True)
                    +2291        return f"{this}({expressions})"
                     
                    @@ -11115,8 +11170,8 @@ Default: True
                    -
                    2281    def kwarg_sql(self, expression: exp.Kwarg) -> str:
                    -2282        return self.binary(expression, "=>")
                    +            
                    2293    def kwarg_sql(self, expression: exp.Kwarg) -> str:
                    +2294        return self.binary(expression, "=>")
                     
                    @@ -11134,25 +11189,25 @@ Default: True
                    -
                    2284    def when_sql(self, expression: exp.When) -> str:
                    -2285        matched = "MATCHED" if expression.args["matched"] else "NOT MATCHED"
                    -2286        source = " BY SOURCE" if self.MATCHED_BY_SOURCE and expression.args.get("source") else ""
                    -2287        condition = self.sql(expression, "condition")
                    -2288        condition = f" AND {condition}" if condition else ""
                    -2289
                    -2290        then_expression = expression.args.get("then")
                    -2291        if isinstance(then_expression, exp.Insert):
                    -2292            then = f"INSERT {self.sql(then_expression, 'this')}"
                    -2293            if "expression" in then_expression.args:
                    -2294                then += f" VALUES {self.sql(then_expression, 'expression')}"
                    -2295        elif isinstance(then_expression, exp.Update):
                    -2296            if isinstance(then_expression.args.get("expressions"), exp.Star):
                    -2297                then = f"UPDATE {self.sql(then_expression, 'expressions')}"
                    -2298            else:
                    -2299                then = f"UPDATE SET {self.expressions(then_expression, flat=True)}"
                    -2300        else:
                    -2301            then = self.sql(then_expression)
                    -2302        return f"WHEN {matched}{source}{condition} THEN {then}"
                    +            
                    2296    def when_sql(self, expression: exp.When) -> str:
                    +2297        matched = "MATCHED" if expression.args["matched"] else "NOT MATCHED"
                    +2298        source = " BY SOURCE" if self.MATCHED_BY_SOURCE and expression.args.get("source") else ""
                    +2299        condition = self.sql(expression, "condition")
                    +2300        condition = f" AND {condition}" if condition else ""
                    +2301
                    +2302        then_expression = expression.args.get("then")
                    +2303        if isinstance(then_expression, exp.Insert):
                    +2304            then = f"INSERT {self.sql(then_expression, 'this')}"
                    +2305            if "expression" in then_expression.args:
                    +2306                then += f" VALUES {self.sql(then_expression, 'expression')}"
                    +2307        elif isinstance(then_expression, exp.Update):
                    +2308            if isinstance(then_expression.args.get("expressions"), exp.Star):
                    +2309                then = f"UPDATE {self.sql(then_expression, 'expressions')}"
                    +2310            else:
                    +2311                then = f"UPDATE SET {self.expressions(then_expression, flat=True)}"
                    +2312        else:
                    +2313            then = self.sql(then_expression)
                    +2314        return f"WHEN {matched}{source}{condition} THEN {then}"
                     
                    @@ -11170,11 +11225,11 @@ Default: True
                    -
                    2304    def merge_sql(self, expression: exp.Merge) -> str:
                    -2305        this = self.sql(expression, "this")
                    -2306        using = f"USING {self.sql(expression, 'using')}"
                    -2307        on = f"ON {self.sql(expression, 'on')}"
                    -2308        return f"MERGE INTO {this} {using} {on} {self.expressions(expression, sep=' ')}"
                    +            
                    2316    def merge_sql(self, expression: exp.Merge) -> str:
                    +2317        this = self.sql(expression, "this")
                    +2318        using = f"USING {self.sql(expression, 'using')}"
                    +2319        on = f"ON {self.sql(expression, 'on')}"
                    +2320        return f"MERGE INTO {this} {using} {on} {self.expressions(expression, sep=' ')}"
                     
                    @@ -11192,11 +11247,75 @@ Default: True
                    -
                    2310    def tochar_sql(self, expression: exp.ToChar) -> str:
                    -2311        if expression.args.get("format"):
                    -2312            self.unsupported("Format argument unsupported for TO_CHAR/TO_VARCHAR function")
                    -2313
                    -2314        return self.sql(exp.cast(expression.this, "text"))
                    +            
                    2322    def tochar_sql(self, expression: exp.ToChar) -> str:
                    +2323        if expression.args.get("format"):
                    +2324            self.unsupported("Format argument unsupported for TO_CHAR/TO_VARCHAR function")
                    +2325
                    +2326        return self.sql(exp.cast(expression.this, "text"))
                    +
                    + + + + +
                    +
                    + +
                    + + def + dictproperty_sql(self, expression: sqlglot.expressions.DictProperty) -> str: + + + +
                    + +
                    2328    def dictproperty_sql(self, expression: exp.DictProperty) -> str:
                    +2329        this = self.sql(expression, "this")
                    +2330        kind = self.sql(expression, "kind")
                    +2331        settings_sql = self.expressions(expression, key="settings", sep=" ")
                    +2332        args = f"({self.sep('')}{settings_sql}{self.seg(')', sep='')}" if settings_sql else "()"
                    +2333        return f"{this}({kind}{args})"
                    +
                    + + + + +
                    +
                    + +
                    + + def + dictrange_sql(self, expression: sqlglot.expressions.DictRange) -> str: + + + +
                    + +
                    2335    def dictrange_sql(self, expression: exp.DictRange) -> str:
                    +2336        this = self.sql(expression, "this")
                    +2337        max = self.sql(expression, "max")
                    +2338        min = self.sql(expression, "min")
                    +2339        return f"{this}(MIN {min} MAX {max})"
                    +
                    + + + + +
                    +
                    + +
                    + + def + dictsubproperty_sql(self, expression: sqlglot.expressions.DictSubProperty) -> str: + + + +
                    + +
                    2341    def dictsubproperty_sql(self, expression: exp.DictSubProperty) -> str:
                    +2342        return f"{self.sql(expression, 'this')} {self.sql(expression, 'value')}"
                     
                    @@ -11215,13 +11334,13 @@ Default: True
                    -
                    2317def cached_generator(
                    -2318    cache: t.Optional[t.Dict[int, str]] = None
                    -2319) -> t.Callable[[exp.Expression], str]:
                    -2320    """Returns a cached generator."""
                    -2321    cache = {} if cache is None else cache
                    -2322    generator = Generator(normalize=True, identify="safe")
                    -2323    return lambda e: generator.generate(e, cache)
                    +            
                    2345def cached_generator(
                    +2346    cache: t.Optional[t.Dict[int, str]] = None
                    +2347) -> t.Callable[[exp.Expression], str]:
                    +2348    """Returns a cached generator."""
                    +2349    cache = {} if cache is None else cache
                    +2350    generator = Generator(normalize=True, identify="safe")
                    +2351    return lambda e: generator.generate(e, cache)
                     
                    diff --git a/docs/sqlglot/helper.html b/docs/sqlglot/helper.html index 500e09f..8c1e736 100644 --- a/docs/sqlglot/helper.html +++ b/docs/sqlglot/helper.html @@ -72,6 +72,9 @@
                  • find_new_name
                  • +
                  • + name_sequence +
                  • object_to_dict
                  • @@ -90,6 +93,9 @@
                  • first
                  • +
                  • + case_sensitive +
                  • should_identify
                  • @@ -127,431 +133,453 @@
                    9from contextlib import contextmanager 10from copy import copy 11from enum import Enum - 12 - 13if t.TYPE_CHECKING: - 14 from sqlglot import exp - 15 from sqlglot._typing import E, T - 16 from sqlglot.expressions import Expression - 17 - 18CAMEL_CASE_PATTERN = re.compile("(?<!^)(?=[A-Z])") - 19PYTHON_VERSION = sys.version_info[:2] - 20logger = logging.getLogger("sqlglot") - 21 - 22 - 23class AutoName(Enum): - 24 """This is used for creating enum classes where `auto()` is the string form of the corresponding value's name.""" - 25 - 26 def _generate_next_value_(name, _start, _count, _last_values): - 27 return name - 28 - 29 - 30def seq_get(seq: t.Sequence[T], index: int) -> t.Optional[T]: - 31 """Returns the value in `seq` at position `index`, or `None` if `index` is out of bounds.""" - 32 try: - 33 return seq[index] - 34 except IndexError: - 35 return None - 36 - 37 - 38@t.overload - 39def ensure_list(value: t.Collection[T]) -> t.List[T]: - 40 ... - 41 - 42 - 43@t.overload - 44def ensure_list(value: T) -> t.List[T]: - 45 ... - 46 - 47 - 48def ensure_list(value): - 49 """ - 50 Ensures that a value is a list, otherwise casts or wraps it into one. - 51 - 52 Args: - 53 value: the value of interest. - 54 - 55 Returns: - 56 The value cast as a list if it's a list or a tuple, or else the value wrapped in a list. - 57 """ - 58 if value is None: - 59 return [] - 60 if isinstance(value, (list, tuple)): - 61 return list(value) - 62 - 63 return [value] + 12from itertools import count + 13 + 14if t.TYPE_CHECKING: + 15 from sqlglot import exp + 16 from sqlglot._typing import E, T + 17 from sqlglot.dialects.dialect import DialectType + 18 from sqlglot.expressions import Expression + 19 + 20CAMEL_CASE_PATTERN = re.compile("(?<!^)(?=[A-Z])") + 21PYTHON_VERSION = sys.version_info[:2] + 22logger = logging.getLogger("sqlglot") + 23 + 24 + 25class AutoName(Enum): + 26 """This is used for creating enum classes where `auto()` is the string form of the corresponding value's name.""" + 27 + 28 def _generate_next_value_(name, _start, _count, _last_values): + 29 return name + 30 + 31 + 32def seq_get(seq: t.Sequence[T], index: int) -> t.Optional[T]: + 33 """Returns the value in `seq` at position `index`, or `None` if `index` is out of bounds.""" + 34 try: + 35 return seq[index] + 36 except IndexError: + 37 return None + 38 + 39 + 40@t.overload + 41def ensure_list(value: t.Collection[T]) -> t.List[T]: + 42 ... + 43 + 44 + 45@t.overload + 46def ensure_list(value: T) -> t.List[T]: + 47 ... + 48 + 49 + 50def ensure_list(value): + 51 """ + 52 Ensures that a value is a list, otherwise casts or wraps it into one. + 53 + 54 Args: + 55 value: the value of interest. + 56 + 57 Returns: + 58 The value cast as a list if it's a list or a tuple, or else the value wrapped in a list. + 59 """ + 60 if value is None: + 61 return [] + 62 if isinstance(value, (list, tuple)): + 63 return list(value) 64 - 65 - 66@t.overload - 67def ensure_collection(value: t.Collection[T]) -> t.Collection[T]: - 68 ... - 69 - 70 - 71@t.overload - 72def ensure_collection(value: T) -> t.Collection[T]: - 73 ... - 74 - 75 - 76def ensure_collection(value): - 77 """ - 78 Ensures that a value is a collection (excluding `str` and `bytes`), otherwise wraps it into a list. - 79 - 80 Args: - 81 value: the value of interest. - 82 - 83 Returns: - 84 The value if it's a collection, or else the value wrapped in a list. - 85 """ - 86 if value is None: - 87 return [] - 88 return ( - 89 value if isinstance(value, Collection) and not isinstance(value, (str, bytes)) else [value] - 90 ) - 91 - 92 - 93def csv(*args: str, sep: str = ", ") -> str: - 94 """ - 95 Formats any number of string arguments as CSV. - 96 - 97 Args: - 98 args: the string arguments to format. - 99 sep: the argument separator. -100 -101 Returns: -102 The arguments formatted as a CSV string. -103 """ -104 return sep.join(arg for arg in args if arg) -105 -106 -107def subclasses( -108 module_name: str, -109 classes: t.Type | t.Tuple[t.Type, ...], -110 exclude: t.Type | t.Tuple[t.Type, ...] = (), -111) -> t.List[t.Type]: -112 """ -113 Returns all subclasses for a collection of classes, possibly excluding some of them. -114 -115 Args: -116 module_name: the name of the module to search for subclasses in. -117 classes: class(es) we want to find the subclasses of. -118 exclude: class(es) we want to exclude from the returned list. -119 -120 Returns: -121 The target subclasses. -122 """ -123 return [ -124 obj -125 for _, obj in inspect.getmembers( -126 sys.modules[module_name], -127 lambda obj: inspect.isclass(obj) and issubclass(obj, classes) and obj not in exclude, -128 ) -129 ] -130 -131 -132def apply_index_offset( -133 this: exp.Expression, -134 expressions: t.List[t.Optional[E]], -135 offset: int, -136) -> t.List[t.Optional[E]]: -137 """ -138 Applies an offset to a given integer literal expression. -139 -140 Args: -141 this: the target of the index -142 expressions: the expression the offset will be applied to, wrapped in a list. -143 offset: the offset that will be applied. -144 -145 Returns: -146 The original expression with the offset applied to it, wrapped in a list. If the provided -147 `expressions` argument contains more than one expressions, it's returned unaffected. -148 """ -149 if not offset or len(expressions) != 1: -150 return expressions -151 -152 expression = expressions[0] + 65 return [value] + 66 + 67 + 68@t.overload + 69def ensure_collection(value: t.Collection[T]) -> t.Collection[T]: + 70 ... + 71 + 72 + 73@t.overload + 74def ensure_collection(value: T) -> t.Collection[T]: + 75 ... + 76 + 77 + 78def ensure_collection(value): + 79 """ + 80 Ensures that a value is a collection (excluding `str` and `bytes`), otherwise wraps it into a list. + 81 + 82 Args: + 83 value: the value of interest. + 84 + 85 Returns: + 86 The value if it's a collection, or else the value wrapped in a list. + 87 """ + 88 if value is None: + 89 return [] + 90 return ( + 91 value if isinstance(value, Collection) and not isinstance(value, (str, bytes)) else [value] + 92 ) + 93 + 94 + 95def csv(*args: str, sep: str = ", ") -> str: + 96 """ + 97 Formats any number of string arguments as CSV. + 98 + 99 Args: +100 args: the string arguments to format. +101 sep: the argument separator. +102 +103 Returns: +104 The arguments formatted as a CSV string. +105 """ +106 return sep.join(arg for arg in args if arg) +107 +108 +109def subclasses( +110 module_name: str, +111 classes: t.Type | t.Tuple[t.Type, ...], +112 exclude: t.Type | t.Tuple[t.Type, ...] = (), +113) -> t.List[t.Type]: +114 """ +115 Returns all subclasses for a collection of classes, possibly excluding some of them. +116 +117 Args: +118 module_name: the name of the module to search for subclasses in. +119 classes: class(es) we want to find the subclasses of. +120 exclude: class(es) we want to exclude from the returned list. +121 +122 Returns: +123 The target subclasses. +124 """ +125 return [ +126 obj +127 for _, obj in inspect.getmembers( +128 sys.modules[module_name], +129 lambda obj: inspect.isclass(obj) and issubclass(obj, classes) and obj not in exclude, +130 ) +131 ] +132 +133 +134def apply_index_offset( +135 this: exp.Expression, +136 expressions: t.List[t.Optional[E]], +137 offset: int, +138) -> t.List[t.Optional[E]]: +139 """ +140 Applies an offset to a given integer literal expression. +141 +142 Args: +143 this: the target of the index +144 expressions: the expression the offset will be applied to, wrapped in a list. +145 offset: the offset that will be applied. +146 +147 Returns: +148 The original expression with the offset applied to it, wrapped in a list. If the provided +149 `expressions` argument contains more than one expressions, it's returned unaffected. +150 """ +151 if not offset or len(expressions) != 1: +152 return expressions 153 -154 from sqlglot import exp -155 from sqlglot.optimizer.annotate_types import annotate_types -156 from sqlglot.optimizer.simplify import simplify -157 -158 if not this.type: -159 annotate_types(this) -160 -161 if t.cast(exp.DataType, this.type).this not in ( -162 exp.DataType.Type.UNKNOWN, -163 exp.DataType.Type.ARRAY, -164 ): -165 return expressions -166 -167 if expression: -168 if not expression.type: -169 annotate_types(expression) -170 if t.cast(exp.DataType, expression.type).this in exp.DataType.INTEGER_TYPES: -171 logger.warning("Applying array index offset (%s)", offset) -172 expression = simplify( -173 exp.Add(this=expression.copy(), expression=exp.Literal.number(offset)) -174 ) -175 return [expression] -176 -177 return expressions +154 expression = expressions[0] +155 +156 from sqlglot import exp +157 from sqlglot.optimizer.annotate_types import annotate_types +158 from sqlglot.optimizer.simplify import simplify +159 +160 if not this.type: +161 annotate_types(this) +162 +163 if t.cast(exp.DataType, this.type).this not in ( +164 exp.DataType.Type.UNKNOWN, +165 exp.DataType.Type.ARRAY, +166 ): +167 return expressions +168 +169 if expression: +170 if not expression.type: +171 annotate_types(expression) +172 if t.cast(exp.DataType, expression.type).this in exp.DataType.INTEGER_TYPES: +173 logger.warning("Applying array index offset (%s)", offset) +174 expression = simplify( +175 exp.Add(this=expression.copy(), expression=exp.Literal.number(offset)) +176 ) +177 return [expression] 178 -179 -180def camel_to_snake_case(name: str) -> str: -181 """Converts `name` from camelCase to snake_case and returns the result.""" -182 return CAMEL_CASE_PATTERN.sub("_", name).upper() -183 -184 -185def while_changing(expression: Expression, func: t.Callable[[Expression], E]) -> E: -186 """ -187 Applies a transformation to a given expression until a fix point is reached. -188 -189 Args: -190 expression: the expression to be transformed. -191 func: the transformation to be applied. -192 -193 Returns: -194 The transformed expression. -195 """ -196 while True: -197 for n, *_ in reversed(tuple(expression.walk())): -198 n._hash = hash(n) -199 start = hash(expression) -200 expression = func(expression) -201 -202 for n, *_ in expression.walk(): -203 n._hash = None -204 if start == hash(expression): -205 break -206 return expression -207 -208 -209def tsort(dag: t.Dict[T, t.List[T]]) -> t.List[T]: -210 """ -211 Sorts a given directed acyclic graph in topological order. -212 -213 Args: -214 dag: the graph to be sorted. -215 -216 Returns: -217 A list that contains all of the graph's nodes in topological order. -218 """ -219 result = [] -220 -221 def visit(node: T, visited: t.Set[T]) -> None: -222 if node in result: -223 return -224 if node in visited: -225 raise ValueError("Cycle error") -226 -227 visited.add(node) +179 return expressions +180 +181 +182def camel_to_snake_case(name: str) -> str: +183 """Converts `name` from camelCase to snake_case and returns the result.""" +184 return CAMEL_CASE_PATTERN.sub("_", name).upper() +185 +186 +187def while_changing(expression: Expression, func: t.Callable[[Expression], E]) -> E: +188 """ +189 Applies a transformation to a given expression until a fix point is reached. +190 +191 Args: +192 expression: the expression to be transformed. +193 func: the transformation to be applied. +194 +195 Returns: +196 The transformed expression. +197 """ +198 while True: +199 for n, *_ in reversed(tuple(expression.walk())): +200 n._hash = hash(n) +201 start = hash(expression) +202 expression = func(expression) +203 +204 for n, *_ in expression.walk(): +205 n._hash = None +206 if start == hash(expression): +207 break +208 return expression +209 +210 +211def tsort(dag: t.Dict[T, t.List[T]]) -> t.List[T]: +212 """ +213 Sorts a given directed acyclic graph in topological order. +214 +215 Args: +216 dag: the graph to be sorted. +217 +218 Returns: +219 A list that contains all of the graph's nodes in topological order. +220 """ +221 result = [] +222 +223 def visit(node: T, visited: t.Set[T]) -> None: +224 if node in result: +225 return +226 if node in visited: +227 raise ValueError("Cycle error") 228 -229 for dep in dag.get(node, []): -230 visit(dep, visited) -231 -232 visited.remove(node) -233 result.append(node) -234 -235 for node in dag: -236 visit(node, set()) -237 -238 return result +229 visited.add(node) +230 +231 for dep in dag.get(node, []): +232 visit(dep, visited) +233 +234 visited.remove(node) +235 result.append(node) +236 +237 for node in dag: +238 visit(node, set()) 239 -240 -241def open_file(file_name: str) -> t.TextIO: -242 """Open a file that may be compressed as gzip and return it in universal newline mode.""" -243 with open(file_name, "rb") as f: -244 gzipped = f.read(2) == b"\x1f\x8b" -245 -246 if gzipped: -247 import gzip -248 -249 return gzip.open(file_name, "rt", newline="") +240 return result +241 +242 +243def open_file(file_name: str) -> t.TextIO: +244 """Open a file that may be compressed as gzip and return it in universal newline mode.""" +245 with open(file_name, "rb") as f: +246 gzipped = f.read(2) == b"\x1f\x8b" +247 +248 if gzipped: +249 import gzip 250 -251 return open(file_name, encoding="utf-8", newline="") +251 return gzip.open(file_name, "rt", newline="") 252 -253 -254@contextmanager -255def csv_reader(read_csv: exp.ReadCSV) -> t.Any: -256 """ -257 Returns a csv reader given the expression `READ_CSV(name, ['delimiter', '|', ...])`. -258 -259 Args: -260 read_csv: a `ReadCSV` function call -261 -262 Yields: -263 A python csv reader. -264 """ -265 args = read_csv.expressions -266 file = open_file(read_csv.name) -267 -268 delimiter = "," -269 args = iter(arg.name for arg in args) -270 for k, v in zip(args, args): -271 if k == "delimiter": -272 delimiter = v -273 -274 try: -275 import csv as csv_ -276 -277 yield csv_.reader(file, delimiter=delimiter) -278 finally: -279 file.close() -280 -281 -282def find_new_name(taken: t.Collection[str], base: str) -> str: -283 """ -284 Searches for a new name. -285 -286 Args: -287 taken: a collection of taken names. -288 base: base name to alter. -289 -290 Returns: -291 The new, available name. -292 """ -293 if base not in taken: -294 return base -295 -296 i = 2 -297 new = f"{base}_{i}" -298 while new in taken: -299 i += 1 -300 new = f"{base}_{i}" -301 -302 return new +253 return open(file_name, encoding="utf-8", newline="") +254 +255 +256@contextmanager +257def csv_reader(read_csv: exp.ReadCSV) -> t.Any: +258 """ +259 Returns a csv reader given the expression `READ_CSV(name, ['delimiter', '|', ...])`. +260 +261 Args: +262 read_csv: a `ReadCSV` function call +263 +264 Yields: +265 A python csv reader. +266 """ +267 args = read_csv.expressions +268 file = open_file(read_csv.name) +269 +270 delimiter = "," +271 args = iter(arg.name for arg in args) +272 for k, v in zip(args, args): +273 if k == "delimiter": +274 delimiter = v +275 +276 try: +277 import csv as csv_ +278 +279 yield csv_.reader(file, delimiter=delimiter) +280 finally: +281 file.close() +282 +283 +284def find_new_name(taken: t.Collection[str], base: str) -> str: +285 """ +286 Searches for a new name. +287 +288 Args: +289 taken: a collection of taken names. +290 base: base name to alter. +291 +292 Returns: +293 The new, available name. +294 """ +295 if base not in taken: +296 return base +297 +298 i = 2 +299 new = f"{base}_{i}" +300 while new in taken: +301 i += 1 +302 new = f"{base}_{i}" 303 -304 -305def object_to_dict(obj: t.Any, **kwargs) -> t.Dict: -306 """Returns a dictionary created from an object's attributes.""" -307 return {**{k: copy(v) for k, v in vars(obj).copy().items()}, **kwargs} -308 -309 -310def split_num_words( -311 value: str, sep: str, min_num_words: int, fill_from_start: bool = True -312) -> t.List[t.Optional[str]]: -313 """ -314 Perform a split on a value and return N words as a result with `None` used for words that don't exist. -315 -316 Args: -317 value: the value to be split. -318 sep: the value to use to split on. -319 min_num_words: the minimum number of words that are going to be in the result. -320 fill_from_start: indicates that if `None` values should be inserted at the start or end of the list. -321 -322 Examples: -323 >>> split_num_words("db.table", ".", 3) -324 [None, 'db', 'table'] -325 >>> split_num_words("db.table", ".", 3, fill_from_start=False) -326 ['db', 'table', None] -327 >>> split_num_words("db.table", ".", 1) -328 ['db', 'table'] -329 -330 Returns: -331 The list of words returned by `split`, possibly augmented by a number of `None` values. -332 """ -333 words = value.split(sep) -334 if fill_from_start: -335 return [None] * (min_num_words - len(words)) + words -336 return words + [None] * (min_num_words - len(words)) -337 -338 -339def is_iterable(value: t.Any) -> bool: -340 """ -341 Checks if the value is an iterable, excluding the types `str` and `bytes`. -342 -343 Examples: -344 >>> is_iterable([1,2]) -345 True -346 >>> is_iterable("test") -347 False +304 return new +305 +306 +307def name_sequence(prefix: str) -> t.Callable[[], str]: +308 """Returns a name generator given a prefix (e.g. a0, a1, a2, ... if the prefix is "a").""" +309 sequence = count() +310 return lambda: f"{prefix}{next(sequence)}" +311 +312 +313def object_to_dict(obj: t.Any, **kwargs) -> t.Dict: +314 """Returns a dictionary created from an object's attributes.""" +315 return { +316 **{k: v.copy() if hasattr(v, "copy") else copy(v) for k, v in vars(obj).items()}, +317 **kwargs, +318 } +319 +320 +321def split_num_words( +322 value: str, sep: str, min_num_words: int, fill_from_start: bool = True +323) -> t.List[t.Optional[str]]: +324 """ +325 Perform a split on a value and return N words as a result with `None` used for words that don't exist. +326 +327 Args: +328 value: the value to be split. +329 sep: the value to use to split on. +330 min_num_words: the minimum number of words that are going to be in the result. +331 fill_from_start: indicates that if `None` values should be inserted at the start or end of the list. +332 +333 Examples: +334 >>> split_num_words("db.table", ".", 3) +335 [None, 'db', 'table'] +336 >>> split_num_words("db.table", ".", 3, fill_from_start=False) +337 ['db', 'table', None] +338 >>> split_num_words("db.table", ".", 1) +339 ['db', 'table'] +340 +341 Returns: +342 The list of words returned by `split`, possibly augmented by a number of `None` values. +343 """ +344 words = value.split(sep) +345 if fill_from_start: +346 return [None] * (min_num_words - len(words)) + words +347 return words + [None] * (min_num_words - len(words)) 348 -349 Args: -350 value: the value to check if it is an iterable. -351 -352 Returns: -353 A `bool` value indicating if it is an iterable. -354 """ -355 return hasattr(value, "__iter__") and not isinstance(value, (str, bytes)) -356 -357 -358def flatten(values: t.Iterable[t.Iterable[t.Any] | t.Any]) -> t.Iterator[t.Any]: -359 """ -360 Flattens an iterable that can contain both iterable and non-iterable elements. Objects of -361 type `str` and `bytes` are not regarded as iterables. +349 +350def is_iterable(value: t.Any) -> bool: +351 """ +352 Checks if the value is an iterable, excluding the types `str` and `bytes`. +353 +354 Examples: +355 >>> is_iterable([1,2]) +356 True +357 >>> is_iterable("test") +358 False +359 +360 Args: +361 value: the value to check if it is an iterable. 362 -363 Examples: -364 >>> list(flatten([[1, 2], 3, {4}, (5, "bla")])) -365 [1, 2, 3, 4, 5, 'bla'] -366 >>> list(flatten([1, 2, 3])) -367 [1, 2, 3] +363 Returns: +364 A `bool` value indicating if it is an iterable. +365 """ +366 return hasattr(value, "__iter__") and not isinstance(value, (str, bytes)) +367 368 -369 Args: -370 values: the value to be flattened. -371 -372 Yields: -373 Non-iterable elements in `values`. -374 """ -375 for value in values: -376 if is_iterable(value): -377 yield from flatten(value) -378 else: -379 yield value -380 -381 -382def dict_depth(d: t.Dict) -> int: -383 """ -384 Get the nesting depth of a dictionary. -385 -386 For example: -387 >>> dict_depth(None) -388 0 -389 >>> dict_depth({}) -390 1 -391 >>> dict_depth({"a": "b"}) -392 1 -393 >>> dict_depth({"a": {}}) -394 2 -395 >>> dict_depth({"a": {"b": {}}}) -396 3 -397 -398 Args: -399 d (dict): dictionary -400 -401 Returns: -402 int: depth -403 """ -404 try: -405 return 1 + dict_depth(next(iter(d.values()))) -406 except AttributeError: -407 # d doesn't have attribute "values" -408 return 0 -409 except StopIteration: -410 # d.values() returns an empty sequence -411 return 1 -412 -413 -414def first(it: t.Iterable[T]) -> T: -415 """Returns the first element from an iterable. -416 -417 Useful for sets. -418 """ -419 return next(i for i in it) -420 -421 -422def should_identify(text: str, identify: str | bool) -> bool: -423 """Checks if text should be identified given an identify option. +369def flatten(values: t.Iterable[t.Iterable[t.Any] | t.Any]) -> t.Iterator[t.Any]: +370 """ +371 Flattens an iterable that can contain both iterable and non-iterable elements. Objects of +372 type `str` and `bytes` are not regarded as iterables. +373 +374 Examples: +375 >>> list(flatten([[1, 2], 3, {4}, (5, "bla")])) +376 [1, 2, 3, 4, 5, 'bla'] +377 >>> list(flatten([1, 2, 3])) +378 [1, 2, 3] +379 +380 Args: +381 values: the value to be flattened. +382 +383 Yields: +384 Non-iterable elements in `values`. +385 """ +386 for value in values: +387 if is_iterable(value): +388 yield from flatten(value) +389 else: +390 yield value +391 +392 +393def dict_depth(d: t.Dict) -> int: +394 """ +395 Get the nesting depth of a dictionary. +396 +397 For example: +398 >>> dict_depth(None) +399 0 +400 >>> dict_depth({}) +401 1 +402 >>> dict_depth({"a": "b"}) +403 1 +404 >>> dict_depth({"a": {}}) +405 2 +406 >>> dict_depth({"a": {"b": {}}}) +407 3 +408 +409 Args: +410 d (dict): dictionary +411 +412 Returns: +413 int: depth +414 """ +415 try: +416 return 1 + dict_depth(next(iter(d.values()))) +417 except AttributeError: +418 # d doesn't have attribute "values" +419 return 0 +420 except StopIteration: +421 # d.values() returns an empty sequence +422 return 1 +423 424 -425 Args: -426 text: the text to check. -427 identify: "always" | True - always returns true, "safe" - true if no upper case -428 -429 Returns: -430 Whether or not a string should be identified. -431 """ -432 if identify is True or identify == "always": -433 return True -434 if identify == "safe": -435 return not any(char.isupper() for char in text) -436 return False +425def first(it: t.Iterable[T]) -> T: +426 """Returns the first element from an iterable. +427 +428 Useful for sets. +429 """ +430 return next(i for i in it) +431 +432 +433def case_sensitive(text: str, dialect: DialectType) -> bool: +434 """Checks if text contains any case sensitive characters depending on dialect.""" +435 from sqlglot.dialects.dialect import RESOLVES_IDENTIFIERS_AS_UPPERCASE +436 +437 unsafe = str.islower if dialect in RESOLVES_IDENTIFIERS_AS_UPPERCASE else str.isupper +438 return any(unsafe(char) for char in text) +439 +440 +441def should_identify(text: str, identify: str | bool, dialect: DialectType = None) -> bool: +442 """Checks if text should be identified given an identify option. +443 +444 Args: +445 text: the text to check. +446 identify: +447 "always" or `True`: always returns true. +448 "safe": true if there is no uppercase or lowercase character in `text`, depending on `dialect`. +449 dialect: the dialect to use in order to decide whether a text should be identified. +450 +451 Returns: +452 Whether or not a string should be identified. +453 """ +454 if identify is True or identify == "always": +455 return True +456 if identify == "safe": +457 return not case_sensitive(text, dialect) +458 return False
                    @@ -567,11 +595,11 @@
                    -
                    24class AutoName(Enum):
                    -25    """This is used for creating enum classes where `auto()` is the string form of the corresponding value's name."""
                    -26
                    -27    def _generate_next_value_(name, _start, _count, _last_values):
                    -28        return name
                    +            
                    26class AutoName(Enum):
                    +27    """This is used for creating enum classes where `auto()` is the string form of the corresponding value's name."""
                    +28
                    +29    def _generate_next_value_(name, _start, _count, _last_values):
                    +30        return name
                     
                    @@ -601,12 +629,12 @@
                    -
                    31def seq_get(seq: t.Sequence[T], index: int) -> t.Optional[T]:
                    -32    """Returns the value in `seq` at position `index`, or `None` if `index` is out of bounds."""
                    -33    try:
                    -34        return seq[index]
                    -35    except IndexError:
                    -36        return None
                    +            
                    33def seq_get(seq: t.Sequence[T], index: int) -> t.Optional[T]:
                    +34    """Returns the value in `seq` at position `index`, or `None` if `index` is out of bounds."""
                    +35    try:
                    +36        return seq[index]
                    +37    except IndexError:
                    +38        return None
                     
                    @@ -626,22 +654,22 @@
                    -
                    49def ensure_list(value):
                    -50    """
                    -51    Ensures that a value is a list, otherwise casts or wraps it into one.
                    -52
                    -53    Args:
                    -54        value: the value of interest.
                    -55
                    -56    Returns:
                    -57        The value cast as a list if it's a list or a tuple, or else the value wrapped in a list.
                    -58    """
                    -59    if value is None:
                    -60        return []
                    -61    if isinstance(value, (list, tuple)):
                    -62        return list(value)
                    -63
                    -64    return [value]
                    +            
                    51def ensure_list(value):
                    +52    """
                    +53    Ensures that a value is a list, otherwise casts or wraps it into one.
                    +54
                    +55    Args:
                    +56        value: the value of interest.
                    +57
                    +58    Returns:
                    +59        The value cast as a list if it's a list or a tuple, or else the value wrapped in a list.
                    +60    """
                    +61    if value is None:
                    +62        return []
                    +63    if isinstance(value, (list, tuple)):
                    +64        return list(value)
                    +65
                    +66    return [value]
                     
                    @@ -673,21 +701,21 @@
                    -
                    77def ensure_collection(value):
                    -78    """
                    -79    Ensures that a value is a collection (excluding `str` and `bytes`), otherwise wraps it into a list.
                    -80
                    -81    Args:
                    -82        value: the value of interest.
                    -83
                    -84    Returns:
                    -85        The value if it's a collection, or else the value wrapped in a list.
                    -86    """
                    -87    if value is None:
                    -88        return []
                    -89    return (
                    -90        value if isinstance(value, Collection) and not isinstance(value, (str, bytes)) else [value]
                    -91    )
                    +            
                    79def ensure_collection(value):
                    +80    """
                    +81    Ensures that a value is a collection (excluding `str` and `bytes`), otherwise wraps it into a list.
                    +82
                    +83    Args:
                    +84        value: the value of interest.
                    +85
                    +86    Returns:
                    +87        The value if it's a collection, or else the value wrapped in a list.
                    +88    """
                    +89    if value is None:
                    +90        return []
                    +91    return (
                    +92        value if isinstance(value, Collection) and not isinstance(value, (str, bytes)) else [value]
                    +93    )
                     
                    @@ -719,18 +747,18 @@
                    -
                     94def csv(*args: str, sep: str = ", ") -> str:
                    - 95    """
                    - 96    Formats any number of string arguments as CSV.
                    - 97
                    - 98    Args:
                    - 99        args: the string arguments to format.
                    -100        sep: the argument separator.
                    -101
                    -102    Returns:
                    -103        The arguments formatted as a CSV string.
                    -104    """
                    -105    return sep.join(arg for arg in args if arg)
                    +            
                     96def csv(*args: str, sep: str = ", ") -> str:
                    + 97    """
                    + 98    Formats any number of string arguments as CSV.
                    + 99
                    +100    Args:
                    +101        args: the string arguments to format.
                    +102        sep: the argument separator.
                    +103
                    +104    Returns:
                    +105        The arguments formatted as a CSV string.
                    +106    """
                    +107    return sep.join(arg for arg in args if arg)
                     
                    @@ -763,29 +791,29 @@
                    -
                    108def subclasses(
                    -109    module_name: str,
                    -110    classes: t.Type | t.Tuple[t.Type, ...],
                    -111    exclude: t.Type | t.Tuple[t.Type, ...] = (),
                    -112) -> t.List[t.Type]:
                    -113    """
                    -114    Returns all subclasses for a collection of classes, possibly excluding some of them.
                    -115
                    -116    Args:
                    -117        module_name: the name of the module to search for subclasses in.
                    -118        classes: class(es) we want to find the subclasses of.
                    -119        exclude: class(es) we want to exclude from the returned list.
                    -120
                    -121    Returns:
                    -122        The target subclasses.
                    -123    """
                    -124    return [
                    -125        obj
                    -126        for _, obj in inspect.getmembers(
                    -127            sys.modules[module_name],
                    -128            lambda obj: inspect.isclass(obj) and issubclass(obj, classes) and obj not in exclude,
                    -129        )
                    -130    ]
                    +            
                    110def subclasses(
                    +111    module_name: str,
                    +112    classes: t.Type | t.Tuple[t.Type, ...],
                    +113    exclude: t.Type | t.Tuple[t.Type, ...] = (),
                    +114) -> t.List[t.Type]:
                    +115    """
                    +116    Returns all subclasses for a collection of classes, possibly excluding some of them.
                    +117
                    +118    Args:
                    +119        module_name: the name of the module to search for subclasses in.
                    +120        classes: class(es) we want to find the subclasses of.
                    +121        exclude: class(es) we want to exclude from the returned list.
                    +122
                    +123    Returns:
                    +124        The target subclasses.
                    +125    """
                    +126    return [
                    +127        obj
                    +128        for _, obj in inspect.getmembers(
                    +129            sys.modules[module_name],
                    +130            lambda obj: inspect.isclass(obj) and issubclass(obj, classes) and obj not in exclude,
                    +131        )
                    +132    ]
                     
                    @@ -819,52 +847,52 @@
                    -
                    133def apply_index_offset(
                    -134    this: exp.Expression,
                    -135    expressions: t.List[t.Optional[E]],
                    -136    offset: int,
                    -137) -> t.List[t.Optional[E]]:
                    -138    """
                    -139    Applies an offset to a given integer literal expression.
                    -140
                    -141    Args:
                    -142        this: the target of the index
                    -143        expressions: the expression the offset will be applied to, wrapped in a list.
                    -144        offset: the offset that will be applied.
                    -145
                    -146    Returns:
                    -147        The original expression with the offset applied to it, wrapped in a list. If the provided
                    -148        `expressions` argument contains more than one expressions, it's returned unaffected.
                    -149    """
                    -150    if not offset or len(expressions) != 1:
                    -151        return expressions
                    -152
                    -153    expression = expressions[0]
                    +            
                    135def apply_index_offset(
                    +136    this: exp.Expression,
                    +137    expressions: t.List[t.Optional[E]],
                    +138    offset: int,
                    +139) -> t.List[t.Optional[E]]:
                    +140    """
                    +141    Applies an offset to a given integer literal expression.
                    +142
                    +143    Args:
                    +144        this: the target of the index
                    +145        expressions: the expression the offset will be applied to, wrapped in a list.
                    +146        offset: the offset that will be applied.
                    +147
                    +148    Returns:
                    +149        The original expression with the offset applied to it, wrapped in a list. If the provided
                    +150        `expressions` argument contains more than one expressions, it's returned unaffected.
                    +151    """
                    +152    if not offset or len(expressions) != 1:
                    +153        return expressions
                     154
                    -155    from sqlglot import exp
                    -156    from sqlglot.optimizer.annotate_types import annotate_types
                    -157    from sqlglot.optimizer.simplify import simplify
                    -158
                    -159    if not this.type:
                    -160        annotate_types(this)
                    -161
                    -162    if t.cast(exp.DataType, this.type).this not in (
                    -163        exp.DataType.Type.UNKNOWN,
                    -164        exp.DataType.Type.ARRAY,
                    -165    ):
                    -166        return expressions
                    -167
                    -168    if expression:
                    -169        if not expression.type:
                    -170            annotate_types(expression)
                    -171        if t.cast(exp.DataType, expression.type).this in exp.DataType.INTEGER_TYPES:
                    -172            logger.warning("Applying array index offset (%s)", offset)
                    -173            expression = simplify(
                    -174                exp.Add(this=expression.copy(), expression=exp.Literal.number(offset))
                    -175            )
                    -176            return [expression]
                    -177
                    -178    return expressions
                    +155    expression = expressions[0]
                    +156
                    +157    from sqlglot import exp
                    +158    from sqlglot.optimizer.annotate_types import annotate_types
                    +159    from sqlglot.optimizer.simplify import simplify
                    +160
                    +161    if not this.type:
                    +162        annotate_types(this)
                    +163
                    +164    if t.cast(exp.DataType, this.type).this not in (
                    +165        exp.DataType.Type.UNKNOWN,
                    +166        exp.DataType.Type.ARRAY,
                    +167    ):
                    +168        return expressions
                    +169
                    +170    if expression:
                    +171        if not expression.type:
                    +172            annotate_types(expression)
                    +173        if t.cast(exp.DataType, expression.type).this in exp.DataType.INTEGER_TYPES:
                    +174            logger.warning("Applying array index offset (%s)", offset)
                    +175            expression = simplify(
                    +176                exp.Add(this=expression.copy(), expression=exp.Literal.number(offset))
                    +177            )
                    +178            return [expression]
                    +179
                    +180    return expressions
                     
                    @@ -899,9 +927,9 @@
                    -
                    181def camel_to_snake_case(name: str) -> str:
                    -182    """Converts `name` from camelCase to snake_case and returns the result."""
                    -183    return CAMEL_CASE_PATTERN.sub("_", name).upper()
                    +            
                    183def camel_to_snake_case(name: str) -> str:
                    +184    """Converts `name` from camelCase to snake_case and returns the result."""
                    +185    return CAMEL_CASE_PATTERN.sub("_", name).upper()
                     
                    @@ -921,28 +949,28 @@
                    -
                    186def while_changing(expression: Expression, func: t.Callable[[Expression], E]) -> E:
                    -187    """
                    -188    Applies a transformation to a given expression until a fix point is reached.
                    -189
                    -190    Args:
                    -191        expression: the expression to be transformed.
                    -192        func: the transformation to be applied.
                    -193
                    -194    Returns:
                    -195        The transformed expression.
                    -196    """
                    -197    while True:
                    -198        for n, *_ in reversed(tuple(expression.walk())):
                    -199            n._hash = hash(n)
                    -200        start = hash(expression)
                    -201        expression = func(expression)
                    -202
                    -203        for n, *_ in expression.walk():
                    -204            n._hash = None
                    -205        if start == hash(expression):
                    -206            break
                    -207    return expression
                    +            
                    188def while_changing(expression: Expression, func: t.Callable[[Expression], E]) -> E:
                    +189    """
                    +190    Applies a transformation to a given expression until a fix point is reached.
                    +191
                    +192    Args:
                    +193        expression: the expression to be transformed.
                    +194        func: the transformation to be applied.
                    +195
                    +196    Returns:
                    +197        The transformed expression.
                    +198    """
                    +199    while True:
                    +200        for n, *_ in reversed(tuple(expression.walk())):
                    +201            n._hash = hash(n)
                    +202        start = hash(expression)
                    +203        expression = func(expression)
                    +204
                    +205        for n, *_ in expression.walk():
                    +206            n._hash = None
                    +207        if start == hash(expression):
                    +208            break
                    +209    return expression
                     
                    @@ -975,36 +1003,36 @@
                    -
                    210def tsort(dag: t.Dict[T, t.List[T]]) -> t.List[T]:
                    -211    """
                    -212    Sorts a given directed acyclic graph in topological order.
                    -213
                    -214    Args:
                    -215        dag: the graph to be sorted.
                    -216
                    -217    Returns:
                    -218        A list that contains all of the graph's nodes in topological order.
                    -219    """
                    -220    result = []
                    -221
                    -222    def visit(node: T, visited: t.Set[T]) -> None:
                    -223        if node in result:
                    -224            return
                    -225        if node in visited:
                    -226            raise ValueError("Cycle error")
                    -227
                    -228        visited.add(node)
                    +            
                    212def tsort(dag: t.Dict[T, t.List[T]]) -> t.List[T]:
                    +213    """
                    +214    Sorts a given directed acyclic graph in topological order.
                    +215
                    +216    Args:
                    +217        dag: the graph to be sorted.
                    +218
                    +219    Returns:
                    +220        A list that contains all of the graph's nodes in topological order.
                    +221    """
                    +222    result = []
                    +223
                    +224    def visit(node: T, visited: t.Set[T]) -> None:
                    +225        if node in result:
                    +226            return
                    +227        if node in visited:
                    +228            raise ValueError("Cycle error")
                     229
                    -230        for dep in dag.get(node, []):
                    -231            visit(dep, visited)
                    -232
                    -233        visited.remove(node)
                    -234        result.append(node)
                    -235
                    -236    for node in dag:
                    -237        visit(node, set())
                    -238
                    -239    return result
                    +230        visited.add(node)
                    +231
                    +232        for dep in dag.get(node, []):
                    +233            visit(dep, visited)
                    +234
                    +235        visited.remove(node)
                    +236        result.append(node)
                    +237
                    +238    for node in dag:
                    +239        visit(node, set())
                    +240
                    +241    return result
                     
                    @@ -1036,17 +1064,17 @@
                    -
                    242def open_file(file_name: str) -> t.TextIO:
                    -243    """Open a file that may be compressed as gzip and return it in universal newline mode."""
                    -244    with open(file_name, "rb") as f:
                    -245        gzipped = f.read(2) == b"\x1f\x8b"
                    -246
                    -247    if gzipped:
                    -248        import gzip
                    -249
                    -250        return gzip.open(file_name, "rt", newline="")
                    +            
                    244def open_file(file_name: str) -> t.TextIO:
                    +245    """Open a file that may be compressed as gzip and return it in universal newline mode."""
                    +246    with open(file_name, "rb") as f:
                    +247        gzipped = f.read(2) == b"\x1f\x8b"
                    +248
                    +249    if gzipped:
                    +250        import gzip
                     251
                    -252    return open(file_name, encoding="utf-8", newline="")
                    +252        return gzip.open(file_name, "rt", newline="")
                    +253
                    +254    return open(file_name, encoding="utf-8", newline="")
                     
                    @@ -1067,32 +1095,32 @@
                    -
                    255@contextmanager
                    -256def csv_reader(read_csv: exp.ReadCSV) -> t.Any:
                    -257    """
                    -258    Returns a csv reader given the expression `READ_CSV(name, ['delimiter', '|', ...])`.
                    -259
                    -260    Args:
                    -261        read_csv: a `ReadCSV` function call
                    -262
                    -263    Yields:
                    -264        A python csv reader.
                    -265    """
                    -266    args = read_csv.expressions
                    -267    file = open_file(read_csv.name)
                    -268
                    -269    delimiter = ","
                    -270    args = iter(arg.name for arg in args)
                    -271    for k, v in zip(args, args):
                    -272        if k == "delimiter":
                    -273            delimiter = v
                    -274
                    -275    try:
                    -276        import csv as csv_
                    -277
                    -278        yield csv_.reader(file, delimiter=delimiter)
                    -279    finally:
                    -280        file.close()
                    +            
                    257@contextmanager
                    +258def csv_reader(read_csv: exp.ReadCSV) -> t.Any:
                    +259    """
                    +260    Returns a csv reader given the expression `READ_CSV(name, ['delimiter', '|', ...])`.
                    +261
                    +262    Args:
                    +263        read_csv: a `ReadCSV` function call
                    +264
                    +265    Yields:
                    +266        A python csv reader.
                    +267    """
                    +268    args = read_csv.expressions
                    +269    file = open_file(read_csv.name)
                    +270
                    +271    delimiter = ","
                    +272    args = iter(arg.name for arg in args)
                    +273    for k, v in zip(args, args):
                    +274        if k == "delimiter":
                    +275            delimiter = v
                    +276
                    +277    try:
                    +278        import csv as csv_
                    +279
                    +280        yield csv_.reader(file, delimiter=delimiter)
                    +281    finally:
                    +282        file.close()
                     
                    @@ -1124,27 +1152,27 @@
                    -
                    283def find_new_name(taken: t.Collection[str], base: str) -> str:
                    -284    """
                    -285    Searches for a new name.
                    -286
                    -287    Args:
                    -288        taken: a collection of taken names.
                    -289        base: base name to alter.
                    -290
                    -291    Returns:
                    -292        The new, available name.
                    -293    """
                    -294    if base not in taken:
                    -295        return base
                    -296
                    -297    i = 2
                    -298    new = f"{base}_{i}"
                    -299    while new in taken:
                    -300        i += 1
                    -301        new = f"{base}_{i}"
                    -302
                    -303    return new
                    +            
                    285def find_new_name(taken: t.Collection[str], base: str) -> str:
                    +286    """
                    +287    Searches for a new name.
                    +288
                    +289    Args:
                    +290        taken: a collection of taken names.
                    +291        base: base name to alter.
                    +292
                    +293    Returns:
                    +294        The new, available name.
                    +295    """
                    +296    if base not in taken:
                    +297        return base
                    +298
                    +299    i = 2
                    +300    new = f"{base}_{i}"
                    +301    while new in taken:
                    +302        i += 1
                    +303        new = f"{base}_{i}"
                    +304
                    +305    return new
                     
                    @@ -1165,6 +1193,29 @@
                    + +
                    + +
                    + + def + name_sequence(prefix: str) -> Callable[[], str]: + + + +
                    + +
                    308def name_sequence(prefix: str) -> t.Callable[[], str]:
                    +309    """Returns a name generator given a prefix (e.g. a0, a1, a2, ... if the prefix is "a")."""
                    +310    sequence = count()
                    +311    return lambda: f"{prefix}{next(sequence)}"
                    +
                    + + +

                    Returns a name generator given a prefix (e.g. a0, a1, a2, ... if the prefix is "a").

                    +
                    + +
                    @@ -1177,9 +1228,12 @@ -
                    306def object_to_dict(obj: t.Any, **kwargs) -> t.Dict:
                    -307    """Returns a dictionary created from an object's attributes."""
                    -308    return {**{k: copy(v) for k, v in vars(obj).copy().items()}, **kwargs}
                    +            
                    314def object_to_dict(obj: t.Any, **kwargs) -> t.Dict:
                    +315    """Returns a dictionary created from an object's attributes."""
                    +316    return {
                    +317        **{k: v.copy() if hasattr(v, "copy") else copy(v) for k, v in vars(obj).items()},
                    +318        **kwargs,
                    +319    }
                     
                    @@ -1199,33 +1253,33 @@
                    -
                    311def split_num_words(
                    -312    value: str, sep: str, min_num_words: int, fill_from_start: bool = True
                    -313) -> t.List[t.Optional[str]]:
                    -314    """
                    -315    Perform a split on a value and return N words as a result with `None` used for words that don't exist.
                    -316
                    -317    Args:
                    -318        value: the value to be split.
                    -319        sep: the value to use to split on.
                    -320        min_num_words: the minimum number of words that are going to be in the result.
                    -321        fill_from_start: indicates that if `None` values should be inserted at the start or end of the list.
                    -322
                    -323    Examples:
                    -324        >>> split_num_words("db.table", ".", 3)
                    -325        [None, 'db', 'table']
                    -326        >>> split_num_words("db.table", ".", 3, fill_from_start=False)
                    -327        ['db', 'table', None]
                    -328        >>> split_num_words("db.table", ".", 1)
                    -329        ['db', 'table']
                    -330
                    -331    Returns:
                    -332        The list of words returned by `split`, possibly augmented by a number of `None` values.
                    -333    """
                    -334    words = value.split(sep)
                    -335    if fill_from_start:
                    -336        return [None] * (min_num_words - len(words)) + words
                    -337    return words + [None] * (min_num_words - len(words))
                    +            
                    322def split_num_words(
                    +323    value: str, sep: str, min_num_words: int, fill_from_start: bool = True
                    +324) -> t.List[t.Optional[str]]:
                    +325    """
                    +326    Perform a split on a value and return N words as a result with `None` used for words that don't exist.
                    +327
                    +328    Args:
                    +329        value: the value to be split.
                    +330        sep: the value to use to split on.
                    +331        min_num_words: the minimum number of words that are going to be in the result.
                    +332        fill_from_start: indicates that if `None` values should be inserted at the start or end of the list.
                    +333
                    +334    Examples:
                    +335        >>> split_num_words("db.table", ".", 3)
                    +336        [None, 'db', 'table']
                    +337        >>> split_num_words("db.table", ".", 3, fill_from_start=False)
                    +338        ['db', 'table', None]
                    +339        >>> split_num_words("db.table", ".", 1)
                    +340        ['db', 'table']
                    +341
                    +342    Returns:
                    +343        The list of words returned by `split`, possibly augmented by a number of `None` values.
                    +344    """
                    +345    words = value.split(sep)
                    +346    if fill_from_start:
                    +347        return [None] * (min_num_words - len(words)) + words
                    +348    return words + [None] * (min_num_words - len(words))
                     
                    @@ -1274,23 +1328,23 @@
                    -
                    340def is_iterable(value: t.Any) -> bool:
                    -341    """
                    -342    Checks if the value is an iterable, excluding the types `str` and `bytes`.
                    -343
                    -344    Examples:
                    -345        >>> is_iterable([1,2])
                    -346        True
                    -347        >>> is_iterable("test")
                    -348        False
                    -349
                    -350    Args:
                    -351        value: the value to check if it is an iterable.
                    -352
                    -353    Returns:
                    -354        A `bool` value indicating if it is an iterable.
                    -355    """
                    -356    return hasattr(value, "__iter__") and not isinstance(value, (str, bytes))
                    +            
                    351def is_iterable(value: t.Any) -> bool:
                    +352    """
                    +353    Checks if the value is an iterable, excluding the types `str` and `bytes`.
                    +354
                    +355    Examples:
                    +356        >>> is_iterable([1,2])
                    +357        True
                    +358        >>> is_iterable("test")
                    +359        False
                    +360
                    +361    Args:
                    +362        value: the value to check if it is an iterable.
                    +363
                    +364    Returns:
                    +365        A `bool` value indicating if it is an iterable.
                    +366    """
                    +367    return hasattr(value, "__iter__") and not isinstance(value, (str, bytes))
                     
                    @@ -1334,28 +1388,28 @@
                    -
                    359def flatten(values: t.Iterable[t.Iterable[t.Any] | t.Any]) -> t.Iterator[t.Any]:
                    -360    """
                    -361    Flattens an iterable that can contain both iterable and non-iterable elements. Objects of
                    -362    type `str` and `bytes` are not regarded as iterables.
                    -363
                    -364    Examples:
                    -365        >>> list(flatten([[1, 2], 3, {4}, (5, "bla")]))
                    -366        [1, 2, 3, 4, 5, 'bla']
                    -367        >>> list(flatten([1, 2, 3]))
                    -368        [1, 2, 3]
                    -369
                    -370    Args:
                    -371        values: the value to be flattened.
                    -372
                    -373    Yields:
                    -374        Non-iterable elements in `values`.
                    -375    """
                    -376    for value in values:
                    -377        if is_iterable(value):
                    -378            yield from flatten(value)
                    -379        else:
                    -380            yield value
                    +            
                    370def flatten(values: t.Iterable[t.Iterable[t.Any] | t.Any]) -> t.Iterator[t.Any]:
                    +371    """
                    +372    Flattens an iterable that can contain both iterable and non-iterable elements. Objects of
                    +373    type `str` and `bytes` are not regarded as iterables.
                    +374
                    +375    Examples:
                    +376        >>> list(flatten([[1, 2], 3, {4}, (5, "bla")]))
                    +377        [1, 2, 3, 4, 5, 'bla']
                    +378        >>> list(flatten([1, 2, 3]))
                    +379        [1, 2, 3]
                    +380
                    +381    Args:
                    +382        values: the value to be flattened.
                    +383
                    +384    Yields:
                    +385        Non-iterable elements in `values`.
                    +386    """
                    +387    for value in values:
                    +388        if is_iterable(value):
                    +389            yield from flatten(value)
                    +390        else:
                    +391            yield value
                     
                    @@ -1400,36 +1454,36 @@ type str and bytes are not regarded as iterables.

                    -
                    383def dict_depth(d: t.Dict) -> int:
                    -384    """
                    -385    Get the nesting depth of a dictionary.
                    -386
                    -387    For example:
                    -388        >>> dict_depth(None)
                    -389        0
                    -390        >>> dict_depth({})
                    -391        1
                    -392        >>> dict_depth({"a": "b"})
                    -393        1
                    -394        >>> dict_depth({"a": {}})
                    -395        2
                    -396        >>> dict_depth({"a": {"b": {}}})
                    -397        3
                    -398
                    -399    Args:
                    -400        d (dict): dictionary
                    -401
                    -402    Returns:
                    -403        int: depth
                    -404    """
                    -405    try:
                    -406        return 1 + dict_depth(next(iter(d.values())))
                    -407    except AttributeError:
                    -408        # d doesn't have attribute "values"
                    -409        return 0
                    -410    except StopIteration:
                    -411        # d.values() returns an empty sequence
                    -412        return 1
                    +            
                    394def dict_depth(d: t.Dict) -> int:
                    +395    """
                    +396    Get the nesting depth of a dictionary.
                    +397
                    +398    For example:
                    +399        >>> dict_depth(None)
                    +400        0
                    +401        >>> dict_depth({})
                    +402        1
                    +403        >>> dict_depth({"a": "b"})
                    +404        1
                    +405        >>> dict_depth({"a": {}})
                    +406        2
                    +407        >>> dict_depth({"a": {"b": {}}})
                    +408        3
                    +409
                    +410    Args:
                    +411        d (dict): dictionary
                    +412
                    +413    Returns:
                    +414        int: depth
                    +415    """
                    +416    try:
                    +417        return 1 + dict_depth(next(iter(d.values())))
                    +418    except AttributeError:
                    +419        # d doesn't have attribute "values"
                    +420        return 0
                    +421    except StopIteration:
                    +422        # d.values() returns an empty sequence
                    +423        return 1
                     
                    @@ -1479,12 +1533,12 @@ type str and bytes are not regarded as iterables.

                    -
                    415def first(it: t.Iterable[T]) -> T:
                    -416    """Returns the first element from an iterable.
                    -417
                    -418    Useful for sets.
                    -419    """
                    -420    return next(i for i in it)
                    +            
                    426def first(it: t.Iterable[T]) -> T:
                    +427    """Returns the first element from an iterable.
                    +428
                    +429    Useful for sets.
                    +430    """
                    +431    return next(i for i in it)
                     
                    @@ -1494,33 +1548,61 @@ type str and bytes are not regarded as iterables.

                    +
                    +
                    + +
                    + + def + case_sensitive( text: str, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType]) -> bool: + + + +
                    + +
                    434def case_sensitive(text: str, dialect: DialectType) -> bool:
                    +435    """Checks if text contains any case sensitive characters depending on dialect."""
                    +436    from sqlglot.dialects.dialect import RESOLVES_IDENTIFIERS_AS_UPPERCASE
                    +437
                    +438    unsafe = str.islower if dialect in RESOLVES_IDENTIFIERS_AS_UPPERCASE else str.isupper
                    +439    return any(unsafe(char) for char in text)
                    +
                    + + +

                    Checks if text contains any case sensitive characters depending on dialect.

                    +
                    + +
                    def - should_identify(text: str, identify: str | bool) -> bool: + should_identify( text: str, identify: str | bool, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> bool:
                    -
                    423def should_identify(text: str, identify: str | bool) -> bool:
                    -424    """Checks if text should be identified given an identify option.
                    -425
                    -426    Args:
                    -427        text: the text to check.
                    -428        identify: "always" | True - always returns true, "safe" - true if no upper case
                    -429
                    -430    Returns:
                    -431        Whether or not a string should be identified.
                    -432    """
                    -433    if identify is True or identify == "always":
                    -434        return True
                    -435    if identify == "safe":
                    -436        return not any(char.isupper() for char in text)
                    -437    return False
                    +            
                    442def should_identify(text: str, identify: str | bool, dialect: DialectType = None) -> bool:
                    +443    """Checks if text should be identified given an identify option.
                    +444
                    +445    Args:
                    +446        text: the text to check.
                    +447        identify:
                    +448            "always" or `True`: always returns true.
                    +449            "safe": true if there is no uppercase or lowercase character in `text`, depending on `dialect`.
                    +450        dialect: the dialect to use in order to decide whether a text should be identified.
                    +451
                    +452    Returns:
                    +453        Whether or not a string should be identified.
                    +454    """
                    +455    if identify is True or identify == "always":
                    +456        return True
                    +457    if identify == "safe":
                    +458        return not case_sensitive(text, dialect)
                    +459    return False
                     
                    @@ -1530,7 +1612,9 @@ type str and bytes are not regarded as iterables.

                    • text: the text to check.
                    • -
                    • identify: "always" | True - always returns true, "safe" - true if no upper case
                    • +
                    • identify: "always" or True: always returns true. +"safe": true if there is no uppercase or lowercase character in text, depending on dialect.
                    • +
                    • dialect: the dialect to use in order to decide whether a text should be identified.
                    Returns:
                    diff --git a/docs/sqlglot/lineage.html b/docs/sqlglot/lineage.html index 78c7764..a48d771 100644 --- a/docs/sqlglot/lineage.html +++ b/docs/sqlglot/lineage.html @@ -88,258 +88,261 @@
                    6 7from sqlglot import Schema, exp, maybe_parse 8from sqlglot.errors import SqlglotError - 9from sqlglot.optimizer import Scope, build_scope, optimize - 10from sqlglot.optimizer.lower_identities import lower_identities - 11from sqlglot.optimizer.qualify_columns import qualify_columns - 12from sqlglot.optimizer.qualify_tables import qualify_tables + 9from sqlglot.optimizer import Scope, build_scope, qualify + 10 + 11if t.TYPE_CHECKING: + 12 from sqlglot.dialects.dialect import DialectType 13 - 14if t.TYPE_CHECKING: - 15 from sqlglot.dialects.dialect import DialectType - 16 - 17 - 18@dataclass(frozen=True) - 19class Node: - 20 name: str - 21 expression: exp.Expression - 22 source: exp.Expression - 23 downstream: t.List[Node] = field(default_factory=list) - 24 alias: str = "" + 14 + 15@dataclass(frozen=True) + 16class Node: + 17 name: str + 18 expression: exp.Expression + 19 source: exp.Expression + 20 downstream: t.List[Node] = field(default_factory=list) + 21 alias: str = "" + 22 + 23 def walk(self) -> t.Iterator[Node]: + 24 yield self 25 - 26 def walk(self) -> t.Iterator[Node]: - 27 yield self - 28 - 29 for d in self.downstream: - 30 if isinstance(d, Node): - 31 yield from d.walk() - 32 else: - 33 yield d + 26 for d in self.downstream: + 27 if isinstance(d, Node): + 28 yield from d.walk() + 29 else: + 30 yield d + 31 + 32 def to_html(self, **opts) -> LineageHTML: + 33 return LineageHTML(self, **opts) 34 - 35 def to_html(self, **opts) -> LineageHTML: - 36 return LineageHTML(self, **opts) - 37 - 38 - 39def lineage( - 40 column: str | exp.Column, - 41 sql: str | exp.Expression, - 42 schema: t.Optional[t.Dict | Schema] = None, - 43 sources: t.Optional[t.Dict[str, str | exp.Subqueryable]] = None, - 44 rules: t.Sequence[t.Callable] = (lower_identities, qualify_tables, qualify_columns), - 45 dialect: DialectType = None, - 46) -> Node: - 47 """Build the lineage graph for a column of a SQL query. - 48 - 49 Args: - 50 column: The column to build the lineage for. - 51 sql: The SQL string or expression. - 52 schema: The schema of tables. - 53 sources: A mapping of queries which will be used to continue building lineage. - 54 rules: Optimizer rules to apply, by default only qualifying tables and columns. - 55 dialect: The dialect of input SQL. - 56 - 57 Returns: - 58 A lineage node. - 59 """ - 60 - 61 expression = maybe_parse(sql, dialect=dialect) - 62 - 63 if sources: - 64 expression = exp.expand( - 65 expression, - 66 { - 67 k: t.cast(exp.Subqueryable, maybe_parse(v, dialect=dialect)) - 68 for k, v in sources.items() - 69 }, - 70 ) - 71 - 72 optimized = optimize(expression, schema=schema, rules=rules) - 73 scope = build_scope(optimized) - 74 - 75 if not scope: - 76 raise SqlglotError("Cannot build lineage, sql must be SELECT") + 35 + 36def lineage( + 37 column: str | exp.Column, + 38 sql: str | exp.Expression, + 39 schema: t.Optional[t.Dict | Schema] = None, + 40 sources: t.Optional[t.Dict[str, str | exp.Subqueryable]] = None, + 41 dialect: DialectType = None, + 42 **kwargs, + 43) -> Node: + 44 """Build the lineage graph for a column of a SQL query. + 45 + 46 Args: + 47 column: The column to build the lineage for. + 48 sql: The SQL string or expression. + 49 schema: The schema of tables. + 50 sources: A mapping of queries which will be used to continue building lineage. + 51 dialect: The dialect of input SQL. + 52 **kwargs: Qualification optimizer kwargs. + 53 + 54 Returns: + 55 A lineage node. + 56 """ + 57 + 58 expression = maybe_parse(sql, dialect=dialect) + 59 + 60 if sources: + 61 expression = exp.expand( + 62 expression, + 63 { + 64 k: t.cast(exp.Subqueryable, maybe_parse(v, dialect=dialect)) + 65 for k, v in sources.items() + 66 }, + 67 ) + 68 + 69 qualified = qualify.qualify( + 70 expression, + 71 dialect=dialect, + 72 schema=schema, + 73 **{"validate_qualify_columns": False, "identify": False, **kwargs}, # type: ignore + 74 ) + 75 + 76 scope = build_scope(qualified) 77 - 78 def to_node( - 79 column_name: str, - 80 scope: Scope, - 81 scope_name: t.Optional[str] = None, - 82 upstream: t.Optional[Node] = None, - 83 alias: t.Optional[str] = None, - 84 ) -> Node: - 85 aliases = { - 86 dt.alias: dt.comments[0].split()[1] - 87 for dt in scope.derived_tables - 88 if dt.comments and dt.comments[0].startswith("source: ") - 89 } - 90 if isinstance(scope.expression, exp.Union): - 91 for scope in scope.union_scopes: - 92 node = to_node( - 93 column_name, - 94 scope=scope, - 95 scope_name=scope_name, - 96 upstream=upstream, - 97 alias=aliases.get(scope_name), - 98 ) - 99 return node -100 -101 # Find the specific select clause that is the source of the column we want. -102 # This can either be a specific, named select or a generic `*` clause. -103 select = next( -104 (select for select in scope.selects if select.alias_or_name == column_name), -105 exp.Star() if scope.expression.is_star else None, -106 ) -107 -108 if not select: -109 raise ValueError(f"Could not find {column_name} in {scope.expression}") + 78 if not scope: + 79 raise SqlglotError("Cannot build lineage, sql must be SELECT") + 80 + 81 def to_node( + 82 column_name: str, + 83 scope: Scope, + 84 scope_name: t.Optional[str] = None, + 85 upstream: t.Optional[Node] = None, + 86 alias: t.Optional[str] = None, + 87 ) -> Node: + 88 aliases = { + 89 dt.alias: dt.comments[0].split()[1] + 90 for dt in scope.derived_tables + 91 if dt.comments and dt.comments[0].startswith("source: ") + 92 } + 93 if isinstance(scope.expression, exp.Union): + 94 for scope in scope.union_scopes: + 95 node = to_node( + 96 column_name, + 97 scope=scope, + 98 scope_name=scope_name, + 99 upstream=upstream, +100 alias=aliases.get(scope_name), +101 ) +102 return node +103 +104 # Find the specific select clause that is the source of the column we want. +105 # This can either be a specific, named select or a generic `*` clause. +106 select = next( +107 (select for select in scope.selects if select.alias_or_name == column_name), +108 exp.Star() if scope.expression.is_star else None, +109 ) 110 -111 if isinstance(scope.expression, exp.Select): -112 # For better ergonomics in our node labels, replace the full select with -113 # a version that has only the column we care about. -114 # "x", SELECT x, y FROM foo -115 # => "x", SELECT x FROM foo -116 source = t.cast(exp.Expression, scope.expression.select(select, append=False)) -117 else: -118 source = scope.expression -119 -120 # Create the node for this step in the lineage chain, and attach it to the previous one. -121 node = Node( -122 name=f"{scope_name}.{column_name}" if scope_name else column_name, -123 source=source, -124 expression=select, -125 alias=alias or "", -126 ) -127 if upstream: -128 upstream.downstream.append(node) -129 -130 # Find all columns that went into creating this one to list their lineage nodes. -131 for c in set(select.find_all(exp.Column)): -132 table = c.table -133 source = scope.sources.get(table) -134 -135 if isinstance(source, Scope): -136 # The table itself came from a more specific scope. Recurse into that one using the unaliased column name. -137 to_node( -138 c.name, scope=source, scope_name=table, upstream=node, alias=aliases.get(table) -139 ) -140 else: -141 # The source is not a scope - we've reached the end of the line. At this point, if a source is not found -142 # it means this column's lineage is unknown. This can happen if the definition of a source used in a query -143 # is not passed into the `sources` map. -144 source = source or exp.Placeholder() -145 node.downstream.append(Node(name=c.sql(), source=source, expression=source)) -146 -147 return node -148 -149 return to_node(column if isinstance(column, str) else column.name, scope) -150 +111 if not select: +112 raise ValueError(f"Could not find {column_name} in {scope.expression}") +113 +114 if isinstance(scope.expression, exp.Select): +115 # For better ergonomics in our node labels, replace the full select with +116 # a version that has only the column we care about. +117 # "x", SELECT x, y FROM foo +118 # => "x", SELECT x FROM foo +119 source = t.cast(exp.Expression, scope.expression.select(select, append=False)) +120 else: +121 source = scope.expression +122 +123 # Create the node for this step in the lineage chain, and attach it to the previous one. +124 node = Node( +125 name=f"{scope_name}.{column_name}" if scope_name else column_name, +126 source=source, +127 expression=select, +128 alias=alias or "", +129 ) +130 if upstream: +131 upstream.downstream.append(node) +132 +133 # Find all columns that went into creating this one to list their lineage nodes. +134 for c in set(select.find_all(exp.Column)): +135 table = c.table +136 source = scope.sources.get(table) +137 +138 if isinstance(source, Scope): +139 # The table itself came from a more specific scope. Recurse into that one using the unaliased column name. +140 to_node( +141 c.name, scope=source, scope_name=table, upstream=node, alias=aliases.get(table) +142 ) +143 else: +144 # The source is not a scope - we've reached the end of the line. At this point, if a source is not found +145 # it means this column's lineage is unknown. This can happen if the definition of a source used in a query +146 # is not passed into the `sources` map. +147 source = source or exp.Placeholder() +148 node.downstream.append(Node(name=c.sql(), source=source, expression=source)) +149 +150 return node 151 -152class LineageHTML: -153 """Node to HTML generator using vis.js. +152 return to_node(column if isinstance(column, str) else column.name, scope) +153 154 -155 https://visjs.github.io/vis-network/docs/network/ -156 """ +155class LineageHTML: +156 """Node to HTML generator using vis.js. 157 -158 def __init__( -159 self, -160 node: Node, -161 dialect: DialectType = None, -162 imports: bool = True, -163 **opts: t.Any, -164 ): -165 self.node = node -166 self.imports = imports -167 -168 self.options = { -169 "height": "500px", -170 "width": "100%", -171 "layout": { -172 "hierarchical": { -173 "enabled": True, -174 "nodeSpacing": 200, -175 "sortMethod": "directed", -176 }, -177 }, -178 "interaction": { -179 "dragNodes": False, -180 "selectable": False, -181 }, -182 "physics": { -183 "enabled": False, +158 https://visjs.github.io/vis-network/docs/network/ +159 """ +160 +161 def __init__( +162 self, +163 node: Node, +164 dialect: DialectType = None, +165 imports: bool = True, +166 **opts: t.Any, +167 ): +168 self.node = node +169 self.imports = imports +170 +171 self.options = { +172 "height": "500px", +173 "width": "100%", +174 "layout": { +175 "hierarchical": { +176 "enabled": True, +177 "nodeSpacing": 200, +178 "sortMethod": "directed", +179 }, +180 }, +181 "interaction": { +182 "dragNodes": False, +183 "selectable": False, 184 }, -185 "edges": { -186 "arrows": "to", +185 "physics": { +186 "enabled": False, 187 }, -188 "nodes": { -189 "font": "20px monaco", -190 "shape": "box", -191 "widthConstraint": { -192 "maximum": 300, -193 }, -194 }, -195 **opts, -196 } -197 -198 self.nodes = {} -199 self.edges = [] +188 "edges": { +189 "arrows": "to", +190 }, +191 "nodes": { +192 "font": "20px monaco", +193 "shape": "box", +194 "widthConstraint": { +195 "maximum": 300, +196 }, +197 }, +198 **opts, +199 } 200 -201 for node in node.walk(): -202 if isinstance(node.expression, exp.Table): -203 label = f"FROM {node.expression.this}" -204 title = f"<pre>SELECT {node.name} FROM {node.expression.this}</pre>" -205 group = 1 -206 else: -207 label = node.expression.sql(pretty=True, dialect=dialect) -208 source = node.source.transform( -209 lambda n: exp.Tag(this=n, prefix="<b>", postfix="</b>") -210 if n is node.expression -211 else n, -212 copy=False, -213 ).sql(pretty=True, dialect=dialect) -214 title = f"<pre>{source}</pre>" -215 group = 0 -216 -217 node_id = id(node) -218 -219 self.nodes[node_id] = { -220 "id": node_id, -221 "label": label, -222 "title": title, -223 "group": group, -224 } -225 -226 for d in node.downstream: -227 self.edges.append({"from": node_id, "to": id(d)}) +201 self.nodes = {} +202 self.edges = [] +203 +204 for node in node.walk(): +205 if isinstance(node.expression, exp.Table): +206 label = f"FROM {node.expression.this}" +207 title = f"<pre>SELECT {node.name} FROM {node.expression.this}</pre>" +208 group = 1 +209 else: +210 label = node.expression.sql(pretty=True, dialect=dialect) +211 source = node.source.transform( +212 lambda n: exp.Tag(this=n, prefix="<b>", postfix="</b>") +213 if n is node.expression +214 else n, +215 copy=False, +216 ).sql(pretty=True, dialect=dialect) +217 title = f"<pre>{source}</pre>" +218 group = 0 +219 +220 node_id = id(node) +221 +222 self.nodes[node_id] = { +223 "id": node_id, +224 "label": label, +225 "title": title, +226 "group": group, +227 } 228 -229 def __str__(self): -230 nodes = json.dumps(list(self.nodes.values())) -231 edges = json.dumps(self.edges) -232 options = json.dumps(self.options) -233 imports = ( -234 """<script type="text/javascript" src="https://unpkg.com/vis-data@latest/peer/umd/vis-data.min.js"></script> -235 <script type="text/javascript" src="https://unpkg.com/vis-network@latest/peer/umd/vis-network.min.js"></script> -236 <link rel="stylesheet" type="text/css" href="https://unpkg.com/vis-network/styles/vis-network.min.css" />""" -237 if self.imports -238 else "" -239 ) -240 -241 return f"""<div> -242 <div id="sqlglot-lineage"></div> -243 {imports} -244 <script type="text/javascript"> -245 var nodes = new vis.DataSet({nodes}) -246 nodes.forEach(row => row["title"] = new DOMParser().parseFromString(row["title"], "text/html").body.childNodes[0]) -247 -248 new vis.Network( -249 document.getElementById("sqlglot-lineage"), -250 {{ -251 nodes: nodes, -252 edges: new vis.DataSet({edges}) -253 }}, -254 {options}, -255 ) -256 </script> -257</div>""" -258 -259 def _repr_html_(self) -> str: -260 return self.__str__() +229 for d in node.downstream: +230 self.edges.append({"from": node_id, "to": id(d)}) +231 +232 def __str__(self): +233 nodes = json.dumps(list(self.nodes.values())) +234 edges = json.dumps(self.edges) +235 options = json.dumps(self.options) +236 imports = ( +237 """<script type="text/javascript" src="https://unpkg.com/vis-data@latest/peer/umd/vis-data.min.js"></script> +238 <script type="text/javascript" src="https://unpkg.com/vis-network@latest/peer/umd/vis-network.min.js"></script> +239 <link rel="stylesheet" type="text/css" href="https://unpkg.com/vis-network/styles/vis-network.min.css" />""" +240 if self.imports +241 else "" +242 ) +243 +244 return f"""<div> +245 <div id="sqlglot-lineage"></div> +246 {imports} +247 <script type="text/javascript"> +248 var nodes = new vis.DataSet({nodes}) +249 nodes.forEach(row => row["title"] = new DOMParser().parseFromString(row["title"], "text/html").body.childNodes[0]) +250 +251 new vis.Network( +252 document.getElementById("sqlglot-lineage"), +253 {{ +254 nodes: nodes, +255 edges: new vis.DataSet({edges}) +256 }}, +257 {options}, +258 ) +259 </script> +260</div>""" +261 +262 def _repr_html_(self) -> str: +263 return self.__str__()
                    @@ -356,25 +359,25 @@ -
                    19@dataclass(frozen=True)
                    -20class Node:
                    -21    name: str
                    -22    expression: exp.Expression
                    -23    source: exp.Expression
                    -24    downstream: t.List[Node] = field(default_factory=list)
                    -25    alias: str = ""
                    +            
                    16@dataclass(frozen=True)
                    +17class Node:
                    +18    name: str
                    +19    expression: exp.Expression
                    +20    source: exp.Expression
                    +21    downstream: t.List[Node] = field(default_factory=list)
                    +22    alias: str = ""
                    +23
                    +24    def walk(self) -> t.Iterator[Node]:
                    +25        yield self
                     26
                    -27    def walk(self) -> t.Iterator[Node]:
                    -28        yield self
                    -29
                    -30        for d in self.downstream:
                    -31            if isinstance(d, Node):
                    -32                yield from d.walk()
                    -33            else:
                    -34                yield d
                    -35
                    -36    def to_html(self, **opts) -> LineageHTML:
                    -37        return LineageHTML(self, **opts)
                    +27        for d in self.downstream:
                    +28            if isinstance(d, Node):
                    +29                yield from d.walk()
                    +30            else:
                    +31                yield d
                    +32
                    +33    def to_html(self, **opts) -> LineageHTML:
                    +34        return LineageHTML(self, **opts)
                     
                    @@ -403,14 +406,14 @@
                    -
                    27    def walk(self) -> t.Iterator[Node]:
                    -28        yield self
                    -29
                    -30        for d in self.downstream:
                    -31            if isinstance(d, Node):
                    -32                yield from d.walk()
                    -33            else:
                    -34                yield d
                    +            
                    24    def walk(self) -> t.Iterator[Node]:
                    +25        yield self
                    +26
                    +27        for d in self.downstream:
                    +28            if isinstance(d, Node):
                    +29                yield from d.walk()
                    +30            else:
                    +31                yield d
                     
                    @@ -428,8 +431,8 @@
                    -
                    36    def to_html(self, **opts) -> LineageHTML:
                    -37        return LineageHTML(self, **opts)
                    +            
                    33    def to_html(self, **opts) -> LineageHTML:
                    +34        return LineageHTML(self, **opts)
                     
                    @@ -442,123 +445,129 @@
                    def - lineage( column: str | sqlglot.expressions.Column, sql: str | sqlglot.expressions.Expression, schema: Union[Dict, sqlglot.schema.Schema, NoneType] = None, sources: Optional[Dict[str, str | sqlglot.expressions.Subqueryable]] = None, rules: Sequence[Callable] = (<function lower_identities at 0x7f0af2fc76d0>, <function qualify_tables at 0x7f0af2fa1d80>, <function qualify_columns at 0x7f0af2fa0c10>), dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> sqlglot.lineage.Node: + lineage( column: str | sqlglot.expressions.Column, sql: str | sqlglot.expressions.Expression, schema: Union[Dict, sqlglot.schema.Schema, NoneType] = None, sources: Optional[Dict[str, str | sqlglot.expressions.Subqueryable]] = None, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, **kwargs) -> sqlglot.lineage.Node:
                    -
                     40def lineage(
                    - 41    column: str | exp.Column,
                    - 42    sql: str | exp.Expression,
                    - 43    schema: t.Optional[t.Dict | Schema] = None,
                    - 44    sources: t.Optional[t.Dict[str, str | exp.Subqueryable]] = None,
                    - 45    rules: t.Sequence[t.Callable] = (lower_identities, qualify_tables, qualify_columns),
                    - 46    dialect: DialectType = None,
                    - 47) -> Node:
                    - 48    """Build the lineage graph for a column of a SQL query.
                    - 49
                    - 50    Args:
                    - 51        column: The column to build the lineage for.
                    - 52        sql: The SQL string or expression.
                    - 53        schema: The schema of tables.
                    - 54        sources: A mapping of queries which will be used to continue building lineage.
                    - 55        rules: Optimizer rules to apply, by default only qualifying tables and columns.
                    - 56        dialect: The dialect of input SQL.
                    - 57
                    - 58    Returns:
                    - 59        A lineage node.
                    - 60    """
                    - 61
                    - 62    expression = maybe_parse(sql, dialect=dialect)
                    - 63
                    - 64    if sources:
                    - 65        expression = exp.expand(
                    - 66            expression,
                    - 67            {
                    - 68                k: t.cast(exp.Subqueryable, maybe_parse(v, dialect=dialect))
                    - 69                for k, v in sources.items()
                    - 70            },
                    - 71        )
                    - 72
                    - 73    optimized = optimize(expression, schema=schema, rules=rules)
                    - 74    scope = build_scope(optimized)
                    - 75
                    - 76    if not scope:
                    - 77        raise SqlglotError("Cannot build lineage, sql must be SELECT")
                    +            
                     37def lineage(
                    + 38    column: str | exp.Column,
                    + 39    sql: str | exp.Expression,
                    + 40    schema: t.Optional[t.Dict | Schema] = None,
                    + 41    sources: t.Optional[t.Dict[str, str | exp.Subqueryable]] = None,
                    + 42    dialect: DialectType = None,
                    + 43    **kwargs,
                    + 44) -> Node:
                    + 45    """Build the lineage graph for a column of a SQL query.
                    + 46
                    + 47    Args:
                    + 48        column: The column to build the lineage for.
                    + 49        sql: The SQL string or expression.
                    + 50        schema: The schema of tables.
                    + 51        sources: A mapping of queries which will be used to continue building lineage.
                    + 52        dialect: The dialect of input SQL.
                    + 53        **kwargs: Qualification optimizer kwargs.
                    + 54
                    + 55    Returns:
                    + 56        A lineage node.
                    + 57    """
                    + 58
                    + 59    expression = maybe_parse(sql, dialect=dialect)
                    + 60
                    + 61    if sources:
                    + 62        expression = exp.expand(
                    + 63            expression,
                    + 64            {
                    + 65                k: t.cast(exp.Subqueryable, maybe_parse(v, dialect=dialect))
                    + 66                for k, v in sources.items()
                    + 67            },
                    + 68        )
                    + 69
                    + 70    qualified = qualify.qualify(
                    + 71        expression,
                    + 72        dialect=dialect,
                    + 73        schema=schema,
                    + 74        **{"validate_qualify_columns": False, "identify": False, **kwargs},  # type: ignore
                    + 75    )
                    + 76
                    + 77    scope = build_scope(qualified)
                      78
                    - 79    def to_node(
                    - 80        column_name: str,
                    - 81        scope: Scope,
                    - 82        scope_name: t.Optional[str] = None,
                    - 83        upstream: t.Optional[Node] = None,
                    - 84        alias: t.Optional[str] = None,
                    - 85    ) -> Node:
                    - 86        aliases = {
                    - 87            dt.alias: dt.comments[0].split()[1]
                    - 88            for dt in scope.derived_tables
                    - 89            if dt.comments and dt.comments[0].startswith("source: ")
                    - 90        }
                    - 91        if isinstance(scope.expression, exp.Union):
                    - 92            for scope in scope.union_scopes:
                    - 93                node = to_node(
                    - 94                    column_name,
                    - 95                    scope=scope,
                    - 96                    scope_name=scope_name,
                    - 97                    upstream=upstream,
                    - 98                    alias=aliases.get(scope_name),
                    - 99                )
                    -100            return node
                    -101
                    -102        # Find the specific select clause that is the source of the column we want.
                    -103        # This can either be a specific, named select or a generic `*` clause.
                    -104        select = next(
                    -105            (select for select in scope.selects if select.alias_or_name == column_name),
                    -106            exp.Star() if scope.expression.is_star else None,
                    -107        )
                    -108
                    -109        if not select:
                    -110            raise ValueError(f"Could not find {column_name} in {scope.expression}")
                    + 79    if not scope:
                    + 80        raise SqlglotError("Cannot build lineage, sql must be SELECT")
                    + 81
                    + 82    def to_node(
                    + 83        column_name: str,
                    + 84        scope: Scope,
                    + 85        scope_name: t.Optional[str] = None,
                    + 86        upstream: t.Optional[Node] = None,
                    + 87        alias: t.Optional[str] = None,
                    + 88    ) -> Node:
                    + 89        aliases = {
                    + 90            dt.alias: dt.comments[0].split()[1]
                    + 91            for dt in scope.derived_tables
                    + 92            if dt.comments and dt.comments[0].startswith("source: ")
                    + 93        }
                    + 94        if isinstance(scope.expression, exp.Union):
                    + 95            for scope in scope.union_scopes:
                    + 96                node = to_node(
                    + 97                    column_name,
                    + 98                    scope=scope,
                    + 99                    scope_name=scope_name,
                    +100                    upstream=upstream,
                    +101                    alias=aliases.get(scope_name),
                    +102                )
                    +103            return node
                    +104
                    +105        # Find the specific select clause that is the source of the column we want.
                    +106        # This can either be a specific, named select or a generic `*` clause.
                    +107        select = next(
                    +108            (select for select in scope.selects if select.alias_or_name == column_name),
                    +109            exp.Star() if scope.expression.is_star else None,
                    +110        )
                     111
                    -112        if isinstance(scope.expression, exp.Select):
                    -113            # For better ergonomics in our node labels, replace the full select with
                    -114            # a version that has only the column we care about.
                    -115            #   "x", SELECT x, y FROM foo
                    -116            #     => "x", SELECT x FROM foo
                    -117            source = t.cast(exp.Expression, scope.expression.select(select, append=False))
                    -118        else:
                    -119            source = scope.expression
                    -120
                    -121        # Create the node for this step in the lineage chain, and attach it to the previous one.
                    -122        node = Node(
                    -123            name=f"{scope_name}.{column_name}" if scope_name else column_name,
                    -124            source=source,
                    -125            expression=select,
                    -126            alias=alias or "",
                    -127        )
                    -128        if upstream:
                    -129            upstream.downstream.append(node)
                    -130
                    -131        # Find all columns that went into creating this one to list their lineage nodes.
                    -132        for c in set(select.find_all(exp.Column)):
                    -133            table = c.table
                    -134            source = scope.sources.get(table)
                    -135
                    -136            if isinstance(source, Scope):
                    -137                # The table itself came from a more specific scope. Recurse into that one using the unaliased column name.
                    -138                to_node(
                    -139                    c.name, scope=source, scope_name=table, upstream=node, alias=aliases.get(table)
                    -140                )
                    -141            else:
                    -142                # The source is not a scope - we've reached the end of the line. At this point, if a source is not found
                    -143                # it means this column's lineage is unknown. This can happen if the definition of a source used in a query
                    -144                # is not passed into the `sources` map.
                    -145                source = source or exp.Placeholder()
                    -146                node.downstream.append(Node(name=c.sql(), source=source, expression=source))
                    -147
                    -148        return node
                    -149
                    -150    return to_node(column if isinstance(column, str) else column.name, scope)
                    +112        if not select:
                    +113            raise ValueError(f"Could not find {column_name} in {scope.expression}")
                    +114
                    +115        if isinstance(scope.expression, exp.Select):
                    +116            # For better ergonomics in our node labels, replace the full select with
                    +117            # a version that has only the column we care about.
                    +118            #   "x", SELECT x, y FROM foo
                    +119            #     => "x", SELECT x FROM foo
                    +120            source = t.cast(exp.Expression, scope.expression.select(select, append=False))
                    +121        else:
                    +122            source = scope.expression
                    +123
                    +124        # Create the node for this step in the lineage chain, and attach it to the previous one.
                    +125        node = Node(
                    +126            name=f"{scope_name}.{column_name}" if scope_name else column_name,
                    +127            source=source,
                    +128            expression=select,
                    +129            alias=alias or "",
                    +130        )
                    +131        if upstream:
                    +132            upstream.downstream.append(node)
                    +133
                    +134        # Find all columns that went into creating this one to list their lineage nodes.
                    +135        for c in set(select.find_all(exp.Column)):
                    +136            table = c.table
                    +137            source = scope.sources.get(table)
                    +138
                    +139            if isinstance(source, Scope):
                    +140                # The table itself came from a more specific scope. Recurse into that one using the unaliased column name.
                    +141                to_node(
                    +142                    c.name, scope=source, scope_name=table, upstream=node, alias=aliases.get(table)
                    +143                )
                    +144            else:
                    +145                # The source is not a scope - we've reached the end of the line. At this point, if a source is not found
                    +146                # it means this column's lineage is unknown. This can happen if the definition of a source used in a query
                    +147                # is not passed into the `sources` map.
                    +148                source = source or exp.Placeholder()
                    +149                node.downstream.append(Node(name=c.sql(), source=source, expression=source))
                    +150
                    +151        return node
                    +152
                    +153    return to_node(column if isinstance(column, str) else column.name, scope)
                     
                    @@ -571,8 +580,8 @@
                  • sql: The SQL string or expression.
                  • schema: The schema of tables.
                  • sources: A mapping of queries which will be used to continue building lineage.
                  • -
                  • rules: Optimizer rules to apply, by default only qualifying tables and columns.
                  • dialect: The dialect of input SQL.
                  • +
                  • **kwargs: Qualification optimizer kwargs.
                  Returns:
                  @@ -595,115 +604,115 @@ -
                  153class LineageHTML:
                  -154    """Node to HTML generator using vis.js.
                  -155
                  -156    https://visjs.github.io/vis-network/docs/network/
                  -157    """
                  +            
                  156class LineageHTML:
                  +157    """Node to HTML generator using vis.js.
                   158
                  -159    def __init__(
                  -160        self,
                  -161        node: Node,
                  -162        dialect: DialectType = None,
                  -163        imports: bool = True,
                  -164        **opts: t.Any,
                  -165    ):
                  -166        self.node = node
                  -167        self.imports = imports
                  -168
                  -169        self.options = {
                  -170            "height": "500px",
                  -171            "width": "100%",
                  -172            "layout": {
                  -173                "hierarchical": {
                  -174                    "enabled": True,
                  -175                    "nodeSpacing": 200,
                  -176                    "sortMethod": "directed",
                  -177                },
                  -178            },
                  -179            "interaction": {
                  -180                "dragNodes": False,
                  -181                "selectable": False,
                  -182            },
                  -183            "physics": {
                  -184                "enabled": False,
                  +159    https://visjs.github.io/vis-network/docs/network/
                  +160    """
                  +161
                  +162    def __init__(
                  +163        self,
                  +164        node: Node,
                  +165        dialect: DialectType = None,
                  +166        imports: bool = True,
                  +167        **opts: t.Any,
                  +168    ):
                  +169        self.node = node
                  +170        self.imports = imports
                  +171
                  +172        self.options = {
                  +173            "height": "500px",
                  +174            "width": "100%",
                  +175            "layout": {
                  +176                "hierarchical": {
                  +177                    "enabled": True,
                  +178                    "nodeSpacing": 200,
                  +179                    "sortMethod": "directed",
                  +180                },
                  +181            },
                  +182            "interaction": {
                  +183                "dragNodes": False,
                  +184                "selectable": False,
                   185            },
                  -186            "edges": {
                  -187                "arrows": "to",
                  +186            "physics": {
                  +187                "enabled": False,
                   188            },
                  -189            "nodes": {
                  -190                "font": "20px monaco",
                  -191                "shape": "box",
                  -192                "widthConstraint": {
                  -193                    "maximum": 300,
                  -194                },
                  -195            },
                  -196            **opts,
                  -197        }
                  -198
                  -199        self.nodes = {}
                  -200        self.edges = []
                  +189            "edges": {
                  +190                "arrows": "to",
                  +191            },
                  +192            "nodes": {
                  +193                "font": "20px monaco",
                  +194                "shape": "box",
                  +195                "widthConstraint": {
                  +196                    "maximum": 300,
                  +197                },
                  +198            },
                  +199            **opts,
                  +200        }
                   201
                  -202        for node in node.walk():
                  -203            if isinstance(node.expression, exp.Table):
                  -204                label = f"FROM {node.expression.this}"
                  -205                title = f"<pre>SELECT {node.name} FROM {node.expression.this}</pre>"
                  -206                group = 1
                  -207            else:
                  -208                label = node.expression.sql(pretty=True, dialect=dialect)
                  -209                source = node.source.transform(
                  -210                    lambda n: exp.Tag(this=n, prefix="<b>", postfix="</b>")
                  -211                    if n is node.expression
                  -212                    else n,
                  -213                    copy=False,
                  -214                ).sql(pretty=True, dialect=dialect)
                  -215                title = f"<pre>{source}</pre>"
                  -216                group = 0
                  -217
                  -218            node_id = id(node)
                  -219
                  -220            self.nodes[node_id] = {
                  -221                "id": node_id,
                  -222                "label": label,
                  -223                "title": title,
                  -224                "group": group,
                  -225            }
                  -226
                  -227            for d in node.downstream:
                  -228                self.edges.append({"from": node_id, "to": id(d)})
                  +202        self.nodes = {}
                  +203        self.edges = []
                  +204
                  +205        for node in node.walk():
                  +206            if isinstance(node.expression, exp.Table):
                  +207                label = f"FROM {node.expression.this}"
                  +208                title = f"<pre>SELECT {node.name} FROM {node.expression.this}</pre>"
                  +209                group = 1
                  +210            else:
                  +211                label = node.expression.sql(pretty=True, dialect=dialect)
                  +212                source = node.source.transform(
                  +213                    lambda n: exp.Tag(this=n, prefix="<b>", postfix="</b>")
                  +214                    if n is node.expression
                  +215                    else n,
                  +216                    copy=False,
                  +217                ).sql(pretty=True, dialect=dialect)
                  +218                title = f"<pre>{source}</pre>"
                  +219                group = 0
                  +220
                  +221            node_id = id(node)
                  +222
                  +223            self.nodes[node_id] = {
                  +224                "id": node_id,
                  +225                "label": label,
                  +226                "title": title,
                  +227                "group": group,
                  +228            }
                   229
                  -230    def __str__(self):
                  -231        nodes = json.dumps(list(self.nodes.values()))
                  -232        edges = json.dumps(self.edges)
                  -233        options = json.dumps(self.options)
                  -234        imports = (
                  -235            """<script type="text/javascript" src="https://unpkg.com/vis-data@latest/peer/umd/vis-data.min.js"></script>
                  -236  <script type="text/javascript" src="https://unpkg.com/vis-network@latest/peer/umd/vis-network.min.js"></script>
                  -237  <link rel="stylesheet" type="text/css" href="https://unpkg.com/vis-network/styles/vis-network.min.css" />"""
                  -238            if self.imports
                  -239            else ""
                  -240        )
                  -241
                  -242        return f"""<div>
                  -243  <div id="sqlglot-lineage"></div>
                  -244  {imports}
                  -245  <script type="text/javascript">
                  -246    var nodes = new vis.DataSet({nodes})
                  -247    nodes.forEach(row => row["title"] = new DOMParser().parseFromString(row["title"], "text/html").body.childNodes[0])
                  -248
                  -249    new vis.Network(
                  -250        document.getElementById("sqlglot-lineage"),
                  -251        {{
                  -252            nodes: nodes,
                  -253            edges: new vis.DataSet({edges})
                  -254        }},
                  -255        {options},
                  -256    )
                  -257  </script>
                  -258</div>"""
                  -259
                  -260    def _repr_html_(self) -> str:
                  -261        return self.__str__()
                  +230            for d in node.downstream:
                  +231                self.edges.append({"from": node_id, "to": id(d)})
                  +232
                  +233    def __str__(self):
                  +234        nodes = json.dumps(list(self.nodes.values()))
                  +235        edges = json.dumps(self.edges)
                  +236        options = json.dumps(self.options)
                  +237        imports = (
                  +238            """<script type="text/javascript" src="https://unpkg.com/vis-data@latest/peer/umd/vis-data.min.js"></script>
                  +239  <script type="text/javascript" src="https://unpkg.com/vis-network@latest/peer/umd/vis-network.min.js"></script>
                  +240  <link rel="stylesheet" type="text/css" href="https://unpkg.com/vis-network/styles/vis-network.min.css" />"""
                  +241            if self.imports
                  +242            else ""
                  +243        )
                  +244
                  +245        return f"""<div>
                  +246  <div id="sqlglot-lineage"></div>
                  +247  {imports}
                  +248  <script type="text/javascript">
                  +249    var nodes = new vis.DataSet({nodes})
                  +250    nodes.forEach(row => row["title"] = new DOMParser().parseFromString(row["title"], "text/html").body.childNodes[0])
                  +251
                  +252    new vis.Network(
                  +253        document.getElementById("sqlglot-lineage"),
                  +254        {{
                  +255            nodes: nodes,
                  +256            edges: new vis.DataSet({edges})
                  +257        }},
                  +258        {options},
                  +259    )
                  +260  </script>
                  +261</div>"""
                  +262
                  +263    def _repr_html_(self) -> str:
                  +264        return self.__str__()
                   
                  @@ -723,76 +732,76 @@
                  -
                  159    def __init__(
                  -160        self,
                  -161        node: Node,
                  -162        dialect: DialectType = None,
                  -163        imports: bool = True,
                  -164        **opts: t.Any,
                  -165    ):
                  -166        self.node = node
                  -167        self.imports = imports
                  -168
                  -169        self.options = {
                  -170            "height": "500px",
                  -171            "width": "100%",
                  -172            "layout": {
                  -173                "hierarchical": {
                  -174                    "enabled": True,
                  -175                    "nodeSpacing": 200,
                  -176                    "sortMethod": "directed",
                  -177                },
                  -178            },
                  -179            "interaction": {
                  -180                "dragNodes": False,
                  -181                "selectable": False,
                  -182            },
                  -183            "physics": {
                  -184                "enabled": False,
                  +            
                  162    def __init__(
                  +163        self,
                  +164        node: Node,
                  +165        dialect: DialectType = None,
                  +166        imports: bool = True,
                  +167        **opts: t.Any,
                  +168    ):
                  +169        self.node = node
                  +170        self.imports = imports
                  +171
                  +172        self.options = {
                  +173            "height": "500px",
                  +174            "width": "100%",
                  +175            "layout": {
                  +176                "hierarchical": {
                  +177                    "enabled": True,
                  +178                    "nodeSpacing": 200,
                  +179                    "sortMethod": "directed",
                  +180                },
                  +181            },
                  +182            "interaction": {
                  +183                "dragNodes": False,
                  +184                "selectable": False,
                   185            },
                  -186            "edges": {
                  -187                "arrows": "to",
                  +186            "physics": {
                  +187                "enabled": False,
                   188            },
                  -189            "nodes": {
                  -190                "font": "20px monaco",
                  -191                "shape": "box",
                  -192                "widthConstraint": {
                  -193                    "maximum": 300,
                  -194                },
                  -195            },
                  -196            **opts,
                  -197        }
                  -198
                  -199        self.nodes = {}
                  -200        self.edges = []
                  +189            "edges": {
                  +190                "arrows": "to",
                  +191            },
                  +192            "nodes": {
                  +193                "font": "20px monaco",
                  +194                "shape": "box",
                  +195                "widthConstraint": {
                  +196                    "maximum": 300,
                  +197                },
                  +198            },
                  +199            **opts,
                  +200        }
                   201
                  -202        for node in node.walk():
                  -203            if isinstance(node.expression, exp.Table):
                  -204                label = f"FROM {node.expression.this}"
                  -205                title = f"<pre>SELECT {node.name} FROM {node.expression.this}</pre>"
                  -206                group = 1
                  -207            else:
                  -208                label = node.expression.sql(pretty=True, dialect=dialect)
                  -209                source = node.source.transform(
                  -210                    lambda n: exp.Tag(this=n, prefix="<b>", postfix="</b>")
                  -211                    if n is node.expression
                  -212                    else n,
                  -213                    copy=False,
                  -214                ).sql(pretty=True, dialect=dialect)
                  -215                title = f"<pre>{source}</pre>"
                  -216                group = 0
                  -217
                  -218            node_id = id(node)
                  -219
                  -220            self.nodes[node_id] = {
                  -221                "id": node_id,
                  -222                "label": label,
                  -223                "title": title,
                  -224                "group": group,
                  -225            }
                  -226
                  -227            for d in node.downstream:
                  -228                self.edges.append({"from": node_id, "to": id(d)})
                  +202        self.nodes = {}
                  +203        self.edges = []
                  +204
                  +205        for node in node.walk():
                  +206            if isinstance(node.expression, exp.Table):
                  +207                label = f"FROM {node.expression.this}"
                  +208                title = f"<pre>SELECT {node.name} FROM {node.expression.this}</pre>"
                  +209                group = 1
                  +210            else:
                  +211                label = node.expression.sql(pretty=True, dialect=dialect)
                  +212                source = node.source.transform(
                  +213                    lambda n: exp.Tag(this=n, prefix="<b>", postfix="</b>")
                  +214                    if n is node.expression
                  +215                    else n,
                  +216                    copy=False,
                  +217                ).sql(pretty=True, dialect=dialect)
                  +218                title = f"<pre>{source}</pre>"
                  +219                group = 0
                  +220
                  +221            node_id = id(node)
                  +222
                  +223            self.nodes[node_id] = {
                  +224                "id": node_id,
                  +225                "label": label,
                  +226                "title": title,
                  +227                "group": group,
                  +228            }
                  +229
                  +230            for d in node.downstream:
                  +231                self.edges.append({"from": node_id, "to": id(d)})
                   
                  diff --git a/docs/sqlglot/optimizer.html b/docs/sqlglot/optimizer.html index cd4948b..3669391 100644 --- a/docs/sqlglot/optimizer.html +++ b/docs/sqlglot/optimizer.html @@ -35,13 +35,14 @@
                • eliminate_joins
                • eliminate_subqueries
                • isolate_table_selects
                • -
                • lower_identities
                • merge_subqueries
                • normalize
                • +
                • normalize_identifiers
                • optimize_joins
                • optimizer
                • pushdown_predicates
                • pushdown_projections
                • +
                • qualify
                • qualify_columns
                • qualify_tables
                • scope
                • diff --git a/docs/sqlglot/optimizer/canonicalize.html b/docs/sqlglot/optimizer/canonicalize.html index e075a93..28344cf 100644 --- a/docs/sqlglot/optimizer/canonicalize.html +++ b/docs/sqlglot/optimizer/canonicalize.html @@ -73,93 +73,87 @@
                  3import itertools 4 5from sqlglot import exp - 6from sqlglot.helper import should_identify + 6 7 - 8 - 9def canonicalize(expression: exp.Expression, identify: str = "safe") -> exp.Expression: -10 """Converts a sql expression into a standard form. -11 -12 This method relies on annotate_types because many of the -13 conversions rely on type inference. -14 -15 Args: -16 expression: The expression to canonicalize. -17 identify: Whether or not to force identify identifier. -18 """ -19 exp.replace_children(expression, canonicalize, identify=identify) -20 -21 expression = add_text_to_concat(expression) -22 expression = coerce_type(expression) -23 expression = remove_redundant_casts(expression) -24 expression = ensure_bool_predicates(expression) + 8def canonicalize(expression: exp.Expression) -> exp.Expression: + 9 """Converts a sql expression into a standard form. +10 +11 This method relies on annotate_types because many of the +12 conversions rely on type inference. +13 +14 Args: +15 expression: The expression to canonicalize. +16 """ +17 exp.replace_children(expression, canonicalize) +18 +19 expression = add_text_to_concat(expression) +20 expression = coerce_type(expression) +21 expression = remove_redundant_casts(expression) +22 expression = ensure_bool_predicates(expression) +23 +24 return expression 25 -26 if isinstance(expression, exp.Identifier): -27 if should_identify(expression.this, identify): -28 expression.set("quoted", True) -29 -30 return expression +26 +27def add_text_to_concat(node: exp.Expression) -> exp.Expression: +28 if isinstance(node, exp.Add) and node.type and node.type.this in exp.DataType.TEXT_TYPES: +29 node = exp.Concat(this=node.this, expression=node.expression) +30 return node 31 32 -33def add_text_to_concat(node: exp.Expression) -> exp.Expression: -34 if isinstance(node, exp.Add) and node.type and node.type.this in exp.DataType.TEXT_TYPES: -35 node = exp.Concat(this=node.this, expression=node.expression) -36 return node -37 -38 -39def coerce_type(node: exp.Expression) -> exp.Expression: -40 if isinstance(node, exp.Binary): -41 _coerce_date(node.left, node.right) -42 elif isinstance(node, exp.Between): -43 _coerce_date(node.this, node.args["low"]) -44 elif isinstance(node, exp.Extract): -45 if node.expression.type.this not in exp.DataType.TEMPORAL_TYPES: -46 _replace_cast(node.expression, "datetime") -47 return node -48 -49 -50def remove_redundant_casts(expression: exp.Expression) -> exp.Expression: -51 if ( -52 isinstance(expression, exp.Cast) -53 and expression.to.type -54 and expression.this.type -55 and expression.to.type.this == expression.this.type.this -56 ): -57 return expression.this -58 return expression +33def coerce_type(node: exp.Expression) -> exp.Expression: +34 if isinstance(node, exp.Binary): +35 _coerce_date(node.left, node.right) +36 elif isinstance(node, exp.Between): +37 _coerce_date(node.this, node.args["low"]) +38 elif isinstance(node, exp.Extract): +39 if node.expression.type.this not in exp.DataType.TEMPORAL_TYPES: +40 _replace_cast(node.expression, "datetime") +41 return node +42 +43 +44def remove_redundant_casts(expression: exp.Expression) -> exp.Expression: +45 if ( +46 isinstance(expression, exp.Cast) +47 and expression.to.type +48 and expression.this.type +49 and expression.to.type.this == expression.this.type.this +50 ): +51 return expression.this +52 return expression +53 +54 +55def ensure_bool_predicates(expression: exp.Expression) -> exp.Expression: +56 if isinstance(expression, exp.Connector): +57 _replace_int_predicate(expression.left) +58 _replace_int_predicate(expression.right) 59 -60 -61def ensure_bool_predicates(expression: exp.Expression) -> exp.Expression: -62 if isinstance(expression, exp.Connector): -63 _replace_int_predicate(expression.left) -64 _replace_int_predicate(expression.right) +60 elif isinstance(expression, (exp.Where, exp.Having)): +61 _replace_int_predicate(expression.this) +62 +63 return expression +64 65 -66 elif isinstance(expression, (exp.Where, exp.Having)): -67 _replace_int_predicate(expression.this) -68 -69 return expression -70 -71 -72def _coerce_date(a: exp.Expression, b: exp.Expression) -> None: -73 for a, b in itertools.permutations([a, b]): -74 if ( -75 a.type -76 and a.type.this == exp.DataType.Type.DATE -77 and b.type -78 and b.type.this not in (exp.DataType.Type.DATE, exp.DataType.Type.INTERVAL) -79 ): -80 _replace_cast(b, "date") -81 +66def _coerce_date(a: exp.Expression, b: exp.Expression) -> None: +67 for a, b in itertools.permutations([a, b]): +68 if ( +69 a.type +70 and a.type.this == exp.DataType.Type.DATE +71 and b.type +72 and b.type.this not in (exp.DataType.Type.DATE, exp.DataType.Type.INTERVAL) +73 ): +74 _replace_cast(b, "date") +75 +76 +77def _replace_cast(node: exp.Expression, to: str) -> None: +78 data_type = exp.DataType.build(to) +79 cast = exp.Cast(this=node.copy(), to=data_type) +80 cast.type = data_type +81 node.replace(cast) 82 -83def _replace_cast(node: exp.Expression, to: str) -> None: -84 data_type = exp.DataType.build(to) -85 cast = exp.Cast(this=node.copy(), to=data_type) -86 cast.type = data_type -87 node.replace(cast) -88 -89 -90def _replace_int_predicate(expression: exp.Expression) -> None: -91 if expression.type and expression.type.this in exp.DataType.INTEGER_TYPES: -92 expression.replace(exp.NEQ(this=expression.copy(), expression=exp.Literal.number(0))) +83 +84def _replace_int_predicate(expression: exp.Expression) -> None: +85 if expression.type and expression.type.this in exp.DataType.INTEGER_TYPES: +86 expression.replace(exp.NEQ(this=expression.copy(), expression=exp.Literal.number(0)))
                  @@ -169,34 +163,29 @@
                  def - canonicalize( expression: sqlglot.expressions.Expression, identify: str = 'safe') -> sqlglot.expressions.Expression: + canonicalize( expression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression:
                  -
                  10def canonicalize(expression: exp.Expression, identify: str = "safe") -> exp.Expression:
                  -11    """Converts a sql expression into a standard form.
                  -12
                  -13    This method relies on annotate_types because many of the
                  -14    conversions rely on type inference.
                  -15
                  -16    Args:
                  -17        expression: The expression to canonicalize.
                  -18        identify: Whether or not to force identify identifier.
                  -19    """
                  -20    exp.replace_children(expression, canonicalize, identify=identify)
                  -21
                  -22    expression = add_text_to_concat(expression)
                  -23    expression = coerce_type(expression)
                  -24    expression = remove_redundant_casts(expression)
                  -25    expression = ensure_bool_predicates(expression)
                  -26
                  -27    if isinstance(expression, exp.Identifier):
                  -28        if should_identify(expression.this, identify):
                  -29            expression.set("quoted", True)
                  -30
                  -31    return expression
                  +            
                   9def canonicalize(expression: exp.Expression) -> exp.Expression:
                  +10    """Converts a sql expression into a standard form.
                  +11
                  +12    This method relies on annotate_types because many of the
                  +13    conversions rely on type inference.
                  +14
                  +15    Args:
                  +16        expression: The expression to canonicalize.
                  +17    """
                  +18    exp.replace_children(expression, canonicalize)
                  +19
                  +20    expression = add_text_to_concat(expression)
                  +21    expression = coerce_type(expression)
                  +22    expression = remove_redundant_casts(expression)
                  +23    expression = ensure_bool_predicates(expression)
                  +24
                  +25    return expression
                   
                  @@ -209,7 +198,6 @@ conversions rely on type inference.

                  • expression: The expression to canonicalize.
                  • -
                  • identify: Whether or not to force identify identifier.
                  @@ -226,10 +214,10 @@ conversions rely on type inference.

                  -
                  34def add_text_to_concat(node: exp.Expression) -> exp.Expression:
                  -35    if isinstance(node, exp.Add) and node.type and node.type.this in exp.DataType.TEXT_TYPES:
                  -36        node = exp.Concat(this=node.this, expression=node.expression)
                  -37    return node
                  +            
                  28def add_text_to_concat(node: exp.Expression) -> exp.Expression:
                  +29    if isinstance(node, exp.Add) and node.type and node.type.this in exp.DataType.TEXT_TYPES:
                  +30        node = exp.Concat(this=node.this, expression=node.expression)
                  +31    return node
                   
                  @@ -247,15 +235,15 @@ conversions rely on type inference.

                  -
                  40def coerce_type(node: exp.Expression) -> exp.Expression:
                  -41    if isinstance(node, exp.Binary):
                  -42        _coerce_date(node.left, node.right)
                  -43    elif isinstance(node, exp.Between):
                  -44        _coerce_date(node.this, node.args["low"])
                  -45    elif isinstance(node, exp.Extract):
                  -46        if node.expression.type.this not in exp.DataType.TEMPORAL_TYPES:
                  -47            _replace_cast(node.expression, "datetime")
                  -48    return node
                  +            
                  34def coerce_type(node: exp.Expression) -> exp.Expression:
                  +35    if isinstance(node, exp.Binary):
                  +36        _coerce_date(node.left, node.right)
                  +37    elif isinstance(node, exp.Between):
                  +38        _coerce_date(node.this, node.args["low"])
                  +39    elif isinstance(node, exp.Extract):
                  +40        if node.expression.type.this not in exp.DataType.TEMPORAL_TYPES:
                  +41            _replace_cast(node.expression, "datetime")
                  +42    return node
                   
                  @@ -273,15 +261,15 @@ conversions rely on type inference.

                  -
                  51def remove_redundant_casts(expression: exp.Expression) -> exp.Expression:
                  -52    if (
                  -53        isinstance(expression, exp.Cast)
                  -54        and expression.to.type
                  -55        and expression.this.type
                  -56        and expression.to.type.this == expression.this.type.this
                  -57    ):
                  -58        return expression.this
                  -59    return expression
                  +            
                  45def remove_redundant_casts(expression: exp.Expression) -> exp.Expression:
                  +46    if (
                  +47        isinstance(expression, exp.Cast)
                  +48        and expression.to.type
                  +49        and expression.this.type
                  +50        and expression.to.type.this == expression.this.type.this
                  +51    ):
                  +52        return expression.this
                  +53    return expression
                   
                  @@ -299,15 +287,15 @@ conversions rely on type inference.

                  -
                  62def ensure_bool_predicates(expression: exp.Expression) -> exp.Expression:
                  -63    if isinstance(expression, exp.Connector):
                  -64        _replace_int_predicate(expression.left)
                  -65        _replace_int_predicate(expression.right)
                  -66
                  -67    elif isinstance(expression, (exp.Where, exp.Having)):
                  -68        _replace_int_predicate(expression.this)
                  -69
                  -70    return expression
                  +            
                  56def ensure_bool_predicates(expression: exp.Expression) -> exp.Expression:
                  +57    if isinstance(expression, exp.Connector):
                  +58        _replace_int_predicate(expression.left)
                  +59        _replace_int_predicate(expression.right)
                  +60
                  +61    elif isinstance(expression, (exp.Where, exp.Having)):
                  +62        _replace_int_predicate(expression.this)
                  +63
                  +64    return expression
                   
                  diff --git a/docs/sqlglot/optimizer/normalize_identifiers.html b/docs/sqlglot/optimizer/normalize_identifiers.html new file mode 100644 index 0000000..2366979 --- /dev/null +++ b/docs/sqlglot/optimizer/normalize_identifiers.html @@ -0,0 +1,346 @@ + + + + + + + sqlglot.optimizer.normalize_identifiers API documentation + + + + + + + + + +
                  +
                  + Edit on GitHub +

                  +sqlglot.optimizer.normalize_identifiers

                  + + + + + + +
                   1from sqlglot import exp
                  + 2from sqlglot._typing import E
                  + 3from sqlglot.dialects.dialect import RESOLVES_IDENTIFIERS_AS_UPPERCASE, DialectType
                  + 4
                  + 5
                  + 6def normalize_identifiers(expression: E, dialect: DialectType = None) -> E:
                  + 7    """
                  + 8    Normalize all unquoted identifiers to either lower or upper case, depending on
                  + 9    the dialect. This essentially makes those identifiers case-insensitive.
                  +10
                  +11    Example:
                  +12        >>> import sqlglot
                  +13        >>> expression = sqlglot.parse_one('SELECT Bar.A AS A FROM "Foo".Bar')
                  +14        >>> normalize_identifiers(expression).sql()
                  +15        'SELECT bar.a AS a FROM "Foo".bar'
                  +16
                  +17    Args:
                  +18        expression: The expression to transform.
                  +19        dialect: The dialect to use in order to decide how to normalize identifiers.
                  +20
                  +21    Returns:
                  +22        The transformed expression.
                  +23    """
                  +24    return expression.transform(_normalize, dialect, copy=False)
                  +25
                  +26
                  +27def _normalize(node: exp.Expression, dialect: DialectType = None) -> exp.Expression:
                  +28    if isinstance(node, exp.Identifier) and not node.quoted:
                  +29        node.set(
                  +30            "this",
                  +31            node.this.upper()
                  +32            if dialect in RESOLVES_IDENTIFIERS_AS_UPPERCASE
                  +33            else node.this.lower(),
                  +34        )
                  +35
                  +36    return node
                  +
                  + + +
                  +
                  + +
                  + + def + normalize_identifiers( expression: ~E, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> ~E: + + + +
                  + +
                   7def normalize_identifiers(expression: E, dialect: DialectType = None) -> E:
                  + 8    """
                  + 9    Normalize all unquoted identifiers to either lower or upper case, depending on
                  +10    the dialect. This essentially makes those identifiers case-insensitive.
                  +11
                  +12    Example:
                  +13        >>> import sqlglot
                  +14        >>> expression = sqlglot.parse_one('SELECT Bar.A AS A FROM "Foo".Bar')
                  +15        >>> normalize_identifiers(expression).sql()
                  +16        'SELECT bar.a AS a FROM "Foo".bar'
                  +17
                  +18    Args:
                  +19        expression: The expression to transform.
                  +20        dialect: The dialect to use in order to decide how to normalize identifiers.
                  +21
                  +22    Returns:
                  +23        The transformed expression.
                  +24    """
                  +25    return expression.transform(_normalize, dialect, copy=False)
                  +
                  + + +

                  Normalize all unquoted identifiers to either lower or upper case, depending on +the dialect. This essentially makes those identifiers case-insensitive.

                  + +
                  Example:
                  + +
                  +
                  +
                  >>> import sqlglot
                  +>>> expression = sqlglot.parse_one('SELECT Bar.A AS A FROM "Foo".Bar')
                  +>>> normalize_identifiers(expression).sql()
                  +'SELECT bar.a AS a FROM "Foo".bar'
                  +
                  +
                  +
                  + +
                  Arguments:
                  + +
                    +
                  • expression: The expression to transform.
                  • +
                  • dialect: The dialect to use in order to decide how to normalize identifiers.
                  • +
                  + +
                  Returns:
                  + +
                  +

                  The transformed expression.

                  +
                  +
                  + + +
                  +
                  + + \ No newline at end of file diff --git a/docs/sqlglot/optimizer/optimize_joins.html b/docs/sqlglot/optimizer/optimize_joins.html index 09be940..b914197 100644 --- a/docs/sqlglot/optimizer/optimize_joins.html +++ b/docs/sqlglot/optimizer/optimize_joins.html @@ -68,7 +68,7 @@
                   1from sqlglot import exp
                    2from sqlglot.helper import tsort
                    3
                  - 4JOIN_ATTRS = ("on", "side", "kind", "using", "natural")
                  + 4JOIN_ATTRS = ("on", "side", "kind", "using", "method")
                    5
                    6
                    7def optimize_joins(expression):
                  diff --git a/docs/sqlglot/optimizer/optimizer.html b/docs/sqlglot/optimizer/optimizer.html
                  index 2106e43..ee0c50d 100644
                  --- a/docs/sqlglot/optimizer/optimizer.html
                  +++ b/docs/sqlglot/optimizer/optimizer.html
                  @@ -68,85 +68,88 @@
                   10from sqlglot.optimizer.eliminate_ctes import eliminate_ctes
                   11from sqlglot.optimizer.eliminate_joins import eliminate_joins
                   12from sqlglot.optimizer.eliminate_subqueries import eliminate_subqueries
                  -13from sqlglot.optimizer.isolate_table_selects import isolate_table_selects
                  -14from sqlglot.optimizer.lower_identities import lower_identities
                  -15from sqlglot.optimizer.merge_subqueries import merge_subqueries
                  -16from sqlglot.optimizer.normalize import normalize
                  -17from sqlglot.optimizer.optimize_joins import optimize_joins
                  -18from sqlglot.optimizer.pushdown_predicates import pushdown_predicates
                  -19from sqlglot.optimizer.pushdown_projections import pushdown_projections
                  -20from sqlglot.optimizer.qualify_columns import qualify_columns, validate_qualify_columns
                  -21from sqlglot.optimizer.qualify_tables import qualify_tables
                  -22from sqlglot.optimizer.simplify import simplify
                  -23from sqlglot.optimizer.unnest_subqueries import unnest_subqueries
                  -24from sqlglot.schema import ensure_schema
                  -25
                  -26RULES = (
                  -27    lower_identities,
                  -28    qualify_tables,
                  -29    isolate_table_selects,
                  -30    qualify_columns,
                  -31    pushdown_projections,
                  -32    validate_qualify_columns,
                  -33    normalize,
                  -34    unnest_subqueries,
                  -35    pushdown_predicates,
                  -36    optimize_joins,
                  -37    eliminate_subqueries,
                  -38    merge_subqueries,
                  -39    eliminate_joins,
                  -40    eliminate_ctes,
                  -41    annotate_types,
                  -42    canonicalize,
                  -43    simplify,
                  -44)
                  -45
                  -46
                  -47def optimize(
                  -48    expression: str | exp.Expression,
                  -49    schema: t.Optional[dict | Schema] = None,
                  -50    db: t.Optional[str] = None,
                  -51    catalog: t.Optional[str] = None,
                  -52    dialect: DialectType = None,
                  -53    rules: t.Sequence[t.Callable] = RULES,
                  -54    **kwargs,
                  -55):
                  -56    """
                  -57    Rewrite a sqlglot AST into an optimized form.
                  -58
                  -59    Args:
                  -60        expression: expression to optimize
                  -61        schema: database schema.
                  -62            This can either be an instance of `sqlglot.optimizer.Schema` or a mapping in one of
                  -63            the following forms:
                  -64                1. {table: {col: type}}
                  -65                2. {db: {table: {col: type}}}
                  -66                3. {catalog: {db: {table: {col: type}}}}
                  -67            If no schema is provided then the default schema defined at `sqlgot.schema` will be used
                  -68        db: specify the default database, as might be set by a `USE DATABASE db` statement
                  -69        catalog: specify the default catalog, as might be set by a `USE CATALOG c` statement
                  -70        dialect: The dialect to parse the sql string.
                  -71        rules: sequence of optimizer rules to use.
                  -72            Many of the rules require tables and columns to be qualified.
                  -73            Do not remove qualify_tables or qualify_columns from the sequence of rules unless you know
                  -74            what you're doing!
                  -75        **kwargs: If a rule has a keyword argument with a same name in **kwargs, it will be passed in.
                  -76    Returns:
                  -77        sqlglot.Expression: optimized expression
                  -78    """
                  -79    schema = ensure_schema(schema or sqlglot.schema, dialect=dialect)
                  -80    possible_kwargs = {"db": db, "catalog": catalog, "schema": schema, **kwargs}
                  -81    expression = exp.maybe_parse(expression, dialect=dialect, copy=True)
                  -82
                  -83    for rule in rules:
                  -84        # Find any additional rule parameters, beyond `expression`
                  -85        rule_params = rule.__code__.co_varnames
                  -86        rule_kwargs = {
                  -87            param: possible_kwargs[param] for param in rule_params if param in possible_kwargs
                  -88        }
                  -89        expression = rule(expression, **rule_kwargs)
                  -90
                  -91    return expression
                  +13from sqlglot.optimizer.merge_subqueries import merge_subqueries
                  +14from sqlglot.optimizer.normalize import normalize
                  +15from sqlglot.optimizer.optimize_joins import optimize_joins
                  +16from sqlglot.optimizer.pushdown_predicates import pushdown_predicates
                  +17from sqlglot.optimizer.pushdown_projections import pushdown_projections
                  +18from sqlglot.optimizer.qualify import qualify
                  +19from sqlglot.optimizer.qualify_columns import quote_identifiers
                  +20from sqlglot.optimizer.simplify import simplify
                  +21from sqlglot.optimizer.unnest_subqueries import unnest_subqueries
                  +22from sqlglot.schema import ensure_schema
                  +23
                  +24RULES = (
                  +25    qualify,
                  +26    pushdown_projections,
                  +27    normalize,
                  +28    unnest_subqueries,
                  +29    pushdown_predicates,
                  +30    optimize_joins,
                  +31    eliminate_subqueries,
                  +32    merge_subqueries,
                  +33    eliminate_joins,
                  +34    eliminate_ctes,
                  +35    quote_identifiers,
                  +36    annotate_types,
                  +37    canonicalize,
                  +38    simplify,
                  +39)
                  +40
                  +41
                  +42def optimize(
                  +43    expression: str | exp.Expression,
                  +44    schema: t.Optional[dict | Schema] = None,
                  +45    db: t.Optional[str] = None,
                  +46    catalog: t.Optional[str] = None,
                  +47    dialect: DialectType = None,
                  +48    rules: t.Sequence[t.Callable] = RULES,
                  +49    **kwargs,
                  +50) -> exp.Expression:
                  +51    """
                  +52    Rewrite a sqlglot AST into an optimized form.
                  +53
                  +54    Args:
                  +55        expression: expression to optimize
                  +56        schema: database schema.
                  +57            This can either be an instance of `sqlglot.optimizer.Schema` or a mapping in one of
                  +58            the following forms:
                  +59                1. {table: {col: type}}
                  +60                2. {db: {table: {col: type}}}
                  +61                3. {catalog: {db: {table: {col: type}}}}
                  +62            If no schema is provided then the default schema defined at `sqlgot.schema` will be used
                  +63        db: specify the default database, as might be set by a `USE DATABASE db` statement
                  +64        catalog: specify the default catalog, as might be set by a `USE CATALOG c` statement
                  +65        dialect: The dialect to parse the sql string.
                  +66        rules: sequence of optimizer rules to use.
                  +67            Many of the rules require tables and columns to be qualified.
                  +68            Do not remove `qualify` from the sequence of rules unless you know what you're doing!
                  +69        **kwargs: If a rule has a keyword argument with a same name in **kwargs, it will be passed in.
                  +70
                  +71    Returns:
                  +72        The optimized expression.
                  +73    """
                  +74    schema = ensure_schema(schema or sqlglot.schema, dialect=dialect)
                  +75    possible_kwargs = {
                  +76        "db": db,
                  +77        "catalog": catalog,
                  +78        "schema": schema,
                  +79        "dialect": dialect,
                  +80        "isolate_tables": True,  # needed for other optimizations to perform well
                  +81        "quote_identifiers": False,  # this happens in canonicalize
                  +82        **kwargs,
                  +83    }
                  +84
                  +85    expression = exp.maybe_parse(expression, dialect=dialect, copy=True)
                  +86    for rule in rules:
                  +87        # Find any additional rule parameters, beyond `expression`
                  +88        rule_params = rule.__code__.co_varnames
                  +89        rule_kwargs = {
                  +90            param: possible_kwargs[param] for param in rule_params if param in possible_kwargs
                  +91        }
                  +92        expression = rule(expression, **rule_kwargs)
                  +93
                  +94    return t.cast(exp.Expression, expression)
                   
                  @@ -156,57 +159,65 @@
                  def - optimize( expression: str | sqlglot.expressions.Expression, schema: Union[dict, sqlglot.schema.Schema, NoneType] = None, db: Optional[str] = None, catalog: Optional[str] = None, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, rules: Sequence[Callable] = (<function lower_identities at 0x7f0af2fc76d0>, <function qualify_tables at 0x7f0af2fa1d80>, <function isolate_table_selects at 0x7f0af2fc7370>, <function qualify_columns at 0x7f0af2fa0c10>, <function pushdown_projections at 0x7f0af2fa1750>, <function validate_qualify_columns at 0x7f0af2fa0ca0>, <function normalize at 0x7f0af2fc5630>, <function unnest_subqueries at 0x7f0af2fa1e10>, <function pushdown_predicates at 0x7f0af2fa0700>, <function optimize_joins at 0x7f0af2fa03a0>, <function eliminate_subqueries at 0x7f0af2fc72e0>, <function merge_subqueries at 0x7f0af2fc79a0>, <function eliminate_joins at 0x7f0af2fc53f0>, <function eliminate_ctes at 0x7f0af2fc52d0>, <function annotate_types at 0x7f0af2ff9a20>, <function canonicalize at 0x7f0af2fc4d30>, <function simplify at 0x7f0af2fc57e0>), **kwargs): + optimize( expression: str | sqlglot.expressions.Expression, schema: Union[dict, sqlglot.schema.Schema, NoneType] = None, db: Optional[str] = None, catalog: Optional[str] = None, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, rules: Sequence[Callable] = (<function qualify at 0x7fe11813a560>, <function pushdown_projections at 0x7fe118139f30>, <function normalize at 0x7fe11814a0e0>, <function unnest_subqueries at 0x7fe11813a950>, <function pushdown_predicates at 0x7fe118138e50>, <function optimize_joins at 0x7fe118138af0>, <function eliminate_subqueries at 0x7fe11814bd90>, <function merge_subqueries at 0x7fe11814be20>, <function eliminate_joins at 0x7fe118149f30>, <function eliminate_ctes at 0x7fe118149e10>, <function quote_identifiers at 0x7fe118139ea0>, <function annotate_types at 0x7fe11818a560>, <function canonicalize at 0x7fe118149870>, <function simplify at 0x7fe11814a290>), **kwargs) -> sqlglot.expressions.Expression:
                  -
                  48def optimize(
                  -49    expression: str | exp.Expression,
                  -50    schema: t.Optional[dict | Schema] = None,
                  -51    db: t.Optional[str] = None,
                  -52    catalog: t.Optional[str] = None,
                  -53    dialect: DialectType = None,
                  -54    rules: t.Sequence[t.Callable] = RULES,
                  -55    **kwargs,
                  -56):
                  -57    """
                  -58    Rewrite a sqlglot AST into an optimized form.
                  -59
                  -60    Args:
                  -61        expression: expression to optimize
                  -62        schema: database schema.
                  -63            This can either be an instance of `sqlglot.optimizer.Schema` or a mapping in one of
                  -64            the following forms:
                  -65                1. {table: {col: type}}
                  -66                2. {db: {table: {col: type}}}
                  -67                3. {catalog: {db: {table: {col: type}}}}
                  -68            If no schema is provided then the default schema defined at `sqlgot.schema` will be used
                  -69        db: specify the default database, as might be set by a `USE DATABASE db` statement
                  -70        catalog: specify the default catalog, as might be set by a `USE CATALOG c` statement
                  -71        dialect: The dialect to parse the sql string.
                  -72        rules: sequence of optimizer rules to use.
                  -73            Many of the rules require tables and columns to be qualified.
                  -74            Do not remove qualify_tables or qualify_columns from the sequence of rules unless you know
                  -75            what you're doing!
                  -76        **kwargs: If a rule has a keyword argument with a same name in **kwargs, it will be passed in.
                  -77    Returns:
                  -78        sqlglot.Expression: optimized expression
                  -79    """
                  -80    schema = ensure_schema(schema or sqlglot.schema, dialect=dialect)
                  -81    possible_kwargs = {"db": db, "catalog": catalog, "schema": schema, **kwargs}
                  -82    expression = exp.maybe_parse(expression, dialect=dialect, copy=True)
                  -83
                  -84    for rule in rules:
                  -85        # Find any additional rule parameters, beyond `expression`
                  -86        rule_params = rule.__code__.co_varnames
                  -87        rule_kwargs = {
                  -88            param: possible_kwargs[param] for param in rule_params if param in possible_kwargs
                  -89        }
                  -90        expression = rule(expression, **rule_kwargs)
                  -91
                  -92    return expression
                  +            
                  43def optimize(
                  +44    expression: str | exp.Expression,
                  +45    schema: t.Optional[dict | Schema] = None,
                  +46    db: t.Optional[str] = None,
                  +47    catalog: t.Optional[str] = None,
                  +48    dialect: DialectType = None,
                  +49    rules: t.Sequence[t.Callable] = RULES,
                  +50    **kwargs,
                  +51) -> exp.Expression:
                  +52    """
                  +53    Rewrite a sqlglot AST into an optimized form.
                  +54
                  +55    Args:
                  +56        expression: expression to optimize
                  +57        schema: database schema.
                  +58            This can either be an instance of `sqlglot.optimizer.Schema` or a mapping in one of
                  +59            the following forms:
                  +60                1. {table: {col: type}}
                  +61                2. {db: {table: {col: type}}}
                  +62                3. {catalog: {db: {table: {col: type}}}}
                  +63            If no schema is provided then the default schema defined at `sqlgot.schema` will be used
                  +64        db: specify the default database, as might be set by a `USE DATABASE db` statement
                  +65        catalog: specify the default catalog, as might be set by a `USE CATALOG c` statement
                  +66        dialect: The dialect to parse the sql string.
                  +67        rules: sequence of optimizer rules to use.
                  +68            Many of the rules require tables and columns to be qualified.
                  +69            Do not remove `qualify` from the sequence of rules unless you know what you're doing!
                  +70        **kwargs: If a rule has a keyword argument with a same name in **kwargs, it will be passed in.
                  +71
                  +72    Returns:
                  +73        The optimized expression.
                  +74    """
                  +75    schema = ensure_schema(schema or sqlglot.schema, dialect=dialect)
                  +76    possible_kwargs = {
                  +77        "db": db,
                  +78        "catalog": catalog,
                  +79        "schema": schema,
                  +80        "dialect": dialect,
                  +81        "isolate_tables": True,  # needed for other optimizations to perform well
                  +82        "quote_identifiers": False,  # this happens in canonicalize
                  +83        **kwargs,
                  +84    }
                  +85
                  +86    expression = exp.maybe_parse(expression, dialect=dialect, copy=True)
                  +87    for rule in rules:
                  +88        # Find any additional rule parameters, beyond `expression`
                  +89        rule_params = rule.__code__.co_varnames
                  +90        rule_kwargs = {
                  +91            param: possible_kwargs[param] for param in rule_params if param in possible_kwargs
                  +92        }
                  +93        expression = rule(expression, **rule_kwargs)
                  +94
                  +95    return t.cast(exp.Expression, expression)
                   
                  @@ -228,15 +239,14 @@ If no schema is provided then the default schema defined at sqlgot.schema<
                • dialect: The dialect to parse the sql string.
                • rules: sequence of optimizer rules to use. Many of the rules require tables and columns to be qualified. -Do not remove qualify_tables or qualify_columns from the sequence of rules unless you know -what you're doing!
                • +Do not remove qualify from the sequence of rules unless you know what you're doing!
                • *kwargs: If a rule has a keyword argument with a same name in *kwargs, it will be passed in.
                Returns:
                -

                sqlglot.Expression: optimized expression

                +

                The optimized expression.

                diff --git a/docs/sqlglot/optimizer/pushdown_predicates.html b/docs/sqlglot/optimizer/pushdown_predicates.html index 67fac86..3790346 100644 --- a/docs/sqlglot/optimizer/pushdown_predicates.html +++ b/docs/sqlglot/optimizer/pushdown_predicates.html @@ -83,10 +83,10 @@ 10 11 Example: 12 >>> import sqlglot - 13 >>> sql = "SELECT * FROM (SELECT * FROM x AS x) AS y WHERE y.a = 1" + 13 >>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a FROM x AS x) AS y WHERE y.a = 1" 14 >>> expression = sqlglot.parse_one(sql) 15 >>> pushdown_predicates(expression).sql() - 16 'SELECT * FROM (SELECT * FROM x AS x WHERE y.a = 1) AS y WHERE TRUE' + 16 'SELECT y.a AS a FROM (SELECT x.a AS a FROM x AS x WHERE x.a = 1) AS y WHERE TRUE' 17 18 Args: 19 expression (sqlglot.Expression): expression to optimize @@ -291,10 +291,10 @@ 11 12 Example: 13 >>> import sqlglot -14 >>> sql = "SELECT * FROM (SELECT * FROM x AS x) AS y WHERE y.a = 1" +14 >>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a FROM x AS x) AS y WHERE y.a = 1" 15 >>> expression = sqlglot.parse_one(sql) 16 >>> pushdown_predicates(expression).sql() -17 'SELECT * FROM (SELECT * FROM x AS x WHERE y.a = 1) AS y WHERE TRUE' +17 'SELECT y.a AS a FROM (SELECT x.a AS a FROM x AS x WHERE x.a = 1) AS y WHERE TRUE' 18 19 Args: 20 expression (sqlglot.Expression): expression to optimize @@ -336,10 +336,10 @@
                >>> import sqlglot
                ->>> sql = "SELECT * FROM (SELECT * FROM x AS x) AS y WHERE y.a = 1"
                +>>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a FROM x AS x) AS y WHERE y.a = 1"
                 >>> expression = sqlglot.parse_one(sql)
                 >>> pushdown_predicates(expression).sql()
                -'SELECT * FROM (SELECT * FROM x AS x WHERE y.a = 1) AS y WHERE TRUE'
                +'SELECT y.a AS a FROM (SELECT x.a AS a FROM x AS x WHERE x.a = 1) AS y WHERE TRUE'
                 
                diff --git a/docs/sqlglot/optimizer/qualify.html b/docs/sqlglot/optimizer/qualify.html new file mode 100644 index 0000000..aed2280 --- /dev/null +++ b/docs/sqlglot/optimizer/qualify.html @@ -0,0 +1,447 @@ + + + + + + + sqlglot.optimizer.qualify API documentation + + + + + + + + + +
                +
                + Edit on GitHub +

                +sqlglot.optimizer.qualify

                + + + + + + +
                 1from __future__ import annotations
                + 2
                + 3import typing as t
                + 4
                + 5from sqlglot import exp
                + 6from sqlglot.dialects.dialect import DialectType
                + 7from sqlglot.optimizer.isolate_table_selects import isolate_table_selects
                + 8from sqlglot.optimizer.normalize_identifiers import normalize_identifiers
                + 9from sqlglot.optimizer.qualify_columns import (
                +10    qualify_columns as qualify_columns_func,
                +11    quote_identifiers as quote_identifiers_func,
                +12    validate_qualify_columns as validate_qualify_columns_func,
                +13)
                +14from sqlglot.optimizer.qualify_tables import qualify_tables
                +15from sqlglot.schema import Schema, ensure_schema
                +16
                +17
                +18def qualify(
                +19    expression: exp.Expression,
                +20    dialect: DialectType = None,
                +21    db: t.Optional[str] = None,
                +22    catalog: t.Optional[str] = None,
                +23    schema: t.Optional[dict | Schema] = None,
                +24    expand_alias_refs: bool = True,
                +25    infer_schema: t.Optional[bool] = None,
                +26    isolate_tables: bool = False,
                +27    qualify_columns: bool = True,
                +28    validate_qualify_columns: bool = True,
                +29    quote_identifiers: bool = True,
                +30    identify: bool = True,
                +31) -> exp.Expression:
                +32    """
                +33    Rewrite sqlglot AST to have normalized and qualified tables and columns.
                +34
                +35    This step is necessary for all further SQLGlot optimizations.
                +36
                +37    Example:
                +38        >>> import sqlglot
                +39        >>> schema = {"tbl": {"col": "INT"}}
                +40        >>> expression = sqlglot.parse_one("SELECT col FROM tbl")
                +41        >>> qualify(expression, schema=schema).sql()
                +42        'SELECT "tbl"."col" AS "col" FROM "tbl" AS "tbl"'
                +43
                +44    Args:
                +45        expression: Expression to qualify.
                +46        db: Default database name for tables.
                +47        catalog: Default catalog name for tables.
                +48        schema: Schema to infer column names and types.
                +49        expand_alias_refs: Whether or not to expand references to aliases.
                +50        infer_schema: Whether or not to infer the schema if missing.
                +51        isolate_tables: Whether or not to isolate table selects.
                +52        qualify_columns: Whether or not to qualify columns.
                +53        validate_qualify_columns: Whether or not to validate columns.
                +54        quote_identifiers: Whether or not to run the quote_identifiers step.
                +55            This step is necessary to ensure correctness for case sensitive queries.
                +56            But this flag is provided in case this step is performed at a later time.
                +57        identify: If True, quote all identifiers, else only necessary ones.
                +58
                +59    Returns:
                +60        The qualified expression.
                +61    """
                +62    schema = ensure_schema(schema, dialect=dialect)
                +63    expression = normalize_identifiers(expression, dialect=dialect)
                +64    expression = qualify_tables(expression, db=db, catalog=catalog, schema=schema)
                +65
                +66    if isolate_tables:
                +67        expression = isolate_table_selects(expression, schema=schema)
                +68
                +69    if qualify_columns:
                +70        expression = qualify_columns_func(
                +71            expression, schema, expand_alias_refs=expand_alias_refs, infer_schema=infer_schema
                +72        )
                +73
                +74    if quote_identifiers:
                +75        expression = quote_identifiers_func(expression, dialect=dialect, identify=identify)
                +76
                +77    if validate_qualify_columns:
                +78        validate_qualify_columns_func(expression)
                +79
                +80    return expression
                +
                + + +
                +
                + +
                + + def + qualify( expression: sqlglot.expressions.Expression, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, db: Optional[str] = None, catalog: Optional[str] = None, schema: Union[dict, sqlglot.schema.Schema, NoneType] = None, expand_alias_refs: bool = True, infer_schema: Optional[bool] = None, isolate_tables: bool = False, qualify_columns: bool = True, validate_qualify_columns: bool = True, quote_identifiers: bool = True, identify: bool = True) -> sqlglot.expressions.Expression: + + + +
                + +
                19def qualify(
                +20    expression: exp.Expression,
                +21    dialect: DialectType = None,
                +22    db: t.Optional[str] = None,
                +23    catalog: t.Optional[str] = None,
                +24    schema: t.Optional[dict | Schema] = None,
                +25    expand_alias_refs: bool = True,
                +26    infer_schema: t.Optional[bool] = None,
                +27    isolate_tables: bool = False,
                +28    qualify_columns: bool = True,
                +29    validate_qualify_columns: bool = True,
                +30    quote_identifiers: bool = True,
                +31    identify: bool = True,
                +32) -> exp.Expression:
                +33    """
                +34    Rewrite sqlglot AST to have normalized and qualified tables and columns.
                +35
                +36    This step is necessary for all further SQLGlot optimizations.
                +37
                +38    Example:
                +39        >>> import sqlglot
                +40        >>> schema = {"tbl": {"col": "INT"}}
                +41        >>> expression = sqlglot.parse_one("SELECT col FROM tbl")
                +42        >>> qualify(expression, schema=schema).sql()
                +43        'SELECT "tbl"."col" AS "col" FROM "tbl" AS "tbl"'
                +44
                +45    Args:
                +46        expression: Expression to qualify.
                +47        db: Default database name for tables.
                +48        catalog: Default catalog name for tables.
                +49        schema: Schema to infer column names and types.
                +50        expand_alias_refs: Whether or not to expand references to aliases.
                +51        infer_schema: Whether or not to infer the schema if missing.
                +52        isolate_tables: Whether or not to isolate table selects.
                +53        qualify_columns: Whether or not to qualify columns.
                +54        validate_qualify_columns: Whether or not to validate columns.
                +55        quote_identifiers: Whether or not to run the quote_identifiers step.
                +56            This step is necessary to ensure correctness for case sensitive queries.
                +57            But this flag is provided in case this step is performed at a later time.
                +58        identify: If True, quote all identifiers, else only necessary ones.
                +59
                +60    Returns:
                +61        The qualified expression.
                +62    """
                +63    schema = ensure_schema(schema, dialect=dialect)
                +64    expression = normalize_identifiers(expression, dialect=dialect)
                +65    expression = qualify_tables(expression, db=db, catalog=catalog, schema=schema)
                +66
                +67    if isolate_tables:
                +68        expression = isolate_table_selects(expression, schema=schema)
                +69
                +70    if qualify_columns:
                +71        expression = qualify_columns_func(
                +72            expression, schema, expand_alias_refs=expand_alias_refs, infer_schema=infer_schema
                +73        )
                +74
                +75    if quote_identifiers:
                +76        expression = quote_identifiers_func(expression, dialect=dialect, identify=identify)
                +77
                +78    if validate_qualify_columns:
                +79        validate_qualify_columns_func(expression)
                +80
                +81    return expression
                +
                + + +

                Rewrite sqlglot AST to have normalized and qualified tables and columns.

                + +

                This step is necessary for all further SQLGlot optimizations.

                + +
                Example:
                + +
                +
                +
                >>> import sqlglot
                +>>> schema = {"tbl": {"col": "INT"}}
                +>>> expression = sqlglot.parse_one("SELECT col FROM tbl")
                +>>> qualify(expression, schema=schema).sql()
                +'SELECT "tbl"."col" AS "col" FROM "tbl" AS "tbl"'
                +
                +
                +
                + +
                Arguments:
                + +
                  +
                • expression: Expression to qualify.
                • +
                • db: Default database name for tables.
                • +
                • catalog: Default catalog name for tables.
                • +
                • schema: Schema to infer column names and types.
                • +
                • expand_alias_refs: Whether or not to expand references to aliases.
                • +
                • infer_schema: Whether or not to infer the schema if missing.
                • +
                • isolate_tables: Whether or not to isolate table selects.
                • +
                • qualify_columns: Whether or not to qualify columns.
                • +
                • validate_qualify_columns: Whether or not to validate columns.
                • +
                • quote_identifiers: Whether or not to run the quote_identifiers step. +This step is necessary to ensure correctness for case sensitive queries. +But this flag is provided in case this step is performed at a later time.
                • +
                • identify: If True, quote all identifiers, else only necessary ones.
                • +
                + +
                Returns:
                + +
                +

                The qualified expression.

                +
                +
                + + +
                +
                + + \ No newline at end of file diff --git a/docs/sqlglot/optimizer/qualify_columns.html b/docs/sqlglot/optimizer/qualify_columns.html index 950bc67..2c3b003 100644 --- a/docs/sqlglot/optimizer/qualify_columns.html +++ b/docs/sqlglot/optimizer/qualify_columns.html @@ -36,6 +36,9 @@
              • validate_qualify_columns
              • +
              • + quote_identifiers +
              • Resolver
                  @@ -83,553 +86,567 @@ 4import typing as t 5 6from sqlglot import alias, exp - 7from sqlglot.errors import OptimizeError - 8from sqlglot.helper import seq_get - 9from sqlglot.optimizer.scope import Scope, traverse_scope, walk_in_scope - 10from sqlglot.schema import Schema, ensure_schema - 11 - 12 - 13def qualify_columns( - 14 expression: exp.Expression, - 15 schema: dict | Schema, - 16 expand_alias_refs: bool = True, - 17 infer_schema: t.Optional[bool] = None, - 18) -> exp.Expression: - 19 """ - 20 Rewrite sqlglot AST to have fully qualified columns. - 21 - 22 Example: - 23 >>> import sqlglot - 24 >>> schema = {"tbl": {"col": "INT"}} - 25 >>> expression = sqlglot.parse_one("SELECT col FROM tbl") - 26 >>> qualify_columns(expression, schema).sql() - 27 'SELECT tbl.col AS col FROM tbl' - 28 - 29 Args: - 30 expression: expression to qualify - 31 schema: Database schema - 32 expand_alias_refs: whether or not to expand references to aliases - 33 infer_schema: whether or not to infer the schema if missing - 34 Returns: - 35 sqlglot.Expression: qualified expression - 36 """ - 37 schema = ensure_schema(schema) - 38 infer_schema = schema.empty if infer_schema is None else infer_schema - 39 - 40 for scope in traverse_scope(expression): - 41 resolver = Resolver(scope, schema, infer_schema=infer_schema) - 42 _pop_table_column_aliases(scope.ctes) - 43 _pop_table_column_aliases(scope.derived_tables) - 44 using_column_tables = _expand_using(scope, resolver) - 45 - 46 if schema.empty and expand_alias_refs: - 47 _expand_alias_refs(scope, resolver) - 48 - 49 _qualify_columns(scope, resolver) + 7from sqlglot._typing import E + 8from sqlglot.dialects.dialect import DialectType + 9from sqlglot.errors import OptimizeError + 10from sqlglot.helper import case_sensitive, seq_get + 11from sqlglot.optimizer.scope import Scope, traverse_scope, walk_in_scope + 12from sqlglot.schema import Schema, ensure_schema + 13 + 14 + 15def qualify_columns( + 16 expression: exp.Expression, + 17 schema: dict | Schema, + 18 expand_alias_refs: bool = True, + 19 infer_schema: t.Optional[bool] = None, + 20) -> exp.Expression: + 21 """ + 22 Rewrite sqlglot AST to have fully qualified columns. + 23 + 24 Example: + 25 >>> import sqlglot + 26 >>> schema = {"tbl": {"col": "INT"}} + 27 >>> expression = sqlglot.parse_one("SELECT col FROM tbl") + 28 >>> qualify_columns(expression, schema).sql() + 29 'SELECT tbl.col AS col FROM tbl' + 30 + 31 Args: + 32 expression: expression to qualify + 33 schema: Database schema + 34 expand_alias_refs: whether or not to expand references to aliases + 35 infer_schema: whether or not to infer the schema if missing + 36 Returns: + 37 sqlglot.Expression: qualified expression + 38 """ + 39 schema = ensure_schema(schema) + 40 infer_schema = schema.empty if infer_schema is None else infer_schema + 41 + 42 for scope in traverse_scope(expression): + 43 resolver = Resolver(scope, schema, infer_schema=infer_schema) + 44 _pop_table_column_aliases(scope.ctes) + 45 _pop_table_column_aliases(scope.derived_tables) + 46 using_column_tables = _expand_using(scope, resolver) + 47 + 48 if schema.empty and expand_alias_refs: + 49 _expand_alias_refs(scope, resolver) 50 - 51 if not schema.empty and expand_alias_refs: - 52 _expand_alias_refs(scope, resolver) - 53 - 54 if not isinstance(scope.expression, exp.UDTF): - 55 _expand_stars(scope, resolver, using_column_tables) - 56 _qualify_outputs(scope) - 57 _expand_group_by(scope, resolver) - 58 _expand_order_by(scope) - 59 - 60 return expression + 51 _qualify_columns(scope, resolver) + 52 + 53 if not schema.empty and expand_alias_refs: + 54 _expand_alias_refs(scope, resolver) + 55 + 56 if not isinstance(scope.expression, exp.UDTF): + 57 _expand_stars(scope, resolver, using_column_tables) + 58 _qualify_outputs(scope) + 59 _expand_group_by(scope, resolver) + 60 _expand_order_by(scope) 61 - 62 - 63def validate_qualify_columns(expression): - 64 """Raise an `OptimizeError` if any columns aren't qualified""" - 65 unqualified_columns = [] - 66 for scope in traverse_scope(expression): - 67 if isinstance(scope.expression, exp.Select): - 68 unqualified_columns.extend(scope.unqualified_columns) - 69 if scope.external_columns and not scope.is_correlated_subquery and not scope.pivots: - 70 column = scope.external_columns[0] - 71 raise OptimizeError( - 72 f"""Column '{column}' could not be resolved{f" for table: '{column.table}'" if column.table else ''}""" - 73 ) - 74 - 75 if unqualified_columns: - 76 raise OptimizeError(f"Ambiguous columns: {unqualified_columns}") - 77 return expression - 78 - 79 - 80def _pop_table_column_aliases(derived_tables): - 81 """ - 82 Remove table column aliases. - 83 - 84 (e.g. SELECT ... FROM (SELECT ...) AS foo(col1, col2) - 85 """ - 86 for derived_table in derived_tables: - 87 table_alias = derived_table.args.get("alias") - 88 if table_alias: - 89 table_alias.args.pop("columns", None) - 90 - 91 - 92def _expand_using(scope, resolver): - 93 joins = list(scope.find_all(exp.Join)) - 94 names = {join.this.alias for join in joins} - 95 ordered = [key for key in scope.selected_sources if key not in names] - 96 - 97 # Mapping of automatically joined column names to an ordered set of source names (dict). - 98 column_tables = {} - 99 -100 for join in joins: -101 using = join.args.get("using") -102 -103 if not using: -104 continue -105 -106 join_table = join.this.alias_or_name + 62 return expression + 63 + 64 + 65def validate_qualify_columns(expression): + 66 """Raise an `OptimizeError` if any columns aren't qualified""" + 67 unqualified_columns = [] + 68 for scope in traverse_scope(expression): + 69 if isinstance(scope.expression, exp.Select): + 70 unqualified_columns.extend(scope.unqualified_columns) + 71 if scope.external_columns and not scope.is_correlated_subquery and not scope.pivots: + 72 column = scope.external_columns[0] + 73 raise OptimizeError( + 74 f"""Column '{column}' could not be resolved{f" for table: '{column.table}'" if column.table else ''}""" + 75 ) + 76 + 77 if unqualified_columns: + 78 raise OptimizeError(f"Ambiguous columns: {unqualified_columns}") + 79 return expression + 80 + 81 + 82def _pop_table_column_aliases(derived_tables): + 83 """ + 84 Remove table column aliases. + 85 + 86 (e.g. SELECT ... FROM (SELECT ...) AS foo(col1, col2) + 87 """ + 88 for derived_table in derived_tables: + 89 table_alias = derived_table.args.get("alias") + 90 if table_alias: + 91 table_alias.args.pop("columns", None) + 92 + 93 + 94def _expand_using(scope, resolver): + 95 joins = list(scope.find_all(exp.Join)) + 96 names = {join.this.alias for join in joins} + 97 ordered = [key for key in scope.selected_sources if key not in names] + 98 + 99 # Mapping of automatically joined column names to an ordered set of source names (dict). +100 column_tables = {} +101 +102 for join in joins: +103 using = join.args.get("using") +104 +105 if not using: +106 continue 107 -108 columns = {} +108 join_table = join.this.alias_or_name 109 -110 for k in scope.selected_sources: -111 if k in ordered: -112 for column in resolver.get_source_columns(k): -113 if column not in columns: -114 columns[column] = k -115 -116 source_table = ordered[-1] -117 ordered.append(join_table) -118 join_columns = resolver.get_source_columns(join_table) -119 conditions = [] -120 -121 for identifier in using: -122 identifier = identifier.name -123 table = columns.get(identifier) -124 -125 if not table or identifier not in join_columns: -126 if columns and join_columns: -127 raise OptimizeError(f"Cannot automatically join: {identifier}") -128 -129 table = table or source_table -130 conditions.append( -131 exp.condition( -132 exp.EQ( -133 this=exp.column(identifier, table=table), -134 expression=exp.column(identifier, table=join_table), -135 ) -136 ) -137 ) -138 -139 # Set all values in the dict to None, because we only care about the key ordering -140 tables = column_tables.setdefault(identifier, {}) -141 if table not in tables: -142 tables[table] = None -143 if join_table not in tables: -144 tables[join_table] = None -145 -146 join.args.pop("using") -147 join.set("on", exp.and_(*conditions, copy=False)) -148 -149 if column_tables: -150 for column in scope.columns: -151 if not column.table and column.name in column_tables: -152 tables = column_tables[column.name] -153 coalesce = [exp.column(column.name, table=table) for table in tables] -154 replacement = exp.Coalesce(this=coalesce[0], expressions=coalesce[1:]) -155 -156 # Ensure selects keep their output name -157 if isinstance(column.parent, exp.Select): -158 replacement = alias(replacement, alias=column.name, copy=False) -159 -160 scope.replace(column, replacement) +110 columns = {} +111 +112 for k in scope.selected_sources: +113 if k in ordered: +114 for column in resolver.get_source_columns(k): +115 if column not in columns: +116 columns[column] = k +117 +118 source_table = ordered[-1] +119 ordered.append(join_table) +120 join_columns = resolver.get_source_columns(join_table) +121 conditions = [] +122 +123 for identifier in using: +124 identifier = identifier.name +125 table = columns.get(identifier) +126 +127 if not table or identifier not in join_columns: +128 if columns and join_columns: +129 raise OptimizeError(f"Cannot automatically join: {identifier}") +130 +131 table = table or source_table +132 conditions.append( +133 exp.condition( +134 exp.EQ( +135 this=exp.column(identifier, table=table), +136 expression=exp.column(identifier, table=join_table), +137 ) +138 ) +139 ) +140 +141 # Set all values in the dict to None, because we only care about the key ordering +142 tables = column_tables.setdefault(identifier, {}) +143 if table not in tables: +144 tables[table] = None +145 if join_table not in tables: +146 tables[join_table] = None +147 +148 join.args.pop("using") +149 join.set("on", exp.and_(*conditions, copy=False)) +150 +151 if column_tables: +152 for column in scope.columns: +153 if not column.table and column.name in column_tables: +154 tables = column_tables[column.name] +155 coalesce = [exp.column(column.name, table=table) for table in tables] +156 replacement = exp.Coalesce(this=coalesce[0], expressions=coalesce[1:]) +157 +158 # Ensure selects keep their output name +159 if isinstance(column.parent, exp.Select): +160 replacement = alias(replacement, alias=column.name, copy=False) 161 -162 return column_tables +162 scope.replace(column, replacement) 163 -164 -165def _expand_alias_refs(scope: Scope, resolver: Resolver) -> None: -166 expression = scope.expression -167 -168 if not isinstance(expression, exp.Select): -169 return -170 -171 alias_to_expression: t.Dict[str, exp.Expression] = {} +164 return column_tables +165 +166 +167def _expand_alias_refs(scope: Scope, resolver: Resolver) -> None: +168 expression = scope.expression +169 +170 if not isinstance(expression, exp.Select): +171 return 172 -173 def replace_columns( -174 node: t.Optional[exp.Expression], expand: bool = True, resolve_agg: bool = False -175 ): -176 if not node: -177 return -178 -179 for column, *_ in walk_in_scope(node): -180 if not isinstance(column, exp.Column): -181 continue -182 table = resolver.get_table(column.name) if resolve_agg and not column.table else None -183 if table and column.find_ancestor(exp.AggFunc): -184 column.set("table", table) -185 elif expand and not column.table and column.name in alias_to_expression: -186 column.replace(alias_to_expression[column.name].copy()) -187 -188 for projection in scope.selects: -189 replace_columns(projection) -190 -191 if isinstance(projection, exp.Alias): -192 alias_to_expression[projection.alias] = projection.this -193 -194 replace_columns(expression.args.get("where")) -195 replace_columns(expression.args.get("group")) -196 replace_columns(expression.args.get("having"), resolve_agg=True) -197 replace_columns(expression.args.get("qualify"), resolve_agg=True) -198 replace_columns(expression.args.get("order"), expand=False, resolve_agg=True) -199 scope.clear_cache() -200 -201 -202def _expand_group_by(scope, resolver): -203 group = scope.expression.args.get("group") -204 if not group: -205 return -206 -207 group.set("expressions", _expand_positional_references(scope, group.expressions)) -208 scope.expression.set("group", group) -209 -210 -211def _expand_order_by(scope): -212 order = scope.expression.args.get("order") -213 if not order: -214 return -215 -216 ordereds = order.expressions -217 for ordered, new_expression in zip( -218 ordereds, -219 _expand_positional_references(scope, (o.this for o in ordereds)), -220 ): -221 ordered.set("this", new_expression) -222 -223 -224def _expand_positional_references(scope, expressions): -225 new_nodes = [] -226 for node in expressions: -227 if node.is_int: -228 try: -229 select = scope.selects[int(node.name) - 1] -230 except IndexError: -231 raise OptimizeError(f"Unknown output column: {node.name}") -232 if isinstance(select, exp.Alias): -233 select = select.this -234 new_nodes.append(select.copy()) -235 scope.clear_cache() -236 else: -237 new_nodes.append(node) -238 -239 return new_nodes +173 alias_to_expression: t.Dict[str, exp.Expression] = {} +174 +175 def replace_columns( +176 node: t.Optional[exp.Expression], expand: bool = True, resolve_agg: bool = False +177 ): +178 if not node: +179 return +180 +181 for column, *_ in walk_in_scope(node): +182 if not isinstance(column, exp.Column): +183 continue +184 table = resolver.get_table(column.name) if resolve_agg and not column.table else None +185 if table and column.find_ancestor(exp.AggFunc): +186 column.set("table", table) +187 elif expand and not column.table and column.name in alias_to_expression: +188 column.replace(alias_to_expression[column.name].copy()) +189 +190 for projection in scope.selects: +191 replace_columns(projection) +192 +193 if isinstance(projection, exp.Alias): +194 alias_to_expression[projection.alias] = projection.this +195 +196 replace_columns(expression.args.get("where")) +197 replace_columns(expression.args.get("group")) +198 replace_columns(expression.args.get("having"), resolve_agg=True) +199 replace_columns(expression.args.get("qualify"), resolve_agg=True) +200 replace_columns(expression.args.get("order"), expand=False, resolve_agg=True) +201 scope.clear_cache() +202 +203 +204def _expand_group_by(scope, resolver): +205 group = scope.expression.args.get("group") +206 if not group: +207 return +208 +209 group.set("expressions", _expand_positional_references(scope, group.expressions)) +210 scope.expression.set("group", group) +211 +212 +213def _expand_order_by(scope): +214 order = scope.expression.args.get("order") +215 if not order: +216 return +217 +218 ordereds = order.expressions +219 for ordered, new_expression in zip( +220 ordereds, +221 _expand_positional_references(scope, (o.this for o in ordereds)), +222 ): +223 ordered.set("this", new_expression) +224 +225 +226def _expand_positional_references(scope, expressions): +227 new_nodes = [] +228 for node in expressions: +229 if node.is_int: +230 try: +231 select = scope.selects[int(node.name) - 1] +232 except IndexError: +233 raise OptimizeError(f"Unknown output column: {node.name}") +234 if isinstance(select, exp.Alias): +235 select = select.this +236 new_nodes.append(select.copy()) +237 scope.clear_cache() +238 else: +239 new_nodes.append(node) 240 -241 -242def _qualify_columns(scope, resolver): -243 """Disambiguate columns, ensuring each column specifies a source""" -244 for column in scope.columns: -245 column_table = column.table -246 column_name = column.name -247 -248 if column_table and column_table in scope.sources: -249 source_columns = resolver.get_source_columns(column_table) -250 if source_columns and column_name not in source_columns and "*" not in source_columns: -251 raise OptimizeError(f"Unknown column: {column_name}") -252 -253 if not column_table: -254 if scope.pivots and not column.find_ancestor(exp.Pivot): -255 # If the column is under the Pivot expression, we need to qualify it -256 # using the name of the pivoted source instead of the pivot's alias -257 column.set("table", exp.to_identifier(scope.pivots[0].alias)) -258 continue -259 -260 column_table = resolver.get_table(column_name) +241 return new_nodes +242 +243 +244def _qualify_columns(scope, resolver): +245 """Disambiguate columns, ensuring each column specifies a source""" +246 for column in scope.columns: +247 column_table = column.table +248 column_name = column.name +249 +250 if column_table and column_table in scope.sources: +251 source_columns = resolver.get_source_columns(column_table) +252 if source_columns and column_name not in source_columns and "*" not in source_columns: +253 raise OptimizeError(f"Unknown column: {column_name}") +254 +255 if not column_table: +256 if scope.pivots and not column.find_ancestor(exp.Pivot): +257 # If the column is under the Pivot expression, we need to qualify it +258 # using the name of the pivoted source instead of the pivot's alias +259 column.set("table", exp.to_identifier(scope.pivots[0].alias)) +260 continue 261 -262 # column_table can be a '' because bigquery unnest has no table alias -263 if column_table: -264 column.set("table", column_table) -265 elif column_table not in scope.sources and ( -266 not scope.parent or column_table not in scope.parent.sources -267 ): -268 # structs are used like tables (e.g. "struct"."field"), so they need to be qualified -269 # separately and represented as dot(dot(...(<table>.<column>, field1), field2, ...)) -270 -271 root, *parts = column.parts +262 column_table = resolver.get_table(column_name) +263 +264 # column_table can be a '' because bigquery unnest has no table alias +265 if column_table: +266 column.set("table", column_table) +267 elif column_table not in scope.sources and ( +268 not scope.parent or column_table not in scope.parent.sources +269 ): +270 # structs are used like tables (e.g. "struct"."field"), so they need to be qualified +271 # separately and represented as dot(dot(...(<table>.<column>, field1), field2, ...)) 272 -273 if root.name in scope.sources: -274 # struct is already qualified, but we still need to change the AST representation -275 column_table = root -276 root, *parts = parts -277 else: -278 column_table = resolver.get_table(root.name) -279 -280 if column_table: -281 column.replace(exp.Dot.build([exp.column(root, table=column_table), *parts])) -282 -283 for pivot in scope.pivots: -284 for column in pivot.find_all(exp.Column): -285 if not column.table and column.name in resolver.all_columns: -286 column_table = resolver.get_table(column.name) -287 if column_table: -288 column.set("table", column_table) -289 -290 -291def _expand_stars(scope, resolver, using_column_tables): -292 """Expand stars to lists of column selections""" -293 -294 new_selections = [] -295 except_columns = {} -296 replace_columns = {} -297 coalesced_columns = set() -298 -299 # TODO: handle optimization of multiple PIVOTs (and possibly UNPIVOTs) in the future -300 pivot_columns = None -301 pivot_output_columns = None -302 pivot = seq_get(scope.pivots, 0) -303 -304 has_pivoted_source = pivot and not pivot.args.get("unpivot") -305 if has_pivoted_source: -306 pivot_columns = set(col.output_name for col in pivot.find_all(exp.Column)) -307 -308 pivot_output_columns = [col.output_name for col in pivot.args.get("columns", [])] -309 if not pivot_output_columns: -310 pivot_output_columns = [col.alias_or_name for col in pivot.expressions] -311 -312 for expression in scope.selects: -313 if isinstance(expression, exp.Star): -314 tables = list(scope.selected_sources) -315 _add_except_columns(expression, tables, except_columns) -316 _add_replace_columns(expression, tables, replace_columns) -317 elif expression.is_star: -318 tables = [expression.table] -319 _add_except_columns(expression.this, tables, except_columns) -320 _add_replace_columns(expression.this, tables, replace_columns) -321 else: -322 new_selections.append(expression) -323 continue -324 -325 for table in tables: -326 if table not in scope.sources: -327 raise OptimizeError(f"Unknown table: {table}") -328 -329 columns = resolver.get_source_columns(table, only_visible=True) +273 root, *parts = column.parts +274 +275 if root.name in scope.sources: +276 # struct is already qualified, but we still need to change the AST representation +277 column_table = root +278 root, *parts = parts +279 else: +280 column_table = resolver.get_table(root.name) +281 +282 if column_table: +283 column.replace(exp.Dot.build([exp.column(root, table=column_table), *parts])) +284 +285 for pivot in scope.pivots: +286 for column in pivot.find_all(exp.Column): +287 if not column.table and column.name in resolver.all_columns: +288 column_table = resolver.get_table(column.name) +289 if column_table: +290 column.set("table", column_table) +291 +292 +293def _expand_stars(scope, resolver, using_column_tables): +294 """Expand stars to lists of column selections""" +295 +296 new_selections = [] +297 except_columns = {} +298 replace_columns = {} +299 coalesced_columns = set() +300 +301 # TODO: handle optimization of multiple PIVOTs (and possibly UNPIVOTs) in the future +302 pivot_columns = None +303 pivot_output_columns = None +304 pivot = seq_get(scope.pivots, 0) +305 +306 has_pivoted_source = pivot and not pivot.args.get("unpivot") +307 if has_pivoted_source: +308 pivot_columns = set(col.output_name for col in pivot.find_all(exp.Column)) +309 +310 pivot_output_columns = [col.output_name for col in pivot.args.get("columns", [])] +311 if not pivot_output_columns: +312 pivot_output_columns = [col.alias_or_name for col in pivot.expressions] +313 +314 for expression in scope.selects: +315 if isinstance(expression, exp.Star): +316 tables = list(scope.selected_sources) +317 _add_except_columns(expression, tables, except_columns) +318 _add_replace_columns(expression, tables, replace_columns) +319 elif expression.is_star: +320 tables = [expression.table] +321 _add_except_columns(expression.this, tables, except_columns) +322 _add_replace_columns(expression.this, tables, replace_columns) +323 else: +324 new_selections.append(expression) +325 continue +326 +327 for table in tables: +328 if table not in scope.sources: +329 raise OptimizeError(f"Unknown table: {table}") 330 -331 if columns and "*" not in columns: -332 if has_pivoted_source: -333 implicit_columns = [col for col in columns if col not in pivot_columns] -334 new_selections.extend( -335 exp.alias_(exp.column(name, table=pivot.alias), name, copy=False) -336 for name in implicit_columns + pivot_output_columns -337 ) -338 continue -339 -340 table_id = id(table) -341 for name in columns: -342 if name in using_column_tables and table in using_column_tables[name]: -343 if name in coalesced_columns: -344 continue -345 -346 coalesced_columns.add(name) -347 tables = using_column_tables[name] -348 coalesce = [exp.column(name, table=table) for table in tables] -349 -350 new_selections.append( -351 alias( -352 exp.Coalesce(this=coalesce[0], expressions=coalesce[1:]), -353 alias=name, -354 copy=False, -355 ) -356 ) -357 elif name not in except_columns.get(table_id, set()): -358 alias_ = replace_columns.get(table_id, {}).get(name, name) -359 column = exp.column(name, table=table) -360 new_selections.append( -361 alias(column, alias_, copy=False) if alias_ != name else column -362 ) -363 else: -364 return -365 -366 scope.expression.set("expressions", new_selections) +331 columns = resolver.get_source_columns(table, only_visible=True) +332 +333 if columns and "*" not in columns: +334 if has_pivoted_source: +335 implicit_columns = [col for col in columns if col not in pivot_columns] +336 new_selections.extend( +337 exp.alias_(exp.column(name, table=pivot.alias), name, copy=False) +338 for name in implicit_columns + pivot_output_columns +339 ) +340 continue +341 +342 table_id = id(table) +343 for name in columns: +344 if name in using_column_tables and table in using_column_tables[name]: +345 if name in coalesced_columns: +346 continue +347 +348 coalesced_columns.add(name) +349 tables = using_column_tables[name] +350 coalesce = [exp.column(name, table=table) for table in tables] +351 +352 new_selections.append( +353 alias( +354 exp.Coalesce(this=coalesce[0], expressions=coalesce[1:]), +355 alias=name, +356 copy=False, +357 ) +358 ) +359 elif name not in except_columns.get(table_id, set()): +360 alias_ = replace_columns.get(table_id, {}).get(name, name) +361 column = exp.column(name, table=table) +362 new_selections.append( +363 alias(column, alias_, copy=False) if alias_ != name else column +364 ) +365 else: +366 return 367 -368 -369def _add_except_columns(expression, tables, except_columns): -370 except_ = expression.args.get("except") -371 -372 if not except_: -373 return -374 -375 columns = {e.name for e in except_} +368 scope.expression.set("expressions", new_selections) +369 +370 +371def _add_except_columns(expression, tables, except_columns): +372 except_ = expression.args.get("except") +373 +374 if not except_: +375 return 376 -377 for table in tables: -378 except_columns[id(table)] = columns -379 -380 -381def _add_replace_columns(expression, tables, replace_columns): -382 replace = expression.args.get("replace") -383 -384 if not replace: -385 return -386 -387 columns = {e.this.name: e.alias for e in replace} +377 columns = {e.name for e in except_} +378 +379 for table in tables: +380 except_columns[id(table)] = columns +381 +382 +383def _add_replace_columns(expression, tables, replace_columns): +384 replace = expression.args.get("replace") +385 +386 if not replace: +387 return 388 -389 for table in tables: -390 replace_columns[id(table)] = columns -391 -392 -393def _qualify_outputs(scope): -394 """Ensure all output columns are aliased""" -395 new_selections = [] -396 -397 for i, (selection, aliased_column) in enumerate( -398 itertools.zip_longest(scope.selects, scope.outer_column_list) -399 ): -400 if isinstance(selection, exp.Subquery): -401 if not selection.output_name: -402 selection.set("alias", exp.TableAlias(this=exp.to_identifier(f"_col_{i}"))) -403 elif not isinstance(selection, exp.Alias) and not selection.is_star: -404 selection = alias( -405 selection, -406 alias=selection.output_name or f"_col_{i}", -407 quoted=True -408 if isinstance(selection, exp.Column) and selection.this.quoted -409 else None, -410 ) -411 if aliased_column: -412 selection.set("alias", exp.to_identifier(aliased_column)) -413 -414 new_selections.append(selection) -415 -416 scope.expression.set("expressions", new_selections) +389 columns = {e.this.name: e.alias for e in replace} +390 +391 for table in tables: +392 replace_columns[id(table)] = columns +393 +394 +395def _qualify_outputs(scope): +396 """Ensure all output columns are aliased""" +397 new_selections = [] +398 +399 for i, (selection, aliased_column) in enumerate( +400 itertools.zip_longest(scope.selects, scope.outer_column_list) +401 ): +402 if isinstance(selection, exp.Subquery): +403 if not selection.output_name: +404 selection.set("alias", exp.TableAlias(this=exp.to_identifier(f"_col_{i}"))) +405 elif not isinstance(selection, exp.Alias) and not selection.is_star: +406 selection = alias( +407 selection, +408 alias=selection.output_name or f"_col_{i}", +409 ) +410 if aliased_column: +411 selection.set("alias", exp.to_identifier(aliased_column)) +412 +413 new_selections.append(selection) +414 +415 scope.expression.set("expressions", new_selections) +416 417 -418 -419class Resolver: -420 """ -421 Helper for resolving columns. -422 -423 This is a class so we can lazily load some things and easily share them across functions. -424 """ -425 -426 def __init__(self, scope, schema, infer_schema: bool = True): -427 self.scope = scope -428 self.schema = schema -429 self._source_columns = None -430 self._unambiguous_columns: t.Optional[t.Dict[str, str]] = None -431 self._all_columns = None -432 self._infer_schema = infer_schema +418def quote_identifiers(expression: E, dialect: DialectType = None, identify: bool = True) -> E: +419 """Makes sure all identifiers that need to be quoted are quoted.""" +420 +421 def _quote(expression: E) -> E: +422 if isinstance(expression, exp.Identifier): +423 name = expression.this +424 expression.set( +425 "quoted", +426 identify +427 or case_sensitive(name, dialect=dialect) +428 or not exp.SAFE_IDENTIFIER_RE.match(name), +429 ) +430 return expression +431 +432 return expression.transform(_quote, copy=False) 433 -434 def get_table(self, column_name: str) -> t.Optional[exp.Identifier]: -435 """ -436 Get the table for a column name. -437 -438 Args: -439 column_name: The column name to find the table for. -440 Returns: -441 The table name if it can be found/inferred. -442 """ -443 if self._unambiguous_columns is None: -444 self._unambiguous_columns = self._get_unambiguous_columns( -445 self._get_all_source_columns() -446 ) -447 -448 table_name = self._unambiguous_columns.get(column_name) +434 +435class Resolver: +436 """ +437 Helper for resolving columns. +438 +439 This is a class so we can lazily load some things and easily share them across functions. +440 """ +441 +442 def __init__(self, scope, schema, infer_schema: bool = True): +443 self.scope = scope +444 self.schema = schema +445 self._source_columns = None +446 self._unambiguous_columns: t.Optional[t.Dict[str, str]] = None +447 self._all_columns = None +448 self._infer_schema = infer_schema 449 -450 if not table_name and self._infer_schema: -451 sources_without_schema = tuple( -452 source -453 for source, columns in self._get_all_source_columns().items() -454 if not columns or "*" in columns -455 ) -456 if len(sources_without_schema) == 1: -457 table_name = sources_without_schema[0] -458 -459 if table_name not in self.scope.selected_sources: -460 return exp.to_identifier(table_name) -461 -462 node, _ = self.scope.selected_sources.get(table_name) +450 def get_table(self, column_name: str) -> t.Optional[exp.Identifier]: +451 """ +452 Get the table for a column name. +453 +454 Args: +455 column_name: The column name to find the table for. +456 Returns: +457 The table name if it can be found/inferred. +458 """ +459 if self._unambiguous_columns is None: +460 self._unambiguous_columns = self._get_unambiguous_columns( +461 self._get_all_source_columns() +462 ) 463 -464 if isinstance(node, exp.Subqueryable): -465 while node and node.alias != table_name: -466 node = node.parent -467 -468 node_alias = node.args.get("alias") -469 if node_alias: -470 return exp.to_identifier(node_alias.this) -471 -472 return exp.to_identifier( -473 table_name, quoted=node.this.quoted if isinstance(node, exp.Table) else None -474 ) -475 -476 @property -477 def all_columns(self): -478 """All available columns of all sources in this scope""" -479 if self._all_columns is None: -480 self._all_columns = { -481 column for columns in self._get_all_source_columns().values() for column in columns -482 } -483 return self._all_columns -484 -485 def get_source_columns(self, name, only_visible=False): -486 """Resolve the source columns for a given source `name`""" -487 if name not in self.scope.sources: -488 raise OptimizeError(f"Unknown table: {name}") +464 table_name = self._unambiguous_columns.get(column_name) +465 +466 if not table_name and self._infer_schema: +467 sources_without_schema = tuple( +468 source +469 for source, columns in self._get_all_source_columns().items() +470 if not columns or "*" in columns +471 ) +472 if len(sources_without_schema) == 1: +473 table_name = sources_without_schema[0] +474 +475 if table_name not in self.scope.selected_sources: +476 return exp.to_identifier(table_name) +477 +478 node, _ = self.scope.selected_sources.get(table_name) +479 +480 if isinstance(node, exp.Subqueryable): +481 while node and node.alias != table_name: +482 node = node.parent +483 +484 node_alias = node.args.get("alias") +485 if node_alias: +486 return exp.to_identifier(node_alias.this) +487 +488 return exp.to_identifier(table_name) 489 -490 source = self.scope.sources[name] -491 -492 # If referencing a table, return the columns from the schema -493 if isinstance(source, exp.Table): -494 return self.schema.column_names(source, only_visible) -495 -496 if isinstance(source, Scope) and isinstance(source.expression, exp.Values): -497 return source.expression.alias_column_names +490 @property +491 def all_columns(self): +492 """All available columns of all sources in this scope""" +493 if self._all_columns is None: +494 self._all_columns = { +495 column for columns in self._get_all_source_columns().values() for column in columns +496 } +497 return self._all_columns 498 -499 # Otherwise, if referencing another scope, return that scope's named selects -500 return source.expression.named_selects -501 -502 def _get_all_source_columns(self): -503 if self._source_columns is None: -504 self._source_columns = { -505 k: self.get_source_columns(k) -506 for k in itertools.chain(self.scope.selected_sources, self.scope.lateral_sources) -507 } -508 return self._source_columns +499 def get_source_columns(self, name, only_visible=False): +500 """Resolve the source columns for a given source `name`""" +501 if name not in self.scope.sources: +502 raise OptimizeError(f"Unknown table: {name}") +503 +504 source = self.scope.sources[name] +505 +506 # If referencing a table, return the columns from the schema +507 if isinstance(source, exp.Table): +508 return self.schema.column_names(source, only_visible) 509 -510 def _get_unambiguous_columns(self, source_columns): -511 """ -512 Find all the unambiguous columns in sources. -513 -514 Args: -515 source_columns (dict): Mapping of names to source columns -516 Returns: -517 dict: Mapping of column name to source name -518 """ -519 if not source_columns: -520 return {} -521 -522 source_columns = list(source_columns.items()) +510 if isinstance(source, Scope) and isinstance(source.expression, exp.Values): +511 return source.expression.alias_column_names +512 +513 # Otherwise, if referencing another scope, return that scope's named selects +514 return source.expression.named_selects +515 +516 def _get_all_source_columns(self): +517 if self._source_columns is None: +518 self._source_columns = { +519 k: self.get_source_columns(k) +520 for k in itertools.chain(self.scope.selected_sources, self.scope.lateral_sources) +521 } +522 return self._source_columns 523 -524 first_table, first_columns = source_columns[0] -525 unambiguous_columns = {col: first_table for col in self._find_unique_columns(first_columns)} -526 all_columns = set(unambiguous_columns) +524 def _get_unambiguous_columns(self, source_columns): +525 """ +526 Find all the unambiguous columns in sources. 527 -528 for table, columns in source_columns[1:]: -529 unique = self._find_unique_columns(columns) -530 ambiguous = set(all_columns).intersection(unique) -531 all_columns.update(columns) -532 for column in ambiguous: -533 unambiguous_columns.pop(column, None) -534 for column in unique.difference(ambiguous): -535 unambiguous_columns[column] = table -536 -537 return unambiguous_columns -538 -539 @staticmethod -540 def _find_unique_columns(columns): -541 """ -542 Find the unique columns in a list of columns. -543 -544 Example: -545 >>> sorted(Resolver._find_unique_columns(["a", "b", "b", "c"])) -546 ['a', 'c'] -547 -548 This is necessary because duplicate column names are ambiguous. -549 """ -550 counts = {} -551 for column in columns: -552 counts[column] = counts.get(column, 0) + 1 -553 return {column for column, count in counts.items() if count == 1} +528 Args: +529 source_columns (dict): Mapping of names to source columns +530 Returns: +531 dict: Mapping of column name to source name +532 """ +533 if not source_columns: +534 return {} +535 +536 source_columns = list(source_columns.items()) +537 +538 first_table, first_columns = source_columns[0] +539 unambiguous_columns = {col: first_table for col in self._find_unique_columns(first_columns)} +540 all_columns = set(unambiguous_columns) +541 +542 for table, columns in source_columns[1:]: +543 unique = self._find_unique_columns(columns) +544 ambiguous = set(all_columns).intersection(unique) +545 all_columns.update(columns) +546 for column in ambiguous: +547 unambiguous_columns.pop(column, None) +548 for column in unique.difference(ambiguous): +549 unambiguous_columns[column] = table +550 +551 return unambiguous_columns +552 +553 @staticmethod +554 def _find_unique_columns(columns): +555 """ +556 Find the unique columns in a list of columns. +557 +558 Example: +559 >>> sorted(Resolver._find_unique_columns(["a", "b", "b", "c"])) +560 ['a', 'c'] +561 +562 This is necessary because duplicate column names are ambiguous. +563 """ +564 counts = {} +565 for column in columns: +566 counts[column] = counts.get(column, 0) + 1 +567 return {column for column, count in counts.items() if count == 1} @@ -645,54 +662,54 @@ -
                  14def qualify_columns(
                  -15    expression: exp.Expression,
                  -16    schema: dict | Schema,
                  -17    expand_alias_refs: bool = True,
                  -18    infer_schema: t.Optional[bool] = None,
                  -19) -> exp.Expression:
                  -20    """
                  -21    Rewrite sqlglot AST to have fully qualified columns.
                  -22
                  -23    Example:
                  -24        >>> import sqlglot
                  -25        >>> schema = {"tbl": {"col": "INT"}}
                  -26        >>> expression = sqlglot.parse_one("SELECT col FROM tbl")
                  -27        >>> qualify_columns(expression, schema).sql()
                  -28        'SELECT tbl.col AS col FROM tbl'
                  -29
                  -30    Args:
                  -31        expression: expression to qualify
                  -32        schema: Database schema
                  -33        expand_alias_refs: whether or not to expand references to aliases
                  -34        infer_schema: whether or not to infer the schema if missing
                  -35    Returns:
                  -36        sqlglot.Expression: qualified expression
                  -37    """
                  -38    schema = ensure_schema(schema)
                  -39    infer_schema = schema.empty if infer_schema is None else infer_schema
                  -40
                  -41    for scope in traverse_scope(expression):
                  -42        resolver = Resolver(scope, schema, infer_schema=infer_schema)
                  -43        _pop_table_column_aliases(scope.ctes)
                  -44        _pop_table_column_aliases(scope.derived_tables)
                  -45        using_column_tables = _expand_using(scope, resolver)
                  -46
                  -47        if schema.empty and expand_alias_refs:
                  -48            _expand_alias_refs(scope, resolver)
                  -49
                  -50        _qualify_columns(scope, resolver)
                  +            
                  16def qualify_columns(
                  +17    expression: exp.Expression,
                  +18    schema: dict | Schema,
                  +19    expand_alias_refs: bool = True,
                  +20    infer_schema: t.Optional[bool] = None,
                  +21) -> exp.Expression:
                  +22    """
                  +23    Rewrite sqlglot AST to have fully qualified columns.
                  +24
                  +25    Example:
                  +26        >>> import sqlglot
                  +27        >>> schema = {"tbl": {"col": "INT"}}
                  +28        >>> expression = sqlglot.parse_one("SELECT col FROM tbl")
                  +29        >>> qualify_columns(expression, schema).sql()
                  +30        'SELECT tbl.col AS col FROM tbl'
                  +31
                  +32    Args:
                  +33        expression: expression to qualify
                  +34        schema: Database schema
                  +35        expand_alias_refs: whether or not to expand references to aliases
                  +36        infer_schema: whether or not to infer the schema if missing
                  +37    Returns:
                  +38        sqlglot.Expression: qualified expression
                  +39    """
                  +40    schema = ensure_schema(schema)
                  +41    infer_schema = schema.empty if infer_schema is None else infer_schema
                  +42
                  +43    for scope in traverse_scope(expression):
                  +44        resolver = Resolver(scope, schema, infer_schema=infer_schema)
                  +45        _pop_table_column_aliases(scope.ctes)
                  +46        _pop_table_column_aliases(scope.derived_tables)
                  +47        using_column_tables = _expand_using(scope, resolver)
                  +48
                  +49        if schema.empty and expand_alias_refs:
                  +50            _expand_alias_refs(scope, resolver)
                   51
                  -52        if not schema.empty and expand_alias_refs:
                  -53            _expand_alias_refs(scope, resolver)
                  -54
                  -55        if not isinstance(scope.expression, exp.UDTF):
                  -56            _expand_stars(scope, resolver, using_column_tables)
                  -57            _qualify_outputs(scope)
                  -58        _expand_group_by(scope, resolver)
                  -59        _expand_order_by(scope)
                  -60
                  -61    return expression
                  +52        _qualify_columns(scope, resolver)
                  +53
                  +54        if not schema.empty and expand_alias_refs:
                  +55            _expand_alias_refs(scope, resolver)
                  +56
                  +57        if not isinstance(scope.expression, exp.UDTF):
                  +58            _expand_stars(scope, resolver, using_column_tables)
                  +59            _qualify_outputs(scope)
                  +60        _expand_group_by(scope, resolver)
                  +61        _expand_order_by(scope)
                  +62
                  +63    return expression
                   
                  @@ -740,21 +757,21 @@
                  -
                  64def validate_qualify_columns(expression):
                  -65    """Raise an `OptimizeError` if any columns aren't qualified"""
                  -66    unqualified_columns = []
                  -67    for scope in traverse_scope(expression):
                  -68        if isinstance(scope.expression, exp.Select):
                  -69            unqualified_columns.extend(scope.unqualified_columns)
                  -70            if scope.external_columns and not scope.is_correlated_subquery and not scope.pivots:
                  -71                column = scope.external_columns[0]
                  -72                raise OptimizeError(
                  -73                    f"""Column '{column}' could not be resolved{f" for table: '{column.table}'" if column.table else ''}"""
                  -74                )
                  -75
                  -76    if unqualified_columns:
                  -77        raise OptimizeError(f"Ambiguous columns: {unqualified_columns}")
                  -78    return expression
                  +            
                  66def validate_qualify_columns(expression):
                  +67    """Raise an `OptimizeError` if any columns aren't qualified"""
                  +68    unqualified_columns = []
                  +69    for scope in traverse_scope(expression):
                  +70        if isinstance(scope.expression, exp.Select):
                  +71            unqualified_columns.extend(scope.unqualified_columns)
                  +72            if scope.external_columns and not scope.is_correlated_subquery and not scope.pivots:
                  +73                column = scope.external_columns[0]
                  +74                raise OptimizeError(
                  +75                    f"""Column '{column}' could not be resolved{f" for table: '{column.table}'" if column.table else ''}"""
                  +76                )
                  +77
                  +78    if unqualified_columns:
                  +79        raise OptimizeError(f"Ambiguous columns: {unqualified_columns}")
                  +80    return expression
                   
                  @@ -762,6 +779,40 @@
                  + +
                  + +
                  + + def + quote_identifiers( expression: ~E, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, identify: bool = True) -> ~E: + + + +
                  + +
                  419def quote_identifiers(expression: E, dialect: DialectType = None, identify: bool = True) -> E:
                  +420    """Makes sure all identifiers that need to be quoted are quoted."""
                  +421
                  +422    def _quote(expression: E) -> E:
                  +423        if isinstance(expression, exp.Identifier):
                  +424            name = expression.this
                  +425            expression.set(
                  +426                "quoted",
                  +427                identify
                  +428                or case_sensitive(name, dialect=dialect)
                  +429                or not exp.SAFE_IDENTIFIER_RE.match(name),
                  +430            )
                  +431        return expression
                  +432
                  +433    return expression.transform(_quote, copy=False)
                  +
                  + + +

                  Makes sure all identifiers that need to be quoted are quoted.

                  +
                  + +
                  @@ -774,141 +825,139 @@ -
                  420class Resolver:
                  -421    """
                  -422    Helper for resolving columns.
                  -423
                  -424    This is a class so we can lazily load some things and easily share them across functions.
                  -425    """
                  -426
                  -427    def __init__(self, scope, schema, infer_schema: bool = True):
                  -428        self.scope = scope
                  -429        self.schema = schema
                  -430        self._source_columns = None
                  -431        self._unambiguous_columns: t.Optional[t.Dict[str, str]] = None
                  -432        self._all_columns = None
                  -433        self._infer_schema = infer_schema
                  -434
                  -435    def get_table(self, column_name: str) -> t.Optional[exp.Identifier]:
                  -436        """
                  -437        Get the table for a column name.
                  -438
                  -439        Args:
                  -440            column_name: The column name to find the table for.
                  -441        Returns:
                  -442            The table name if it can be found/inferred.
                  -443        """
                  -444        if self._unambiguous_columns is None:
                  -445            self._unambiguous_columns = self._get_unambiguous_columns(
                  -446                self._get_all_source_columns()
                  -447            )
                  -448
                  -449        table_name = self._unambiguous_columns.get(column_name)
                  +            
                  436class Resolver:
                  +437    """
                  +438    Helper for resolving columns.
                  +439
                  +440    This is a class so we can lazily load some things and easily share them across functions.
                  +441    """
                  +442
                  +443    def __init__(self, scope, schema, infer_schema: bool = True):
                  +444        self.scope = scope
                  +445        self.schema = schema
                  +446        self._source_columns = None
                  +447        self._unambiguous_columns: t.Optional[t.Dict[str, str]] = None
                  +448        self._all_columns = None
                  +449        self._infer_schema = infer_schema
                   450
                  -451        if not table_name and self._infer_schema:
                  -452            sources_without_schema = tuple(
                  -453                source
                  -454                for source, columns in self._get_all_source_columns().items()
                  -455                if not columns or "*" in columns
                  -456            )
                  -457            if len(sources_without_schema) == 1:
                  -458                table_name = sources_without_schema[0]
                  -459
                  -460        if table_name not in self.scope.selected_sources:
                  -461            return exp.to_identifier(table_name)
                  -462
                  -463        node, _ = self.scope.selected_sources.get(table_name)
                  +451    def get_table(self, column_name: str) -> t.Optional[exp.Identifier]:
                  +452        """
                  +453        Get the table for a column name.
                  +454
                  +455        Args:
                  +456            column_name: The column name to find the table for.
                  +457        Returns:
                  +458            The table name if it can be found/inferred.
                  +459        """
                  +460        if self._unambiguous_columns is None:
                  +461            self._unambiguous_columns = self._get_unambiguous_columns(
                  +462                self._get_all_source_columns()
                  +463            )
                   464
                  -465        if isinstance(node, exp.Subqueryable):
                  -466            while node and node.alias != table_name:
                  -467                node = node.parent
                  -468
                  -469        node_alias = node.args.get("alias")
                  -470        if node_alias:
                  -471            return exp.to_identifier(node_alias.this)
                  -472
                  -473        return exp.to_identifier(
                  -474            table_name, quoted=node.this.quoted if isinstance(node, exp.Table) else None
                  -475        )
                  -476
                  -477    @property
                  -478    def all_columns(self):
                  -479        """All available columns of all sources in this scope"""
                  -480        if self._all_columns is None:
                  -481            self._all_columns = {
                  -482                column for columns in self._get_all_source_columns().values() for column in columns
                  -483            }
                  -484        return self._all_columns
                  -485
                  -486    def get_source_columns(self, name, only_visible=False):
                  -487        """Resolve the source columns for a given source `name`"""
                  -488        if name not in self.scope.sources:
                  -489            raise OptimizeError(f"Unknown table: {name}")
                  +465        table_name = self._unambiguous_columns.get(column_name)
                  +466
                  +467        if not table_name and self._infer_schema:
                  +468            sources_without_schema = tuple(
                  +469                source
                  +470                for source, columns in self._get_all_source_columns().items()
                  +471                if not columns or "*" in columns
                  +472            )
                  +473            if len(sources_without_schema) == 1:
                  +474                table_name = sources_without_schema[0]
                  +475
                  +476        if table_name not in self.scope.selected_sources:
                  +477            return exp.to_identifier(table_name)
                  +478
                  +479        node, _ = self.scope.selected_sources.get(table_name)
                  +480
                  +481        if isinstance(node, exp.Subqueryable):
                  +482            while node and node.alias != table_name:
                  +483                node = node.parent
                  +484
                  +485        node_alias = node.args.get("alias")
                  +486        if node_alias:
                  +487            return exp.to_identifier(node_alias.this)
                  +488
                  +489        return exp.to_identifier(table_name)
                   490
                  -491        source = self.scope.sources[name]
                  -492
                  -493        # If referencing a table, return the columns from the schema
                  -494        if isinstance(source, exp.Table):
                  -495            return self.schema.column_names(source, only_visible)
                  -496
                  -497        if isinstance(source, Scope) and isinstance(source.expression, exp.Values):
                  -498            return source.expression.alias_column_names
                  +491    @property
                  +492    def all_columns(self):
                  +493        """All available columns of all sources in this scope"""
                  +494        if self._all_columns is None:
                  +495            self._all_columns = {
                  +496                column for columns in self._get_all_source_columns().values() for column in columns
                  +497            }
                  +498        return self._all_columns
                   499
                  -500        # Otherwise, if referencing another scope, return that scope's named selects
                  -501        return source.expression.named_selects
                  -502
                  -503    def _get_all_source_columns(self):
                  -504        if self._source_columns is None:
                  -505            self._source_columns = {
                  -506                k: self.get_source_columns(k)
                  -507                for k in itertools.chain(self.scope.selected_sources, self.scope.lateral_sources)
                  -508            }
                  -509        return self._source_columns
                  +500    def get_source_columns(self, name, only_visible=False):
                  +501        """Resolve the source columns for a given source `name`"""
                  +502        if name not in self.scope.sources:
                  +503            raise OptimizeError(f"Unknown table: {name}")
                  +504
                  +505        source = self.scope.sources[name]
                  +506
                  +507        # If referencing a table, return the columns from the schema
                  +508        if isinstance(source, exp.Table):
                  +509            return self.schema.column_names(source, only_visible)
                   510
                  -511    def _get_unambiguous_columns(self, source_columns):
                  -512        """
                  -513        Find all the unambiguous columns in sources.
                  -514
                  -515        Args:
                  -516            source_columns (dict): Mapping of names to source columns
                  -517        Returns:
                  -518            dict: Mapping of column name to source name
                  -519        """
                  -520        if not source_columns:
                  -521            return {}
                  -522
                  -523        source_columns = list(source_columns.items())
                  +511        if isinstance(source, Scope) and isinstance(source.expression, exp.Values):
                  +512            return source.expression.alias_column_names
                  +513
                  +514        # Otherwise, if referencing another scope, return that scope's named selects
                  +515        return source.expression.named_selects
                  +516
                  +517    def _get_all_source_columns(self):
                  +518        if self._source_columns is None:
                  +519            self._source_columns = {
                  +520                k: self.get_source_columns(k)
                  +521                for k in itertools.chain(self.scope.selected_sources, self.scope.lateral_sources)
                  +522            }
                  +523        return self._source_columns
                   524
                  -525        first_table, first_columns = source_columns[0]
                  -526        unambiguous_columns = {col: first_table for col in self._find_unique_columns(first_columns)}
                  -527        all_columns = set(unambiguous_columns)
                  +525    def _get_unambiguous_columns(self, source_columns):
                  +526        """
                  +527        Find all the unambiguous columns in sources.
                   528
                  -529        for table, columns in source_columns[1:]:
                  -530            unique = self._find_unique_columns(columns)
                  -531            ambiguous = set(all_columns).intersection(unique)
                  -532            all_columns.update(columns)
                  -533            for column in ambiguous:
                  -534                unambiguous_columns.pop(column, None)
                  -535            for column in unique.difference(ambiguous):
                  -536                unambiguous_columns[column] = table
                  -537
                  -538        return unambiguous_columns
                  -539
                  -540    @staticmethod
                  -541    def _find_unique_columns(columns):
                  -542        """
                  -543        Find the unique columns in a list of columns.
                  -544
                  -545        Example:
                  -546            >>> sorted(Resolver._find_unique_columns(["a", "b", "b", "c"]))
                  -547            ['a', 'c']
                  -548
                  -549        This is necessary because duplicate column names are ambiguous.
                  -550        """
                  -551        counts = {}
                  -552        for column in columns:
                  -553            counts[column] = counts.get(column, 0) + 1
                  -554        return {column for column, count in counts.items() if count == 1}
                  +529        Args:
                  +530            source_columns (dict): Mapping of names to source columns
                  +531        Returns:
                  +532            dict: Mapping of column name to source name
                  +533        """
                  +534        if not source_columns:
                  +535            return {}
                  +536
                  +537        source_columns = list(source_columns.items())
                  +538
                  +539        first_table, first_columns = source_columns[0]
                  +540        unambiguous_columns = {col: first_table for col in self._find_unique_columns(first_columns)}
                  +541        all_columns = set(unambiguous_columns)
                  +542
                  +543        for table, columns in source_columns[1:]:
                  +544            unique = self._find_unique_columns(columns)
                  +545            ambiguous = set(all_columns).intersection(unique)
                  +546            all_columns.update(columns)
                  +547            for column in ambiguous:
                  +548                unambiguous_columns.pop(column, None)
                  +549            for column in unique.difference(ambiguous):
                  +550                unambiguous_columns[column] = table
                  +551
                  +552        return unambiguous_columns
                  +553
                  +554    @staticmethod
                  +555    def _find_unique_columns(columns):
                  +556        """
                  +557        Find the unique columns in a list of columns.
                  +558
                  +559        Example:
                  +560            >>> sorted(Resolver._find_unique_columns(["a", "b", "b", "c"]))
                  +561            ['a', 'c']
                  +562
                  +563        This is necessary because duplicate column names are ambiguous.
                  +564        """
                  +565        counts = {}
                  +566        for column in columns:
                  +567            counts[column] = counts.get(column, 0) + 1
                  +568        return {column for column, count in counts.items() if count == 1}
                   
                  @@ -928,13 +977,13 @@
                  -
                  427    def __init__(self, scope, schema, infer_schema: bool = True):
                  -428        self.scope = scope
                  -429        self.schema = schema
                  -430        self._source_columns = None
                  -431        self._unambiguous_columns: t.Optional[t.Dict[str, str]] = None
                  -432        self._all_columns = None
                  -433        self._infer_schema = infer_schema
                  +            
                  443    def __init__(self, scope, schema, infer_schema: bool = True):
                  +444        self.scope = scope
                  +445        self.schema = schema
                  +446        self._source_columns = None
                  +447        self._unambiguous_columns: t.Optional[t.Dict[str, str]] = None
                  +448        self._all_columns = None
                  +449        self._infer_schema = infer_schema
                   
                  @@ -952,47 +1001,45 @@
                  -
                  435    def get_table(self, column_name: str) -> t.Optional[exp.Identifier]:
                  -436        """
                  -437        Get the table for a column name.
                  -438
                  -439        Args:
                  -440            column_name: The column name to find the table for.
                  -441        Returns:
                  -442            The table name if it can be found/inferred.
                  -443        """
                  -444        if self._unambiguous_columns is None:
                  -445            self._unambiguous_columns = self._get_unambiguous_columns(
                  -446                self._get_all_source_columns()
                  -447            )
                  -448
                  -449        table_name = self._unambiguous_columns.get(column_name)
                  -450
                  -451        if not table_name and self._infer_schema:
                  -452            sources_without_schema = tuple(
                  -453                source
                  -454                for source, columns in self._get_all_source_columns().items()
                  -455                if not columns or "*" in columns
                  -456            )
                  -457            if len(sources_without_schema) == 1:
                  -458                table_name = sources_without_schema[0]
                  -459
                  -460        if table_name not in self.scope.selected_sources:
                  -461            return exp.to_identifier(table_name)
                  -462
                  -463        node, _ = self.scope.selected_sources.get(table_name)
                  +            
                  451    def get_table(self, column_name: str) -> t.Optional[exp.Identifier]:
                  +452        """
                  +453        Get the table for a column name.
                  +454
                  +455        Args:
                  +456            column_name: The column name to find the table for.
                  +457        Returns:
                  +458            The table name if it can be found/inferred.
                  +459        """
                  +460        if self._unambiguous_columns is None:
                  +461            self._unambiguous_columns = self._get_unambiguous_columns(
                  +462                self._get_all_source_columns()
                  +463            )
                   464
                  -465        if isinstance(node, exp.Subqueryable):
                  -466            while node and node.alias != table_name:
                  -467                node = node.parent
                  -468
                  -469        node_alias = node.args.get("alias")
                  -470        if node_alias:
                  -471            return exp.to_identifier(node_alias.this)
                  -472
                  -473        return exp.to_identifier(
                  -474            table_name, quoted=node.this.quoted if isinstance(node, exp.Table) else None
                  -475        )
                  +465        table_name = self._unambiguous_columns.get(column_name)
                  +466
                  +467        if not table_name and self._infer_schema:
                  +468            sources_without_schema = tuple(
                  +469                source
                  +470                for source, columns in self._get_all_source_columns().items()
                  +471                if not columns or "*" in columns
                  +472            )
                  +473            if len(sources_without_schema) == 1:
                  +474                table_name = sources_without_schema[0]
                  +475
                  +476        if table_name not in self.scope.selected_sources:
                  +477            return exp.to_identifier(table_name)
                  +478
                  +479        node, _ = self.scope.selected_sources.get(table_name)
                  +480
                  +481        if isinstance(node, exp.Subqueryable):
                  +482            while node and node.alias != table_name:
                  +483                node = node.parent
                  +484
                  +485        node_alias = node.args.get("alias")
                  +486        if node_alias:
                  +487            return exp.to_identifier(node_alias.this)
                  +488
                  +489        return exp.to_identifier(table_name)
                   
                  @@ -1037,22 +1084,22 @@
                  -
                  486    def get_source_columns(self, name, only_visible=False):
                  -487        """Resolve the source columns for a given source `name`"""
                  -488        if name not in self.scope.sources:
                  -489            raise OptimizeError(f"Unknown table: {name}")
                  -490
                  -491        source = self.scope.sources[name]
                  -492
                  -493        # If referencing a table, return the columns from the schema
                  -494        if isinstance(source, exp.Table):
                  -495            return self.schema.column_names(source, only_visible)
                  -496
                  -497        if isinstance(source, Scope) and isinstance(source.expression, exp.Values):
                  -498            return source.expression.alias_column_names
                  -499
                  -500        # Otherwise, if referencing another scope, return that scope's named selects
                  -501        return source.expression.named_selects
                  +            
                  500    def get_source_columns(self, name, only_visible=False):
                  +501        """Resolve the source columns for a given source `name`"""
                  +502        if name not in self.scope.sources:
                  +503            raise OptimizeError(f"Unknown table: {name}")
                  +504
                  +505        source = self.scope.sources[name]
                  +506
                  +507        # If referencing a table, return the columns from the schema
                  +508        if isinstance(source, exp.Table):
                  +509            return self.schema.column_names(source, only_visible)
                  +510
                  +511        if isinstance(source, Scope) and isinstance(source.expression, exp.Values):
                  +512            return source.expression.alias_column_names
                  +513
                  +514        # Otherwise, if referencing another scope, return that scope's named selects
                  +515        return source.expression.named_selects
                   
                  diff --git a/docs/sqlglot/optimizer/qualify_tables.html b/docs/sqlglot/optimizer/qualify_tables.html index 4a45ddb..e3e53ea 100644 --- a/docs/sqlglot/optimizer/qualify_tables.html +++ b/docs/sqlglot/optimizer/qualify_tables.html @@ -56,101 +56,109 @@ -
                   1import itertools
                  - 2
                  - 3from sqlglot import alias, exp
                  - 4from sqlglot.helper import csv_reader
                  - 5from sqlglot.optimizer.scope import Scope, traverse_scope
                  - 6
                  - 7
                  - 8def qualify_tables(expression, db=None, catalog=None, schema=None):
                  - 9    """
                  -10    Rewrite sqlglot AST to have fully qualified tables. Additionally, this
                  -11    replaces "join constructs" (*) by equivalent SELECT * subqueries.
                  -12
                  -13    Examples:
                  -14        >>> import sqlglot
                  -15        >>> expression = sqlglot.parse_one("SELECT 1 FROM tbl")
                  -16        >>> qualify_tables(expression, db="db").sql()
                  -17        'SELECT 1 FROM db.tbl AS tbl'
                  -18        >>>
                  -19        >>> expression = sqlglot.parse_one("SELECT * FROM (tbl1 JOIN tbl2 ON id1 = id2)")
                  -20        >>> qualify_tables(expression).sql()
                  -21        'SELECT * FROM (SELECT * FROM tbl1 AS tbl1 JOIN tbl2 AS tbl2 ON id1 = id2) AS _q_0'
                  -22
                  -23    Args:
                  -24        expression (sqlglot.Expression): expression to qualify
                  -25        db (str): Database name
                  -26        catalog (str): Catalog name
                  -27        schema: A schema to populate
                  -28
                  -29    Returns:
                  -30        sqlglot.Expression: qualified expression
                  -31
                  -32    (*) See section 7.2.1.2 in https://www.postgresql.org/docs/current/queries-table-expressions.html
                  -33    """
                  -34    sequence = itertools.count()
                  -35
                  -36    next_name = lambda: f"_q_{next(sequence)}"
                  -37
                  -38    for scope in traverse_scope(expression):
                  -39        for derived_table in itertools.chain(scope.ctes, scope.derived_tables):
                  -40            # Expand join construct
                  -41            if isinstance(derived_table, exp.Subquery):
                  -42                unnested = derived_table.unnest()
                  -43                if isinstance(unnested, exp.Table):
                  -44                    derived_table.this.replace(exp.select("*").from_(unnested.copy(), copy=False))
                  -45
                  -46            if not derived_table.args.get("alias"):
                  -47                alias_ = next_name()
                  -48                derived_table.set("alias", exp.TableAlias(this=exp.to_identifier(alias_)))
                  -49                scope.rename_source(None, alias_)
                  -50
                  -51            pivots = derived_table.args.get("pivots")
                  -52            if pivots and not pivots[0].alias:
                  -53                pivots[0].set("alias", exp.TableAlias(this=exp.to_identifier(next_name())))
                  -54
                  -55        for name, source in scope.sources.items():
                  -56            if isinstance(source, exp.Table):
                  -57                if isinstance(source.this, exp.Identifier):
                  -58                    if not source.args.get("db"):
                  -59                        source.set("db", exp.to_identifier(db))
                  -60                    if not source.args.get("catalog"):
                  -61                        source.set("catalog", exp.to_identifier(catalog))
                  -62
                  -63                if not source.alias:
                  -64                    source = source.replace(
                  -65                        alias(
                  -66                            source,
                  -67                            name or source.name or next_name(),
                  -68                            copy=True,
                  -69                            table=True,
                  -70                        )
                  -71                    )
                  -72
                  -73                pivots = source.args.get("pivots")
                  -74                if pivots and not pivots[0].alias:
                  -75                    pivots[0].set("alias", exp.TableAlias(this=exp.to_identifier(next_name())))
                  -76
                  -77                if schema and isinstance(source.this, exp.ReadCSV):
                  -78                    with csv_reader(source.this) as reader:
                  -79                        header = next(reader)
                  -80                        columns = next(reader)
                  -81                        schema.add_table(
                  -82                            source, {k: type(v).__name__ for k, v in zip(header, columns)}
                  -83                        )
                  -84            elif isinstance(source, Scope) and source.is_udtf:
                  -85                udtf = source.expression
                  -86                table_alias = udtf.args.get("alias") or exp.TableAlias(this=next_name())
                  -87                udtf.set("alias", table_alias)
                  -88
                  -89                if not table_alias.name:
                  -90                    table_alias.set("this", next_name())
                  -91                if isinstance(udtf, exp.Values) and not table_alias.columns:
                  -92                    for i, e in enumerate(udtf.expressions[0].expressions):
                  -93                        table_alias.append("columns", exp.to_identifier(f"_col_{i}"))
                  -94
                  -95    return expression
                  +                        
                    1import itertools
                  +  2import typing as t
                  +  3
                  +  4from sqlglot import alias, exp
                  +  5from sqlglot._typing import E
                  +  6from sqlglot.helper import csv_reader, name_sequence
                  +  7from sqlglot.optimizer.scope import Scope, traverse_scope
                  +  8from sqlglot.schema import Schema
                  +  9
                  + 10
                  + 11def qualify_tables(
                  + 12    expression: E,
                  + 13    db: t.Optional[str] = None,
                  + 14    catalog: t.Optional[str] = None,
                  + 15    schema: t.Optional[Schema] = None,
                  + 16) -> E:
                  + 17    """
                  + 18    Rewrite sqlglot AST to have fully qualified tables. Additionally, this
                  + 19    replaces "join constructs" (*) by equivalent SELECT * subqueries.
                  + 20
                  + 21    Examples:
                  + 22        >>> import sqlglot
                  + 23        >>> expression = sqlglot.parse_one("SELECT 1 FROM tbl")
                  + 24        >>> qualify_tables(expression, db="db").sql()
                  + 25        'SELECT 1 FROM db.tbl AS tbl'
                  + 26        >>>
                  + 27        >>> expression = sqlglot.parse_one("SELECT * FROM (tbl1 JOIN tbl2 ON id1 = id2)")
                  + 28        >>> qualify_tables(expression).sql()
                  + 29        'SELECT * FROM (SELECT * FROM tbl1 AS tbl1 JOIN tbl2 AS tbl2 ON id1 = id2) AS _q_0'
                  + 30
                  + 31    Args:
                  + 32        expression: Expression to qualify
                  + 33        db: Database name
                  + 34        catalog: Catalog name
                  + 35        schema: A schema to populate
                  + 36
                  + 37    Returns:
                  + 38        The qualified expression.
                  + 39
                  + 40    (*) See section 7.2.1.2 in https://www.postgresql.org/docs/current/queries-table-expressions.html
                  + 41    """
                  + 42    next_alias_name = name_sequence("_q_")
                  + 43
                  + 44    for scope in traverse_scope(expression):
                  + 45        for derived_table in itertools.chain(scope.ctes, scope.derived_tables):
                  + 46            # Expand join construct
                  + 47            if isinstance(derived_table, exp.Subquery):
                  + 48                unnested = derived_table.unnest()
                  + 49                if isinstance(unnested, exp.Table):
                  + 50                    derived_table.this.replace(exp.select("*").from_(unnested.copy(), copy=False))
                  + 51
                  + 52            if not derived_table.args.get("alias"):
                  + 53                alias_ = next_alias_name()
                  + 54                derived_table.set("alias", exp.TableAlias(this=exp.to_identifier(alias_)))
                  + 55                scope.rename_source(None, alias_)
                  + 56
                  + 57            pivots = derived_table.args.get("pivots")
                  + 58            if pivots and not pivots[0].alias:
                  + 59                pivots[0].set("alias", exp.TableAlias(this=exp.to_identifier(next_alias_name())))
                  + 60
                  + 61        for name, source in scope.sources.items():
                  + 62            if isinstance(source, exp.Table):
                  + 63                if isinstance(source.this, exp.Identifier):
                  + 64                    if not source.args.get("db"):
                  + 65                        source.set("db", exp.to_identifier(db))
                  + 66                    if not source.args.get("catalog"):
                  + 67                        source.set("catalog", exp.to_identifier(catalog))
                  + 68
                  + 69                if not source.alias:
                  + 70                    source = source.replace(
                  + 71                        alias(
                  + 72                            source,
                  + 73                            name or source.name or next_alias_name(),
                  + 74                            copy=True,
                  + 75                            table=True,
                  + 76                        )
                  + 77                    )
                  + 78
                  + 79                pivots = source.args.get("pivots")
                  + 80                if pivots and not pivots[0].alias:
                  + 81                    pivots[0].set(
                  + 82                        "alias", exp.TableAlias(this=exp.to_identifier(next_alias_name()))
                  + 83                    )
                  + 84
                  + 85                if schema and isinstance(source.this, exp.ReadCSV):
                  + 86                    with csv_reader(source.this) as reader:
                  + 87                        header = next(reader)
                  + 88                        columns = next(reader)
                  + 89                        schema.add_table(
                  + 90                            source, {k: type(v).__name__ for k, v in zip(header, columns)}
                  + 91                        )
                  + 92            elif isinstance(source, Scope) and source.is_udtf:
                  + 93                udtf = source.expression
                  + 94                table_alias = udtf.args.get("alias") or exp.TableAlias(this=next_alias_name())
                  + 95                udtf.set("alias", table_alias)
                  + 96
                  + 97                if not table_alias.name:
                  + 98                    table_alias.set("this", next_alias_name())
                  + 99                if isinstance(udtf, exp.Values) and not table_alias.columns:
                  +100                    for i, e in enumerate(udtf.expressions[0].expressions):
                  +101                        table_alias.append("columns", exp.to_identifier(f"_col_{i}"))
                  +102
                  +103    return expression
                   
                  @@ -160,100 +168,105 @@
                  def - qualify_tables(expression, db=None, catalog=None, schema=None): + qualify_tables( expression: ~E, db: Optional[str] = None, catalog: Optional[str] = None, schema: Optional[sqlglot.schema.Schema] = None) -> ~E:
                  -
                   9def qualify_tables(expression, db=None, catalog=None, schema=None):
                  -10    """
                  -11    Rewrite sqlglot AST to have fully qualified tables. Additionally, this
                  -12    replaces "join constructs" (*) by equivalent SELECT * subqueries.
                  -13
                  -14    Examples:
                  -15        >>> import sqlglot
                  -16        >>> expression = sqlglot.parse_one("SELECT 1 FROM tbl")
                  -17        >>> qualify_tables(expression, db="db").sql()
                  -18        'SELECT 1 FROM db.tbl AS tbl'
                  -19        >>>
                  -20        >>> expression = sqlglot.parse_one("SELECT * FROM (tbl1 JOIN tbl2 ON id1 = id2)")
                  -21        >>> qualify_tables(expression).sql()
                  -22        'SELECT * FROM (SELECT * FROM tbl1 AS tbl1 JOIN tbl2 AS tbl2 ON id1 = id2) AS _q_0'
                  -23
                  -24    Args:
                  -25        expression (sqlglot.Expression): expression to qualify
                  -26        db (str): Database name
                  -27        catalog (str): Catalog name
                  -28        schema: A schema to populate
                  -29
                  -30    Returns:
                  -31        sqlglot.Expression: qualified expression
                  -32
                  -33    (*) See section 7.2.1.2 in https://www.postgresql.org/docs/current/queries-table-expressions.html
                  -34    """
                  -35    sequence = itertools.count()
                  -36
                  -37    next_name = lambda: f"_q_{next(sequence)}"
                  -38
                  -39    for scope in traverse_scope(expression):
                  -40        for derived_table in itertools.chain(scope.ctes, scope.derived_tables):
                  -41            # Expand join construct
                  -42            if isinstance(derived_table, exp.Subquery):
                  -43                unnested = derived_table.unnest()
                  -44                if isinstance(unnested, exp.Table):
                  -45                    derived_table.this.replace(exp.select("*").from_(unnested.copy(), copy=False))
                  -46
                  -47            if not derived_table.args.get("alias"):
                  -48                alias_ = next_name()
                  -49                derived_table.set("alias", exp.TableAlias(this=exp.to_identifier(alias_)))
                  -50                scope.rename_source(None, alias_)
                  -51
                  -52            pivots = derived_table.args.get("pivots")
                  -53            if pivots and not pivots[0].alias:
                  -54                pivots[0].set("alias", exp.TableAlias(this=exp.to_identifier(next_name())))
                  -55
                  -56        for name, source in scope.sources.items():
                  -57            if isinstance(source, exp.Table):
                  -58                if isinstance(source.this, exp.Identifier):
                  -59                    if not source.args.get("db"):
                  -60                        source.set("db", exp.to_identifier(db))
                  -61                    if not source.args.get("catalog"):
                  -62                        source.set("catalog", exp.to_identifier(catalog))
                  -63
                  -64                if not source.alias:
                  -65                    source = source.replace(
                  -66                        alias(
                  -67                            source,
                  -68                            name or source.name or next_name(),
                  -69                            copy=True,
                  -70                            table=True,
                  -71                        )
                  -72                    )
                  -73
                  -74                pivots = source.args.get("pivots")
                  -75                if pivots and not pivots[0].alias:
                  -76                    pivots[0].set("alias", exp.TableAlias(this=exp.to_identifier(next_name())))
                  -77
                  -78                if schema and isinstance(source.this, exp.ReadCSV):
                  -79                    with csv_reader(source.this) as reader:
                  -80                        header = next(reader)
                  -81                        columns = next(reader)
                  -82                        schema.add_table(
                  -83                            source, {k: type(v).__name__ for k, v in zip(header, columns)}
                  -84                        )
                  -85            elif isinstance(source, Scope) and source.is_udtf:
                  -86                udtf = source.expression
                  -87                table_alias = udtf.args.get("alias") or exp.TableAlias(this=next_name())
                  -88                udtf.set("alias", table_alias)
                  -89
                  -90                if not table_alias.name:
                  -91                    table_alias.set("this", next_name())
                  -92                if isinstance(udtf, exp.Values) and not table_alias.columns:
                  -93                    for i, e in enumerate(udtf.expressions[0].expressions):
                  -94                        table_alias.append("columns", exp.to_identifier(f"_col_{i}"))
                  -95
                  -96    return expression
                  +            
                   12def qualify_tables(
                  + 13    expression: E,
                  + 14    db: t.Optional[str] = None,
                  + 15    catalog: t.Optional[str] = None,
                  + 16    schema: t.Optional[Schema] = None,
                  + 17) -> E:
                  + 18    """
                  + 19    Rewrite sqlglot AST to have fully qualified tables. Additionally, this
                  + 20    replaces "join constructs" (*) by equivalent SELECT * subqueries.
                  + 21
                  + 22    Examples:
                  + 23        >>> import sqlglot
                  + 24        >>> expression = sqlglot.parse_one("SELECT 1 FROM tbl")
                  + 25        >>> qualify_tables(expression, db="db").sql()
                  + 26        'SELECT 1 FROM db.tbl AS tbl'
                  + 27        >>>
                  + 28        >>> expression = sqlglot.parse_one("SELECT * FROM (tbl1 JOIN tbl2 ON id1 = id2)")
                  + 29        >>> qualify_tables(expression).sql()
                  + 30        'SELECT * FROM (SELECT * FROM tbl1 AS tbl1 JOIN tbl2 AS tbl2 ON id1 = id2) AS _q_0'
                  + 31
                  + 32    Args:
                  + 33        expression: Expression to qualify
                  + 34        db: Database name
                  + 35        catalog: Catalog name
                  + 36        schema: A schema to populate
                  + 37
                  + 38    Returns:
                  + 39        The qualified expression.
                  + 40
                  + 41    (*) See section 7.2.1.2 in https://www.postgresql.org/docs/current/queries-table-expressions.html
                  + 42    """
                  + 43    next_alias_name = name_sequence("_q_")
                  + 44
                  + 45    for scope in traverse_scope(expression):
                  + 46        for derived_table in itertools.chain(scope.ctes, scope.derived_tables):
                  + 47            # Expand join construct
                  + 48            if isinstance(derived_table, exp.Subquery):
                  + 49                unnested = derived_table.unnest()
                  + 50                if isinstance(unnested, exp.Table):
                  + 51                    derived_table.this.replace(exp.select("*").from_(unnested.copy(), copy=False))
                  + 52
                  + 53            if not derived_table.args.get("alias"):
                  + 54                alias_ = next_alias_name()
                  + 55                derived_table.set("alias", exp.TableAlias(this=exp.to_identifier(alias_)))
                  + 56                scope.rename_source(None, alias_)
                  + 57
                  + 58            pivots = derived_table.args.get("pivots")
                  + 59            if pivots and not pivots[0].alias:
                  + 60                pivots[0].set("alias", exp.TableAlias(this=exp.to_identifier(next_alias_name())))
                  + 61
                  + 62        for name, source in scope.sources.items():
                  + 63            if isinstance(source, exp.Table):
                  + 64                if isinstance(source.this, exp.Identifier):
                  + 65                    if not source.args.get("db"):
                  + 66                        source.set("db", exp.to_identifier(db))
                  + 67                    if not source.args.get("catalog"):
                  + 68                        source.set("catalog", exp.to_identifier(catalog))
                  + 69
                  + 70                if not source.alias:
                  + 71                    source = source.replace(
                  + 72                        alias(
                  + 73                            source,
                  + 74                            name or source.name or next_alias_name(),
                  + 75                            copy=True,
                  + 76                            table=True,
                  + 77                        )
                  + 78                    )
                  + 79
                  + 80                pivots = source.args.get("pivots")
                  + 81                if pivots and not pivots[0].alias:
                  + 82                    pivots[0].set(
                  + 83                        "alias", exp.TableAlias(this=exp.to_identifier(next_alias_name()))
                  + 84                    )
                  + 85
                  + 86                if schema and isinstance(source.this, exp.ReadCSV):
                  + 87                    with csv_reader(source.this) as reader:
                  + 88                        header = next(reader)
                  + 89                        columns = next(reader)
                  + 90                        schema.add_table(
                  + 91                            source, {k: type(v).__name__ for k, v in zip(header, columns)}
                  + 92                        )
                  + 93            elif isinstance(source, Scope) and source.is_udtf:
                  + 94                udtf = source.expression
                  + 95                table_alias = udtf.args.get("alias") or exp.TableAlias(this=next_alias_name())
                  + 96                udtf.set("alias", table_alias)
                  + 97
                  + 98                if not table_alias.name:
                  + 99                    table_alias.set("this", next_alias_name())
                  +100                if isinstance(udtf, exp.Values) and not table_alias.columns:
                  +101                    for i, e in enumerate(udtf.expressions[0].expressions):
                  +102                        table_alias.append("columns", exp.to_identifier(f"_col_{i}"))
                  +103
                  +104    return expression
                   
                  @@ -279,16 +292,16 @@ replaces "join constructs" (*) by equivalent SELECT * subqueries.

                  Arguments:
                    -
                  • expression (sqlglot.Expression): expression to qualify
                  • -
                  • db (str): Database name
                  • -
                  • catalog (str): Catalog name
                  • +
                  • expression: Expression to qualify
                  • +
                  • db: Database name
                  • +
                  • catalog: Catalog name
                  • schema: A schema to populate
                  Returns:
                  -

                  sqlglot.Expression: qualified expression

                  +

                  The qualified expression.

                  (*) See section 7.2.1.2 in https://www.postgresql.org/docs/current/queries-table-expressions.html

                  diff --git a/docs/sqlglot/optimizer/unnest_subqueries.html b/docs/sqlglot/optimizer/unnest_subqueries.html index ed5ae03..2f4ae9b 100644 --- a/docs/sqlglot/optimizer/unnest_subqueries.html +++ b/docs/sqlglot/optimizer/unnest_subqueries.html @@ -62,275 +62,270 @@ -
                    1import itertools
                  -  2
                  -  3from sqlglot import exp
                  -  4from sqlglot.optimizer.scope import ScopeType, traverse_scope
                  +                        
                    1from sqlglot import exp
                  +  2from sqlglot.helper import name_sequence
                  +  3from sqlglot.optimizer.scope import ScopeType, traverse_scope
                  +  4
                     5
                  -  6
                  -  7def unnest_subqueries(expression):
                  -  8    """
                  -  9    Rewrite sqlglot AST to convert some predicates with subqueries into joins.
                  - 10
                  - 11    Convert scalar subqueries into cross joins.
                  - 12    Convert correlated or vectorized subqueries into a group by so it is not a many to many left join.
                  - 13
                  - 14    Example:
                  - 15        >>> import sqlglot
                  - 16        >>> expression = sqlglot.parse_one("SELECT * FROM x AS x WHERE (SELECT y.a AS a FROM y AS y WHERE x.a = y.a) = 1 ")
                  - 17        >>> unnest_subqueries(expression).sql()
                  - 18        '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'
                  - 19
                  - 20    Args:
                  - 21        expression (sqlglot.Expression): expression to unnest
                  - 22    Returns:
                  - 23        sqlglot.Expression: unnested expression
                  - 24    """
                  - 25    sequence = itertools.count()
                  - 26
                  - 27    for scope in traverse_scope(expression):
                  - 28        select = scope.expression
                  - 29        parent = select.parent_select
                  - 30        if not parent:
                  - 31            continue
                  - 32        if scope.external_columns:
                  - 33            decorrelate(select, parent, scope.external_columns, sequence)
                  - 34        elif scope.scope_type == ScopeType.SUBQUERY:
                  - 35            unnest(select, parent, sequence)
                  - 36
                  - 37    return expression
                  +  6def unnest_subqueries(expression):
                  +  7    """
                  +  8    Rewrite sqlglot AST to convert some predicates with subqueries into joins.
                  +  9
                  + 10    Convert scalar subqueries into cross joins.
                  + 11    Convert correlated or vectorized subqueries into a group by so it is not a many to many left join.
                  + 12
                  + 13    Example:
                  + 14        >>> import sqlglot
                  + 15        >>> expression = sqlglot.parse_one("SELECT * FROM x AS x WHERE (SELECT y.a AS a FROM y AS y WHERE x.a = y.a) = 1 ")
                  + 16        >>> unnest_subqueries(expression).sql()
                  + 17        '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'
                  + 18
                  + 19    Args:
                  + 20        expression (sqlglot.Expression): expression to unnest
                  + 21    Returns:
                  + 22        sqlglot.Expression: unnested expression
                  + 23    """
                  + 24    next_alias_name = name_sequence("_u_")
                  + 25
                  + 26    for scope in traverse_scope(expression):
                  + 27        select = scope.expression
                  + 28        parent = select.parent_select
                  + 29        if not parent:
                  + 30            continue
                  + 31        if scope.external_columns:
                  + 32            decorrelate(select, parent, scope.external_columns, next_alias_name)
                  + 33        elif scope.scope_type == ScopeType.SUBQUERY:
                  + 34            unnest(select, parent, next_alias_name)
                  + 35
                  + 36    return expression
                  + 37
                    38
                  - 39
                  - 40def unnest(select, parent_select, sequence):
                  - 41    if len(select.selects) > 1:
                  - 42        return
                  - 43
                  - 44    predicate = select.find_ancestor(exp.Condition)
                  - 45    alias = _alias(sequence)
                  - 46
                  - 47    if not predicate or parent_select is not predicate.parent_select:
                  - 48        return
                  - 49
                  - 50    # this subquery returns a scalar and can just be converted to a cross join
                  - 51    if not isinstance(predicate, (exp.In, exp.Any)):
                  - 52        having = predicate.find_ancestor(exp.Having)
                  - 53        column = exp.column(select.selects[0].alias_or_name, alias)
                  - 54        if having and having.parent_select is parent_select:
                  - 55            column = exp.Max(this=column)
                  - 56        _replace(select.parent, column)
                  - 57
                  - 58        parent_select.join(
                  - 59            select,
                  - 60            join_type="CROSS",
                  - 61            join_alias=alias,
                  - 62            copy=False,
                  - 63        )
                  - 64        return
                  - 65
                  - 66    if select.find(exp.Limit, exp.Offset):
                  - 67        return
                  - 68
                  - 69    if isinstance(predicate, exp.Any):
                  - 70        predicate = predicate.find_ancestor(exp.EQ)
                  - 71
                  - 72        if not predicate or parent_select is not predicate.parent_select:
                  - 73            return
                  - 74
                  - 75    column = _other_operand(predicate)
                  - 76    value = select.selects[0]
                  - 77
                  - 78    on = exp.condition(f'{column} = "{alias}"."{value.alias}"')
                  - 79    _replace(predicate, f"NOT {on.right} IS NULL")
                  - 80
                  - 81    parent_select.join(
                  - 82        select.group_by(value.this, copy=False),
                  - 83        on=on,
                  - 84        join_type="LEFT",
                  - 85        join_alias=alias,
                  - 86        copy=False,
                  - 87    )
                  + 39def unnest(select, parent_select, next_alias_name):
                  + 40    if len(select.selects) > 1:
                  + 41        return
                  + 42
                  + 43    predicate = select.find_ancestor(exp.Condition)
                  + 44    alias = next_alias_name()
                  + 45
                  + 46    if not predicate or parent_select is not predicate.parent_select:
                  + 47        return
                  + 48
                  + 49    # this subquery returns a scalar and can just be converted to a cross join
                  + 50    if not isinstance(predicate, (exp.In, exp.Any)):
                  + 51        having = predicate.find_ancestor(exp.Having)
                  + 52        column = exp.column(select.selects[0].alias_or_name, alias)
                  + 53        if having and having.parent_select is parent_select:
                  + 54            column = exp.Max(this=column)
                  + 55        _replace(select.parent, column)
                  + 56
                  + 57        parent_select.join(
                  + 58            select,
                  + 59            join_type="CROSS",
                  + 60            join_alias=alias,
                  + 61            copy=False,
                  + 62        )
                  + 63        return
                  + 64
                  + 65    if select.find(exp.Limit, exp.Offset):
                  + 66        return
                  + 67
                  + 68    if isinstance(predicate, exp.Any):
                  + 69        predicate = predicate.find_ancestor(exp.EQ)
                  + 70
                  + 71        if not predicate or parent_select is not predicate.parent_select:
                  + 72            return
                  + 73
                  + 74    column = _other_operand(predicate)
                  + 75    value = select.selects[0]
                  + 76
                  + 77    on = exp.condition(f'{column} = "{alias}"."{value.alias}"')
                  + 78    _replace(predicate, f"NOT {on.right} IS NULL")
                  + 79
                  + 80    parent_select.join(
                  + 81        select.group_by(value.this, copy=False),
                  + 82        on=on,
                  + 83        join_type="LEFT",
                  + 84        join_alias=alias,
                  + 85        copy=False,
                  + 86    )
                  + 87
                    88
                  - 89
                  - 90def decorrelate(select, parent_select, external_columns, sequence):
                  - 91    where = select.args.get("where")
                  - 92
                  - 93    if not where or where.find(exp.Or) or select.find(exp.Limit, exp.Offset):
                  - 94        return
                  - 95
                  - 96    table_alias = _alias(sequence)
                  - 97    keys = []
                  - 98
                  - 99    # for all external columns in the where statement, find the relevant predicate
                  -100    # keys to convert it into a join
                  -101    for column in external_columns:
                  -102        if column.find_ancestor(exp.Where) is not where:
                  -103            return
                  -104
                  -105        predicate = column.find_ancestor(exp.Predicate)
                  -106
                  -107        if not predicate or predicate.find_ancestor(exp.Where) is not where:
                  -108            return
                  -109
                  -110        if isinstance(predicate, exp.Binary):
                  -111            key = (
                  -112                predicate.right
                  -113                if any(node is column for node, *_ in predicate.left.walk())
                  -114                else predicate.left
                  -115            )
                  -116        else:
                  -117            return
                  -118
                  -119        keys.append((key, column, predicate))
                  -120
                  -121    if not any(isinstance(predicate, exp.EQ) for *_, predicate in keys):
                  -122        return
                  -123
                  -124    is_subquery_projection = any(
                  -125        node is select.parent for node in parent_select.selects if isinstance(node, exp.Subquery)
                  -126    )
                  -127
                  -128    value = select.selects[0]
                  -129    key_aliases = {}
                  -130    group_by = []
                  -131
                  -132    for key, _, predicate in keys:
                  -133        # if we filter on the value of the subquery, it needs to be unique
                  -134        if key == value.this:
                  -135            key_aliases[key] = value.alias
                  -136            group_by.append(key)
                  -137        else:
                  -138            if key not in key_aliases:
                  -139                key_aliases[key] = _alias(sequence)
                  -140            # all predicates that are equalities must also be in the unique
                  -141            # so that we don't do a many to many join
                  -142            if isinstance(predicate, exp.EQ) and key not in group_by:
                  -143                group_by.append(key)
                  -144
                  -145    parent_predicate = select.find_ancestor(exp.Predicate)
                  -146
                  -147    # if the value of the subquery is not an agg or a key, we need to collect it into an array
                  -148    # so that it can be grouped. For subquery projections, we use a MAX aggregation instead.
                  -149    agg_func = exp.Max if is_subquery_projection else exp.ArrayAgg
                  -150    if not value.find(exp.AggFunc) and value.this not in group_by:
                  -151        select.select(
                  -152            exp.alias_(agg_func(this=value.this), value.alias, quoted=False),
                  -153            append=False,
                  -154            copy=False,
                  -155        )
                  -156
                  -157    # exists queries should not have any selects as it only checks if there are any rows
                  -158    # all selects will be added by the optimizer and only used for join keys
                  -159    if isinstance(parent_predicate, exp.Exists):
                  -160        select.args["expressions"] = []
                  -161
                  -162    for key, alias in key_aliases.items():
                  -163        if key in group_by:
                  -164            # add all keys to the projections of the subquery
                  -165            # so that we can use it as a join key
                  -166            if isinstance(parent_predicate, exp.Exists) or key != value.this:
                  -167                select.select(f"{key} AS {alias}", copy=False)
                  -168        else:
                  -169            select.select(exp.alias_(agg_func(this=key.copy()), alias, quoted=False), copy=False)
                  -170
                  -171    alias = exp.column(value.alias, table_alias)
                  -172    other = _other_operand(parent_predicate)
                  -173
                  -174    if isinstance(parent_predicate, exp.Exists):
                  -175        alias = exp.column(list(key_aliases.values())[0], table_alias)
                  -176        parent_predicate = _replace(parent_predicate, f"NOT {alias} IS NULL")
                  -177    elif isinstance(parent_predicate, exp.All):
                  -178        parent_predicate = _replace(
                  -179            parent_predicate.parent, f"ARRAY_ALL({alias}, _x -> _x = {other})"
                  -180        )
                  -181    elif isinstance(parent_predicate, exp.Any):
                  -182        if value.this in group_by:
                  -183            parent_predicate = _replace(parent_predicate.parent, f"{other} = {alias}")
                  -184        else:
                  -185            parent_predicate = _replace(parent_predicate, f"ARRAY_ANY({alias}, _x -> _x = {other})")
                  -186    elif isinstance(parent_predicate, exp.In):
                  -187        if value.this in group_by:
                  -188            parent_predicate = _replace(parent_predicate, f"{other} = {alias}")
                  -189        else:
                  -190            parent_predicate = _replace(
                  -191                parent_predicate,
                  -192                f"ARRAY_ANY({alias}, _x -> _x = {parent_predicate.this})",
                  -193            )
                  -194    else:
                  -195        if is_subquery_projection:
                  -196            alias = exp.alias_(alias, select.parent.alias)
                  -197
                  -198        # COUNT always returns 0 on empty datasets, so we need take that into consideration here
                  -199        # by transforming all counts into 0 and using that as the coalesced value
                  -200        if value.find(exp.Count):
                  -201
                  -202            def remove_aggs(node):
                  -203                if isinstance(node, exp.Count):
                  -204                    return exp.Literal.number(0)
                  -205                elif isinstance(node, exp.AggFunc):
                  -206                    return exp.null()
                  -207                return node
                  -208
                  -209            alias = exp.Coalesce(
                  -210                this=alias,
                  -211                expressions=[value.this.transform(remove_aggs)],
                  -212            )
                  -213
                  -214        select.parent.replace(alias)
                  -215
                  -216    for key, column, predicate in keys:
                  -217        predicate.replace(exp.true())
                  -218        nested = exp.column(key_aliases[key], table_alias)
                  -219
                  -220        if is_subquery_projection:
                  -221            key.replace(nested)
                  -222            continue
                  -223
                  -224        if key in group_by:
                  -225            key.replace(nested)
                  -226        elif isinstance(predicate, exp.EQ):
                  -227            parent_predicate = _replace(
                  -228                parent_predicate,
                  -229                f"({parent_predicate} AND ARRAY_CONTAINS({nested}, {column}))",
                  -230            )
                  -231        else:
                  -232            key.replace(exp.to_identifier("_x"))
                  -233            parent_predicate = _replace(
                  -234                parent_predicate,
                  -235                f'({parent_predicate} AND ARRAY_ANY({nested}, "_x" -> {predicate}))',
                  -236            )
                  -237
                  -238    parent_select.join(
                  -239        select.group_by(*group_by, copy=False),
                  -240        on=[predicate for *_, predicate in keys if isinstance(predicate, exp.EQ)],
                  -241        join_type="LEFT",
                  -242        join_alias=table_alias,
                  -243        copy=False,
                  -244    )
                  + 89def decorrelate(select, parent_select, external_columns, next_alias_name):
                  + 90    where = select.args.get("where")
                  + 91
                  + 92    if not where or where.find(exp.Or) or select.find(exp.Limit, exp.Offset):
                  + 93        return
                  + 94
                  + 95    table_alias = next_alias_name()
                  + 96    keys = []
                  + 97
                  + 98    # for all external columns in the where statement, find the relevant predicate
                  + 99    # keys to convert it into a join
                  +100    for column in external_columns:
                  +101        if column.find_ancestor(exp.Where) is not where:
                  +102            return
                  +103
                  +104        predicate = column.find_ancestor(exp.Predicate)
                  +105
                  +106        if not predicate or predicate.find_ancestor(exp.Where) is not where:
                  +107            return
                  +108
                  +109        if isinstance(predicate, exp.Binary):
                  +110            key = (
                  +111                predicate.right
                  +112                if any(node is column for node, *_ in predicate.left.walk())
                  +113                else predicate.left
                  +114            )
                  +115        else:
                  +116            return
                  +117
                  +118        keys.append((key, column, predicate))
                  +119
                  +120    if not any(isinstance(predicate, exp.EQ) for *_, predicate in keys):
                  +121        return
                  +122
                  +123    is_subquery_projection = any(
                  +124        node is select.parent for node in parent_select.selects if isinstance(node, exp.Subquery)
                  +125    )
                  +126
                  +127    value = select.selects[0]
                  +128    key_aliases = {}
                  +129    group_by = []
                  +130
                  +131    for key, _, predicate in keys:
                  +132        # if we filter on the value of the subquery, it needs to be unique
                  +133        if key == value.this:
                  +134            key_aliases[key] = value.alias
                  +135            group_by.append(key)
                  +136        else:
                  +137            if key not in key_aliases:
                  +138                key_aliases[key] = next_alias_name()
                  +139            # all predicates that are equalities must also be in the unique
                  +140            # so that we don't do a many to many join
                  +141            if isinstance(predicate, exp.EQ) and key not in group_by:
                  +142                group_by.append(key)
                  +143
                  +144    parent_predicate = select.find_ancestor(exp.Predicate)
                  +145
                  +146    # if the value of the subquery is not an agg or a key, we need to collect it into an array
                  +147    # so that it can be grouped. For subquery projections, we use a MAX aggregation instead.
                  +148    agg_func = exp.Max if is_subquery_projection else exp.ArrayAgg
                  +149    if not value.find(exp.AggFunc) and value.this not in group_by:
                  +150        select.select(
                  +151            exp.alias_(agg_func(this=value.this), value.alias, quoted=False),
                  +152            append=False,
                  +153            copy=False,
                  +154        )
                  +155
                  +156    # exists queries should not have any selects as it only checks if there are any rows
                  +157    # all selects will be added by the optimizer and only used for join keys
                  +158    if isinstance(parent_predicate, exp.Exists):
                  +159        select.args["expressions"] = []
                  +160
                  +161    for key, alias in key_aliases.items():
                  +162        if key in group_by:
                  +163            # add all keys to the projections of the subquery
                  +164            # so that we can use it as a join key
                  +165            if isinstance(parent_predicate, exp.Exists) or key != value.this:
                  +166                select.select(f"{key} AS {alias}", copy=False)
                  +167        else:
                  +168            select.select(exp.alias_(agg_func(this=key.copy()), alias, quoted=False), copy=False)
                  +169
                  +170    alias = exp.column(value.alias, table_alias)
                  +171    other = _other_operand(parent_predicate)
                  +172
                  +173    if isinstance(parent_predicate, exp.Exists):
                  +174        alias = exp.column(list(key_aliases.values())[0], table_alias)
                  +175        parent_predicate = _replace(parent_predicate, f"NOT {alias} IS NULL")
                  +176    elif isinstance(parent_predicate, exp.All):
                  +177        parent_predicate = _replace(
                  +178            parent_predicate.parent, f"ARRAY_ALL({alias}, _x -> _x = {other})"
                  +179        )
                  +180    elif isinstance(parent_predicate, exp.Any):
                  +181        if value.this in group_by:
                  +182            parent_predicate = _replace(parent_predicate.parent, f"{other} = {alias}")
                  +183        else:
                  +184            parent_predicate = _replace(parent_predicate, f"ARRAY_ANY({alias}, _x -> _x = {other})")
                  +185    elif isinstance(parent_predicate, exp.In):
                  +186        if value.this in group_by:
                  +187            parent_predicate = _replace(parent_predicate, f"{other} = {alias}")
                  +188        else:
                  +189            parent_predicate = _replace(
                  +190                parent_predicate,
                  +191                f"ARRAY_ANY({alias}, _x -> _x = {parent_predicate.this})",
                  +192            )
                  +193    else:
                  +194        if is_subquery_projection:
                  +195            alias = exp.alias_(alias, select.parent.alias)
                  +196
                  +197        # COUNT always returns 0 on empty datasets, so we need take that into consideration here
                  +198        # by transforming all counts into 0 and using that as the coalesced value
                  +199        if value.find(exp.Count):
                  +200
                  +201            def remove_aggs(node):
                  +202                if isinstance(node, exp.Count):
                  +203                    return exp.Literal.number(0)
                  +204                elif isinstance(node, exp.AggFunc):
                  +205                    return exp.null()
                  +206                return node
                  +207
                  +208            alias = exp.Coalesce(
                  +209                this=alias,
                  +210                expressions=[value.this.transform(remove_aggs)],
                  +211            )
                  +212
                  +213        select.parent.replace(alias)
                  +214
                  +215    for key, column, predicate in keys:
                  +216        predicate.replace(exp.true())
                  +217        nested = exp.column(key_aliases[key], table_alias)
                  +218
                  +219        if is_subquery_projection:
                  +220            key.replace(nested)
                  +221            continue
                  +222
                  +223        if key in group_by:
                  +224            key.replace(nested)
                  +225        elif isinstance(predicate, exp.EQ):
                  +226            parent_predicate = _replace(
                  +227                parent_predicate,
                  +228                f"({parent_predicate} AND ARRAY_CONTAINS({nested}, {column}))",
                  +229            )
                  +230        else:
                  +231            key.replace(exp.to_identifier("_x"))
                  +232            parent_predicate = _replace(
                  +233                parent_predicate,
                  +234                f'({parent_predicate} AND ARRAY_ANY({nested}, "_x" -> {predicate}))',
                  +235            )
                  +236
                  +237    parent_select.join(
                  +238        select.group_by(*group_by, copy=False),
                  +239        on=[predicate for *_, predicate in keys if isinstance(predicate, exp.EQ)],
                  +240        join_type="LEFT",
                  +241        join_alias=table_alias,
                  +242        copy=False,
                  +243    )
                  +244
                   245
                  -246
                  -247def _alias(sequence):
                  -248    return f"_u_{next(sequence)}"
                  +246def _replace(expression, condition):
                  +247    return expression.replace(exp.condition(condition))
                  +248
                   249
                  -250
                  -251def _replace(expression, condition):
                  -252    return expression.replace(exp.condition(condition))
                  +250def _other_operand(expression):
                  +251    if isinstance(expression, exp.In):
                  +252        return expression.this
                   253
                  -254
                  -255def _other_operand(expression):
                  -256    if isinstance(expression, exp.In):
                  -257        return expression.this
                  -258
                  -259    if isinstance(expression, (exp.Any, exp.All)):
                  -260        return _other_operand(expression.parent)
                  -261
                  -262    if isinstance(expression, exp.Binary):
                  -263        return (
                  -264            expression.right
                  -265            if isinstance(expression.left, (exp.Subquery, exp.Any, exp.Exists, exp.All))
                  -266            else expression.left
                  -267        )
                  -268
                  -269    return None
                  +254    if isinstance(expression, (exp.Any, exp.All)):
                  +255        return _other_operand(expression.parent)
                  +256
                  +257    if isinstance(expression, exp.Binary):
                  +258        return (
                  +259            expression.right
                  +260            if isinstance(expression.left, (exp.Subquery, exp.Any, exp.Exists, exp.All))
                  +261            else expression.left
                  +262        )
                  +263
                  +264    return None
                   
                  @@ -346,37 +341,37 @@
                  -
                   8def unnest_subqueries(expression):
                  - 9    """
                  -10    Rewrite sqlglot AST to convert some predicates with subqueries into joins.
                  -11
                  -12    Convert scalar subqueries into cross joins.
                  -13    Convert correlated or vectorized subqueries into a group by so it is not a many to many left join.
                  -14
                  -15    Example:
                  -16        >>> import sqlglot
                  -17        >>> expression = sqlglot.parse_one("SELECT * FROM x AS x WHERE (SELECT y.a AS a FROM y AS y WHERE x.a = y.a) = 1 ")
                  -18        >>> unnest_subqueries(expression).sql()
                  -19        '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'
                  -20
                  -21    Args:
                  -22        expression (sqlglot.Expression): expression to unnest
                  -23    Returns:
                  -24        sqlglot.Expression: unnested expression
                  -25    """
                  -26    sequence = itertools.count()
                  -27
                  -28    for scope in traverse_scope(expression):
                  -29        select = scope.expression
                  -30        parent = select.parent_select
                  -31        if not parent:
                  -32            continue
                  -33        if scope.external_columns:
                  -34            decorrelate(select, parent, scope.external_columns, sequence)
                  -35        elif scope.scope_type == ScopeType.SUBQUERY:
                  -36            unnest(select, parent, sequence)
                  -37
                  -38    return expression
                  +            
                   7def unnest_subqueries(expression):
                  + 8    """
                  + 9    Rewrite sqlglot AST to convert some predicates with subqueries into joins.
                  +10
                  +11    Convert scalar subqueries into cross joins.
                  +12    Convert correlated or vectorized subqueries into a group by so it is not a many to many left join.
                  +13
                  +14    Example:
                  +15        >>> import sqlglot
                  +16        >>> expression = sqlglot.parse_one("SELECT * FROM x AS x WHERE (SELECT y.a AS a FROM y AS y WHERE x.a = y.a) = 1 ")
                  +17        >>> unnest_subqueries(expression).sql()
                  +18        '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'
                  +19
                  +20    Args:
                  +21        expression (sqlglot.Expression): expression to unnest
                  +22    Returns:
                  +23        sqlglot.Expression: unnested expression
                  +24    """
                  +25    next_alias_name = name_sequence("_u_")
                  +26
                  +27    for scope in traverse_scope(expression):
                  +28        select = scope.expression
                  +29        parent = select.parent_select
                  +30        if not parent:
                  +31            continue
                  +32        if scope.external_columns:
                  +33            decorrelate(select, parent, scope.external_columns, next_alias_name)
                  +34        elif scope.scope_type == ScopeType.SUBQUERY:
                  +35            unnest(select, parent, next_alias_name)
                  +36
                  +37    return expression
                   
                  @@ -417,60 +412,60 @@ Convert correlated or vectorized subqueries into a group by so it is not a many
                  def - unnest(select, parent_select, sequence): + unnest(select, parent_select, next_alias_name):
                  -
                  41def unnest(select, parent_select, sequence):
                  -42    if len(select.selects) > 1:
                  -43        return
                  -44
                  -45    predicate = select.find_ancestor(exp.Condition)
                  -46    alias = _alias(sequence)
                  -47
                  -48    if not predicate or parent_select is not predicate.parent_select:
                  -49        return
                  -50
                  -51    # this subquery returns a scalar and can just be converted to a cross join
                  -52    if not isinstance(predicate, (exp.In, exp.Any)):
                  -53        having = predicate.find_ancestor(exp.Having)
                  -54        column = exp.column(select.selects[0].alias_or_name, alias)
                  -55        if having and having.parent_select is parent_select:
                  -56            column = exp.Max(this=column)
                  -57        _replace(select.parent, column)
                  -58
                  -59        parent_select.join(
                  -60            select,
                  -61            join_type="CROSS",
                  -62            join_alias=alias,
                  -63            copy=False,
                  -64        )
                  -65        return
                  -66
                  -67    if select.find(exp.Limit, exp.Offset):
                  -68        return
                  -69
                  -70    if isinstance(predicate, exp.Any):
                  -71        predicate = predicate.find_ancestor(exp.EQ)
                  -72
                  -73        if not predicate or parent_select is not predicate.parent_select:
                  -74            return
                  -75
                  -76    column = _other_operand(predicate)
                  -77    value = select.selects[0]
                  -78
                  -79    on = exp.condition(f'{column} = "{alias}"."{value.alias}"')
                  -80    _replace(predicate, f"NOT {on.right} IS NULL")
                  -81
                  -82    parent_select.join(
                  -83        select.group_by(value.this, copy=False),
                  -84        on=on,
                  -85        join_type="LEFT",
                  -86        join_alias=alias,
                  -87        copy=False,
                  -88    )
                  +            
                  40def unnest(select, parent_select, next_alias_name):
                  +41    if len(select.selects) > 1:
                  +42        return
                  +43
                  +44    predicate = select.find_ancestor(exp.Condition)
                  +45    alias = next_alias_name()
                  +46
                  +47    if not predicate or parent_select is not predicate.parent_select:
                  +48        return
                  +49
                  +50    # this subquery returns a scalar and can just be converted to a cross join
                  +51    if not isinstance(predicate, (exp.In, exp.Any)):
                  +52        having = predicate.find_ancestor(exp.Having)
                  +53        column = exp.column(select.selects[0].alias_or_name, alias)
                  +54        if having and having.parent_select is parent_select:
                  +55            column = exp.Max(this=column)
                  +56        _replace(select.parent, column)
                  +57
                  +58        parent_select.join(
                  +59            select,
                  +60            join_type="CROSS",
                  +61            join_alias=alias,
                  +62            copy=False,
                  +63        )
                  +64        return
                  +65
                  +66    if select.find(exp.Limit, exp.Offset):
                  +67        return
                  +68
                  +69    if isinstance(predicate, exp.Any):
                  +70        predicate = predicate.find_ancestor(exp.EQ)
                  +71
                  +72        if not predicate or parent_select is not predicate.parent_select:
                  +73            return
                  +74
                  +75    column = _other_operand(predicate)
                  +76    value = select.selects[0]
                  +77
                  +78    on = exp.condition(f'{column} = "{alias}"."{value.alias}"')
                  +79    _replace(predicate, f"NOT {on.right} IS NULL")
                  +80
                  +81    parent_select.join(
                  +82        select.group_by(value.this, copy=False),
                  +83        on=on,
                  +84        join_type="LEFT",
                  +85        join_alias=alias,
                  +86        copy=False,
                  +87    )
                   
                  @@ -482,167 +477,167 @@ Convert correlated or vectorized subqueries into a group by so it is not a many
                  def - decorrelate(select, parent_select, external_columns, sequence): + decorrelate(select, parent_select, external_columns, next_alias_name):
                  -
                   91def decorrelate(select, parent_select, external_columns, sequence):
                  - 92    where = select.args.get("where")
                  - 93
                  - 94    if not where or where.find(exp.Or) or select.find(exp.Limit, exp.Offset):
                  - 95        return
                  - 96
                  - 97    table_alias = _alias(sequence)
                  - 98    keys = []
                  - 99
                  -100    # for all external columns in the where statement, find the relevant predicate
                  -101    # keys to convert it into a join
                  -102    for column in external_columns:
                  -103        if column.find_ancestor(exp.Where) is not where:
                  -104            return
                  -105
                  -106        predicate = column.find_ancestor(exp.Predicate)
                  -107
                  -108        if not predicate or predicate.find_ancestor(exp.Where) is not where:
                  -109            return
                  -110
                  -111        if isinstance(predicate, exp.Binary):
                  -112            key = (
                  -113                predicate.right
                  -114                if any(node is column for node, *_ in predicate.left.walk())
                  -115                else predicate.left
                  -116            )
                  -117        else:
                  -118            return
                  -119
                  -120        keys.append((key, column, predicate))
                  -121
                  -122    if not any(isinstance(predicate, exp.EQ) for *_, predicate in keys):
                  -123        return
                  -124
                  -125    is_subquery_projection = any(
                  -126        node is select.parent for node in parent_select.selects if isinstance(node, exp.Subquery)
                  -127    )
                  -128
                  -129    value = select.selects[0]
                  -130    key_aliases = {}
                  -131    group_by = []
                  -132
                  -133    for key, _, predicate in keys:
                  -134        # if we filter on the value of the subquery, it needs to be unique
                  -135        if key == value.this:
                  -136            key_aliases[key] = value.alias
                  -137            group_by.append(key)
                  -138        else:
                  -139            if key not in key_aliases:
                  -140                key_aliases[key] = _alias(sequence)
                  -141            # all predicates that are equalities must also be in the unique
                  -142            # so that we don't do a many to many join
                  -143            if isinstance(predicate, exp.EQ) and key not in group_by:
                  -144                group_by.append(key)
                  -145
                  -146    parent_predicate = select.find_ancestor(exp.Predicate)
                  -147
                  -148    # if the value of the subquery is not an agg or a key, we need to collect it into an array
                  -149    # so that it can be grouped. For subquery projections, we use a MAX aggregation instead.
                  -150    agg_func = exp.Max if is_subquery_projection else exp.ArrayAgg
                  -151    if not value.find(exp.AggFunc) and value.this not in group_by:
                  -152        select.select(
                  -153            exp.alias_(agg_func(this=value.this), value.alias, quoted=False),
                  -154            append=False,
                  -155            copy=False,
                  -156        )
                  -157
                  -158    # exists queries should not have any selects as it only checks if there are any rows
                  -159    # all selects will be added by the optimizer and only used for join keys
                  -160    if isinstance(parent_predicate, exp.Exists):
                  -161        select.args["expressions"] = []
                  -162
                  -163    for key, alias in key_aliases.items():
                  -164        if key in group_by:
                  -165            # add all keys to the projections of the subquery
                  -166            # so that we can use it as a join key
                  -167            if isinstance(parent_predicate, exp.Exists) or key != value.this:
                  -168                select.select(f"{key} AS {alias}", copy=False)
                  -169        else:
                  -170            select.select(exp.alias_(agg_func(this=key.copy()), alias, quoted=False), copy=False)
                  -171
                  -172    alias = exp.column(value.alias, table_alias)
                  -173    other = _other_operand(parent_predicate)
                  -174
                  -175    if isinstance(parent_predicate, exp.Exists):
                  -176        alias = exp.column(list(key_aliases.values())[0], table_alias)
                  -177        parent_predicate = _replace(parent_predicate, f"NOT {alias} IS NULL")
                  -178    elif isinstance(parent_predicate, exp.All):
                  -179        parent_predicate = _replace(
                  -180            parent_predicate.parent, f"ARRAY_ALL({alias}, _x -> _x = {other})"
                  -181        )
                  -182    elif isinstance(parent_predicate, exp.Any):
                  -183        if value.this in group_by:
                  -184            parent_predicate = _replace(parent_predicate.parent, f"{other} = {alias}")
                  -185        else:
                  -186            parent_predicate = _replace(parent_predicate, f"ARRAY_ANY({alias}, _x -> _x = {other})")
                  -187    elif isinstance(parent_predicate, exp.In):
                  -188        if value.this in group_by:
                  -189            parent_predicate = _replace(parent_predicate, f"{other} = {alias}")
                  -190        else:
                  -191            parent_predicate = _replace(
                  -192                parent_predicate,
                  -193                f"ARRAY_ANY({alias}, _x -> _x = {parent_predicate.this})",
                  -194            )
                  -195    else:
                  -196        if is_subquery_projection:
                  -197            alias = exp.alias_(alias, select.parent.alias)
                  -198
                  -199        # COUNT always returns 0 on empty datasets, so we need take that into consideration here
                  -200        # by transforming all counts into 0 and using that as the coalesced value
                  -201        if value.find(exp.Count):
                  -202
                  -203            def remove_aggs(node):
                  -204                if isinstance(node, exp.Count):
                  -205                    return exp.Literal.number(0)
                  -206                elif isinstance(node, exp.AggFunc):
                  -207                    return exp.null()
                  -208                return node
                  -209
                  -210            alias = exp.Coalesce(
                  -211                this=alias,
                  -212                expressions=[value.this.transform(remove_aggs)],
                  -213            )
                  -214
                  -215        select.parent.replace(alias)
                  -216
                  -217    for key, column, predicate in keys:
                  -218        predicate.replace(exp.true())
                  -219        nested = exp.column(key_aliases[key], table_alias)
                  -220
                  -221        if is_subquery_projection:
                  -222            key.replace(nested)
                  -223            continue
                  -224
                  -225        if key in group_by:
                  -226            key.replace(nested)
                  -227        elif isinstance(predicate, exp.EQ):
                  -228            parent_predicate = _replace(
                  -229                parent_predicate,
                  -230                f"({parent_predicate} AND ARRAY_CONTAINS({nested}, {column}))",
                  -231            )
                  -232        else:
                  -233            key.replace(exp.to_identifier("_x"))
                  -234            parent_predicate = _replace(
                  -235                parent_predicate,
                  -236                f'({parent_predicate} AND ARRAY_ANY({nested}, "_x" -> {predicate}))',
                  -237            )
                  -238
                  -239    parent_select.join(
                  -240        select.group_by(*group_by, copy=False),
                  -241        on=[predicate for *_, predicate in keys if isinstance(predicate, exp.EQ)],
                  -242        join_type="LEFT",
                  -243        join_alias=table_alias,
                  -244        copy=False,
                  -245    )
                  +            
                   90def decorrelate(select, parent_select, external_columns, next_alias_name):
                  + 91    where = select.args.get("where")
                  + 92
                  + 93    if not where or where.find(exp.Or) or select.find(exp.Limit, exp.Offset):
                  + 94        return
                  + 95
                  + 96    table_alias = next_alias_name()
                  + 97    keys = []
                  + 98
                  + 99    # for all external columns in the where statement, find the relevant predicate
                  +100    # keys to convert it into a join
                  +101    for column in external_columns:
                  +102        if column.find_ancestor(exp.Where) is not where:
                  +103            return
                  +104
                  +105        predicate = column.find_ancestor(exp.Predicate)
                  +106
                  +107        if not predicate or predicate.find_ancestor(exp.Where) is not where:
                  +108            return
                  +109
                  +110        if isinstance(predicate, exp.Binary):
                  +111            key = (
                  +112                predicate.right
                  +113                if any(node is column for node, *_ in predicate.left.walk())
                  +114                else predicate.left
                  +115            )
                  +116        else:
                  +117            return
                  +118
                  +119        keys.append((key, column, predicate))
                  +120
                  +121    if not any(isinstance(predicate, exp.EQ) for *_, predicate in keys):
                  +122        return
                  +123
                  +124    is_subquery_projection = any(
                  +125        node is select.parent for node in parent_select.selects if isinstance(node, exp.Subquery)
                  +126    )
                  +127
                  +128    value = select.selects[0]
                  +129    key_aliases = {}
                  +130    group_by = []
                  +131
                  +132    for key, _, predicate in keys:
                  +133        # if we filter on the value of the subquery, it needs to be unique
                  +134        if key == value.this:
                  +135            key_aliases[key] = value.alias
                  +136            group_by.append(key)
                  +137        else:
                  +138            if key not in key_aliases:
                  +139                key_aliases[key] = next_alias_name()
                  +140            # all predicates that are equalities must also be in the unique
                  +141            # so that we don't do a many to many join
                  +142            if isinstance(predicate, exp.EQ) and key not in group_by:
                  +143                group_by.append(key)
                  +144
                  +145    parent_predicate = select.find_ancestor(exp.Predicate)
                  +146
                  +147    # if the value of the subquery is not an agg or a key, we need to collect it into an array
                  +148    # so that it can be grouped. For subquery projections, we use a MAX aggregation instead.
                  +149    agg_func = exp.Max if is_subquery_projection else exp.ArrayAgg
                  +150    if not value.find(exp.AggFunc) and value.this not in group_by:
                  +151        select.select(
                  +152            exp.alias_(agg_func(this=value.this), value.alias, quoted=False),
                  +153            append=False,
                  +154            copy=False,
                  +155        )
                  +156
                  +157    # exists queries should not have any selects as it only checks if there are any rows
                  +158    # all selects will be added by the optimizer and only used for join keys
                  +159    if isinstance(parent_predicate, exp.Exists):
                  +160        select.args["expressions"] = []
                  +161
                  +162    for key, alias in key_aliases.items():
                  +163        if key in group_by:
                  +164            # add all keys to the projections of the subquery
                  +165            # so that we can use it as a join key
                  +166            if isinstance(parent_predicate, exp.Exists) or key != value.this:
                  +167                select.select(f"{key} AS {alias}", copy=False)
                  +168        else:
                  +169            select.select(exp.alias_(agg_func(this=key.copy()), alias, quoted=False), copy=False)
                  +170
                  +171    alias = exp.column(value.alias, table_alias)
                  +172    other = _other_operand(parent_predicate)
                  +173
                  +174    if isinstance(parent_predicate, exp.Exists):
                  +175        alias = exp.column(list(key_aliases.values())[0], table_alias)
                  +176        parent_predicate = _replace(parent_predicate, f"NOT {alias} IS NULL")
                  +177    elif isinstance(parent_predicate, exp.All):
                  +178        parent_predicate = _replace(
                  +179            parent_predicate.parent, f"ARRAY_ALL({alias}, _x -> _x = {other})"
                  +180        )
                  +181    elif isinstance(parent_predicate, exp.Any):
                  +182        if value.this in group_by:
                  +183            parent_predicate = _replace(parent_predicate.parent, f"{other} = {alias}")
                  +184        else:
                  +185            parent_predicate = _replace(parent_predicate, f"ARRAY_ANY({alias}, _x -> _x = {other})")
                  +186    elif isinstance(parent_predicate, exp.In):
                  +187        if value.this in group_by:
                  +188            parent_predicate = _replace(parent_predicate, f"{other} = {alias}")
                  +189        else:
                  +190            parent_predicate = _replace(
                  +191                parent_predicate,
                  +192                f"ARRAY_ANY({alias}, _x -> _x = {parent_predicate.this})",
                  +193            )
                  +194    else:
                  +195        if is_subquery_projection:
                  +196            alias = exp.alias_(alias, select.parent.alias)
                  +197
                  +198        # COUNT always returns 0 on empty datasets, so we need take that into consideration here
                  +199        # by transforming all counts into 0 and using that as the coalesced value
                  +200        if value.find(exp.Count):
                  +201
                  +202            def remove_aggs(node):
                  +203                if isinstance(node, exp.Count):
                  +204                    return exp.Literal.number(0)
                  +205                elif isinstance(node, exp.AggFunc):
                  +206                    return exp.null()
                  +207                return node
                  +208
                  +209            alias = exp.Coalesce(
                  +210                this=alias,
                  +211                expressions=[value.this.transform(remove_aggs)],
                  +212            )
                  +213
                  +214        select.parent.replace(alias)
                  +215
                  +216    for key, column, predicate in keys:
                  +217        predicate.replace(exp.true())
                  +218        nested = exp.column(key_aliases[key], table_alias)
                  +219
                  +220        if is_subquery_projection:
                  +221            key.replace(nested)
                  +222            continue
                  +223
                  +224        if key in group_by:
                  +225            key.replace(nested)
                  +226        elif isinstance(predicate, exp.EQ):
                  +227            parent_predicate = _replace(
                  +228                parent_predicate,
                  +229                f"({parent_predicate} AND ARRAY_CONTAINS({nested}, {column}))",
                  +230            )
                  +231        else:
                  +232            key.replace(exp.to_identifier("_x"))
                  +233            parent_predicate = _replace(
                  +234                parent_predicate,
                  +235                f'({parent_predicate} AND ARRAY_ANY({nested}, "_x" -> {predicate}))',
                  +236            )
                  +237
                  +238    parent_select.join(
                  +239        select.group_by(*group_by, copy=False),
                  +240        on=[predicate for *_, predicate in keys if isinstance(predicate, exp.EQ)],
                  +241        join_type="LEFT",
                  +242        join_alias=table_alias,
                  +243        copy=False,
                  +244    )
                   
                  diff --git a/docs/sqlglot/parser.html b/docs/sqlglot/parser.html index f481eff..6963320 100644 --- a/docs/sqlglot/parser.html +++ b/docs/sqlglot/parser.html @@ -110,7 +110,7 @@
                  16logger = logging.getLogger("sqlglot") 17 18 - 19def parse_var_map(args: t.List) -> exp.Expression: + 19def parse_var_map(args: t.List) -> exp.StarMap | exp.VarMap: 20 if len(args) == 1 and args[0].is_star: 21 return exp.StarMap(this=args[0]) 22 @@ -154,7 +154,7 @@ 60 61 Args: 62 error_level: the desired error level. - 63 Default: ErrorLevel.RAISE + 63 Default: ErrorLevel.IMMEDIATE 64 error_message_context: determines the amount of context to capture from a 65 query string when displaying the error message (in number of characters). 66 Default: 50. @@ -249,1010 +249,1010 @@ 155 TokenType.DATETIME, 156 TokenType.DATETIME64, 157 TokenType.DATE, - 158 TokenType.DECIMAL, - 159 TokenType.BIGDECIMAL, - 160 TokenType.UUID, - 161 TokenType.GEOGRAPHY, - 162 TokenType.GEOMETRY, - 163 TokenType.HLLSKETCH, - 164 TokenType.HSTORE, - 165 TokenType.PSEUDO_TYPE, - 166 TokenType.SUPER, - 167 TokenType.SERIAL, - 168 TokenType.SMALLSERIAL, - 169 TokenType.BIGSERIAL, - 170 TokenType.XML, - 171 TokenType.UNIQUEIDENTIFIER, - 172 TokenType.MONEY, - 173 TokenType.SMALLMONEY, - 174 TokenType.ROWVERSION, - 175 TokenType.IMAGE, - 176 TokenType.VARIANT, - 177 TokenType.OBJECT, - 178 TokenType.INET, - 179 *NESTED_TYPE_TOKENS, - 180 } - 181 - 182 SUBQUERY_PREDICATES = { - 183 TokenType.ANY: exp.Any, - 184 TokenType.ALL: exp.All, - 185 TokenType.EXISTS: exp.Exists, - 186 TokenType.SOME: exp.Any, - 187 } - 188 - 189 RESERVED_KEYWORDS = {*Tokenizer.SINGLE_TOKENS.values(), TokenType.SELECT} - 190 - 191 DB_CREATABLES = { - 192 TokenType.DATABASE, - 193 TokenType.SCHEMA, - 194 TokenType.TABLE, - 195 TokenType.VIEW, - 196 } - 197 - 198 CREATABLES = { - 199 TokenType.COLUMN, - 200 TokenType.FUNCTION, - 201 TokenType.INDEX, - 202 TokenType.PROCEDURE, - 203 *DB_CREATABLES, - 204 } - 205 - 206 ID_VAR_TOKENS = { - 207 TokenType.VAR, - 208 TokenType.ANTI, - 209 TokenType.APPLY, - 210 TokenType.ASC, - 211 TokenType.AUTO_INCREMENT, - 212 TokenType.BEGIN, - 213 TokenType.CACHE, - 214 TokenType.COLLATE, - 215 TokenType.COMMAND, - 216 TokenType.COMMENT, - 217 TokenType.COMMIT, - 218 TokenType.CONSTRAINT, - 219 TokenType.DEFAULT, - 220 TokenType.DELETE, - 221 TokenType.DESC, - 222 TokenType.DESCRIBE, - 223 TokenType.DIV, - 224 TokenType.END, - 225 TokenType.EXECUTE, - 226 TokenType.ESCAPE, - 227 TokenType.FALSE, - 228 TokenType.FIRST, - 229 TokenType.FILTER, - 230 TokenType.FORMAT, - 231 TokenType.FULL, - 232 TokenType.IF, - 233 TokenType.IS, - 234 TokenType.ISNULL, - 235 TokenType.INTERVAL, - 236 TokenType.KEEP, - 237 TokenType.LEFT, - 238 TokenType.LOAD, - 239 TokenType.MERGE, - 240 TokenType.NATURAL, - 241 TokenType.NEXT, - 242 TokenType.OFFSET, - 243 TokenType.ORDINALITY, - 244 TokenType.OVERWRITE, - 245 TokenType.PARTITION, - 246 TokenType.PERCENT, - 247 TokenType.PIVOT, - 248 TokenType.PRAGMA, - 249 TokenType.RANGE, - 250 TokenType.REFERENCES, - 251 TokenType.RIGHT, - 252 TokenType.ROW, - 253 TokenType.ROWS, - 254 TokenType.SEMI, - 255 TokenType.SET, - 256 TokenType.SETTINGS, - 257 TokenType.SHOW, - 258 TokenType.TEMPORARY, - 259 TokenType.TOP, - 260 TokenType.TRUE, - 261 TokenType.UNIQUE, - 262 TokenType.UNPIVOT, - 263 TokenType.VOLATILE, - 264 TokenType.WINDOW, - 265 *CREATABLES, - 266 *SUBQUERY_PREDICATES, - 267 *TYPE_TOKENS, - 268 *NO_PAREN_FUNCTIONS, - 269 } - 270 - 271 INTERVAL_VARS = ID_VAR_TOKENS - {TokenType.END} - 272 - 273 TABLE_ALIAS_TOKENS = ID_VAR_TOKENS - { - 274 TokenType.APPLY, - 275 TokenType.FULL, - 276 TokenType.LEFT, - 277 TokenType.LOCK, - 278 TokenType.NATURAL, - 279 TokenType.OFFSET, - 280 TokenType.RIGHT, - 281 TokenType.WINDOW, - 282 } - 283 - 284 COMMENT_TABLE_ALIAS_TOKENS = TABLE_ALIAS_TOKENS - {TokenType.IS} - 285 - 286 UPDATE_ALIAS_TOKENS = TABLE_ALIAS_TOKENS - {TokenType.SET} - 287 - 288 TRIM_TYPES = {"LEADING", "TRAILING", "BOTH"} - 289 - 290 FUNC_TOKENS = { - 291 TokenType.COMMAND, - 292 TokenType.CURRENT_DATE, - 293 TokenType.CURRENT_DATETIME, - 294 TokenType.CURRENT_TIMESTAMP, - 295 TokenType.CURRENT_TIME, - 296 TokenType.CURRENT_USER, - 297 TokenType.FILTER, - 298 TokenType.FIRST, - 299 TokenType.FORMAT, - 300 TokenType.GLOB, - 301 TokenType.IDENTIFIER, - 302 TokenType.INDEX, - 303 TokenType.ISNULL, - 304 TokenType.ILIKE, - 305 TokenType.LIKE, - 306 TokenType.MERGE, - 307 TokenType.OFFSET, - 308 TokenType.PRIMARY_KEY, - 309 TokenType.RANGE, - 310 TokenType.REPLACE, - 311 TokenType.ROW, - 312 TokenType.UNNEST, - 313 TokenType.VAR, - 314 TokenType.LEFT, - 315 TokenType.RIGHT, - 316 TokenType.DATE, - 317 TokenType.DATETIME, - 318 TokenType.TABLE, - 319 TokenType.TIMESTAMP, - 320 TokenType.TIMESTAMPTZ, - 321 TokenType.WINDOW, - 322 *TYPE_TOKENS, - 323 *SUBQUERY_PREDICATES, - 324 } - 325 - 326 CONJUNCTION = { - 327 TokenType.AND: exp.And, - 328 TokenType.OR: exp.Or, - 329 } - 330 - 331 EQUALITY = { - 332 TokenType.EQ: exp.EQ, - 333 TokenType.NEQ: exp.NEQ, - 334 TokenType.NULLSAFE_EQ: exp.NullSafeEQ, - 335 } - 336 - 337 COMPARISON = { - 338 TokenType.GT: exp.GT, - 339 TokenType.GTE: exp.GTE, - 340 TokenType.LT: exp.LT, - 341 TokenType.LTE: exp.LTE, - 342 } - 343 - 344 BITWISE = { - 345 TokenType.AMP: exp.BitwiseAnd, - 346 TokenType.CARET: exp.BitwiseXor, - 347 TokenType.PIPE: exp.BitwiseOr, - 348 TokenType.DPIPE: exp.DPipe, - 349 } - 350 - 351 TERM = { - 352 TokenType.DASH: exp.Sub, - 353 TokenType.PLUS: exp.Add, - 354 TokenType.MOD: exp.Mod, - 355 TokenType.COLLATE: exp.Collate, - 356 } - 357 - 358 FACTOR = { - 359 TokenType.DIV: exp.IntDiv, - 360 TokenType.LR_ARROW: exp.Distance, - 361 TokenType.SLASH: exp.Div, - 362 TokenType.STAR: exp.Mul, - 363 } - 364 - 365 TIMESTAMPS = { - 366 TokenType.TIME, - 367 TokenType.TIMESTAMP, - 368 TokenType.TIMESTAMPTZ, - 369 TokenType.TIMESTAMPLTZ, - 370 } - 371 - 372 SET_OPERATIONS = { - 373 TokenType.UNION, - 374 TokenType.INTERSECT, - 375 TokenType.EXCEPT, - 376 } - 377 - 378 JOIN_SIDES = { - 379 TokenType.LEFT, - 380 TokenType.RIGHT, - 381 TokenType.FULL, - 382 } - 383 - 384 JOIN_KINDS = { - 385 TokenType.INNER, - 386 TokenType.OUTER, - 387 TokenType.CROSS, - 388 TokenType.SEMI, - 389 TokenType.ANTI, - 390 } - 391 - 392 LAMBDAS = { - 393 TokenType.ARROW: lambda self, expressions: self.expression( - 394 exp.Lambda, - 395 this=self._replace_lambda( - 396 self._parse_conjunction(), - 397 {node.name for node in expressions}, - 398 ), - 399 expressions=expressions, - 400 ), - 401 TokenType.FARROW: lambda self, expressions: self.expression( - 402 exp.Kwarg, - 403 this=exp.Var(this=expressions[0].name), - 404 expression=self._parse_conjunction(), - 405 ), - 406 } - 407 - 408 COLUMN_OPERATORS = { - 409 TokenType.DOT: None, - 410 TokenType.DCOLON: lambda self, this, to: self.expression( - 411 exp.Cast if self.STRICT_CAST else exp.TryCast, - 412 this=this, - 413 to=to, - 414 ), - 415 TokenType.ARROW: lambda self, this, path: self.expression( - 416 exp.JSONExtract, - 417 this=this, - 418 expression=path, - 419 ), - 420 TokenType.DARROW: lambda self, this, path: self.expression( - 421 exp.JSONExtractScalar, - 422 this=this, - 423 expression=path, - 424 ), - 425 TokenType.HASH_ARROW: lambda self, this, path: self.expression( - 426 exp.JSONBExtract, - 427 this=this, - 428 expression=path, - 429 ), - 430 TokenType.DHASH_ARROW: lambda self, this, path: self.expression( - 431 exp.JSONBExtractScalar, + 158 TokenType.INT4RANGE, + 159 TokenType.INT4MULTIRANGE, + 160 TokenType.INT8RANGE, + 161 TokenType.INT8MULTIRANGE, + 162 TokenType.NUMRANGE, + 163 TokenType.NUMMULTIRANGE, + 164 TokenType.TSRANGE, + 165 TokenType.TSMULTIRANGE, + 166 TokenType.TSTZRANGE, + 167 TokenType.TSTZMULTIRANGE, + 168 TokenType.DATERANGE, + 169 TokenType.DATEMULTIRANGE, + 170 TokenType.DECIMAL, + 171 TokenType.BIGDECIMAL, + 172 TokenType.UUID, + 173 TokenType.GEOGRAPHY, + 174 TokenType.GEOMETRY, + 175 TokenType.HLLSKETCH, + 176 TokenType.HSTORE, + 177 TokenType.PSEUDO_TYPE, + 178 TokenType.SUPER, + 179 TokenType.SERIAL, + 180 TokenType.SMALLSERIAL, + 181 TokenType.BIGSERIAL, + 182 TokenType.XML, + 183 TokenType.UNIQUEIDENTIFIER, + 184 TokenType.MONEY, + 185 TokenType.SMALLMONEY, + 186 TokenType.ROWVERSION, + 187 TokenType.IMAGE, + 188 TokenType.VARIANT, + 189 TokenType.OBJECT, + 190 TokenType.INET, + 191 *NESTED_TYPE_TOKENS, + 192 } + 193 + 194 SUBQUERY_PREDICATES = { + 195 TokenType.ANY: exp.Any, + 196 TokenType.ALL: exp.All, + 197 TokenType.EXISTS: exp.Exists, + 198 TokenType.SOME: exp.Any, + 199 } + 200 + 201 RESERVED_KEYWORDS = {*Tokenizer.SINGLE_TOKENS.values(), TokenType.SELECT} + 202 + 203 DB_CREATABLES = { + 204 TokenType.DATABASE, + 205 TokenType.SCHEMA, + 206 TokenType.TABLE, + 207 TokenType.VIEW, + 208 TokenType.DICTIONARY, + 209 } + 210 + 211 CREATABLES = { + 212 TokenType.COLUMN, + 213 TokenType.FUNCTION, + 214 TokenType.INDEX, + 215 TokenType.PROCEDURE, + 216 *DB_CREATABLES, + 217 } + 218 + 219 ID_VAR_TOKENS = { + 220 TokenType.VAR, + 221 TokenType.ANTI, + 222 TokenType.APPLY, + 223 TokenType.ASC, + 224 TokenType.AUTO_INCREMENT, + 225 TokenType.BEGIN, + 226 TokenType.CACHE, + 227 TokenType.COLLATE, + 228 TokenType.COMMAND, + 229 TokenType.COMMENT, + 230 TokenType.COMMIT, + 231 TokenType.CONSTRAINT, + 232 TokenType.DEFAULT, + 233 TokenType.DELETE, + 234 TokenType.DESC, + 235 TokenType.DESCRIBE, + 236 TokenType.DICTIONARY, + 237 TokenType.DIV, + 238 TokenType.END, + 239 TokenType.EXECUTE, + 240 TokenType.ESCAPE, + 241 TokenType.FALSE, + 242 TokenType.FIRST, + 243 TokenType.FILTER, + 244 TokenType.FORMAT, + 245 TokenType.FULL, + 246 TokenType.IF, + 247 TokenType.IS, + 248 TokenType.ISNULL, + 249 TokenType.INTERVAL, + 250 TokenType.KEEP, + 251 TokenType.LEFT, + 252 TokenType.LOAD, + 253 TokenType.MERGE, + 254 TokenType.NATURAL, + 255 TokenType.NEXT, + 256 TokenType.OFFSET, + 257 TokenType.ORDINALITY, + 258 TokenType.OVERWRITE, + 259 TokenType.PARTITION, + 260 TokenType.PERCENT, + 261 TokenType.PIVOT, + 262 TokenType.PRAGMA, + 263 TokenType.RANGE, + 264 TokenType.REFERENCES, + 265 TokenType.RIGHT, + 266 TokenType.ROW, + 267 TokenType.ROWS, + 268 TokenType.SEMI, + 269 TokenType.SET, + 270 TokenType.SETTINGS, + 271 TokenType.SHOW, + 272 TokenType.TEMPORARY, + 273 TokenType.TOP, + 274 TokenType.TRUE, + 275 TokenType.UNIQUE, + 276 TokenType.UNPIVOT, + 277 TokenType.VOLATILE, + 278 TokenType.WINDOW, + 279 *CREATABLES, + 280 *SUBQUERY_PREDICATES, + 281 *TYPE_TOKENS, + 282 *NO_PAREN_FUNCTIONS, + 283 } + 284 + 285 INTERVAL_VARS = ID_VAR_TOKENS - {TokenType.END} + 286 + 287 TABLE_ALIAS_TOKENS = ID_VAR_TOKENS - { + 288 TokenType.APPLY, + 289 TokenType.ASOF, + 290 TokenType.FULL, + 291 TokenType.LEFT, + 292 TokenType.LOCK, + 293 TokenType.NATURAL, + 294 TokenType.OFFSET, + 295 TokenType.RIGHT, + 296 TokenType.WINDOW, + 297 } + 298 + 299 COMMENT_TABLE_ALIAS_TOKENS = TABLE_ALIAS_TOKENS - {TokenType.IS} + 300 + 301 UPDATE_ALIAS_TOKENS = TABLE_ALIAS_TOKENS - {TokenType.SET} + 302 + 303 TRIM_TYPES = {"LEADING", "TRAILING", "BOTH"} + 304 + 305 FUNC_TOKENS = { + 306 TokenType.COMMAND, + 307 TokenType.CURRENT_DATE, + 308 TokenType.CURRENT_DATETIME, + 309 TokenType.CURRENT_TIMESTAMP, + 310 TokenType.CURRENT_TIME, + 311 TokenType.CURRENT_USER, + 312 TokenType.FILTER, + 313 TokenType.FIRST, + 314 TokenType.FORMAT, + 315 TokenType.GLOB, + 316 TokenType.IDENTIFIER, + 317 TokenType.INDEX, + 318 TokenType.ISNULL, + 319 TokenType.ILIKE, + 320 TokenType.LIKE, + 321 TokenType.MERGE, + 322 TokenType.OFFSET, + 323 TokenType.PRIMARY_KEY, + 324 TokenType.RANGE, + 325 TokenType.REPLACE, + 326 TokenType.ROW, + 327 TokenType.UNNEST, + 328 TokenType.VAR, + 329 TokenType.LEFT, + 330 TokenType.RIGHT, + 331 TokenType.DATE, + 332 TokenType.DATETIME, + 333 TokenType.TABLE, + 334 TokenType.TIMESTAMP, + 335 TokenType.TIMESTAMPTZ, + 336 TokenType.WINDOW, + 337 *TYPE_TOKENS, + 338 *SUBQUERY_PREDICATES, + 339 } + 340 + 341 CONJUNCTION = { + 342 TokenType.AND: exp.And, + 343 TokenType.OR: exp.Or, + 344 } + 345 + 346 EQUALITY = { + 347 TokenType.EQ: exp.EQ, + 348 TokenType.NEQ: exp.NEQ, + 349 TokenType.NULLSAFE_EQ: exp.NullSafeEQ, + 350 } + 351 + 352 COMPARISON = { + 353 TokenType.GT: exp.GT, + 354 TokenType.GTE: exp.GTE, + 355 TokenType.LT: exp.LT, + 356 TokenType.LTE: exp.LTE, + 357 } + 358 + 359 BITWISE = { + 360 TokenType.AMP: exp.BitwiseAnd, + 361 TokenType.CARET: exp.BitwiseXor, + 362 TokenType.PIPE: exp.BitwiseOr, + 363 TokenType.DPIPE: exp.DPipe, + 364 } + 365 + 366 TERM = { + 367 TokenType.DASH: exp.Sub, + 368 TokenType.PLUS: exp.Add, + 369 TokenType.MOD: exp.Mod, + 370 TokenType.COLLATE: exp.Collate, + 371 } + 372 + 373 FACTOR = { + 374 TokenType.DIV: exp.IntDiv, + 375 TokenType.LR_ARROW: exp.Distance, + 376 TokenType.SLASH: exp.Div, + 377 TokenType.STAR: exp.Mul, + 378 } + 379 + 380 TIMESTAMPS = { + 381 TokenType.TIME, + 382 TokenType.TIMESTAMP, + 383 TokenType.TIMESTAMPTZ, + 384 TokenType.TIMESTAMPLTZ, + 385 } + 386 + 387 SET_OPERATIONS = { + 388 TokenType.UNION, + 389 TokenType.INTERSECT, + 390 TokenType.EXCEPT, + 391 } + 392 + 393 JOIN_METHODS = { + 394 TokenType.NATURAL, + 395 TokenType.ASOF, + 396 } + 397 + 398 JOIN_SIDES = { + 399 TokenType.LEFT, + 400 TokenType.RIGHT, + 401 TokenType.FULL, + 402 } + 403 + 404 JOIN_KINDS = { + 405 TokenType.INNER, + 406 TokenType.OUTER, + 407 TokenType.CROSS, + 408 TokenType.SEMI, + 409 TokenType.ANTI, + 410 } + 411 + 412 LAMBDAS = { + 413 TokenType.ARROW: lambda self, expressions: self.expression( + 414 exp.Lambda, + 415 this=self._replace_lambda( + 416 self._parse_conjunction(), + 417 {node.name for node in expressions}, + 418 ), + 419 expressions=expressions, + 420 ), + 421 TokenType.FARROW: lambda self, expressions: self.expression( + 422 exp.Kwarg, + 423 this=exp.Var(this=expressions[0].name), + 424 expression=self._parse_conjunction(), + 425 ), + 426 } + 427 + 428 COLUMN_OPERATORS = { + 429 TokenType.DOT: None, + 430 TokenType.DCOLON: lambda self, this, to: self.expression( + 431 exp.Cast if self.STRICT_CAST else exp.TryCast, 432 this=this, - 433 expression=path, + 433 to=to, 434 ), - 435 TokenType.PLACEHOLDER: lambda self, this, key: self.expression( - 436 exp.JSONBContains, + 435 TokenType.ARROW: lambda self, this, path: self.expression( + 436 exp.JSONExtract, 437 this=this, - 438 expression=key, + 438 expression=path, 439 ), - 440 } - 441 - 442 EXPRESSION_PARSERS = { - 443 exp.Column: lambda self: self._parse_column(), - 444 exp.DataType: lambda self: self._parse_types(), - 445 exp.From: lambda self: self._parse_from(), - 446 exp.Group: lambda self: self._parse_group(), - 447 exp.Identifier: lambda self: self._parse_id_var(), - 448 exp.Lateral: lambda self: self._parse_lateral(), - 449 exp.Join: lambda self: self._parse_join(), - 450 exp.Order: lambda self: self._parse_order(), - 451 exp.Cluster: lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"), - 452 exp.Sort: lambda self: self._parse_sort(exp.Sort, "SORT", "BY"), - 453 exp.Lambda: lambda self: self._parse_lambda(), - 454 exp.Limit: lambda self: self._parse_limit(), - 455 exp.Offset: lambda self: self._parse_offset(), - 456 exp.TableAlias: lambda self: self._parse_table_alias(), - 457 exp.Table: lambda self: self._parse_table_parts(), - 458 exp.Condition: lambda self: self._parse_conjunction(), - 459 exp.Expression: lambda self: self._parse_statement(), - 460 exp.Properties: lambda self: self._parse_properties(), - 461 exp.Where: lambda self: self._parse_where(), - 462 exp.Ordered: lambda self: self._parse_ordered(), - 463 exp.Having: lambda self: self._parse_having(), - 464 exp.With: lambda self: self._parse_with(), - 465 exp.Window: lambda self: self._parse_named_window(), - 466 exp.Qualify: lambda self: self._parse_qualify(), - 467 exp.Returning: lambda self: self._parse_returning(), - 468 "JOIN_TYPE": lambda self: self._parse_join_side_and_kind(), - 469 } - 470 - 471 STATEMENT_PARSERS = { - 472 TokenType.ALTER: lambda self: self._parse_alter(), - 473 TokenType.BEGIN: lambda self: self._parse_transaction(), - 474 TokenType.CACHE: lambda self: self._parse_cache(), - 475 TokenType.COMMIT: lambda self: self._parse_commit_or_rollback(), - 476 TokenType.COMMENT: lambda self: self._parse_comment(), - 477 TokenType.CREATE: lambda self: self._parse_create(), - 478 TokenType.DELETE: lambda self: self._parse_delete(), - 479 TokenType.DESC: lambda self: self._parse_describe(), - 480 TokenType.DESCRIBE: lambda self: self._parse_describe(), - 481 TokenType.DROP: lambda self: self._parse_drop(), - 482 TokenType.END: lambda self: self._parse_commit_or_rollback(), - 483 TokenType.INSERT: lambda self: self._parse_insert(), - 484 TokenType.LOAD: lambda self: self._parse_load(), - 485 TokenType.MERGE: lambda self: self._parse_merge(), - 486 TokenType.PRAGMA: lambda self: self.expression(exp.Pragma, this=self._parse_expression()), - 487 TokenType.ROLLBACK: lambda self: self._parse_commit_or_rollback(), - 488 TokenType.SET: lambda self: self._parse_set(), - 489 TokenType.UNCACHE: lambda self: self._parse_uncache(), - 490 TokenType.UPDATE: lambda self: self._parse_update(), - 491 TokenType.USE: lambda self: self.expression( - 492 exp.Use, - 493 kind=self._match_texts(("ROLE", "WAREHOUSE", "DATABASE", "SCHEMA")) - 494 and exp.Var(this=self._prev.text), - 495 this=self._parse_table(schema=False), - 496 ), - 497 } - 498 - 499 UNARY_PARSERS = { - 500 TokenType.PLUS: lambda self: self._parse_unary(), # Unary + is handled as a no-op - 501 TokenType.NOT: lambda self: self.expression(exp.Not, this=self._parse_equality()), - 502 TokenType.TILDA: lambda self: self.expression(exp.BitwiseNot, this=self._parse_unary()), - 503 TokenType.DASH: lambda self: self.expression(exp.Neg, this=self._parse_unary()), - 504 } - 505 - 506 PRIMARY_PARSERS = { - 507 TokenType.STRING: lambda self, token: self.expression( - 508 exp.Literal, this=token.text, is_string=True - 509 ), - 510 TokenType.NUMBER: lambda self, token: self.expression( - 511 exp.Literal, this=token.text, is_string=False - 512 ), - 513 TokenType.STAR: lambda self, _: self.expression( - 514 exp.Star, - 515 **{"except": self._parse_except(), "replace": self._parse_replace()}, - 516 ), - 517 TokenType.NULL: lambda self, _: self.expression(exp.Null), - 518 TokenType.TRUE: lambda self, _: self.expression(exp.Boolean, this=True), - 519 TokenType.FALSE: lambda self, _: self.expression(exp.Boolean, this=False), - 520 TokenType.BIT_STRING: lambda self, token: self.expression(exp.BitString, this=token.text), - 521 TokenType.HEX_STRING: lambda self, token: self.expression(exp.HexString, this=token.text), - 522 TokenType.BYTE_STRING: lambda self, token: self.expression(exp.ByteString, this=token.text), - 523 TokenType.INTRODUCER: lambda self, token: self._parse_introducer(token), - 524 TokenType.NATIONAL_STRING: lambda self, token: self.expression( - 525 exp.National, this=token.text - 526 ), - 527 TokenType.RAW_STRING: lambda self, token: self.expression(exp.RawString, this=token.text), - 528 TokenType.SESSION_PARAMETER: lambda self, _: self._parse_session_parameter(), - 529 } - 530 - 531 PLACEHOLDER_PARSERS = { - 532 TokenType.PLACEHOLDER: lambda self: self.expression(exp.Placeholder), - 533 TokenType.PARAMETER: lambda self: self._parse_parameter(), - 534 TokenType.COLON: lambda self: self.expression(exp.Placeholder, this=self._prev.text) - 535 if self._match_set((TokenType.NUMBER, TokenType.VAR)) - 536 else None, - 537 } - 538 - 539 RANGE_PARSERS = { - 540 TokenType.BETWEEN: lambda self, this: self._parse_between(this), - 541 TokenType.GLOB: binary_range_parser(exp.Glob), - 542 TokenType.ILIKE: binary_range_parser(exp.ILike), - 543 TokenType.IN: lambda self, this: self._parse_in(this), - 544 TokenType.IRLIKE: binary_range_parser(exp.RegexpILike), - 545 TokenType.IS: lambda self, this: self._parse_is(this), - 546 TokenType.LIKE: binary_range_parser(exp.Like), - 547 TokenType.OVERLAPS: binary_range_parser(exp.Overlaps), - 548 TokenType.RLIKE: binary_range_parser(exp.RegexpLike), - 549 TokenType.SIMILAR_TO: binary_range_parser(exp.SimilarTo), - 550 } - 551 - 552 PROPERTY_PARSERS: t.Dict[str, t.Callable] = { - 553 "ALGORITHM": lambda self: self._parse_property_assignment(exp.AlgorithmProperty), - 554 "AUTO_INCREMENT": lambda self: self._parse_property_assignment(exp.AutoIncrementProperty), - 555 "BLOCKCOMPRESSION": lambda self: self._parse_blockcompression(), - 556 "CHARACTER SET": lambda self: self._parse_character_set(), - 557 "CHECKSUM": lambda self: self._parse_checksum(), - 558 "CLUSTER": lambda self: self._parse_cluster(), - 559 "COLLATE": lambda self: self._parse_property_assignment(exp.CollateProperty), - 560 "COMMENT": lambda self: self._parse_property_assignment(exp.SchemaCommentProperty), - 561 "DATABLOCKSIZE": lambda self, **kwargs: self._parse_datablocksize(**kwargs), - 562 "DEFINER": lambda self: self._parse_definer(), - 563 "DETERMINISTIC": lambda self: self.expression( - 564 exp.StabilityProperty, this=exp.Literal.string("IMMUTABLE") - 565 ), - 566 "DISTKEY": lambda self: self._parse_distkey(), - 567 "DISTSTYLE": lambda self: self._parse_property_assignment(exp.DistStyleProperty), - 568 "ENGINE": lambda self: self._parse_property_assignment(exp.EngineProperty), - 569 "EXECUTE": lambda self: self._parse_property_assignment(exp.ExecuteAsProperty), - 570 "EXTERNAL": lambda self: self.expression(exp.ExternalProperty), - 571 "FALLBACK": lambda self, **kwargs: self._parse_fallback(**kwargs), - 572 "FORMAT": lambda self: self._parse_property_assignment(exp.FileFormatProperty), - 573 "FREESPACE": lambda self: self._parse_freespace(), - 574 "IMMUTABLE": lambda self: self.expression( - 575 exp.StabilityProperty, this=exp.Literal.string("IMMUTABLE") - 576 ), - 577 "JOURNAL": lambda self, **kwargs: self._parse_journal(**kwargs), - 578 "LANGUAGE": lambda self: self._parse_property_assignment(exp.LanguageProperty), - 579 "LIKE": lambda self: self._parse_create_like(), - 580 "LOCATION": lambda self: self._parse_property_assignment(exp.LocationProperty), - 581 "LOCK": lambda self: self._parse_locking(), - 582 "LOCKING": lambda self: self._parse_locking(), - 583 "LOG": lambda self, **kwargs: self._parse_log(**kwargs), - 584 "MATERIALIZED": lambda self: self.expression(exp.MaterializedProperty), - 585 "MERGEBLOCKRATIO": lambda self, **kwargs: self._parse_mergeblockratio(**kwargs), - 586 "MULTISET": lambda self: self.expression(exp.SetProperty, multi=True), - 587 "NO": lambda self: self._parse_no_property(), - 588 "ON": lambda self: self._parse_on_property(), - 589 "ORDER BY": lambda self: self._parse_order(skip_order_token=True), - 590 "PARTITION BY": lambda self: self._parse_partitioned_by(), - 591 "PARTITIONED BY": lambda self: self._parse_partitioned_by(), - 592 "PARTITIONED_BY": lambda self: self._parse_partitioned_by(), - 593 "PRIMARY KEY": lambda self: self._parse_primary_key(), - 594 "RETURNS": lambda self: self._parse_returns(), - 595 "ROW": lambda self: self._parse_row(), - 596 "ROW_FORMAT": lambda self: self._parse_property_assignment(exp.RowFormatProperty), - 597 "SET": lambda self: self.expression(exp.SetProperty, multi=False), - 598 "SETTINGS": lambda self: self.expression( - 599 exp.SettingsProperty, expressions=self._parse_csv(self._parse_set_item) + 440 TokenType.DARROW: lambda self, this, path: self.expression( + 441 exp.JSONExtractScalar, + 442 this=this, + 443 expression=path, + 444 ), + 445 TokenType.HASH_ARROW: lambda self, this, path: self.expression( + 446 exp.JSONBExtract, + 447 this=this, + 448 expression=path, + 449 ), + 450 TokenType.DHASH_ARROW: lambda self, this, path: self.expression( + 451 exp.JSONBExtractScalar, + 452 this=this, + 453 expression=path, + 454 ), + 455 TokenType.PLACEHOLDER: lambda self, this, key: self.expression( + 456 exp.JSONBContains, + 457 this=this, + 458 expression=key, + 459 ), + 460 } + 461 + 462 EXPRESSION_PARSERS = { + 463 exp.Cluster: lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"), + 464 exp.Column: lambda self: self._parse_column(), + 465 exp.Condition: lambda self: self._parse_conjunction(), + 466 exp.DataType: lambda self: self._parse_types(), + 467 exp.Expression: lambda self: self._parse_statement(), + 468 exp.From: lambda self: self._parse_from(), + 469 exp.Group: lambda self: self._parse_group(), + 470 exp.Having: lambda self: self._parse_having(), + 471 exp.Identifier: lambda self: self._parse_id_var(), + 472 exp.Join: lambda self: self._parse_join(), + 473 exp.Lambda: lambda self: self._parse_lambda(), + 474 exp.Lateral: lambda self: self._parse_lateral(), + 475 exp.Limit: lambda self: self._parse_limit(), + 476 exp.Offset: lambda self: self._parse_offset(), + 477 exp.Order: lambda self: self._parse_order(), + 478 exp.Ordered: lambda self: self._parse_ordered(), + 479 exp.Properties: lambda self: self._parse_properties(), + 480 exp.Qualify: lambda self: self._parse_qualify(), + 481 exp.Returning: lambda self: self._parse_returning(), + 482 exp.Sort: lambda self: self._parse_sort(exp.Sort, "SORT", "BY"), + 483 exp.Table: lambda self: self._parse_table_parts(), + 484 exp.TableAlias: lambda self: self._parse_table_alias(), + 485 exp.Where: lambda self: self._parse_where(), + 486 exp.Window: lambda self: self._parse_named_window(), + 487 exp.With: lambda self: self._parse_with(), + 488 "JOIN_TYPE": lambda self: self._parse_join_parts(), + 489 } + 490 + 491 STATEMENT_PARSERS = { + 492 TokenType.ALTER: lambda self: self._parse_alter(), + 493 TokenType.BEGIN: lambda self: self._parse_transaction(), + 494 TokenType.CACHE: lambda self: self._parse_cache(), + 495 TokenType.COMMIT: lambda self: self._parse_commit_or_rollback(), + 496 TokenType.COMMENT: lambda self: self._parse_comment(), + 497 TokenType.CREATE: lambda self: self._parse_create(), + 498 TokenType.DELETE: lambda self: self._parse_delete(), + 499 TokenType.DESC: lambda self: self._parse_describe(), + 500 TokenType.DESCRIBE: lambda self: self._parse_describe(), + 501 TokenType.DROP: lambda self: self._parse_drop(), + 502 TokenType.END: lambda self: self._parse_commit_or_rollback(), + 503 TokenType.FROM: lambda self: exp.select("*").from_( + 504 t.cast(exp.From, self._parse_from(skip_from_token=True)) + 505 ), + 506 TokenType.INSERT: lambda self: self._parse_insert(), + 507 TokenType.LOAD: lambda self: self._parse_load(), + 508 TokenType.MERGE: lambda self: self._parse_merge(), + 509 TokenType.PIVOT: lambda self: self._parse_simplified_pivot(), + 510 TokenType.PRAGMA: lambda self: self.expression(exp.Pragma, this=self._parse_expression()), + 511 TokenType.ROLLBACK: lambda self: self._parse_commit_or_rollback(), + 512 TokenType.SET: lambda self: self._parse_set(), + 513 TokenType.UNCACHE: lambda self: self._parse_uncache(), + 514 TokenType.UPDATE: lambda self: self._parse_update(), + 515 TokenType.USE: lambda self: self.expression( + 516 exp.Use, + 517 kind=self._match_texts(("ROLE", "WAREHOUSE", "DATABASE", "SCHEMA")) + 518 and exp.Var(this=self._prev.text), + 519 this=self._parse_table(schema=False), + 520 ), + 521 } + 522 + 523 UNARY_PARSERS = { + 524 TokenType.PLUS: lambda self: self._parse_unary(), # Unary + is handled as a no-op + 525 TokenType.NOT: lambda self: self.expression(exp.Not, this=self._parse_equality()), + 526 TokenType.TILDA: lambda self: self.expression(exp.BitwiseNot, this=self._parse_unary()), + 527 TokenType.DASH: lambda self: self.expression(exp.Neg, this=self._parse_unary()), + 528 } + 529 + 530 PRIMARY_PARSERS = { + 531 TokenType.STRING: lambda self, token: self.expression( + 532 exp.Literal, this=token.text, is_string=True + 533 ), + 534 TokenType.NUMBER: lambda self, token: self.expression( + 535 exp.Literal, this=token.text, is_string=False + 536 ), + 537 TokenType.STAR: lambda self, _: self.expression( + 538 exp.Star, + 539 **{"except": self._parse_except(), "replace": self._parse_replace()}, + 540 ), + 541 TokenType.NULL: lambda self, _: self.expression(exp.Null), + 542 TokenType.TRUE: lambda self, _: self.expression(exp.Boolean, this=True), + 543 TokenType.FALSE: lambda self, _: self.expression(exp.Boolean, this=False), + 544 TokenType.BIT_STRING: lambda self, token: self.expression(exp.BitString, this=token.text), + 545 TokenType.HEX_STRING: lambda self, token: self.expression(exp.HexString, this=token.text), + 546 TokenType.BYTE_STRING: lambda self, token: self.expression(exp.ByteString, this=token.text), + 547 TokenType.INTRODUCER: lambda self, token: self._parse_introducer(token), + 548 TokenType.NATIONAL_STRING: lambda self, token: self.expression( + 549 exp.National, this=token.text + 550 ), + 551 TokenType.RAW_STRING: lambda self, token: self.expression(exp.RawString, this=token.text), + 552 TokenType.SESSION_PARAMETER: lambda self, _: self._parse_session_parameter(), + 553 } + 554 + 555 PLACEHOLDER_PARSERS = { + 556 TokenType.PLACEHOLDER: lambda self: self.expression(exp.Placeholder), + 557 TokenType.PARAMETER: lambda self: self._parse_parameter(), + 558 TokenType.COLON: lambda self: self.expression(exp.Placeholder, this=self._prev.text) + 559 if self._match_set((TokenType.NUMBER, TokenType.VAR)) + 560 else None, + 561 } + 562 + 563 RANGE_PARSERS = { + 564 TokenType.BETWEEN: lambda self, this: self._parse_between(this), + 565 TokenType.GLOB: binary_range_parser(exp.Glob), + 566 TokenType.ILIKE: binary_range_parser(exp.ILike), + 567 TokenType.IN: lambda self, this: self._parse_in(this), + 568 TokenType.IRLIKE: binary_range_parser(exp.RegexpILike), + 569 TokenType.IS: lambda self, this: self._parse_is(this), + 570 TokenType.LIKE: binary_range_parser(exp.Like), + 571 TokenType.OVERLAPS: binary_range_parser(exp.Overlaps), + 572 TokenType.RLIKE: binary_range_parser(exp.RegexpLike), + 573 TokenType.SIMILAR_TO: binary_range_parser(exp.SimilarTo), + 574 } + 575 + 576 PROPERTY_PARSERS: t.Dict[str, t.Callable] = { + 577 "ALGORITHM": lambda self: self._parse_property_assignment(exp.AlgorithmProperty), + 578 "AUTO_INCREMENT": lambda self: self._parse_property_assignment(exp.AutoIncrementProperty), + 579 "BLOCKCOMPRESSION": lambda self: self._parse_blockcompression(), + 580 "CHARACTER SET": lambda self: self._parse_character_set(), + 581 "CHECKSUM": lambda self: self._parse_checksum(), + 582 "CLUSTER": lambda self: self._parse_cluster(), + 583 "COLLATE": lambda self: self._parse_property_assignment(exp.CollateProperty), + 584 "COMMENT": lambda self: self._parse_property_assignment(exp.SchemaCommentProperty), + 585 "DATABLOCKSIZE": lambda self, **kwargs: self._parse_datablocksize(**kwargs), + 586 "DEFINER": lambda self: self._parse_definer(), + 587 "DETERMINISTIC": lambda self: self.expression( + 588 exp.StabilityProperty, this=exp.Literal.string("IMMUTABLE") + 589 ), + 590 "DISTKEY": lambda self: self._parse_distkey(), + 591 "DISTSTYLE": lambda self: self._parse_property_assignment(exp.DistStyleProperty), + 592 "ENGINE": lambda self: self._parse_property_assignment(exp.EngineProperty), + 593 "EXECUTE": lambda self: self._parse_property_assignment(exp.ExecuteAsProperty), + 594 "EXTERNAL": lambda self: self.expression(exp.ExternalProperty), + 595 "FALLBACK": lambda self, **kwargs: self._parse_fallback(**kwargs), + 596 "FORMAT": lambda self: self._parse_property_assignment(exp.FileFormatProperty), + 597 "FREESPACE": lambda self: self._parse_freespace(), + 598 "IMMUTABLE": lambda self: self.expression( + 599 exp.StabilityProperty, this=exp.Literal.string("IMMUTABLE") 600 ), - 601 "SORTKEY": lambda self: self._parse_sortkey(), - 602 "STABLE": lambda self: self.expression( - 603 exp.StabilityProperty, this=exp.Literal.string("STABLE") - 604 ), - 605 "STORED": lambda self: self._parse_stored(), - 606 "TBLPROPERTIES": lambda self: self._parse_wrapped_csv(self._parse_property), - 607 "TEMP": lambda self: self.expression(exp.TemporaryProperty), - 608 "TEMPORARY": lambda self: self.expression(exp.TemporaryProperty), - 609 "TRANSIENT": lambda self: self.expression(exp.TransientProperty), - 610 "TTL": lambda self: self._parse_ttl(), - 611 "USING": lambda self: self._parse_property_assignment(exp.FileFormatProperty), - 612 "VOLATILE": lambda self: self._parse_volatile_property(), - 613 "WITH": lambda self: self._parse_with_property(), - 614 } - 615 - 616 CONSTRAINT_PARSERS = { - 617 "AUTOINCREMENT": lambda self: self._parse_auto_increment(), - 618 "AUTO_INCREMENT": lambda self: self._parse_auto_increment(), - 619 "CASESPECIFIC": lambda self: self.expression(exp.CaseSpecificColumnConstraint, not_=False), - 620 "CHARACTER SET": lambda self: self.expression( - 621 exp.CharacterSetColumnConstraint, this=self._parse_var_or_string() - 622 ), - 623 "CHECK": lambda self: self.expression( - 624 exp.CheckColumnConstraint, this=self._parse_wrapped(self._parse_conjunction) - 625 ), - 626 "COLLATE": lambda self: self.expression( - 627 exp.CollateColumnConstraint, this=self._parse_var() - 628 ), - 629 "COMMENT": lambda self: self.expression( - 630 exp.CommentColumnConstraint, this=self._parse_string() - 631 ), - 632 "COMPRESS": lambda self: self._parse_compress(), - 633 "DEFAULT": lambda self: self.expression( - 634 exp.DefaultColumnConstraint, this=self._parse_bitwise() - 635 ), - 636 "ENCODE": lambda self: self.expression(exp.EncodeColumnConstraint, this=self._parse_var()), - 637 "FOREIGN KEY": lambda self: self._parse_foreign_key(), - 638 "FORMAT": lambda self: self.expression( - 639 exp.DateFormatColumnConstraint, this=self._parse_var_or_string() - 640 ), - 641 "GENERATED": lambda self: self._parse_generated_as_identity(), - 642 "IDENTITY": lambda self: self._parse_auto_increment(), - 643 "INLINE": lambda self: self._parse_inline(), - 644 "LIKE": lambda self: self._parse_create_like(), - 645 "NOT": lambda self: self._parse_not_constraint(), - 646 "NULL": lambda self: self.expression(exp.NotNullColumnConstraint, allow_null=True), - 647 "ON": lambda self: self._match(TokenType.UPDATE) - 648 and self.expression(exp.OnUpdateColumnConstraint, this=self._parse_function()), - 649 "PATH": lambda self: self.expression(exp.PathColumnConstraint, this=self._parse_string()), - 650 "PRIMARY KEY": lambda self: self._parse_primary_key(), - 651 "REFERENCES": lambda self: self._parse_references(match=False), - 652 "TITLE": lambda self: self.expression( - 653 exp.TitleColumnConstraint, this=self._parse_var_or_string() - 654 ), - 655 "TTL": lambda self: self.expression(exp.MergeTreeTTL, expressions=[self._parse_bitwise()]), - 656 "UNIQUE": lambda self: self._parse_unique(), - 657 "UPPERCASE": lambda self: self.expression(exp.UppercaseColumnConstraint), - 658 } - 659 - 660 ALTER_PARSERS = { - 661 "ADD": lambda self: self._parse_alter_table_add(), - 662 "ALTER": lambda self: self._parse_alter_table_alter(), - 663 "DELETE": lambda self: self.expression(exp.Delete, where=self._parse_where()), - 664 "DROP": lambda self: self._parse_alter_table_drop(), - 665 "RENAME": lambda self: self._parse_alter_table_rename(), - 666 } - 667 - 668 SCHEMA_UNNAMED_CONSTRAINTS = {"CHECK", "FOREIGN KEY", "LIKE", "PRIMARY KEY", "UNIQUE"} - 669 - 670 NO_PAREN_FUNCTION_PARSERS = { - 671 TokenType.ANY: lambda self: self.expression(exp.Any, this=self._parse_bitwise()), - 672 TokenType.CASE: lambda self: self._parse_case(), - 673 TokenType.IF: lambda self: self._parse_if(), - 674 TokenType.NEXT_VALUE_FOR: lambda self: self.expression( - 675 exp.NextValueFor, - 676 this=self._parse_column(), - 677 order=self._match(TokenType.OVER) and self._parse_wrapped(self._parse_order), - 678 ), - 679 } - 680 - 681 FUNCTIONS_WITH_ALIASED_ARGS = {"STRUCT"} - 682 - 683 FUNCTION_PARSERS: t.Dict[str, t.Callable] = { - 684 "CAST": lambda self: self._parse_cast(self.STRICT_CAST), - 685 "CONVERT": lambda self: self._parse_convert(self.STRICT_CAST), - 686 "DECODE": lambda self: self._parse_decode(), - 687 "EXTRACT": lambda self: self._parse_extract(), - 688 "JSON_OBJECT": lambda self: self._parse_json_object(), - 689 "LOG": lambda self: self._parse_logarithm(), - 690 "MATCH": lambda self: self._parse_match_against(), - 691 "OPENJSON": lambda self: self._parse_open_json(), - 692 "POSITION": lambda self: self._parse_position(), - 693 "SAFE_CAST": lambda self: self._parse_cast(False), - 694 "STRING_AGG": lambda self: self._parse_string_agg(), - 695 "SUBSTRING": lambda self: self._parse_substring(), - 696 "TRIM": lambda self: self._parse_trim(), - 697 "TRY_CAST": lambda self: self._parse_cast(False), - 698 "TRY_CONVERT": lambda self: self._parse_convert(False), - 699 } - 700 - 701 QUERY_MODIFIER_PARSERS = { - 702 "joins": lambda self: list(iter(self._parse_join, None)), - 703 "laterals": lambda self: list(iter(self._parse_lateral, None)), - 704 "match": lambda self: self._parse_match_recognize(), - 705 "where": lambda self: self._parse_where(), - 706 "group": lambda self: self._parse_group(), - 707 "having": lambda self: self._parse_having(), - 708 "qualify": lambda self: self._parse_qualify(), - 709 "windows": lambda self: self._parse_window_clause(), - 710 "order": lambda self: self._parse_order(), - 711 "limit": lambda self: self._parse_limit(), - 712 "offset": lambda self: self._parse_offset(), - 713 "locks": lambda self: self._parse_locks(), - 714 "sample": lambda self: self._parse_table_sample(as_modifier=True), - 715 } - 716 - 717 SET_PARSERS = { - 718 "GLOBAL": lambda self: self._parse_set_item_assignment("GLOBAL"), - 719 "LOCAL": lambda self: self._parse_set_item_assignment("LOCAL"), - 720 "SESSION": lambda self: self._parse_set_item_assignment("SESSION"), - 721 "TRANSACTION": lambda self: self._parse_set_transaction(), - 722 } - 723 - 724 SHOW_PARSERS: t.Dict[str, t.Callable] = {} - 725 - 726 TYPE_LITERAL_PARSERS: t.Dict[exp.DataType.Type, t.Callable] = {} - 727 - 728 MODIFIABLES = (exp.Subquery, exp.Subqueryable, exp.Table) - 729 - 730 TRANSACTION_KIND = {"DEFERRED", "IMMEDIATE", "EXCLUSIVE"} - 731 - 732 TRANSACTION_CHARACTERISTICS = { - 733 "ISOLATION LEVEL REPEATABLE READ", - 734 "ISOLATION LEVEL READ COMMITTED", - 735 "ISOLATION LEVEL READ UNCOMMITTED", - 736 "ISOLATION LEVEL SERIALIZABLE", - 737 "READ WRITE", - 738 "READ ONLY", - 739 } - 740 - 741 INSERT_ALTERNATIVES = {"ABORT", "FAIL", "IGNORE", "REPLACE", "ROLLBACK"} - 742 - 743 CLONE_KINDS = {"TIMESTAMP", "OFFSET", "STATEMENT"} + 601 "JOURNAL": lambda self, **kwargs: self._parse_journal(**kwargs), + 602 "LANGUAGE": lambda self: self._parse_property_assignment(exp.LanguageProperty), + 603 "LAYOUT": lambda self: self._parse_dict_property(this="LAYOUT"), + 604 "LIFETIME": lambda self: self._parse_dict_range(this="LIFETIME"), + 605 "LIKE": lambda self: self._parse_create_like(), + 606 "LOCATION": lambda self: self._parse_property_assignment(exp.LocationProperty), + 607 "LOCK": lambda self: self._parse_locking(), + 608 "LOCKING": lambda self: self._parse_locking(), + 609 "LOG": lambda self, **kwargs: self._parse_log(**kwargs), + 610 "MATERIALIZED": lambda self: self.expression(exp.MaterializedProperty), + 611 "MERGEBLOCKRATIO": lambda self, **kwargs: self._parse_mergeblockratio(**kwargs), + 612 "MULTISET": lambda self: self.expression(exp.SetProperty, multi=True), + 613 "NO": lambda self: self._parse_no_property(), + 614 "ON": lambda self: self._parse_on_property(), + 615 "ORDER BY": lambda self: self._parse_order(skip_order_token=True), + 616 "PARTITION BY": lambda self: self._parse_partitioned_by(), + 617 "PARTITIONED BY": lambda self: self._parse_partitioned_by(), + 618 "PARTITIONED_BY": lambda self: self._parse_partitioned_by(), + 619 "PRIMARY KEY": lambda self: self._parse_primary_key(in_props=True), + 620 "RANGE": lambda self: self._parse_dict_range(this="RANGE"), + 621 "RETURNS": lambda self: self._parse_returns(), + 622 "ROW": lambda self: self._parse_row(), + 623 "ROW_FORMAT": lambda self: self._parse_property_assignment(exp.RowFormatProperty), + 624 "SET": lambda self: self.expression(exp.SetProperty, multi=False), + 625 "SETTINGS": lambda self: self.expression( + 626 exp.SettingsProperty, expressions=self._parse_csv(self._parse_set_item) + 627 ), + 628 "SORTKEY": lambda self: self._parse_sortkey(), + 629 "SOURCE": lambda self: self._parse_dict_property(this="SOURCE"), + 630 "STABLE": lambda self: self.expression( + 631 exp.StabilityProperty, this=exp.Literal.string("STABLE") + 632 ), + 633 "STORED": lambda self: self._parse_stored(), + 634 "TBLPROPERTIES": lambda self: self._parse_wrapped_csv(self._parse_property), + 635 "TEMP": lambda self: self.expression(exp.TemporaryProperty), + 636 "TEMPORARY": lambda self: self.expression(exp.TemporaryProperty), + 637 "TRANSIENT": lambda self: self.expression(exp.TransientProperty), + 638 "TTL": lambda self: self._parse_ttl(), + 639 "USING": lambda self: self._parse_property_assignment(exp.FileFormatProperty), + 640 "VOLATILE": lambda self: self._parse_volatile_property(), + 641 "WITH": lambda self: self._parse_with_property(), + 642 } + 643 + 644 CONSTRAINT_PARSERS = { + 645 "AUTOINCREMENT": lambda self: self._parse_auto_increment(), + 646 "AUTO_INCREMENT": lambda self: self._parse_auto_increment(), + 647 "CASESPECIFIC": lambda self: self.expression(exp.CaseSpecificColumnConstraint, not_=False), + 648 "CHARACTER SET": lambda self: self.expression( + 649 exp.CharacterSetColumnConstraint, this=self._parse_var_or_string() + 650 ), + 651 "CHECK": lambda self: self.expression( + 652 exp.CheckColumnConstraint, this=self._parse_wrapped(self._parse_conjunction) + 653 ), + 654 "COLLATE": lambda self: self.expression( + 655 exp.CollateColumnConstraint, this=self._parse_var() + 656 ), + 657 "COMMENT": lambda self: self.expression( + 658 exp.CommentColumnConstraint, this=self._parse_string() + 659 ), + 660 "COMPRESS": lambda self: self._parse_compress(), + 661 "DEFAULT": lambda self: self.expression( + 662 exp.DefaultColumnConstraint, this=self._parse_bitwise() + 663 ), + 664 "ENCODE": lambda self: self.expression(exp.EncodeColumnConstraint, this=self._parse_var()), + 665 "FOREIGN KEY": lambda self: self._parse_foreign_key(), + 666 "FORMAT": lambda self: self.expression( + 667 exp.DateFormatColumnConstraint, this=self._parse_var_or_string() + 668 ), + 669 "GENERATED": lambda self: self._parse_generated_as_identity(), + 670 "IDENTITY": lambda self: self._parse_auto_increment(), + 671 "INLINE": lambda self: self._parse_inline(), + 672 "LIKE": lambda self: self._parse_create_like(), + 673 "NOT": lambda self: self._parse_not_constraint(), + 674 "NULL": lambda self: self.expression(exp.NotNullColumnConstraint, allow_null=True), + 675 "ON": lambda self: self._match(TokenType.UPDATE) + 676 and self.expression(exp.OnUpdateColumnConstraint, this=self._parse_function()), + 677 "PATH": lambda self: self.expression(exp.PathColumnConstraint, this=self._parse_string()), + 678 "PRIMARY KEY": lambda self: self._parse_primary_key(), + 679 "REFERENCES": lambda self: self._parse_references(match=False), + 680 "TITLE": lambda self: self.expression( + 681 exp.TitleColumnConstraint, this=self._parse_var_or_string() + 682 ), + 683 "TTL": lambda self: self.expression(exp.MergeTreeTTL, expressions=[self._parse_bitwise()]), + 684 "UNIQUE": lambda self: self._parse_unique(), + 685 "UPPERCASE": lambda self: self.expression(exp.UppercaseColumnConstraint), + 686 } + 687 + 688 ALTER_PARSERS = { + 689 "ADD": lambda self: self._parse_alter_table_add(), + 690 "ALTER": lambda self: self._parse_alter_table_alter(), + 691 "DELETE": lambda self: self.expression(exp.Delete, where=self._parse_where()), + 692 "DROP": lambda self: self._parse_alter_table_drop(), + 693 "RENAME": lambda self: self._parse_alter_table_rename(), + 694 } + 695 + 696 SCHEMA_UNNAMED_CONSTRAINTS = {"CHECK", "FOREIGN KEY", "LIKE", "PRIMARY KEY", "UNIQUE"} + 697 + 698 NO_PAREN_FUNCTION_PARSERS = { + 699 TokenType.ANY: lambda self: self.expression(exp.Any, this=self._parse_bitwise()), + 700 TokenType.CASE: lambda self: self._parse_case(), + 701 TokenType.IF: lambda self: self._parse_if(), + 702 TokenType.NEXT_VALUE_FOR: lambda self: self.expression( + 703 exp.NextValueFor, + 704 this=self._parse_column(), + 705 order=self._match(TokenType.OVER) and self._parse_wrapped(self._parse_order), + 706 ), + 707 } + 708 + 709 FUNCTIONS_WITH_ALIASED_ARGS = {"STRUCT"} + 710 + 711 FUNCTION_PARSERS: t.Dict[str, t.Callable] = { + 712 "CAST": lambda self: self._parse_cast(self.STRICT_CAST), + 713 "CONVERT": lambda self: self._parse_convert(self.STRICT_CAST), + 714 "DECODE": lambda self: self._parse_decode(), + 715 "EXTRACT": lambda self: self._parse_extract(), + 716 "JSON_OBJECT": lambda self: self._parse_json_object(), + 717 "LOG": lambda self: self._parse_logarithm(), + 718 "MATCH": lambda self: self._parse_match_against(), + 719 "OPENJSON": lambda self: self._parse_open_json(), + 720 "POSITION": lambda self: self._parse_position(), + 721 "SAFE_CAST": lambda self: self._parse_cast(False), + 722 "STRING_AGG": lambda self: self._parse_string_agg(), + 723 "SUBSTRING": lambda self: self._parse_substring(), + 724 "TRIM": lambda self: self._parse_trim(), + 725 "TRY_CAST": lambda self: self._parse_cast(False), + 726 "TRY_CONVERT": lambda self: self._parse_convert(False), + 727 } + 728 + 729 QUERY_MODIFIER_PARSERS = { + 730 "joins": lambda self: list(iter(self._parse_join, None)), + 731 "laterals": lambda self: list(iter(self._parse_lateral, None)), + 732 "match": lambda self: self._parse_match_recognize(), + 733 "where": lambda self: self._parse_where(), + 734 "group": lambda self: self._parse_group(), + 735 "having": lambda self: self._parse_having(), + 736 "qualify": lambda self: self._parse_qualify(), + 737 "windows": lambda self: self._parse_window_clause(), + 738 "order": lambda self: self._parse_order(), + 739 "limit": lambda self: self._parse_limit(), + 740 "offset": lambda self: self._parse_offset(), + 741 "locks": lambda self: self._parse_locks(), + 742 "sample": lambda self: self._parse_table_sample(as_modifier=True), + 743 } 744 - 745 WINDOW_ALIAS_TOKENS = ID_VAR_TOKENS - {TokenType.ROWS} - 746 WINDOW_BEFORE_PAREN_TOKENS = {TokenType.OVER} - 747 - 748 ADD_CONSTRAINT_TOKENS = {TokenType.CONSTRAINT, TokenType.PRIMARY_KEY, TokenType.FOREIGN_KEY} - 749 - 750 STRICT_CAST = True + 745 SET_PARSERS = { + 746 "GLOBAL": lambda self: self._parse_set_item_assignment("GLOBAL"), + 747 "LOCAL": lambda self: self._parse_set_item_assignment("LOCAL"), + 748 "SESSION": lambda self: self._parse_set_item_assignment("SESSION"), + 749 "TRANSACTION": lambda self: self._parse_set_transaction(), + 750 } 751 - 752 CONVERT_TYPE_FIRST = False + 752 SHOW_PARSERS: t.Dict[str, t.Callable] = {} 753 - 754 PREFIXED_PIVOT_COLUMNS = False - 755 IDENTIFY_PIVOT_STRINGS = False - 756 - 757 LOG_BASE_FIRST = True - 758 LOG_DEFAULTS_TO_LN = False + 754 TYPE_LITERAL_PARSERS: t.Dict[exp.DataType.Type, t.Callable] = {} + 755 + 756 MODIFIABLES = (exp.Subquery, exp.Subqueryable, exp.Table) + 757 + 758 TRANSACTION_KIND = {"DEFERRED", "IMMEDIATE", "EXCLUSIVE"} 759 - 760 __slots__ = ( - 761 "error_level", - 762 "error_message_context", - 763 "sql", - 764 "errors", - 765 "index_offset", - 766 "unnest_column_only", - 767 "alias_post_tablesample", - 768 "max_errors", - 769 "null_ordering", - 770 "_tokens", - 771 "_index", - 772 "_curr", - 773 "_next", - 774 "_prev", - 775 "_prev_comments", - 776 "_show_trie", - 777 "_set_trie", - 778 ) - 779 - 780 def __init__( - 781 self, - 782 error_level: t.Optional[ErrorLevel] = None, - 783 error_message_context: int = 100, - 784 index_offset: int = 0, - 785 unnest_column_only: bool = False, - 786 alias_post_tablesample: bool = False, - 787 max_errors: int = 3, - 788 null_ordering: t.Optional[str] = None, - 789 ): - 790 self.error_level = error_level or ErrorLevel.IMMEDIATE - 791 self.error_message_context = error_message_context - 792 self.index_offset = index_offset - 793 self.unnest_column_only = unnest_column_only - 794 self.alias_post_tablesample = alias_post_tablesample - 795 self.max_errors = max_errors - 796 self.null_ordering = null_ordering - 797 self.reset() - 798 - 799 def reset(self): - 800 self.sql = "" - 801 self.errors = [] - 802 self._tokens = [] - 803 self._index = 0 - 804 self._curr = None - 805 self._next = None - 806 self._prev = None - 807 self._prev_comments = None + 760 TRANSACTION_CHARACTERISTICS = { + 761 "ISOLATION LEVEL REPEATABLE READ", + 762 "ISOLATION LEVEL READ COMMITTED", + 763 "ISOLATION LEVEL READ UNCOMMITTED", + 764 "ISOLATION LEVEL SERIALIZABLE", + 765 "READ WRITE", + 766 "READ ONLY", + 767 } + 768 + 769 INSERT_ALTERNATIVES = {"ABORT", "FAIL", "IGNORE", "REPLACE", "ROLLBACK"} + 770 + 771 CLONE_KINDS = {"TIMESTAMP", "OFFSET", "STATEMENT"} + 772 + 773 WINDOW_ALIAS_TOKENS = ID_VAR_TOKENS - {TokenType.ROWS} + 774 WINDOW_BEFORE_PAREN_TOKENS = {TokenType.OVER} + 775 WINDOW_SIDES = {"FOLLOWING", "PRECEDING"} + 776 + 777 ADD_CONSTRAINT_TOKENS = {TokenType.CONSTRAINT, TokenType.PRIMARY_KEY, TokenType.FOREIGN_KEY} + 778 + 779 STRICT_CAST = True + 780 + 781 CONVERT_TYPE_FIRST = False + 782 + 783 PREFIXED_PIVOT_COLUMNS = False + 784 IDENTIFY_PIVOT_STRINGS = False + 785 + 786 LOG_BASE_FIRST = True + 787 LOG_DEFAULTS_TO_LN = False + 788 + 789 __slots__ = ( + 790 "error_level", + 791 "error_message_context", + 792 "sql", + 793 "errors", + 794 "index_offset", + 795 "unnest_column_only", + 796 "alias_post_tablesample", + 797 "max_errors", + 798 "null_ordering", + 799 "_tokens", + 800 "_index", + 801 "_curr", + 802 "_next", + 803 "_prev", + 804 "_prev_comments", + 805 "_show_trie", + 806 "_set_trie", + 807 ) 808 - 809 def parse( - 810 self, raw_tokens: t.List[Token], sql: t.Optional[str] = None - 811 ) -> t.List[t.Optional[exp.Expression]]: - 812 """ - 813 Parses a list of tokens and returns a list of syntax trees, one tree - 814 per parsed SQL statement. - 815 - 816 Args: - 817 raw_tokens: the list of tokens. - 818 sql: the original SQL string, used to produce helpful debug messages. - 819 - 820 Returns: - 821 The list of syntax trees. - 822 """ - 823 return self._parse( - 824 parse_method=self.__class__._parse_statement, raw_tokens=raw_tokens, sql=sql - 825 ) - 826 - 827 def parse_into( - 828 self, - 829 expression_types: exp.IntoType, - 830 raw_tokens: t.List[Token], - 831 sql: t.Optional[str] = None, - 832 ) -> t.List[t.Optional[exp.Expression]]: - 833 """ - 834 Parses a list of tokens into a given Expression type. If a collection of Expression - 835 types is given instead, this method will try to parse the token list into each one - 836 of them, stopping at the first for which the parsing succeeds. + 809 def __init__( + 810 self, + 811 error_level: t.Optional[ErrorLevel] = None, + 812 error_message_context: int = 100, + 813 index_offset: int = 0, + 814 unnest_column_only: bool = False, + 815 alias_post_tablesample: bool = False, + 816 max_errors: int = 3, + 817 null_ordering: t.Optional[str] = None, + 818 ): + 819 self.error_level = error_level or ErrorLevel.IMMEDIATE + 820 self.error_message_context = error_message_context + 821 self.index_offset = index_offset + 822 self.unnest_column_only = unnest_column_only + 823 self.alias_post_tablesample = alias_post_tablesample + 824 self.max_errors = max_errors + 825 self.null_ordering = null_ordering + 826 self.reset() + 827 + 828 def reset(self): + 829 self.sql = "" + 830 self.errors = [] + 831 self._tokens = [] + 832 self._index = 0 + 833 self._curr = None + 834 self._next = None + 835 self._prev = None + 836 self._prev_comments = None 837 - 838 Args: - 839 expression_types: the expression type(s) to try and parse the token list into. - 840 raw_tokens: the list of tokens. - 841 sql: the original SQL string, used to produce helpful debug messages. - 842 - 843 Returns: - 844 The target Expression. - 845 """ - 846 errors = [] - 847 for expression_type in ensure_collection(expression_types): - 848 parser = self.EXPRESSION_PARSERS.get(expression_type) - 849 if not parser: - 850 raise TypeError(f"No parser registered for {expression_type}") - 851 try: - 852 return self._parse(parser, raw_tokens, sql) - 853 except ParseError as e: - 854 e.errors[0]["into_expression"] = expression_type - 855 errors.append(e) - 856 raise ParseError( - 857 f"Failed to parse into {expression_types}", - 858 errors=merge_errors(errors), - 859 ) from errors[-1] - 860 - 861 def _parse( - 862 self, - 863 parse_method: t.Callable[[Parser], t.Optional[exp.Expression]], - 864 raw_tokens: t.List[Token], - 865 sql: t.Optional[str] = None, - 866 ) -> t.List[t.Optional[exp.Expression]]: - 867 self.reset() - 868 self.sql = sql or "" - 869 total = len(raw_tokens) - 870 chunks: t.List[t.List[Token]] = [[]] + 838 def parse( + 839 self, raw_tokens: t.List[Token], sql: t.Optional[str] = None + 840 ) -> t.List[t.Optional[exp.Expression]]: + 841 """ + 842 Parses a list of tokens and returns a list of syntax trees, one tree + 843 per parsed SQL statement. + 844 + 845 Args: + 846 raw_tokens: the list of tokens. + 847 sql: the original SQL string, used to produce helpful debug messages. + 848 + 849 Returns: + 850 The list of syntax trees. + 851 """ + 852 return self._parse( + 853 parse_method=self.__class__._parse_statement, raw_tokens=raw_tokens, sql=sql + 854 ) + 855 + 856 def parse_into( + 857 self, + 858 expression_types: exp.IntoType, + 859 raw_tokens: t.List[Token], + 860 sql: t.Optional[str] = None, + 861 ) -> t.List[t.Optional[exp.Expression]]: + 862 """ + 863 Parses a list of tokens into a given Expression type. If a collection of Expression + 864 types is given instead, this method will try to parse the token list into each one + 865 of them, stopping at the first for which the parsing succeeds. + 866 + 867 Args: + 868 expression_types: the expression type(s) to try and parse the token list into. + 869 raw_tokens: the list of tokens. + 870 sql: the original SQL string, used to produce helpful debug messages. 871 - 872 for i, token in enumerate(raw_tokens): - 873 if token.token_type == TokenType.SEMICOLON: - 874 if i < total - 1: - 875 chunks.append([]) - 876 else: - 877 chunks[-1].append(token) - 878 - 879 expressions = [] - 880 - 881 for tokens in chunks: - 882 self._index = -1 - 883 self._tokens = tokens - 884 self._advance() - 885 - 886 expressions.append(parse_method(self)) - 887 - 888 if self._index < len(self._tokens): - 889 self.raise_error("Invalid expression / Unexpected token") - 890 - 891 self.check_errors() - 892 - 893 return expressions - 894 - 895 def check_errors(self) -> None: - 896 """ - 897 Logs or raises any found errors, depending on the chosen error level setting. - 898 """ - 899 if self.error_level == ErrorLevel.WARN: - 900 for error in self.errors: - 901 logger.error(str(error)) - 902 elif self.error_level == ErrorLevel.RAISE and self.errors: - 903 raise ParseError( - 904 concat_messages(self.errors, self.max_errors), - 905 errors=merge_errors(self.errors), - 906 ) + 872 Returns: + 873 The target Expression. + 874 """ + 875 errors = [] + 876 for expression_type in ensure_collection(expression_types): + 877 parser = self.EXPRESSION_PARSERS.get(expression_type) + 878 if not parser: + 879 raise TypeError(f"No parser registered for {expression_type}") + 880 try: + 881 return self._parse(parser, raw_tokens, sql) + 882 except ParseError as e: + 883 e.errors[0]["into_expression"] = expression_type + 884 errors.append(e) + 885 raise ParseError( + 886 f"Failed to parse '{sql or raw_tokens}' into {expression_types}", + 887 errors=merge_errors(errors), + 888 ) from errors[-1] + 889 + 890 def _parse( + 891 self, + 892 parse_method: t.Callable[[Parser], t.Optional[exp.Expression]], + 893 raw_tokens: t.List[Token], + 894 sql: t.Optional[str] = None, + 895 ) -> t.List[t.Optional[exp.Expression]]: + 896 self.reset() + 897 self.sql = sql or "" + 898 total = len(raw_tokens) + 899 chunks: t.List[t.List[Token]] = [[]] + 900 + 901 for i, token in enumerate(raw_tokens): + 902 if token.token_type == TokenType.SEMICOLON: + 903 if i < total - 1: + 904 chunks.append([]) + 905 else: + 906 chunks[-1].append(token) 907 - 908 def raise_error(self, message: str, token: t.Optional[Token] = None) -> None: - 909 """ - 910 Appends an error in the list of recorded errors or raises it, depending on the chosen - 911 error level setting. - 912 """ - 913 token = token or self._curr or self._prev or Token.string("") - 914 start = token.start - 915 end = token.end + 1 - 916 start_context = self.sql[max(start - self.error_message_context, 0) : start] - 917 highlight = self.sql[start:end] - 918 end_context = self.sql[end : end + self.error_message_context] + 908 expressions = [] + 909 + 910 for tokens in chunks: + 911 self._index = -1 + 912 self._tokens = tokens + 913 self._advance() + 914 + 915 expressions.append(parse_method(self)) + 916 + 917 if self._index < len(self._tokens): + 918 self.raise_error("Invalid expression / Unexpected token") 919 - 920 error = ParseError.new( - 921 f"{message}. Line {token.line}, Col: {token.col}.\n" - 922 f" {start_context}\033[4m{highlight}\033[0m{end_context}", - 923 description=message, - 924 line=token.line, - 925 col=token.col, - 926 start_context=start_context, - 927 highlight=highlight, - 928 end_context=end_context, - 929 ) - 930 - 931 if self.error_level == ErrorLevel.IMMEDIATE: - 932 raise error - 933 - 934 self.errors.append(error) - 935 - 936 def expression( - 937 self, exp_class: t.Type[E], comments: t.Optional[t.List[str]] = None, **kwargs - 938 ) -> E: - 939 """ - 940 Creates a new, validated Expression. - 941 - 942 Args: - 943 exp_class: the expression class to instantiate. - 944 comments: an optional list of comments to attach to the expression. - 945 kwargs: the arguments to set for the expression along with their respective values. - 946 - 947 Returns: - 948 The target expression. - 949 """ - 950 instance = exp_class(**kwargs) - 951 instance.add_comments(comments) if comments else self._add_comments(instance) - 952 self.validate_expression(instance) - 953 return instance - 954 - 955 def _add_comments(self, expression: t.Optional[exp.Expression]) -> None: - 956 if expression and self._prev_comments: - 957 expression.add_comments(self._prev_comments) - 958 self._prev_comments = None + 920 self.check_errors() + 921 + 922 return expressions + 923 + 924 def check_errors(self) -> None: + 925 """ + 926 Logs or raises any found errors, depending on the chosen error level setting. + 927 """ + 928 if self.error_level == ErrorLevel.WARN: + 929 for error in self.errors: + 930 logger.error(str(error)) + 931 elif self.error_level == ErrorLevel.RAISE and self.errors: + 932 raise ParseError( + 933 concat_messages(self.errors, self.max_errors), + 934 errors=merge_errors(self.errors), + 935 ) + 936 + 937 def raise_error(self, message: str, token: t.Optional[Token] = None) -> None: + 938 """ + 939 Appends an error in the list of recorded errors or raises it, depending on the chosen + 940 error level setting. + 941 """ + 942 token = token or self._curr or self._prev or Token.string("") + 943 start = token.start + 944 end = token.end + 1 + 945 start_context = self.sql[max(start - self.error_message_context, 0) : start] + 946 highlight = self.sql[start:end] + 947 end_context = self.sql[end : end + self.error_message_context] + 948 + 949 error = ParseError.new( + 950 f"{message}. Line {token.line}, Col: {token.col}.\n" + 951 f" {start_context}\033[4m{highlight}\033[0m{end_context}", + 952 description=message, + 953 line=token.line, + 954 col=token.col, + 955 start_context=start_context, + 956 highlight=highlight, + 957 end_context=end_context, + 958 ) 959 - 960 def validate_expression( - 961 self, expression: exp.Expression, args: t.Optional[t.List] = None - 962 ) -> None: - 963 """ - 964 Validates an already instantiated expression, making sure that all its mandatory arguments - 965 are set. - 966 - 967 Args: - 968 expression: the expression to validate. - 969 args: an optional list of items that was used to instantiate the expression, if it's a Func. - 970 """ - 971 if self.error_level == ErrorLevel.IGNORE: - 972 return - 973 - 974 for error_message in expression.error_messages(args): - 975 self.raise_error(error_message) - 976 - 977 def _find_sql(self, start: Token, end: Token) -> str: - 978 return self.sql[start.start : end.end + 1] - 979 - 980 def _advance(self, times: int = 1) -> None: - 981 self._index += times - 982 self._curr = seq_get(self._tokens, self._index) - 983 self._next = seq_get(self._tokens, self._index + 1) - 984 if self._index > 0: - 985 self._prev = self._tokens[self._index - 1] - 986 self._prev_comments = self._prev.comments - 987 else: - 988 self._prev = None - 989 self._prev_comments = None - 990 - 991 def _retreat(self, index: int) -> None: - 992 if index != self._index: - 993 self._advance(index - self._index) - 994 - 995 def _parse_command(self) -> exp.Command: - 996 return self.expression(exp.Command, this=self._prev.text, expression=self._parse_string()) - 997 - 998 def _parse_comment(self, allow_exists: bool = True) -> exp.Expression: - 999 start = self._prev -1000 exists = self._parse_exists() if allow_exists else None -1001 -1002 self._match(TokenType.ON) -1003 -1004 kind = self._match_set(self.CREATABLES) and self._prev + 960 if self.error_level == ErrorLevel.IMMEDIATE: + 961 raise error + 962 + 963 self.errors.append(error) + 964 + 965 def expression( + 966 self, exp_class: t.Type[E], comments: t.Optional[t.List[str]] = None, **kwargs + 967 ) -> E: + 968 """ + 969 Creates a new, validated Expression. + 970 + 971 Args: + 972 exp_class: the expression class to instantiate. + 973 comments: an optional list of comments to attach to the expression. + 974 kwargs: the arguments to set for the expression along with their respective values. + 975 + 976 Returns: + 977 The target expression. + 978 """ + 979 instance = exp_class(**kwargs) + 980 instance.add_comments(comments) if comments else self._add_comments(instance) + 981 self.validate_expression(instance) + 982 return instance + 983 + 984 def _add_comments(self, expression: t.Optional[exp.Expression]) -> None: + 985 if expression and self._prev_comments: + 986 expression.add_comments(self._prev_comments) + 987 self._prev_comments = None + 988 + 989 def validate_expression( + 990 self, expression: exp.Expression, args: t.Optional[t.List] = None + 991 ) -> None: + 992 """ + 993 Validates an already instantiated expression, making sure that all its mandatory arguments + 994 are set. + 995 + 996 Args: + 997 expression: the expression to validate. + 998 args: an optional list of items that was used to instantiate the expression, if it's a Func. + 999 """ +1000 if self.error_level == ErrorLevel.IGNORE: +1001 return +1002 +1003 for error_message in expression.error_messages(args): +1004 self.raise_error(error_message) 1005 -1006 if not kind: -1007 return self._parse_as_command(start) +1006 def _find_sql(self, start: Token, end: Token) -> str: +1007 return self.sql[start.start : end.end + 1] 1008 -1009 if kind.token_type in (TokenType.FUNCTION, TokenType.PROCEDURE): -1010 this = self._parse_user_defined_function(kind=kind.token_type) -1011 elif kind.token_type == TokenType.TABLE: -1012 this = self._parse_table(alias_tokens=self.COMMENT_TABLE_ALIAS_TOKENS) -1013 elif kind.token_type == TokenType.COLUMN: -1014 this = self._parse_column() -1015 else: -1016 this = self._parse_id_var() -1017 -1018 self._match(TokenType.IS) +1009 def _advance(self, times: int = 1) -> None: +1010 self._index += times +1011 self._curr = seq_get(self._tokens, self._index) +1012 self._next = seq_get(self._tokens, self._index + 1) +1013 if self._index > 0: +1014 self._prev = self._tokens[self._index - 1] +1015 self._prev_comments = self._prev.comments +1016 else: +1017 self._prev = None +1018 self._prev_comments = None 1019 -1020 return self.expression( -1021 exp.Comment, this=this, kind=kind.text, expression=self._parse_string(), exists=exists -1022 ) +1020 def _retreat(self, index: int) -> None: +1021 if index != self._index: +1022 self._advance(index - self._index) 1023 -1024 # https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl -1025 def _parse_ttl(self) -> exp.Expression: -1026 def _parse_ttl_action() -> t.Optional[exp.Expression]: -1027 this = self._parse_bitwise() -1028 -1029 if self._match_text_seq("DELETE"): -1030 return self.expression(exp.MergeTreeTTLAction, this=this, delete=True) -1031 if self._match_text_seq("RECOMPRESS"): -1032 return self.expression( -1033 exp.MergeTreeTTLAction, this=this, recompress=self._parse_bitwise() -1034 ) -1035 if self._match_text_seq("TO", "DISK"): -1036 return self.expression( -1037 exp.MergeTreeTTLAction, this=this, to_disk=self._parse_string() -1038 ) -1039 if self._match_text_seq("TO", "VOLUME"): -1040 return self.expression( -1041 exp.MergeTreeTTLAction, this=this, to_volume=self._parse_string() -1042 ) -1043 -1044 return this -1045 -1046 expressions = self._parse_csv(_parse_ttl_action) -1047 where = self._parse_where() -1048 group = self._parse_group() -1049 -1050 aggregates = None -1051 if group and self._match(TokenType.SET): -1052 aggregates = self._parse_csv(self._parse_set_item) -1053 -1054 return self.expression( -1055 exp.MergeTreeTTL, -1056 expressions=expressions, -1057 where=where, -1058 group=group, -1059 aggregates=aggregates, -1060 ) -1061 -1062 def _parse_statement(self) -> t.Optional[exp.Expression]: -1063 if self._curr is None: -1064 return None -1065 -1066 if self._match_set(self.STATEMENT_PARSERS): -1067 return self.STATEMENT_PARSERS[self._prev.token_type](self) -1068 -1069 if self._match_set(Tokenizer.COMMANDS): -1070 return self._parse_command() -1071 -1072 expression = self._parse_expression() -1073 expression = self._parse_set_operations(expression) if expression else self._parse_select() -1074 return self._parse_query_modifiers(expression) -1075 -1076 def _parse_drop(self) -> t.Optional[exp.Drop | exp.Command]: -1077 start = self._prev -1078 temporary = self._match(TokenType.TEMPORARY) -1079 materialized = self._match_text_seq("MATERIALIZED") -1080 kind = self._match_set(self.CREATABLES) and self._prev.text -1081 if not kind: -1082 return self._parse_as_command(start) -1083 -1084 return self.expression( -1085 exp.Drop, -1086 exists=self._parse_exists(), -1087 this=self._parse_table(schema=True), -1088 kind=kind, -1089 temporary=temporary, -1090 materialized=materialized, -1091 cascade=self._match_text_seq("CASCADE"), -1092 constraints=self._match_text_seq("CONSTRAINTS"), -1093 purge=self._match_text_seq("PURGE"), -1094 ) -1095 -1096 def _parse_exists(self, not_: bool = False) -> t.Optional[bool]: -1097 return ( -1098 self._match(TokenType.IF) -1099 and (not not_ or self._match(TokenType.NOT)) -1100 and self._match(TokenType.EXISTS) -1101 ) -1102 -1103 def _parse_create(self) -> t.Optional[exp.Expression]: -1104 start = self._prev -1105 replace = self._prev.text.upper() == "REPLACE" or self._match_pair( -1106 TokenType.OR, TokenType.REPLACE -1107 ) -1108 unique = self._match(TokenType.UNIQUE) -1109 -1110 if self._match_pair(TokenType.TABLE, TokenType.FUNCTION, advance=False): -1111 self._match(TokenType.TABLE) +1024 def _parse_command(self) -> exp.Command: +1025 return self.expression(exp.Command, this=self._prev.text, expression=self._parse_string()) +1026 +1027 def _parse_comment(self, allow_exists: bool = True) -> exp.Expression: +1028 start = self._prev +1029 exists = self._parse_exists() if allow_exists else None +1030 +1031 self._match(TokenType.ON) +1032 +1033 kind = self._match_set(self.CREATABLES) and self._prev +1034 +1035 if not kind: +1036 return self._parse_as_command(start) +1037 +1038 if kind.token_type in (TokenType.FUNCTION, TokenType.PROCEDURE): +1039 this = self._parse_user_defined_function(kind=kind.token_type) +1040 elif kind.token_type == TokenType.TABLE: +1041 this = self._parse_table(alias_tokens=self.COMMENT_TABLE_ALIAS_TOKENS) +1042 elif kind.token_type == TokenType.COLUMN: +1043 this = self._parse_column() +1044 else: +1045 this = self._parse_id_var() +1046 +1047 self._match(TokenType.IS) +1048 +1049 return self.expression( +1050 exp.Comment, this=this, kind=kind.text, expression=self._parse_string(), exists=exists +1051 ) +1052 +1053 # https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl +1054 def _parse_ttl(self) -> exp.Expression: +1055 def _parse_ttl_action() -> t.Optional[exp.Expression]: +1056 this = self._parse_bitwise() +1057 +1058 if self._match_text_seq("DELETE"): +1059 return self.expression(exp.MergeTreeTTLAction, this=this, delete=True) +1060 if self._match_text_seq("RECOMPRESS"): +1061 return self.expression( +1062 exp.MergeTreeTTLAction, this=this, recompress=self._parse_bitwise() +1063 ) +1064 if self._match_text_seq("TO", "DISK"): +1065 return self.expression( +1066 exp.MergeTreeTTLAction, this=this, to_disk=self._parse_string() +1067 ) +1068 if self._match_text_seq("TO", "VOLUME"): +1069 return self.expression( +1070 exp.MergeTreeTTLAction, this=this, to_volume=self._parse_string() +1071 ) +1072 +1073 return this +1074 +1075 expressions = self._parse_csv(_parse_ttl_action) +1076 where = self._parse_where() +1077 group = self._parse_group() +1078 +1079 aggregates = None +1080 if group and self._match(TokenType.SET): +1081 aggregates = self._parse_csv(self._parse_set_item) +1082 +1083 return self.expression( +1084 exp.MergeTreeTTL, +1085 expressions=expressions, +1086 where=where, +1087 group=group, +1088 aggregates=aggregates, +1089 ) +1090 +1091 def _parse_statement(self) -> t.Optional[exp.Expression]: +1092 if self._curr is None: +1093 return None +1094 +1095 if self._match_set(self.STATEMENT_PARSERS): +1096 return self.STATEMENT_PARSERS[self._prev.token_type](self) +1097 +1098 if self._match_set(Tokenizer.COMMANDS): +1099 return self._parse_command() +1100 +1101 expression = self._parse_expression() +1102 expression = self._parse_set_operations(expression) if expression else self._parse_select() +1103 return self._parse_query_modifiers(expression) +1104 +1105 def _parse_drop(self) -> t.Optional[exp.Drop | exp.Command]: +1106 start = self._prev +1107 temporary = self._match(TokenType.TEMPORARY) +1108 materialized = self._match_text_seq("MATERIALIZED") +1109 kind = self._match_set(self.CREATABLES) and self._prev.text +1110 if not kind: +1111 return self._parse_as_command(start) 1112 -1113 properties = None -1114 create_token = self._match_set(self.CREATABLES) and self._prev -1115 -1116 if not create_token: -1117 properties = self._parse_properties() # exp.Properties.Location.POST_CREATE -1118 create_token = self._match_set(self.CREATABLES) and self._prev -1119 -1120 if not properties or not create_token: -1121 return self._parse_as_command(start) -1122 -1123 exists = self._parse_exists(not_=True) -1124 this = None -1125 expression = None -1126 indexes = None -1127 no_schema_binding = None -1128 begin = None -1129 clone = None -1130 -1131 if create_token.token_type in (TokenType.FUNCTION, TokenType.PROCEDURE): -1132 this = self._parse_user_defined_function(kind=create_token.token_type) -1133 temp_properties = self._parse_properties() -1134 if properties and temp_properties: -1135 properties.expressions.extend(temp_properties.expressions) -1136 elif temp_properties: -1137 properties = temp_properties +1113 return self.expression( +1114 exp.Drop, +1115 exists=self._parse_exists(), +1116 this=self._parse_table(schema=True), +1117 kind=kind, +1118 temporary=temporary, +1119 materialized=materialized, +1120 cascade=self._match_text_seq("CASCADE"), +1121 constraints=self._match_text_seq("CONSTRAINTS"), +1122 purge=self._match_text_seq("PURGE"), +1123 ) +1124 +1125 def _parse_exists(self, not_: bool = False) -> t.Optional[bool]: +1126 return ( +1127 self._match(TokenType.IF) +1128 and (not not_ or self._match(TokenType.NOT)) +1129 and self._match(TokenType.EXISTS) +1130 ) +1131 +1132 def _parse_create(self) -> t.Optional[exp.Expression]: +1133 start = self._prev +1134 replace = self._prev.text.upper() == "REPLACE" or self._match_pair( +1135 TokenType.OR, TokenType.REPLACE +1136 ) +1137 unique = self._match(TokenType.UNIQUE) 1138 -1139 self._match(TokenType.ALIAS) -1140 begin = self._match(TokenType.BEGIN) -1141 return_ = self._match_text_seq("RETURN") -1142 expression = self._parse_statement() -1143 -1144 if return_: -1145 expression = self.expression(exp.Return, this=expression) -1146 elif create_token.token_type == TokenType.INDEX: -1147 this = self._parse_index(index=self._parse_id_var()) -1148 elif create_token.token_type in self.DB_CREATABLES: -1149 table_parts = self._parse_table_parts(schema=True) -1150 -1151 # exp.Properties.Location.POST_NAME -1152 if self._match(TokenType.COMMA): -1153 temp_properties = self._parse_properties(before=True) -1154 if properties and temp_properties: -1155 properties.expressions.extend(temp_properties.expressions) -1156 elif temp_properties: -1157 properties = temp_properties -1158 -1159 this = self._parse_schema(this=table_parts) -1160 -1161 # exp.Properties.Location.POST_SCHEMA and POST_WITH +1139 if self._match_pair(TokenType.TABLE, TokenType.FUNCTION, advance=False): +1140 self._match(TokenType.TABLE) +1141 +1142 properties = None +1143 create_token = self._match_set(self.CREATABLES) and self._prev +1144 +1145 if not create_token: +1146 properties = self._parse_properties() # exp.Properties.Location.POST_CREATE +1147 create_token = self._match_set(self.CREATABLES) and self._prev +1148 +1149 if not properties or not create_token: +1150 return self._parse_as_command(start) +1151 +1152 exists = self._parse_exists(not_=True) +1153 this = None +1154 expression = None +1155 indexes = None +1156 no_schema_binding = None +1157 begin = None +1158 clone = None +1159 +1160 if create_token.token_type in (TokenType.FUNCTION, TokenType.PROCEDURE): +1161 this = self._parse_user_defined_function(kind=create_token.token_type) 1162 temp_properties = self._parse_properties() 1163 if properties and temp_properties: 1164 properties.expressions.extend(temp_properties.expressions) @@ -1260,3391 +1260,3508 @@ 1166 properties = temp_properties 1167 1168 self._match(TokenType.ALIAS) -1169 -1170 # exp.Properties.Location.POST_ALIAS -1171 if not ( -1172 self._match(TokenType.SELECT, advance=False) -1173 or self._match(TokenType.WITH, advance=False) -1174 or self._match(TokenType.L_PAREN, advance=False) -1175 ): -1176 temp_properties = self._parse_properties() -1177 if properties and temp_properties: -1178 properties.expressions.extend(temp_properties.expressions) -1179 elif temp_properties: -1180 properties = temp_properties -1181 -1182 expression = self._parse_ddl_select() -1183 -1184 if create_token.token_type == TokenType.TABLE: -1185 indexes = [] -1186 while True: -1187 index = self._parse_index() -1188 -1189 # exp.Properties.Location.POST_EXPRESSION or exp.Properties.Location.POST_INDEX -1190 temp_properties = self._parse_properties() -1191 if properties and temp_properties: -1192 properties.expressions.extend(temp_properties.expressions) -1193 elif temp_properties: -1194 properties = temp_properties -1195 -1196 if not index: -1197 break -1198 else: -1199 self._match(TokenType.COMMA) -1200 indexes.append(index) -1201 elif create_token.token_type == TokenType.VIEW: -1202 if self._match_text_seq("WITH", "NO", "SCHEMA", "BINDING"): -1203 no_schema_binding = True -1204 -1205 if self._match_text_seq("CLONE"): -1206 clone = self._parse_table(schema=True) -1207 when = self._match_texts({"AT", "BEFORE"}) and self._prev.text.upper() -1208 clone_kind = ( -1209 self._match(TokenType.L_PAREN) -1210 and self._match_texts(self.CLONE_KINDS) -1211 and self._prev.text.upper() -1212 ) -1213 clone_expression = self._match(TokenType.FARROW) and self._parse_bitwise() -1214 self._match(TokenType.R_PAREN) -1215 clone = self.expression( -1216 exp.Clone, this=clone, when=when, kind=clone_kind, expression=clone_expression -1217 ) -1218 -1219 return self.expression( -1220 exp.Create, -1221 this=this, -1222 kind=create_token.text, -1223 replace=replace, -1224 unique=unique, -1225 expression=expression, -1226 exists=exists, -1227 properties=properties, -1228 indexes=indexes, -1229 no_schema_binding=no_schema_binding, -1230 begin=begin, -1231 clone=clone, -1232 ) +1169 begin = self._match(TokenType.BEGIN) +1170 return_ = self._match_text_seq("RETURN") +1171 expression = self._parse_statement() +1172 +1173 if return_: +1174 expression = self.expression(exp.Return, this=expression) +1175 elif create_token.token_type == TokenType.INDEX: +1176 this = self._parse_index(index=self._parse_id_var()) +1177 elif create_token.token_type in self.DB_CREATABLES: +1178 table_parts = self._parse_table_parts(schema=True) +1179 +1180 # exp.Properties.Location.POST_NAME +1181 if self._match(TokenType.COMMA): +1182 temp_properties = self._parse_properties(before=True) +1183 if properties and temp_properties: +1184 properties.expressions.extend(temp_properties.expressions) +1185 elif temp_properties: +1186 properties = temp_properties +1187 +1188 this = self._parse_schema(this=table_parts) +1189 +1190 # exp.Properties.Location.POST_SCHEMA and POST_WITH +1191 temp_properties = self._parse_properties() +1192 if properties and temp_properties: +1193 properties.expressions.extend(temp_properties.expressions) +1194 elif temp_properties: +1195 properties = temp_properties +1196 +1197 self._match(TokenType.ALIAS) +1198 +1199 # exp.Properties.Location.POST_ALIAS +1200 if not ( +1201 self._match(TokenType.SELECT, advance=False) +1202 or self._match(TokenType.WITH, advance=False) +1203 or self._match(TokenType.L_PAREN, advance=False) +1204 ): +1205 temp_properties = self._parse_properties() +1206 if properties and temp_properties: +1207 properties.expressions.extend(temp_properties.expressions) +1208 elif temp_properties: +1209 properties = temp_properties +1210 +1211 expression = self._parse_ddl_select() +1212 +1213 if create_token.token_type == TokenType.TABLE: +1214 indexes = [] +1215 while True: +1216 index = self._parse_index() +1217 +1218 # exp.Properties.Location.POST_EXPRESSION or exp.Properties.Location.POST_INDEX +1219 temp_properties = self._parse_properties() +1220 if properties and temp_properties: +1221 properties.expressions.extend(temp_properties.expressions) +1222 elif temp_properties: +1223 properties = temp_properties +1224 +1225 if not index: +1226 break +1227 else: +1228 self._match(TokenType.COMMA) +1229 indexes.append(index) +1230 elif create_token.token_type == TokenType.VIEW: +1231 if self._match_text_seq("WITH", "NO", "SCHEMA", "BINDING"): +1232 no_schema_binding = True 1233 -1234 def _parse_property_before(self) -> t.Optional[exp.Expression]: -1235 # only used for teradata currently -1236 self._match(TokenType.COMMA) -1237 -1238 kwargs = { -1239 "no": self._match_text_seq("NO"), -1240 "dual": self._match_text_seq("DUAL"), -1241 "before": self._match_text_seq("BEFORE"), -1242 "default": self._match_text_seq("DEFAULT"), -1243 "local": (self._match_text_seq("LOCAL") and "LOCAL") -1244 or (self._match_text_seq("NOT", "LOCAL") and "NOT LOCAL"), -1245 "after": self._match_text_seq("AFTER"), -1246 "minimum": self._match_texts(("MIN", "MINIMUM")), -1247 "maximum": self._match_texts(("MAX", "MAXIMUM")), -1248 } -1249 -1250 if self._match_texts(self.PROPERTY_PARSERS): -1251 parser = self.PROPERTY_PARSERS[self._prev.text.upper()] -1252 try: -1253 return parser(self, **{k: v for k, v in kwargs.items() if v}) -1254 except TypeError: -1255 self.raise_error(f"Cannot parse property '{self._prev.text}'") -1256 -1257 return None -1258 -1259 def _parse_property(self) -> t.Optional[exp.Expression]: -1260 if self._match_texts(self.PROPERTY_PARSERS): -1261 return self.PROPERTY_PARSERS[self._prev.text.upper()](self) +1234 if self._match_text_seq("CLONE"): +1235 clone = self._parse_table(schema=True) +1236 when = self._match_texts({"AT", "BEFORE"}) and self._prev.text.upper() +1237 clone_kind = ( +1238 self._match(TokenType.L_PAREN) +1239 and self._match_texts(self.CLONE_KINDS) +1240 and self._prev.text.upper() +1241 ) +1242 clone_expression = self._match(TokenType.FARROW) and self._parse_bitwise() +1243 self._match(TokenType.R_PAREN) +1244 clone = self.expression( +1245 exp.Clone, this=clone, when=when, kind=clone_kind, expression=clone_expression +1246 ) +1247 +1248 return self.expression( +1249 exp.Create, +1250 this=this, +1251 kind=create_token.text, +1252 replace=replace, +1253 unique=unique, +1254 expression=expression, +1255 exists=exists, +1256 properties=properties, +1257 indexes=indexes, +1258 no_schema_binding=no_schema_binding, +1259 begin=begin, +1260 clone=clone, +1261 ) 1262 -1263 if self._match_pair(TokenType.DEFAULT, TokenType.CHARACTER_SET): -1264 return self._parse_character_set(default=True) -1265 -1266 if self._match_text_seq("COMPOUND", "SORTKEY"): -1267 return self._parse_sortkey(compound=True) -1268 -1269 if self._match_text_seq("SQL", "SECURITY"): -1270 return self.expression(exp.SqlSecurityProperty, definer=self._match_text_seq("DEFINER")) -1271 -1272 assignment = self._match_pair( -1273 TokenType.VAR, TokenType.EQ, advance=False -1274 ) or self._match_pair(TokenType.STRING, TokenType.EQ, advance=False) -1275 -1276 if assignment: -1277 key = self._parse_var_or_string() -1278 self._match(TokenType.EQ) -1279 return self.expression(exp.Property, this=key, value=self._parse_column()) -1280 -1281 return None -1282 -1283 def _parse_stored(self) -> exp.Expression: -1284 self._match(TokenType.ALIAS) +1263 def _parse_property_before(self) -> t.Optional[exp.Expression]: +1264 # only used for teradata currently +1265 self._match(TokenType.COMMA) +1266 +1267 kwargs = { +1268 "no": self._match_text_seq("NO"), +1269 "dual": self._match_text_seq("DUAL"), +1270 "before": self._match_text_seq("BEFORE"), +1271 "default": self._match_text_seq("DEFAULT"), +1272 "local": (self._match_text_seq("LOCAL") and "LOCAL") +1273 or (self._match_text_seq("NOT", "LOCAL") and "NOT LOCAL"), +1274 "after": self._match_text_seq("AFTER"), +1275 "minimum": self._match_texts(("MIN", "MINIMUM")), +1276 "maximum": self._match_texts(("MAX", "MAXIMUM")), +1277 } +1278 +1279 if self._match_texts(self.PROPERTY_PARSERS): +1280 parser = self.PROPERTY_PARSERS[self._prev.text.upper()] +1281 try: +1282 return parser(self, **{k: v for k, v in kwargs.items() if v}) +1283 except TypeError: +1284 self.raise_error(f"Cannot parse property '{self._prev.text}'") 1285 -1286 input_format = self._parse_string() if self._match_text_seq("INPUTFORMAT") else None -1287 output_format = self._parse_string() if self._match_text_seq("OUTPUTFORMAT") else None -1288 -1289 return self.expression( -1290 exp.FileFormatProperty, -1291 this=self.expression( -1292 exp.InputOutputFormat, input_format=input_format, output_format=output_format -1293 ) -1294 if input_format or output_format -1295 else self._parse_var_or_string() or self._parse_number() or self._parse_id_var(), -1296 ) +1286 return None +1287 +1288 def _parse_property(self) -> t.Optional[exp.Expression]: +1289 if self._match_texts(self.PROPERTY_PARSERS): +1290 return self.PROPERTY_PARSERS[self._prev.text.upper()](self) +1291 +1292 if self._match_pair(TokenType.DEFAULT, TokenType.CHARACTER_SET): +1293 return self._parse_character_set(default=True) +1294 +1295 if self._match_text_seq("COMPOUND", "SORTKEY"): +1296 return self._parse_sortkey(compound=True) 1297 -1298 def _parse_property_assignment(self, exp_class: t.Type[exp.Expression]) -> exp.Expression: -1299 self._match(TokenType.EQ) -1300 self._match(TokenType.ALIAS) -1301 return self.expression(exp_class, this=self._parse_field()) -1302 -1303 def _parse_properties(self, before: t.Optional[bool] = None) -> t.Optional[exp.Expression]: -1304 properties = [] -1305 -1306 while True: -1307 if before: -1308 prop = self._parse_property_before() -1309 else: -1310 prop = self._parse_property() +1298 if self._match_text_seq("SQL", "SECURITY"): +1299 return self.expression(exp.SqlSecurityProperty, definer=self._match_text_seq("DEFINER")) +1300 +1301 assignment = self._match_pair( +1302 TokenType.VAR, TokenType.EQ, advance=False +1303 ) or self._match_pair(TokenType.STRING, TokenType.EQ, advance=False) +1304 +1305 if assignment: +1306 key = self._parse_var_or_string() +1307 self._match(TokenType.EQ) +1308 return self.expression(exp.Property, this=key, value=self._parse_column()) +1309 +1310 return None 1311 -1312 if not prop: -1313 break -1314 for p in ensure_list(prop): -1315 properties.append(p) -1316 -1317 if properties: -1318 return self.expression(exp.Properties, expressions=properties) -1319 -1320 return None -1321 -1322 def _parse_fallback(self, no: bool = False) -> exp.Expression: -1323 return self.expression( -1324 exp.FallbackProperty, no=no, protection=self._match_text_seq("PROTECTION") +1312 def _parse_stored(self) -> exp.Expression: +1313 self._match(TokenType.ALIAS) +1314 +1315 input_format = self._parse_string() if self._match_text_seq("INPUTFORMAT") else None +1316 output_format = self._parse_string() if self._match_text_seq("OUTPUTFORMAT") else None +1317 +1318 return self.expression( +1319 exp.FileFormatProperty, +1320 this=self.expression( +1321 exp.InputOutputFormat, input_format=input_format, output_format=output_format +1322 ) +1323 if input_format or output_format +1324 else self._parse_var_or_string() or self._parse_number() or self._parse_id_var(), 1325 ) 1326 -1327 def _parse_volatile_property(self) -> exp.Expression: -1328 if self._index >= 2: -1329 pre_volatile_token = self._tokens[self._index - 2] -1330 else: -1331 pre_volatile_token = None -1332 -1333 if pre_volatile_token and pre_volatile_token.token_type in ( -1334 TokenType.CREATE, -1335 TokenType.REPLACE, -1336 TokenType.UNIQUE, -1337 ): -1338 return exp.VolatileProperty() -1339 -1340 return self.expression(exp.StabilityProperty, this=exp.Literal.string("VOLATILE")) -1341 -1342 def _parse_with_property( -1343 self, -1344 ) -> t.Union[t.Optional[exp.Expression], t.List[t.Optional[exp.Expression]]]: -1345 self._match(TokenType.WITH) -1346 if self._match(TokenType.L_PAREN, advance=False): -1347 return self._parse_wrapped_csv(self._parse_property) +1327 def _parse_property_assignment(self, exp_class: t.Type[exp.Expression]) -> exp.Expression: +1328 self._match(TokenType.EQ) +1329 self._match(TokenType.ALIAS) +1330 return self.expression(exp_class, this=self._parse_field()) +1331 +1332 def _parse_properties(self, before: t.Optional[bool] = None) -> t.Optional[exp.Expression]: +1333 properties = [] +1334 +1335 while True: +1336 if before: +1337 prop = self._parse_property_before() +1338 else: +1339 prop = self._parse_property() +1340 +1341 if not prop: +1342 break +1343 for p in ensure_list(prop): +1344 properties.append(p) +1345 +1346 if properties: +1347 return self.expression(exp.Properties, expressions=properties) 1348 -1349 if self._match_text_seq("JOURNAL"): -1350 return self._parse_withjournaltable() -1351 -1352 if self._match_text_seq("DATA"): -1353 return self._parse_withdata(no=False) -1354 elif self._match_text_seq("NO", "DATA"): -1355 return self._parse_withdata(no=True) -1356 -1357 if not self._next: -1358 return None -1359 -1360 return self._parse_withisolatedloading() +1349 return None +1350 +1351 def _parse_fallback(self, no: bool = False) -> exp.Expression: +1352 return self.expression( +1353 exp.FallbackProperty, no=no, protection=self._match_text_seq("PROTECTION") +1354 ) +1355 +1356 def _parse_volatile_property(self) -> exp.Expression: +1357 if self._index >= 2: +1358 pre_volatile_token = self._tokens[self._index - 2] +1359 else: +1360 pre_volatile_token = None 1361 -1362 # https://dev.mysql.com/doc/refman/8.0/en/create-view.html -1363 def _parse_definer(self) -> t.Optional[exp.Expression]: -1364 self._match(TokenType.EQ) -1365 -1366 user = self._parse_id_var() -1367 self._match(TokenType.PARAMETER) -1368 host = self._parse_id_var() or (self._match(TokenType.MOD) and self._prev.text) -1369 -1370 if not user or not host: -1371 return None -1372 -1373 return exp.DefinerProperty(this=f"{user}@{host}") -1374 -1375 def _parse_withjournaltable(self) -> exp.Expression: -1376 self._match(TokenType.TABLE) -1377 self._match(TokenType.EQ) -1378 return self.expression(exp.WithJournalTableProperty, this=self._parse_table_parts()) -1379 -1380 def _parse_log(self, no: bool = False) -> exp.Expression: -1381 return self.expression(exp.LogProperty, no=no) -1382 -1383 def _parse_journal(self, **kwargs) -> exp.Expression: -1384 return self.expression(exp.JournalProperty, **kwargs) +1362 if pre_volatile_token and pre_volatile_token.token_type in ( +1363 TokenType.CREATE, +1364 TokenType.REPLACE, +1365 TokenType.UNIQUE, +1366 ): +1367 return exp.VolatileProperty() +1368 +1369 return self.expression(exp.StabilityProperty, this=exp.Literal.string("VOLATILE")) +1370 +1371 def _parse_with_property( +1372 self, +1373 ) -> t.Union[t.Optional[exp.Expression], t.List[t.Optional[exp.Expression]]]: +1374 self._match(TokenType.WITH) +1375 if self._match(TokenType.L_PAREN, advance=False): +1376 return self._parse_wrapped_csv(self._parse_property) +1377 +1378 if self._match_text_seq("JOURNAL"): +1379 return self._parse_withjournaltable() +1380 +1381 if self._match_text_seq("DATA"): +1382 return self._parse_withdata(no=False) +1383 elif self._match_text_seq("NO", "DATA"): +1384 return self._parse_withdata(no=True) 1385 -1386 def _parse_checksum(self) -> exp.Expression: -1387 self._match(TokenType.EQ) +1386 if not self._next: +1387 return None 1388 -1389 on = None -1390 if self._match(TokenType.ON): -1391 on = True -1392 elif self._match_text_seq("OFF"): -1393 on = False -1394 default = self._match(TokenType.DEFAULT) -1395 -1396 return self.expression( -1397 exp.ChecksumProperty, -1398 on=on, -1399 default=default, -1400 ) +1389 return self._parse_withisolatedloading() +1390 +1391 # https://dev.mysql.com/doc/refman/8.0/en/create-view.html +1392 def _parse_definer(self) -> t.Optional[exp.Expression]: +1393 self._match(TokenType.EQ) +1394 +1395 user = self._parse_id_var() +1396 self._match(TokenType.PARAMETER) +1397 host = self._parse_id_var() or (self._match(TokenType.MOD) and self._prev.text) +1398 +1399 if not user or not host: +1400 return None 1401 -1402 def _parse_cluster(self) -> t.Optional[exp.Expression]: -1403 if not self._match_text_seq("BY"): -1404 self._retreat(self._index - 1) -1405 return None -1406 return self.expression( -1407 exp.Cluster, -1408 expressions=self._parse_csv(self._parse_ordered), -1409 ) -1410 -1411 def _parse_freespace(self) -> exp.Expression: -1412 self._match(TokenType.EQ) -1413 return self.expression( -1414 exp.FreespaceProperty, this=self._parse_number(), percent=self._match(TokenType.PERCENT) -1415 ) -1416 -1417 def _parse_mergeblockratio(self, no: bool = False, default: bool = False) -> exp.Expression: -1418 if self._match(TokenType.EQ): -1419 return self.expression( -1420 exp.MergeBlockRatioProperty, -1421 this=self._parse_number(), -1422 percent=self._match(TokenType.PERCENT), -1423 ) -1424 return self.expression( -1425 exp.MergeBlockRatioProperty, -1426 no=no, -1427 default=default, -1428 ) -1429 -1430 def _parse_datablocksize( -1431 self, -1432 default: t.Optional[bool] = None, -1433 minimum: t.Optional[bool] = None, -1434 maximum: t.Optional[bool] = None, -1435 ) -> exp.Expression: -1436 self._match(TokenType.EQ) -1437 size = self._parse_number() -1438 units = None -1439 if self._match_texts(("BYTES", "KBYTES", "KILOBYTES")): -1440 units = self._prev.text -1441 return self.expression( -1442 exp.DataBlocksizeProperty, -1443 size=size, -1444 units=units, -1445 default=default, -1446 minimum=minimum, -1447 maximum=maximum, -1448 ) -1449 -1450 def _parse_blockcompression(self) -> exp.Expression: -1451 self._match(TokenType.EQ) -1452 always = self._match_text_seq("ALWAYS") -1453 manual = self._match_text_seq("MANUAL") -1454 never = self._match_text_seq("NEVER") -1455 default = self._match_text_seq("DEFAULT") -1456 autotemp = None -1457 if self._match_text_seq("AUTOTEMP"): -1458 autotemp = self._parse_schema() -1459 -1460 return self.expression( -1461 exp.BlockCompressionProperty, -1462 always=always, -1463 manual=manual, -1464 never=never, -1465 default=default, -1466 autotemp=autotemp, -1467 ) -1468 -1469 def _parse_withisolatedloading(self) -> exp.Expression: -1470 no = self._match_text_seq("NO") -1471 concurrent = self._match_text_seq("CONCURRENT") -1472 self._match_text_seq("ISOLATED", "LOADING") -1473 for_all = self._match_text_seq("FOR", "ALL") -1474 for_insert = self._match_text_seq("FOR", "INSERT") -1475 for_none = self._match_text_seq("FOR", "NONE") -1476 return self.expression( -1477 exp.IsolatedLoadingProperty, -1478 no=no, -1479 concurrent=concurrent, -1480 for_all=for_all, -1481 for_insert=for_insert, -1482 for_none=for_none, -1483 ) -1484 -1485 def _parse_locking(self) -> exp.Expression: -1486 if self._match(TokenType.TABLE): -1487 kind = "TABLE" -1488 elif self._match(TokenType.VIEW): -1489 kind = "VIEW" -1490 elif self._match(TokenType.ROW): -1491 kind = "ROW" -1492 elif self._match_text_seq("DATABASE"): -1493 kind = "DATABASE" -1494 else: -1495 kind = None -1496 -1497 if kind in ("DATABASE", "TABLE", "VIEW"): -1498 this = self._parse_table_parts() -1499 else: -1500 this = None -1501 -1502 if self._match(TokenType.FOR): -1503 for_or_in = "FOR" -1504 elif self._match(TokenType.IN): -1505 for_or_in = "IN" -1506 else: -1507 for_or_in = None -1508 -1509 if self._match_text_seq("ACCESS"): -1510 lock_type = "ACCESS" -1511 elif self._match_texts(("EXCL", "EXCLUSIVE")): -1512 lock_type = "EXCLUSIVE" -1513 elif self._match_text_seq("SHARE"): -1514 lock_type = "SHARE" -1515 elif self._match_text_seq("READ"): -1516 lock_type = "READ" -1517 elif self._match_text_seq("WRITE"): -1518 lock_type = "WRITE" -1519 elif self._match_text_seq("CHECKSUM"): -1520 lock_type = "CHECKSUM" -1521 else: -1522 lock_type = None -1523 -1524 override = self._match_text_seq("OVERRIDE") +1402 return exp.DefinerProperty(this=f"{user}@{host}") +1403 +1404 def _parse_withjournaltable(self) -> exp.Expression: +1405 self._match(TokenType.TABLE) +1406 self._match(TokenType.EQ) +1407 return self.expression(exp.WithJournalTableProperty, this=self._parse_table_parts()) +1408 +1409 def _parse_log(self, no: bool = False) -> exp.Expression: +1410 return self.expression(exp.LogProperty, no=no) +1411 +1412 def _parse_journal(self, **kwargs) -> exp.Expression: +1413 return self.expression(exp.JournalProperty, **kwargs) +1414 +1415 def _parse_checksum(self) -> exp.Expression: +1416 self._match(TokenType.EQ) +1417 +1418 on = None +1419 if self._match(TokenType.ON): +1420 on = True +1421 elif self._match_text_seq("OFF"): +1422 on = False +1423 default = self._match(TokenType.DEFAULT) +1424 +1425 return self.expression( +1426 exp.ChecksumProperty, +1427 on=on, +1428 default=default, +1429 ) +1430 +1431 def _parse_cluster(self) -> t.Optional[exp.Expression]: +1432 if not self._match_text_seq("BY"): +1433 self._retreat(self._index - 1) +1434 return None +1435 return self.expression( +1436 exp.Cluster, +1437 expressions=self._parse_csv(self._parse_ordered), +1438 ) +1439 +1440 def _parse_freespace(self) -> exp.Expression: +1441 self._match(TokenType.EQ) +1442 return self.expression( +1443 exp.FreespaceProperty, this=self._parse_number(), percent=self._match(TokenType.PERCENT) +1444 ) +1445 +1446 def _parse_mergeblockratio(self, no: bool = False, default: bool = False) -> exp.Expression: +1447 if self._match(TokenType.EQ): +1448 return self.expression( +1449 exp.MergeBlockRatioProperty, +1450 this=self._parse_number(), +1451 percent=self._match(TokenType.PERCENT), +1452 ) +1453 return self.expression( +1454 exp.MergeBlockRatioProperty, +1455 no=no, +1456 default=default, +1457 ) +1458 +1459 def _parse_datablocksize( +1460 self, +1461 default: t.Optional[bool] = None, +1462 minimum: t.Optional[bool] = None, +1463 maximum: t.Optional[bool] = None, +1464 ) -> exp.Expression: +1465 self._match(TokenType.EQ) +1466 size = self._parse_number() +1467 units = None +1468 if self._match_texts(("BYTES", "KBYTES", "KILOBYTES")): +1469 units = self._prev.text +1470 return self.expression( +1471 exp.DataBlocksizeProperty, +1472 size=size, +1473 units=units, +1474 default=default, +1475 minimum=minimum, +1476 maximum=maximum, +1477 ) +1478 +1479 def _parse_blockcompression(self) -> exp.Expression: +1480 self._match(TokenType.EQ) +1481 always = self._match_text_seq("ALWAYS") +1482 manual = self._match_text_seq("MANUAL") +1483 never = self._match_text_seq("NEVER") +1484 default = self._match_text_seq("DEFAULT") +1485 autotemp = None +1486 if self._match_text_seq("AUTOTEMP"): +1487 autotemp = self._parse_schema() +1488 +1489 return self.expression( +1490 exp.BlockCompressionProperty, +1491 always=always, +1492 manual=manual, +1493 never=never, +1494 default=default, +1495 autotemp=autotemp, +1496 ) +1497 +1498 def _parse_withisolatedloading(self) -> exp.Expression: +1499 no = self._match_text_seq("NO") +1500 concurrent = self._match_text_seq("CONCURRENT") +1501 self._match_text_seq("ISOLATED", "LOADING") +1502 for_all = self._match_text_seq("FOR", "ALL") +1503 for_insert = self._match_text_seq("FOR", "INSERT") +1504 for_none = self._match_text_seq("FOR", "NONE") +1505 return self.expression( +1506 exp.IsolatedLoadingProperty, +1507 no=no, +1508 concurrent=concurrent, +1509 for_all=for_all, +1510 for_insert=for_insert, +1511 for_none=for_none, +1512 ) +1513 +1514 def _parse_locking(self) -> exp.Expression: +1515 if self._match(TokenType.TABLE): +1516 kind = "TABLE" +1517 elif self._match(TokenType.VIEW): +1518 kind = "VIEW" +1519 elif self._match(TokenType.ROW): +1520 kind = "ROW" +1521 elif self._match_text_seq("DATABASE"): +1522 kind = "DATABASE" +1523 else: +1524 kind = None 1525 -1526 return self.expression( -1527 exp.LockingProperty, -1528 this=this, -1529 kind=kind, -1530 for_or_in=for_or_in, -1531 lock_type=lock_type, -1532 override=override, -1533 ) -1534 -1535 def _parse_partition_by(self) -> t.List[t.Optional[exp.Expression]]: -1536 if self._match(TokenType.PARTITION_BY): -1537 return self._parse_csv(self._parse_conjunction) -1538 return [] -1539 -1540 def _parse_partitioned_by(self) -> exp.Expression: -1541 self._match(TokenType.EQ) -1542 return self.expression( -1543 exp.PartitionedByProperty, -1544 this=self._parse_schema() or self._parse_bracket(self._parse_field()), -1545 ) -1546 -1547 def _parse_withdata(self, no: bool = False) -> exp.Expression: -1548 if self._match_text_seq("AND", "STATISTICS"): -1549 statistics = True -1550 elif self._match_text_seq("AND", "NO", "STATISTICS"): -1551 statistics = False -1552 else: -1553 statistics = None +1526 if kind in ("DATABASE", "TABLE", "VIEW"): +1527 this = self._parse_table_parts() +1528 else: +1529 this = None +1530 +1531 if self._match(TokenType.FOR): +1532 for_or_in = "FOR" +1533 elif self._match(TokenType.IN): +1534 for_or_in = "IN" +1535 else: +1536 for_or_in = None +1537 +1538 if self._match_text_seq("ACCESS"): +1539 lock_type = "ACCESS" +1540 elif self._match_texts(("EXCL", "EXCLUSIVE")): +1541 lock_type = "EXCLUSIVE" +1542 elif self._match_text_seq("SHARE"): +1543 lock_type = "SHARE" +1544 elif self._match_text_seq("READ"): +1545 lock_type = "READ" +1546 elif self._match_text_seq("WRITE"): +1547 lock_type = "WRITE" +1548 elif self._match_text_seq("CHECKSUM"): +1549 lock_type = "CHECKSUM" +1550 else: +1551 lock_type = None +1552 +1553 override = self._match_text_seq("OVERRIDE") 1554 -1555 return self.expression(exp.WithDataProperty, no=no, statistics=statistics) -1556 -1557 def _parse_no_property(self) -> t.Optional[exp.Property]: -1558 if self._match_text_seq("PRIMARY", "INDEX"): -1559 return exp.NoPrimaryIndexProperty() -1560 return None -1561 -1562 def _parse_on_property(self) -> t.Optional[exp.Property]: -1563 if self._match_text_seq("COMMIT", "PRESERVE", "ROWS"): -1564 return exp.OnCommitProperty() -1565 elif self._match_text_seq("COMMIT", "DELETE", "ROWS"): -1566 return exp.OnCommitProperty(delete=True) -1567 return None +1555 return self.expression( +1556 exp.LockingProperty, +1557 this=this, +1558 kind=kind, +1559 for_or_in=for_or_in, +1560 lock_type=lock_type, +1561 override=override, +1562 ) +1563 +1564 def _parse_partition_by(self) -> t.List[t.Optional[exp.Expression]]: +1565 if self._match(TokenType.PARTITION_BY): +1566 return self._parse_csv(self._parse_conjunction) +1567 return [] 1568 -1569 def _parse_distkey(self) -> exp.Expression: -1570 return self.expression(exp.DistKeyProperty, this=self._parse_wrapped(self._parse_id_var)) -1571 -1572 def _parse_create_like(self) -> t.Optional[exp.Expression]: -1573 table = self._parse_table(schema=True) -1574 options = [] -1575 while self._match_texts(("INCLUDING", "EXCLUDING")): -1576 this = self._prev.text.upper() -1577 id_var = self._parse_id_var() -1578 -1579 if not id_var: -1580 return None -1581 -1582 options.append( -1583 self.expression( -1584 exp.Property, -1585 this=this, -1586 value=exp.Var(this=id_var.this.upper()), -1587 ) -1588 ) -1589 return self.expression(exp.LikeProperty, this=table, expressions=options) +1569 def _parse_partitioned_by(self) -> exp.Expression: +1570 self._match(TokenType.EQ) +1571 return self.expression( +1572 exp.PartitionedByProperty, +1573 this=self._parse_schema() or self._parse_bracket(self._parse_field()), +1574 ) +1575 +1576 def _parse_withdata(self, no: bool = False) -> exp.Expression: +1577 if self._match_text_seq("AND", "STATISTICS"): +1578 statistics = True +1579 elif self._match_text_seq("AND", "NO", "STATISTICS"): +1580 statistics = False +1581 else: +1582 statistics = None +1583 +1584 return self.expression(exp.WithDataProperty, no=no, statistics=statistics) +1585 +1586 def _parse_no_property(self) -> t.Optional[exp.Property]: +1587 if self._match_text_seq("PRIMARY", "INDEX"): +1588 return exp.NoPrimaryIndexProperty() +1589 return None 1590 -1591 def _parse_sortkey(self, compound: bool = False) -> exp.Expression: -1592 return self.expression( -1593 exp.SortKeyProperty, this=self._parse_wrapped_csv(self._parse_id_var), compound=compound -1594 ) -1595 -1596 def _parse_character_set(self, default: bool = False) -> exp.Expression: -1597 self._match(TokenType.EQ) -1598 return self.expression( -1599 exp.CharacterSetProperty, this=self._parse_var_or_string(), default=default -1600 ) -1601 -1602 def _parse_returns(self) -> exp.Expression: -1603 value: t.Optional[exp.Expression] -1604 is_table = self._match(TokenType.TABLE) -1605 -1606 if is_table: -1607 if self._match(TokenType.LT): -1608 value = self.expression( -1609 exp.Schema, -1610 this="TABLE", -1611 expressions=self._parse_csv(self._parse_struct_types), -1612 ) -1613 if not self._match(TokenType.GT): -1614 self.raise_error("Expecting >") -1615 else: -1616 value = self._parse_schema(exp.Var(this="TABLE")) -1617 else: -1618 value = self._parse_types() +1591 def _parse_on_property(self) -> t.Optional[exp.Property]: +1592 if self._match_text_seq("COMMIT", "PRESERVE", "ROWS"): +1593 return exp.OnCommitProperty() +1594 elif self._match_text_seq("COMMIT", "DELETE", "ROWS"): +1595 return exp.OnCommitProperty(delete=True) +1596 return None +1597 +1598 def _parse_distkey(self) -> exp.Expression: +1599 return self.expression(exp.DistKeyProperty, this=self._parse_wrapped(self._parse_id_var)) +1600 +1601 def _parse_create_like(self) -> t.Optional[exp.Expression]: +1602 table = self._parse_table(schema=True) +1603 options = [] +1604 while self._match_texts(("INCLUDING", "EXCLUDING")): +1605 this = self._prev.text.upper() +1606 id_var = self._parse_id_var() +1607 +1608 if not id_var: +1609 return None +1610 +1611 options.append( +1612 self.expression( +1613 exp.Property, +1614 this=this, +1615 value=exp.Var(this=id_var.this.upper()), +1616 ) +1617 ) +1618 return self.expression(exp.LikeProperty, this=table, expressions=options) 1619 -1620 return self.expression(exp.ReturnsProperty, this=value, is_table=is_table) -1621 -1622 def _parse_describe(self) -> exp.Expression: -1623 kind = self._match_set(self.CREATABLES) and self._prev.text -1624 this = self._parse_table() -1625 -1626 return self.expression(exp.Describe, this=this, kind=kind) -1627 -1628 def _parse_insert(self) -> exp.Expression: -1629 overwrite = self._match(TokenType.OVERWRITE) -1630 local = self._match_text_seq("LOCAL") -1631 alternative = None -1632 -1633 if self._match_text_seq("DIRECTORY"): -1634 this: t.Optional[exp.Expression] = self.expression( -1635 exp.Directory, -1636 this=self._parse_var_or_string(), -1637 local=local, -1638 row_format=self._parse_row_format(match_row=True), -1639 ) -1640 else: -1641 if self._match(TokenType.OR): -1642 alternative = self._match_texts(self.INSERT_ALTERNATIVES) and self._prev.text -1643 -1644 self._match(TokenType.INTO) -1645 self._match(TokenType.TABLE) -1646 this = self._parse_table(schema=True) -1647 -1648 return self.expression( -1649 exp.Insert, -1650 this=this, -1651 exists=self._parse_exists(), -1652 partition=self._parse_partition(), -1653 expression=self._parse_ddl_select(), -1654 conflict=self._parse_on_conflict(), -1655 returning=self._parse_returning(), -1656 overwrite=overwrite, -1657 alternative=alternative, -1658 ) -1659 -1660 def _parse_on_conflict(self) -> t.Optional[exp.Expression]: -1661 conflict = self._match_text_seq("ON", "CONFLICT") -1662 duplicate = self._match_text_seq("ON", "DUPLICATE", "KEY") -1663 -1664 if not (conflict or duplicate): -1665 return None -1666 -1667 nothing = None -1668 expressions = None -1669 key = None -1670 constraint = None -1671 -1672 if conflict: -1673 if self._match_text_seq("ON", "CONSTRAINT"): -1674 constraint = self._parse_id_var() -1675 else: -1676 key = self._parse_csv(self._parse_value) -1677 -1678 self._match_text_seq("DO") -1679 if self._match_text_seq("NOTHING"): -1680 nothing = True -1681 else: -1682 self._match(TokenType.UPDATE) -1683 expressions = self._match(TokenType.SET) and self._parse_csv(self._parse_equality) -1684 -1685 return self.expression( -1686 exp.OnConflict, -1687 duplicate=duplicate, -1688 expressions=expressions, -1689 nothing=nothing, -1690 key=key, -1691 constraint=constraint, -1692 ) -1693 -1694 def _parse_returning(self) -> t.Optional[exp.Expression]: -1695 if not self._match(TokenType.RETURNING): -1696 return None -1697 -1698 return self.expression(exp.Returning, expressions=self._parse_csv(self._parse_column)) -1699 -1700 def _parse_row(self) -> t.Optional[exp.Expression]: -1701 if not self._match(TokenType.FORMAT): -1702 return None -1703 return self._parse_row_format() -1704 -1705 def _parse_row_format(self, match_row: bool = False) -> t.Optional[exp.Expression]: -1706 if match_row and not self._match_pair(TokenType.ROW, TokenType.FORMAT): -1707 return None -1708 -1709 if self._match_text_seq("SERDE"): -1710 return self.expression(exp.RowFormatSerdeProperty, this=self._parse_string()) -1711 -1712 self._match_text_seq("DELIMITED") +1620 def _parse_sortkey(self, compound: bool = False) -> exp.Expression: +1621 return self.expression( +1622 exp.SortKeyProperty, this=self._parse_wrapped_csv(self._parse_id_var), compound=compound +1623 ) +1624 +1625 def _parse_character_set(self, default: bool = False) -> exp.Expression: +1626 self._match(TokenType.EQ) +1627 return self.expression( +1628 exp.CharacterSetProperty, this=self._parse_var_or_string(), default=default +1629 ) +1630 +1631 def _parse_returns(self) -> exp.Expression: +1632 value: t.Optional[exp.Expression] +1633 is_table = self._match(TokenType.TABLE) +1634 +1635 if is_table: +1636 if self._match(TokenType.LT): +1637 value = self.expression( +1638 exp.Schema, +1639 this="TABLE", +1640 expressions=self._parse_csv(self._parse_struct_types), +1641 ) +1642 if not self._match(TokenType.GT): +1643 self.raise_error("Expecting >") +1644 else: +1645 value = self._parse_schema(exp.Var(this="TABLE")) +1646 else: +1647 value = self._parse_types() +1648 +1649 return self.expression(exp.ReturnsProperty, this=value, is_table=is_table) +1650 +1651 def _parse_describe(self) -> exp.Expression: +1652 kind = self._match_set(self.CREATABLES) and self._prev.text +1653 this = self._parse_table() +1654 +1655 return self.expression(exp.Describe, this=this, kind=kind) +1656 +1657 def _parse_insert(self) -> exp.Expression: +1658 overwrite = self._match(TokenType.OVERWRITE) +1659 local = self._match_text_seq("LOCAL") +1660 alternative = None +1661 +1662 if self._match_text_seq("DIRECTORY"): +1663 this: t.Optional[exp.Expression] = self.expression( +1664 exp.Directory, +1665 this=self._parse_var_or_string(), +1666 local=local, +1667 row_format=self._parse_row_format(match_row=True), +1668 ) +1669 else: +1670 if self._match(TokenType.OR): +1671 alternative = self._match_texts(self.INSERT_ALTERNATIVES) and self._prev.text +1672 +1673 self._match(TokenType.INTO) +1674 self._match(TokenType.TABLE) +1675 this = self._parse_table(schema=True) +1676 +1677 return self.expression( +1678 exp.Insert, +1679 this=this, +1680 exists=self._parse_exists(), +1681 partition=self._parse_partition(), +1682 expression=self._parse_ddl_select(), +1683 conflict=self._parse_on_conflict(), +1684 returning=self._parse_returning(), +1685 overwrite=overwrite, +1686 alternative=alternative, +1687 ) +1688 +1689 def _parse_on_conflict(self) -> t.Optional[exp.Expression]: +1690 conflict = self._match_text_seq("ON", "CONFLICT") +1691 duplicate = self._match_text_seq("ON", "DUPLICATE", "KEY") +1692 +1693 if not (conflict or duplicate): +1694 return None +1695 +1696 nothing = None +1697 expressions = None +1698 key = None +1699 constraint = None +1700 +1701 if conflict: +1702 if self._match_text_seq("ON", "CONSTRAINT"): +1703 constraint = self._parse_id_var() +1704 else: +1705 key = self._parse_csv(self._parse_value) +1706 +1707 self._match_text_seq("DO") +1708 if self._match_text_seq("NOTHING"): +1709 nothing = True +1710 else: +1711 self._match(TokenType.UPDATE) +1712 expressions = self._match(TokenType.SET) and self._parse_csv(self._parse_equality) 1713 -1714 kwargs = {} -1715 -1716 if self._match_text_seq("FIELDS", "TERMINATED", "BY"): -1717 kwargs["fields"] = self._parse_string() -1718 if self._match_text_seq("ESCAPED", "BY"): -1719 kwargs["escaped"] = self._parse_string() -1720 if self._match_text_seq("COLLECTION", "ITEMS", "TERMINATED", "BY"): -1721 kwargs["collection_items"] = self._parse_string() -1722 if self._match_text_seq("MAP", "KEYS", "TERMINATED", "BY"): -1723 kwargs["map_keys"] = self._parse_string() -1724 if self._match_text_seq("LINES", "TERMINATED", "BY"): -1725 kwargs["lines"] = self._parse_string() -1726 if self._match_text_seq("NULL", "DEFINED", "AS"): -1727 kwargs["null"] = self._parse_string() +1714 return self.expression( +1715 exp.OnConflict, +1716 duplicate=duplicate, +1717 expressions=expressions, +1718 nothing=nothing, +1719 key=key, +1720 constraint=constraint, +1721 ) +1722 +1723 def _parse_returning(self) -> t.Optional[exp.Expression]: +1724 if not self._match(TokenType.RETURNING): +1725 return None +1726 +1727 return self.expression(exp.Returning, expressions=self._parse_csv(self._parse_column)) 1728 -1729 return self.expression(exp.RowFormatDelimitedProperty, **kwargs) # type: ignore -1730 -1731 def _parse_load(self) -> exp.Expression: -1732 if self._match_text_seq("DATA"): -1733 local = self._match_text_seq("LOCAL") -1734 self._match_text_seq("INPATH") -1735 inpath = self._parse_string() -1736 overwrite = self._match(TokenType.OVERWRITE) -1737 self._match_pair(TokenType.INTO, TokenType.TABLE) -1738 -1739 return self.expression( -1740 exp.LoadData, -1741 this=self._parse_table(schema=True), -1742 local=local, -1743 overwrite=overwrite, -1744 inpath=inpath, -1745 partition=self._parse_partition(), -1746 input_format=self._match_text_seq("INPUTFORMAT") and self._parse_string(), -1747 serde=self._match_text_seq("SERDE") and self._parse_string(), -1748 ) -1749 return self._parse_as_command(self._prev) -1750 -1751 def _parse_delete(self) -> exp.Expression: -1752 self._match(TokenType.FROM) -1753 -1754 return self.expression( -1755 exp.Delete, -1756 this=self._parse_table(), -1757 using=self._parse_csv(lambda: self._match(TokenType.USING) and self._parse_table()), -1758 where=self._parse_where(), -1759 returning=self._parse_returning(), -1760 ) -1761 -1762 def _parse_update(self) -> exp.Expression: -1763 return self.expression( -1764 exp.Update, -1765 **{ # type: ignore -1766 "this": self._parse_table(alias_tokens=self.UPDATE_ALIAS_TOKENS), -1767 "expressions": self._match(TokenType.SET) and self._parse_csv(self._parse_equality), -1768 "from": self._parse_from(modifiers=True), -1769 "where": self._parse_where(), -1770 "returning": self._parse_returning(), -1771 }, -1772 ) -1773 -1774 def _parse_uncache(self) -> exp.Expression: -1775 if not self._match(TokenType.TABLE): -1776 self.raise_error("Expecting TABLE after UNCACHE") -1777 -1778 return self.expression( -1779 exp.Uncache, -1780 exists=self._parse_exists(), -1781 this=self._parse_table(schema=True), -1782 ) -1783 -1784 def _parse_cache(self) -> exp.Expression: -1785 lazy = self._match_text_seq("LAZY") -1786 self._match(TokenType.TABLE) -1787 table = self._parse_table(schema=True) -1788 options = [] -1789 -1790 if self._match_text_seq("OPTIONS"): -1791 self._match_l_paren() -1792 k = self._parse_string() -1793 self._match(TokenType.EQ) -1794 v = self._parse_string() -1795 options = [k, v] -1796 self._match_r_paren() -1797 -1798 self._match(TokenType.ALIAS) -1799 return self.expression( -1800 exp.Cache, -1801 this=table, -1802 lazy=lazy, -1803 options=options, -1804 expression=self._parse_select(nested=True), -1805 ) +1729 def _parse_row(self) -> t.Optional[exp.Expression]: +1730 if not self._match(TokenType.FORMAT): +1731 return None +1732 return self._parse_row_format() +1733 +1734 def _parse_row_format(self, match_row: bool = False) -> t.Optional[exp.Expression]: +1735 if match_row and not self._match_pair(TokenType.ROW, TokenType.FORMAT): +1736 return None +1737 +1738 if self._match_text_seq("SERDE"): +1739 return self.expression(exp.RowFormatSerdeProperty, this=self._parse_string()) +1740 +1741 self._match_text_seq("DELIMITED") +1742 +1743 kwargs = {} +1744 +1745 if self._match_text_seq("FIELDS", "TERMINATED", "BY"): +1746 kwargs["fields"] = self._parse_string() +1747 if self._match_text_seq("ESCAPED", "BY"): +1748 kwargs["escaped"] = self._parse_string() +1749 if self._match_text_seq("COLLECTION", "ITEMS", "TERMINATED", "BY"): +1750 kwargs["collection_items"] = self._parse_string() +1751 if self._match_text_seq("MAP", "KEYS", "TERMINATED", "BY"): +1752 kwargs["map_keys"] = self._parse_string() +1753 if self._match_text_seq("LINES", "TERMINATED", "BY"): +1754 kwargs["lines"] = self._parse_string() +1755 if self._match_text_seq("NULL", "DEFINED", "AS"): +1756 kwargs["null"] = self._parse_string() +1757 +1758 return self.expression(exp.RowFormatDelimitedProperty, **kwargs) # type: ignore +1759 +1760 def _parse_load(self) -> exp.Expression: +1761 if self._match_text_seq("DATA"): +1762 local = self._match_text_seq("LOCAL") +1763 self._match_text_seq("INPATH") +1764 inpath = self._parse_string() +1765 overwrite = self._match(TokenType.OVERWRITE) +1766 self._match_pair(TokenType.INTO, TokenType.TABLE) +1767 +1768 return self.expression( +1769 exp.LoadData, +1770 this=self._parse_table(schema=True), +1771 local=local, +1772 overwrite=overwrite, +1773 inpath=inpath, +1774 partition=self._parse_partition(), +1775 input_format=self._match_text_seq("INPUTFORMAT") and self._parse_string(), +1776 serde=self._match_text_seq("SERDE") and self._parse_string(), +1777 ) +1778 return self._parse_as_command(self._prev) +1779 +1780 def _parse_delete(self) -> exp.Expression: +1781 self._match(TokenType.FROM) +1782 +1783 return self.expression( +1784 exp.Delete, +1785 this=self._parse_table(), +1786 using=self._parse_csv(lambda: self._match(TokenType.USING) and self._parse_table()), +1787 where=self._parse_where(), +1788 returning=self._parse_returning(), +1789 ) +1790 +1791 def _parse_update(self) -> exp.Expression: +1792 return self.expression( +1793 exp.Update, +1794 **{ # type: ignore +1795 "this": self._parse_table(alias_tokens=self.UPDATE_ALIAS_TOKENS), +1796 "expressions": self._match(TokenType.SET) and self._parse_csv(self._parse_equality), +1797 "from": self._parse_from(modifiers=True), +1798 "where": self._parse_where(), +1799 "returning": self._parse_returning(), +1800 }, +1801 ) +1802 +1803 def _parse_uncache(self) -> exp.Expression: +1804 if not self._match(TokenType.TABLE): +1805 self.raise_error("Expecting TABLE after UNCACHE") 1806 -1807 def _parse_partition(self) -> t.Optional[exp.Expression]: -1808 if not self._match(TokenType.PARTITION): -1809 return None -1810 -1811 return self.expression( -1812 exp.Partition, expressions=self._parse_wrapped_csv(self._parse_conjunction) -1813 ) -1814 -1815 def _parse_value(self) -> exp.Expression: -1816 if self._match(TokenType.L_PAREN): -1817 expressions = self._parse_csv(self._parse_conjunction) -1818 self._match_r_paren() -1819 return self.expression(exp.Tuple, expressions=expressions) -1820 -1821 # In presto we can have VALUES 1, 2 which results in 1 column & 2 rows. -1822 # Source: https://prestodb.io/docs/current/sql/values.html -1823 return self.expression(exp.Tuple, expressions=[self._parse_conjunction()]) -1824 -1825 def _parse_select( -1826 self, nested: bool = False, table: bool = False, parse_subquery_alias: bool = True -1827 ) -> t.Optional[exp.Expression]: -1828 cte = self._parse_with() -1829 if cte: -1830 this = self._parse_statement() -1831 -1832 if not this: -1833 self.raise_error("Failed to parse any statement following CTE") -1834 return cte +1807 return self.expression( +1808 exp.Uncache, +1809 exists=self._parse_exists(), +1810 this=self._parse_table(schema=True), +1811 ) +1812 +1813 def _parse_cache(self) -> exp.Expression: +1814 lazy = self._match_text_seq("LAZY") +1815 self._match(TokenType.TABLE) +1816 table = self._parse_table(schema=True) +1817 options = [] +1818 +1819 if self._match_text_seq("OPTIONS"): +1820 self._match_l_paren() +1821 k = self._parse_string() +1822 self._match(TokenType.EQ) +1823 v = self._parse_string() +1824 options = [k, v] +1825 self._match_r_paren() +1826 +1827 self._match(TokenType.ALIAS) +1828 return self.expression( +1829 exp.Cache, +1830 this=table, +1831 lazy=lazy, +1832 options=options, +1833 expression=self._parse_select(nested=True), +1834 ) 1835 -1836 if "with" in this.arg_types: -1837 this.set("with", cte) -1838 else: -1839 self.raise_error(f"{this.key} does not support CTE") -1840 this = cte -1841 elif self._match(TokenType.SELECT): -1842 comments = self._prev_comments +1836 def _parse_partition(self) -> t.Optional[exp.Expression]: +1837 if not self._match(TokenType.PARTITION): +1838 return None +1839 +1840 return self.expression( +1841 exp.Partition, expressions=self._parse_wrapped_csv(self._parse_conjunction) +1842 ) 1843 -1844 hint = self._parse_hint() -1845 all_ = self._match(TokenType.ALL) -1846 distinct = self._match(TokenType.DISTINCT) -1847 -1848 kind = ( -1849 self._match(TokenType.ALIAS) -1850 and self._match_texts(("STRUCT", "VALUE")) -1851 and self._prev.text -1852 ) +1844 def _parse_value(self) -> exp.Expression: +1845 if self._match(TokenType.L_PAREN): +1846 expressions = self._parse_csv(self._parse_conjunction) +1847 self._match_r_paren() +1848 return self.expression(exp.Tuple, expressions=expressions) +1849 +1850 # In presto we can have VALUES 1, 2 which results in 1 column & 2 rows. +1851 # Source: https://prestodb.io/docs/current/sql/values.html +1852 return self.expression(exp.Tuple, expressions=[self._parse_conjunction()]) 1853 -1854 if distinct: -1855 distinct = self.expression( -1856 exp.Distinct, -1857 on=self._parse_value() if self._match(TokenType.ON) else None, -1858 ) -1859 -1860 if all_ and distinct: -1861 self.raise_error("Cannot specify both ALL and DISTINCT after SELECT") -1862 -1863 limit = self._parse_limit(top=True) -1864 expressions = self._parse_csv(self._parse_expression) -1865 -1866 this = self.expression( -1867 exp.Select, -1868 kind=kind, -1869 hint=hint, -1870 distinct=distinct, -1871 expressions=expressions, -1872 limit=limit, -1873 ) -1874 this.comments = comments -1875 -1876 into = self._parse_into() -1877 if into: -1878 this.set("into", into) -1879 -1880 from_ = self._parse_from() -1881 if from_: -1882 this.set("from", from_) -1883 -1884 this = self._parse_query_modifiers(this) -1885 elif (table or nested) and self._match(TokenType.L_PAREN): -1886 this = self._parse_table() if table else self._parse_select(nested=True) -1887 this = self._parse_set_operations(self._parse_query_modifiers(this)) -1888 self._match_r_paren() -1889 -1890 # early return so that subquery unions aren't parsed again -1891 # SELECT * FROM (SELECT 1) UNION ALL SELECT 1 -1892 # Union ALL should be a property of the top select node, not the subquery -1893 return self._parse_subquery(this, parse_alias=parse_subquery_alias) -1894 elif self._match(TokenType.VALUES): +1854 def _parse_select( +1855 self, nested: bool = False, table: bool = False, parse_subquery_alias: bool = True +1856 ) -> t.Optional[exp.Expression]: +1857 cte = self._parse_with() +1858 if cte: +1859 this = self._parse_statement() +1860 +1861 if not this: +1862 self.raise_error("Failed to parse any statement following CTE") +1863 return cte +1864 +1865 if "with" in this.arg_types: +1866 this.set("with", cte) +1867 else: +1868 self.raise_error(f"{this.key} does not support CTE") +1869 this = cte +1870 elif self._match(TokenType.SELECT): +1871 comments = self._prev_comments +1872 +1873 hint = self._parse_hint() +1874 all_ = self._match(TokenType.ALL) +1875 distinct = self._match(TokenType.DISTINCT) +1876 +1877 kind = ( +1878 self._match(TokenType.ALIAS) +1879 and self._match_texts(("STRUCT", "VALUE")) +1880 and self._prev.text +1881 ) +1882 +1883 if distinct: +1884 distinct = self.expression( +1885 exp.Distinct, +1886 on=self._parse_value() if self._match(TokenType.ON) else None, +1887 ) +1888 +1889 if all_ and distinct: +1890 self.raise_error("Cannot specify both ALL and DISTINCT after SELECT") +1891 +1892 limit = self._parse_limit(top=True) +1893 expressions = self._parse_csv(self._parse_expression) +1894 1895 this = self.expression( -1896 exp.Values, -1897 expressions=self._parse_csv(self._parse_value), -1898 alias=self._parse_table_alias(), -1899 ) -1900 else: -1901 this = None -1902 -1903 return self._parse_set_operations(this) +1896 exp.Select, +1897 kind=kind, +1898 hint=hint, +1899 distinct=distinct, +1900 expressions=expressions, +1901 limit=limit, +1902 ) +1903 this.comments = comments 1904 -1905 def _parse_with(self, skip_with_token: bool = False) -> t.Optional[exp.Expression]: -1906 if not skip_with_token and not self._match(TokenType.WITH): -1907 return None +1905 into = self._parse_into() +1906 if into: +1907 this.set("into", into) 1908 -1909 comments = self._prev_comments -1910 recursive = self._match(TokenType.RECURSIVE) -1911 -1912 expressions = [] -1913 while True: -1914 expressions.append(self._parse_cte()) -1915 -1916 if not self._match(TokenType.COMMA) and not self._match(TokenType.WITH): -1917 break -1918 else: -1919 self._match(TokenType.WITH) -1920 -1921 return self.expression( -1922 exp.With, comments=comments, expressions=expressions, recursive=recursive -1923 ) +1909 from_ = self._parse_from() +1910 if from_: +1911 this.set("from", from_) +1912 +1913 this = self._parse_query_modifiers(this) +1914 elif (table or nested) and self._match(TokenType.L_PAREN): +1915 if self._match(TokenType.PIVOT): +1916 this = self._parse_simplified_pivot() +1917 elif self._match(TokenType.FROM): +1918 this = exp.select("*").from_( +1919 t.cast(exp.From, self._parse_from(skip_from_token=True)) +1920 ) +1921 else: +1922 this = self._parse_table() if table else self._parse_select(nested=True) +1923 this = self._parse_set_operations(self._parse_query_modifiers(this)) 1924 -1925 def _parse_cte(self) -> exp.Expression: -1926 alias = self._parse_table_alias() -1927 if not alias or not alias.this: -1928 self.raise_error("Expected CTE to have alias") -1929 -1930 self._match(TokenType.ALIAS) -1931 -1932 return self.expression( -1933 exp.CTE, -1934 this=self._parse_wrapped(self._parse_statement), -1935 alias=alias, -1936 ) -1937 -1938 def _parse_table_alias( -1939 self, alias_tokens: t.Optional[t.Collection[TokenType]] = None -1940 ) -> t.Optional[exp.Expression]: -1941 any_token = self._match(TokenType.ALIAS) -1942 alias = ( -1943 self._parse_id_var(any_token=any_token, tokens=alias_tokens or self.TABLE_ALIAS_TOKENS) -1944 or self._parse_string_as_identifier() -1945 ) -1946 -1947 index = self._index -1948 if self._match(TokenType.L_PAREN): -1949 columns = self._parse_csv(self._parse_function_parameter) -1950 self._match_r_paren() if columns else self._retreat(index) -1951 else: -1952 columns = None -1953 -1954 if not alias and not columns: -1955 return None -1956 -1957 return self.expression(exp.TableAlias, this=alias, columns=columns) -1958 -1959 def _parse_subquery( -1960 self, this: t.Optional[exp.Expression], parse_alias: bool = True -1961 ) -> exp.Expression: -1962 return self.expression( -1963 exp.Subquery, -1964 this=this, -1965 pivots=self._parse_pivots(), -1966 alias=self._parse_table_alias() if parse_alias else None, -1967 ) +1925 self._match_r_paren() +1926 +1927 # early return so that subquery unions aren't parsed again +1928 # SELECT * FROM (SELECT 1) UNION ALL SELECT 1 +1929 # Union ALL should be a property of the top select node, not the subquery +1930 return self._parse_subquery(this, parse_alias=parse_subquery_alias) +1931 elif self._match(TokenType.VALUES): +1932 this = self.expression( +1933 exp.Values, +1934 expressions=self._parse_csv(self._parse_value), +1935 alias=self._parse_table_alias(), +1936 ) +1937 else: +1938 this = None +1939 +1940 return self._parse_set_operations(this) +1941 +1942 def _parse_with(self, skip_with_token: bool = False) -> t.Optional[exp.Expression]: +1943 if not skip_with_token and not self._match(TokenType.WITH): +1944 return None +1945 +1946 comments = self._prev_comments +1947 recursive = self._match(TokenType.RECURSIVE) +1948 +1949 expressions = [] +1950 while True: +1951 expressions.append(self._parse_cte()) +1952 +1953 if not self._match(TokenType.COMMA) and not self._match(TokenType.WITH): +1954 break +1955 else: +1956 self._match(TokenType.WITH) +1957 +1958 return self.expression( +1959 exp.With, comments=comments, expressions=expressions, recursive=recursive +1960 ) +1961 +1962 def _parse_cte(self) -> exp.Expression: +1963 alias = self._parse_table_alias() +1964 if not alias or not alias.this: +1965 self.raise_error("Expected CTE to have alias") +1966 +1967 self._match(TokenType.ALIAS) 1968 -1969 def _parse_query_modifiers( -1970 self, this: t.Optional[exp.Expression] -1971 ) -> t.Optional[exp.Expression]: -1972 if isinstance(this, self.MODIFIABLES): -1973 for key, parser in self.QUERY_MODIFIER_PARSERS.items(): -1974 expression = parser(self) -1975 -1976 if expression: -1977 this.set(key, expression) -1978 return this -1979 -1980 def _parse_hint(self) -> t.Optional[exp.Expression]: -1981 if self._match(TokenType.HINT): -1982 hints = self._parse_csv(self._parse_function) -1983 if not self._match_pair(TokenType.STAR, TokenType.SLASH): -1984 self.raise_error("Expected */ after HINT") -1985 return self.expression(exp.Hint, expressions=hints) -1986 -1987 return None -1988 -1989 def _parse_into(self) -> t.Optional[exp.Expression]: -1990 if not self._match(TokenType.INTO): -1991 return None -1992 -1993 temp = self._match(TokenType.TEMPORARY) -1994 unlogged = self._match_text_seq("UNLOGGED") -1995 self._match(TokenType.TABLE) -1996 -1997 return self.expression( -1998 exp.Into, this=self._parse_table(schema=True), temporary=temp, unlogged=unlogged -1999 ) -2000 -2001 def _parse_from(self, modifiers: bool = False) -> t.Optional[exp.Expression]: -2002 if not self._match(TokenType.FROM): -2003 return None -2004 -2005 comments = self._prev_comments -2006 this = self._parse_table() +1969 return self.expression( +1970 exp.CTE, +1971 this=self._parse_wrapped(self._parse_statement), +1972 alias=alias, +1973 ) +1974 +1975 def _parse_table_alias( +1976 self, alias_tokens: t.Optional[t.Collection[TokenType]] = None +1977 ) -> t.Optional[exp.Expression]: +1978 any_token = self._match(TokenType.ALIAS) +1979 alias = ( +1980 self._parse_id_var(any_token=any_token, tokens=alias_tokens or self.TABLE_ALIAS_TOKENS) +1981 or self._parse_string_as_identifier() +1982 ) +1983 +1984 index = self._index +1985 if self._match(TokenType.L_PAREN): +1986 columns = self._parse_csv(self._parse_function_parameter) +1987 self._match_r_paren() if columns else self._retreat(index) +1988 else: +1989 columns = None +1990 +1991 if not alias and not columns: +1992 return None +1993 +1994 return self.expression(exp.TableAlias, this=alias, columns=columns) +1995 +1996 def _parse_subquery( +1997 self, this: t.Optional[exp.Expression], parse_alias: bool = True +1998 ) -> t.Optional[exp.Expression]: +1999 if not this: +2000 return None +2001 return self.expression( +2002 exp.Subquery, +2003 this=this, +2004 pivots=self._parse_pivots(), +2005 alias=self._parse_table_alias() if parse_alias else None, +2006 ) 2007 -2008 return self.expression( -2009 exp.From, -2010 comments=comments, -2011 this=self._parse_query_modifiers(this) if modifiers else this, -2012 ) -2013 -2014 def _parse_match_recognize(self) -> t.Optional[exp.Expression]: -2015 if not self._match(TokenType.MATCH_RECOGNIZE): -2016 return None -2017 -2018 self._match_l_paren() -2019 -2020 partition = self._parse_partition_by() -2021 order = self._parse_order() -2022 measures = ( -2023 self._parse_csv(self._parse_expression) if self._match_text_seq("MEASURES") else None -2024 ) +2008 def _parse_query_modifiers( +2009 self, this: t.Optional[exp.Expression] +2010 ) -> t.Optional[exp.Expression]: +2011 if isinstance(this, self.MODIFIABLES): +2012 for key, parser in self.QUERY_MODIFIER_PARSERS.items(): +2013 expression = parser(self) +2014 +2015 if expression: +2016 this.set(key, expression) +2017 return this +2018 +2019 def _parse_hint(self) -> t.Optional[exp.Expression]: +2020 if self._match(TokenType.HINT): +2021 hints = self._parse_csv(self._parse_function) +2022 if not self._match_pair(TokenType.STAR, TokenType.SLASH): +2023 self.raise_error("Expected */ after HINT") +2024 return self.expression(exp.Hint, expressions=hints) 2025 -2026 if self._match_text_seq("ONE", "ROW", "PER", "MATCH"): -2027 rows = exp.Var(this="ONE ROW PER MATCH") -2028 elif self._match_text_seq("ALL", "ROWS", "PER", "MATCH"): -2029 text = "ALL ROWS PER MATCH" -2030 if self._match_text_seq("SHOW", "EMPTY", "MATCHES"): -2031 text += f" SHOW EMPTY MATCHES" -2032 elif self._match_text_seq("OMIT", "EMPTY", "MATCHES"): -2033 text += f" OMIT EMPTY MATCHES" -2034 elif self._match_text_seq("WITH", "UNMATCHED", "ROWS"): -2035 text += f" WITH UNMATCHED ROWS" -2036 rows = exp.Var(this=text) -2037 else: -2038 rows = None +2026 return None +2027 +2028 def _parse_into(self) -> t.Optional[exp.Expression]: +2029 if not self._match(TokenType.INTO): +2030 return None +2031 +2032 temp = self._match(TokenType.TEMPORARY) +2033 unlogged = self._match_text_seq("UNLOGGED") +2034 self._match(TokenType.TABLE) +2035 +2036 return self.expression( +2037 exp.Into, this=self._parse_table(schema=True), temporary=temp, unlogged=unlogged +2038 ) 2039 -2040 if self._match_text_seq("AFTER", "MATCH", "SKIP"): -2041 text = "AFTER MATCH SKIP" -2042 if self._match_text_seq("PAST", "LAST", "ROW"): -2043 text += f" PAST LAST ROW" -2044 elif self._match_text_seq("TO", "NEXT", "ROW"): -2045 text += f" TO NEXT ROW" -2046 elif self._match_text_seq("TO", "FIRST"): -2047 text += f" TO FIRST {self._advance_any().text}" # type: ignore -2048 elif self._match_text_seq("TO", "LAST"): -2049 text += f" TO LAST {self._advance_any().text}" # type: ignore -2050 after = exp.Var(this=text) -2051 else: -2052 after = None -2053 -2054 if self._match_text_seq("PATTERN"): -2055 self._match_l_paren() -2056 -2057 if not self._curr: -2058 self.raise_error("Expecting )", self._curr) -2059 -2060 paren = 1 -2061 start = self._curr -2062 -2063 while self._curr and paren > 0: -2064 if self._curr.token_type == TokenType.L_PAREN: -2065 paren += 1 -2066 if self._curr.token_type == TokenType.R_PAREN: -2067 paren -= 1 -2068 end = self._prev -2069 self._advance() -2070 if paren > 0: -2071 self.raise_error("Expecting )", self._curr) -2072 pattern = exp.Var(this=self._find_sql(start, end)) -2073 else: -2074 pattern = None -2075 -2076 define = ( -2077 self._parse_csv( -2078 lambda: self.expression( -2079 exp.Alias, -2080 alias=self._parse_id_var(any_token=True), -2081 this=self._match(TokenType.ALIAS) and self._parse_conjunction(), -2082 ) -2083 ) -2084 if self._match_text_seq("DEFINE") -2085 else None -2086 ) -2087 -2088 self._match_r_paren() -2089 -2090 return self.expression( -2091 exp.MatchRecognize, -2092 partition_by=partition, -2093 order=order, -2094 measures=measures, -2095 rows=rows, -2096 after=after, -2097 pattern=pattern, -2098 define=define, -2099 alias=self._parse_table_alias(), -2100 ) -2101 -2102 def _parse_lateral(self) -> t.Optional[exp.Expression]: -2103 outer_apply = self._match_pair(TokenType.OUTER, TokenType.APPLY) -2104 cross_apply = self._match_pair(TokenType.CROSS, TokenType.APPLY) -2105 -2106 if outer_apply or cross_apply: -2107 this = self._parse_select(table=True) -2108 view = None -2109 outer = not cross_apply -2110 elif self._match(TokenType.LATERAL): -2111 this = self._parse_select(table=True) -2112 view = self._match(TokenType.VIEW) -2113 outer = self._match(TokenType.OUTER) +2040 def _parse_from( +2041 self, modifiers: bool = False, skip_from_token: bool = False +2042 ) -> t.Optional[exp.From]: +2043 if not skip_from_token and not self._match(TokenType.FROM): +2044 return None +2045 +2046 comments = self._prev_comments +2047 this = self._parse_table() +2048 +2049 return self.expression( +2050 exp.From, +2051 comments=comments, +2052 this=self._parse_query_modifiers(this) if modifiers else this, +2053 ) +2054 +2055 def _parse_match_recognize(self) -> t.Optional[exp.Expression]: +2056 if not self._match(TokenType.MATCH_RECOGNIZE): +2057 return None +2058 +2059 self._match_l_paren() +2060 +2061 partition = self._parse_partition_by() +2062 order = self._parse_order() +2063 measures = ( +2064 self._parse_csv(self._parse_expression) if self._match_text_seq("MEASURES") else None +2065 ) +2066 +2067 if self._match_text_seq("ONE", "ROW", "PER", "MATCH"): +2068 rows = exp.Var(this="ONE ROW PER MATCH") +2069 elif self._match_text_seq("ALL", "ROWS", "PER", "MATCH"): +2070 text = "ALL ROWS PER MATCH" +2071 if self._match_text_seq("SHOW", "EMPTY", "MATCHES"): +2072 text += f" SHOW EMPTY MATCHES" +2073 elif self._match_text_seq("OMIT", "EMPTY", "MATCHES"): +2074 text += f" OMIT EMPTY MATCHES" +2075 elif self._match_text_seq("WITH", "UNMATCHED", "ROWS"): +2076 text += f" WITH UNMATCHED ROWS" +2077 rows = exp.Var(this=text) +2078 else: +2079 rows = None +2080 +2081 if self._match_text_seq("AFTER", "MATCH", "SKIP"): +2082 text = "AFTER MATCH SKIP" +2083 if self._match_text_seq("PAST", "LAST", "ROW"): +2084 text += f" PAST LAST ROW" +2085 elif self._match_text_seq("TO", "NEXT", "ROW"): +2086 text += f" TO NEXT ROW" +2087 elif self._match_text_seq("TO", "FIRST"): +2088 text += f" TO FIRST {self._advance_any().text}" # type: ignore +2089 elif self._match_text_seq("TO", "LAST"): +2090 text += f" TO LAST {self._advance_any().text}" # type: ignore +2091 after = exp.Var(this=text) +2092 else: +2093 after = None +2094 +2095 if self._match_text_seq("PATTERN"): +2096 self._match_l_paren() +2097 +2098 if not self._curr: +2099 self.raise_error("Expecting )", self._curr) +2100 +2101 paren = 1 +2102 start = self._curr +2103 +2104 while self._curr and paren > 0: +2105 if self._curr.token_type == TokenType.L_PAREN: +2106 paren += 1 +2107 if self._curr.token_type == TokenType.R_PAREN: +2108 paren -= 1 +2109 end = self._prev +2110 self._advance() +2111 if paren > 0: +2112 self.raise_error("Expecting )", self._curr) +2113 pattern = exp.Var(this=self._find_sql(start, end)) 2114 else: -2115 return None +2115 pattern = None 2116 -2117 if not this: -2118 this = self._parse_function() or self._parse_id_var(any_token=False) -2119 while self._match(TokenType.DOT): -2120 this = exp.Dot( -2121 this=this, -2122 expression=self._parse_function() or self._parse_id_var(any_token=False), +2117 define = ( +2118 self._parse_csv( +2119 lambda: self.expression( +2120 exp.Alias, +2121 alias=self._parse_id_var(any_token=True), +2122 this=self._match(TokenType.ALIAS) and self._parse_conjunction(), 2123 ) -2124 -2125 table_alias: t.Optional[exp.Expression] -2126 -2127 if view: -2128 table = self._parse_id_var(any_token=False) -2129 columns = self._parse_csv(self._parse_id_var) if self._match(TokenType.ALIAS) else [] -2130 table_alias = self.expression(exp.TableAlias, this=table, columns=columns) -2131 else: -2132 table_alias = self._parse_table_alias() -2133 -2134 expression = self.expression( -2135 exp.Lateral, -2136 this=this, -2137 view=view, -2138 outer=outer, -2139 alias=table_alias, -2140 ) -2141 -2142 return expression -2143 -2144 def _parse_join_side_and_kind( -2145 self, -2146 ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]: -2147 return ( -2148 self._match(TokenType.NATURAL) and self._prev, -2149 self._match_set(self.JOIN_SIDES) and self._prev, -2150 self._match_set(self.JOIN_KINDS) and self._prev, -2151 ) -2152 -2153 def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]: -2154 if self._match(TokenType.COMMA): -2155 return self.expression(exp.Join, this=self._parse_table()) -2156 -2157 index = self._index -2158 natural, side, kind = self._parse_join_side_and_kind() -2159 hint = self._prev.text if self._match_texts(self.JOIN_HINTS) else None -2160 join = self._match(TokenType.JOIN) -2161 -2162 if not skip_join_token and not join: -2163 self._retreat(index) -2164 kind = None -2165 natural = None -2166 side = None +2124 ) +2125 if self._match_text_seq("DEFINE") +2126 else None +2127 ) +2128 +2129 self._match_r_paren() +2130 +2131 return self.expression( +2132 exp.MatchRecognize, +2133 partition_by=partition, +2134 order=order, +2135 measures=measures, +2136 rows=rows, +2137 after=after, +2138 pattern=pattern, +2139 define=define, +2140 alias=self._parse_table_alias(), +2141 ) +2142 +2143 def _parse_lateral(self) -> t.Optional[exp.Expression]: +2144 outer_apply = self._match_pair(TokenType.OUTER, TokenType.APPLY) +2145 cross_apply = self._match_pair(TokenType.CROSS, TokenType.APPLY) +2146 +2147 if outer_apply or cross_apply: +2148 this = self._parse_select(table=True) +2149 view = None +2150 outer = not cross_apply +2151 elif self._match(TokenType.LATERAL): +2152 this = self._parse_select(table=True) +2153 view = self._match(TokenType.VIEW) +2154 outer = self._match(TokenType.OUTER) +2155 else: +2156 return None +2157 +2158 if not this: +2159 this = self._parse_function() or self._parse_id_var(any_token=False) +2160 while self._match(TokenType.DOT): +2161 this = exp.Dot( +2162 this=this, +2163 expression=self._parse_function() or self._parse_id_var(any_token=False), +2164 ) +2165 +2166 table_alias: t.Optional[exp.Expression] 2167 -2168 outer_apply = self._match_pair(TokenType.OUTER, TokenType.APPLY, False) -2169 cross_apply = self._match_pair(TokenType.CROSS, TokenType.APPLY, False) -2170 -2171 if not skip_join_token and not join and not outer_apply and not cross_apply: -2172 return None -2173 -2174 if outer_apply: -2175 side = Token(TokenType.LEFT, "LEFT") -2176 -2177 kwargs: t.Dict[ -2178 str, t.Optional[exp.Expression] | bool | str | t.List[t.Optional[exp.Expression]] -2179 ] = {"this": self._parse_table()} -2180 -2181 if natural: -2182 kwargs["natural"] = True -2183 if side: -2184 kwargs["side"] = side.text -2185 if kind: -2186 kwargs["kind"] = kind.text -2187 if hint: -2188 kwargs["hint"] = hint -2189 -2190 if self._match(TokenType.ON): -2191 kwargs["on"] = self._parse_conjunction() -2192 elif self._match(TokenType.USING): -2193 kwargs["using"] = self._parse_wrapped_id_vars() -2194 -2195 return self.expression(exp.Join, **kwargs) # type: ignore -2196 -2197 def _parse_index( -2198 self, -2199 index: t.Optional[exp.Expression] = None, -2200 ) -> t.Optional[exp.Expression]: -2201 if index: -2202 unique = None -2203 primary = None -2204 amp = None -2205 -2206 self._match(TokenType.ON) -2207 self._match(TokenType.TABLE) # hive -2208 table = self._parse_table_parts(schema=True) -2209 else: -2210 unique = self._match(TokenType.UNIQUE) -2211 primary = self._match_text_seq("PRIMARY") -2212 amp = self._match_text_seq("AMP") -2213 if not self._match(TokenType.INDEX): -2214 return None -2215 index = self._parse_id_var() -2216 table = None +2168 if view: +2169 table = self._parse_id_var(any_token=False) +2170 columns = self._parse_csv(self._parse_id_var) if self._match(TokenType.ALIAS) else [] +2171 table_alias = self.expression(exp.TableAlias, this=table, columns=columns) +2172 else: +2173 table_alias = self._parse_table_alias() +2174 +2175 expression = self.expression( +2176 exp.Lateral, +2177 this=this, +2178 view=view, +2179 outer=outer, +2180 alias=table_alias, +2181 ) +2182 +2183 return expression +2184 +2185 def _parse_join_parts( +2186 self, +2187 ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]: +2188 return ( +2189 self._match_set(self.JOIN_METHODS) and self._prev, +2190 self._match_set(self.JOIN_SIDES) and self._prev, +2191 self._match_set(self.JOIN_KINDS) and self._prev, +2192 ) +2193 +2194 def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]: +2195 if self._match(TokenType.COMMA): +2196 return self.expression(exp.Join, this=self._parse_table()) +2197 +2198 index = self._index +2199 method, side, kind = self._parse_join_parts() +2200 hint = self._prev.text if self._match_texts(self.JOIN_HINTS) else None +2201 join = self._match(TokenType.JOIN) +2202 +2203 if not skip_join_token and not join: +2204 self._retreat(index) +2205 kind = None +2206 method = None +2207 side = None +2208 +2209 outer_apply = self._match_pair(TokenType.OUTER, TokenType.APPLY, False) +2210 cross_apply = self._match_pair(TokenType.CROSS, TokenType.APPLY, False) +2211 +2212 if not skip_join_token and not join and not outer_apply and not cross_apply: +2213 return None +2214 +2215 if outer_apply: +2216 side = Token(TokenType.LEFT, "LEFT") 2217 -2218 if self._match(TokenType.L_PAREN, advance=False): -2219 columns = self._parse_wrapped_csv(self._parse_ordered) -2220 else: -2221 columns = None -2222 -2223 return self.expression( -2224 exp.Index, -2225 this=index, -2226 table=table, -2227 columns=columns, -2228 unique=unique, -2229 primary=primary, -2230 amp=amp, -2231 ) -2232 -2233 def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]: -2234 return ( -2235 (not schema and self._parse_function()) -2236 or self._parse_id_var(any_token=False) -2237 or self._parse_string_as_identifier() -2238 or self._parse_placeholder() -2239 ) -2240 -2241 def _parse_table_parts(self, schema: bool = False) -> exp.Table: -2242 catalog = None -2243 db = None -2244 table = self._parse_table_part(schema=schema) -2245 -2246 while self._match(TokenType.DOT): -2247 if catalog: -2248 # This allows nesting the table in arbitrarily many dot expressions if needed -2249 table = self.expression( -2250 exp.Dot, this=table, expression=self._parse_table_part(schema=schema) -2251 ) -2252 else: -2253 catalog = db -2254 db = table -2255 table = self._parse_table_part(schema=schema) +2218 kwargs: t.Dict[str, t.Any] = {"this": self._parse_table()} +2219 +2220 if method: +2221 kwargs["method"] = method.text +2222 if side: +2223 kwargs["side"] = side.text +2224 if kind: +2225 kwargs["kind"] = kind.text +2226 if hint: +2227 kwargs["hint"] = hint +2228 +2229 if self._match(TokenType.ON): +2230 kwargs["on"] = self._parse_conjunction() +2231 elif self._match(TokenType.USING): +2232 kwargs["using"] = self._parse_wrapped_id_vars() +2233 +2234 return self.expression(exp.Join, **kwargs) +2235 +2236 def _parse_index( +2237 self, +2238 index: t.Optional[exp.Expression] = None, +2239 ) -> t.Optional[exp.Expression]: +2240 if index: +2241 unique = None +2242 primary = None +2243 amp = None +2244 +2245 self._match(TokenType.ON) +2246 self._match(TokenType.TABLE) # hive +2247 table = self._parse_table_parts(schema=True) +2248 else: +2249 unique = self._match(TokenType.UNIQUE) +2250 primary = self._match_text_seq("PRIMARY") +2251 amp = self._match_text_seq("AMP") +2252 if not self._match(TokenType.INDEX): +2253 return None +2254 index = self._parse_id_var() +2255 table = None 2256 -2257 if not table: -2258 self.raise_error(f"Expected table name but got {self._curr}") -2259 -2260 return self.expression( -2261 exp.Table, this=table, db=db, catalog=catalog, pivots=self._parse_pivots() -2262 ) -2263 -2264 def _parse_table( -2265 self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None -2266 ) -> t.Optional[exp.Expression]: -2267 lateral = self._parse_lateral() -2268 if lateral: -2269 return lateral -2270 -2271 unnest = self._parse_unnest() -2272 if unnest: -2273 return unnest -2274 -2275 values = self._parse_derived_table_values() -2276 if values: -2277 return values -2278 -2279 subquery = self._parse_select(table=True) -2280 if subquery: -2281 if not subquery.args.get("pivots"): -2282 subquery.set("pivots", self._parse_pivots()) -2283 return subquery -2284 -2285 this: exp.Expression = self._parse_table_parts(schema=schema) -2286 -2287 if schema: -2288 return self._parse_schema(this=this) -2289 -2290 if self.alias_post_tablesample: -2291 table_sample = self._parse_table_sample() -2292 -2293 alias = self._parse_table_alias(alias_tokens=alias_tokens or self.TABLE_ALIAS_TOKENS) -2294 if alias: -2295 this.set("alias", alias) +2257 if self._match(TokenType.L_PAREN, advance=False): +2258 columns = self._parse_wrapped_csv(self._parse_ordered) +2259 else: +2260 columns = None +2261 +2262 return self.expression( +2263 exp.Index, +2264 this=index, +2265 table=table, +2266 columns=columns, +2267 unique=unique, +2268 primary=primary, +2269 amp=amp, +2270 partition_by=self._parse_partition_by(), +2271 ) +2272 +2273 def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]: +2274 return ( +2275 (not schema and self._parse_function()) +2276 or self._parse_id_var(any_token=False) +2277 or self._parse_string_as_identifier() +2278 or self._parse_placeholder() +2279 ) +2280 +2281 def _parse_table_parts(self, schema: bool = False) -> exp.Table: +2282 catalog = None +2283 db = None +2284 table = self._parse_table_part(schema=schema) +2285 +2286 while self._match(TokenType.DOT): +2287 if catalog: +2288 # This allows nesting the table in arbitrarily many dot expressions if needed +2289 table = self.expression( +2290 exp.Dot, this=table, expression=self._parse_table_part(schema=schema) +2291 ) +2292 else: +2293 catalog = db +2294 db = table +2295 table = self._parse_table_part(schema=schema) 2296 -2297 if not this.args.get("pivots"): -2298 this.set("pivots", self._parse_pivots()) +2297 if not table: +2298 self.raise_error(f"Expected table name but got {self._curr}") 2299 -2300 if self._match_pair(TokenType.WITH, TokenType.L_PAREN): -2301 this.set( -2302 "hints", -2303 self._parse_csv(lambda: self._parse_function() or self._parse_var(any_token=True)), -2304 ) -2305 self._match_r_paren() -2306 -2307 if not self.alias_post_tablesample: -2308 table_sample = self._parse_table_sample() -2309 -2310 if table_sample: -2311 table_sample.set("this", this) -2312 this = table_sample -2313 -2314 return this -2315 -2316 def _parse_unnest(self) -> t.Optional[exp.Expression]: -2317 if not self._match(TokenType.UNNEST): -2318 return None -2319 -2320 expressions = self._parse_wrapped_csv(self._parse_type) -2321 ordinality = self._match_pair(TokenType.WITH, TokenType.ORDINALITY) -2322 alias = self._parse_table_alias() -2323 -2324 if alias and self.unnest_column_only: -2325 if alias.args.get("columns"): -2326 self.raise_error("Unexpected extra column alias in unnest.") -2327 alias.set("columns", [alias.this]) -2328 alias.set("this", None) +2300 return self.expression( +2301 exp.Table, this=table, db=db, catalog=catalog, pivots=self._parse_pivots() +2302 ) +2303 +2304 def _parse_table( +2305 self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None +2306 ) -> t.Optional[exp.Expression]: +2307 lateral = self._parse_lateral() +2308 if lateral: +2309 return lateral +2310 +2311 unnest = self._parse_unnest() +2312 if unnest: +2313 return unnest +2314 +2315 values = self._parse_derived_table_values() +2316 if values: +2317 return values +2318 +2319 subquery = self._parse_select(table=True) +2320 if subquery: +2321 if not subquery.args.get("pivots"): +2322 subquery.set("pivots", self._parse_pivots()) +2323 return subquery +2324 +2325 this: exp.Expression = self._parse_table_parts(schema=schema) +2326 +2327 if schema: +2328 return self._parse_schema(this=this) 2329 -2330 offset = None -2331 if self._match_pair(TokenType.WITH, TokenType.OFFSET): -2332 self._match(TokenType.ALIAS) -2333 offset = self._parse_id_var() or exp.Identifier(this="offset") -2334 -2335 return self.expression( -2336 exp.Unnest, -2337 expressions=expressions, -2338 ordinality=ordinality, -2339 alias=alias, -2340 offset=offset, -2341 ) -2342 -2343 def _parse_derived_table_values(self) -> t.Optional[exp.Expression]: -2344 is_derived = self._match_pair(TokenType.L_PAREN, TokenType.VALUES) -2345 if not is_derived and not self._match(TokenType.VALUES): -2346 return None -2347 -2348 expressions = self._parse_csv(self._parse_value) +2330 if self.alias_post_tablesample: +2331 table_sample = self._parse_table_sample() +2332 +2333 alias = self._parse_table_alias(alias_tokens=alias_tokens or self.TABLE_ALIAS_TOKENS) +2334 if alias: +2335 this.set("alias", alias) +2336 +2337 if not this.args.get("pivots"): +2338 this.set("pivots", self._parse_pivots()) +2339 +2340 if self._match_pair(TokenType.WITH, TokenType.L_PAREN): +2341 this.set( +2342 "hints", +2343 self._parse_csv(lambda: self._parse_function() or self._parse_var(any_token=True)), +2344 ) +2345 self._match_r_paren() +2346 +2347 if not self.alias_post_tablesample: +2348 table_sample = self._parse_table_sample() 2349 -2350 if is_derived: -2351 self._match_r_paren() -2352 -2353 return self.expression(exp.Values, expressions=expressions, alias=self._parse_table_alias()) -2354 -2355 def _parse_table_sample(self, as_modifier: bool = False) -> t.Optional[exp.Expression]: -2356 if not self._match(TokenType.TABLE_SAMPLE) and not ( -2357 as_modifier and self._match_text_seq("USING", "SAMPLE") -2358 ): -2359 return None -2360 -2361 bucket_numerator = None -2362 bucket_denominator = None -2363 bucket_field = None -2364 percent = None -2365 rows = None -2366 size = None -2367 seed = None -2368 -2369 kind = ( -2370 self._prev.text if self._prev.token_type == TokenType.TABLE_SAMPLE else "USING SAMPLE" -2371 ) -2372 method = self._parse_var(tokens=(TokenType.ROW,)) -2373 -2374 self._match(TokenType.L_PAREN) -2375 -2376 num = self._parse_number() -2377 -2378 if self._match_text_seq("BUCKET"): -2379 bucket_numerator = self._parse_number() -2380 self._match_text_seq("OUT", "OF") -2381 bucket_denominator = bucket_denominator = self._parse_number() -2382 self._match(TokenType.ON) -2383 bucket_field = self._parse_field() -2384 elif self._match_set((TokenType.PERCENT, TokenType.MOD)): -2385 percent = num -2386 elif self._match(TokenType.ROWS): -2387 rows = num -2388 else: -2389 size = num -2390 -2391 self._match(TokenType.R_PAREN) +2350 if table_sample: +2351 table_sample.set("this", this) +2352 this = table_sample +2353 +2354 return this +2355 +2356 def _parse_unnest(self) -> t.Optional[exp.Expression]: +2357 if not self._match(TokenType.UNNEST): +2358 return None +2359 +2360 expressions = self._parse_wrapped_csv(self._parse_type) +2361 ordinality = self._match_pair(TokenType.WITH, TokenType.ORDINALITY) +2362 alias = self._parse_table_alias() +2363 +2364 if alias and self.unnest_column_only: +2365 if alias.args.get("columns"): +2366 self.raise_error("Unexpected extra column alias in unnest.") +2367 alias.set("columns", [alias.this]) +2368 alias.set("this", None) +2369 +2370 offset = None +2371 if self._match_pair(TokenType.WITH, TokenType.OFFSET): +2372 self._match(TokenType.ALIAS) +2373 offset = self._parse_id_var() or exp.Identifier(this="offset") +2374 +2375 return self.expression( +2376 exp.Unnest, +2377 expressions=expressions, +2378 ordinality=ordinality, +2379 alias=alias, +2380 offset=offset, +2381 ) +2382 +2383 def _parse_derived_table_values(self) -> t.Optional[exp.Expression]: +2384 is_derived = self._match_pair(TokenType.L_PAREN, TokenType.VALUES) +2385 if not is_derived and not self._match(TokenType.VALUES): +2386 return None +2387 +2388 expressions = self._parse_csv(self._parse_value) +2389 +2390 if is_derived: +2391 self._match_r_paren() 2392 -2393 if self._match(TokenType.L_PAREN): -2394 method = self._parse_var() -2395 seed = self._match(TokenType.COMMA) and self._parse_number() -2396 self._match_r_paren() -2397 elif self._match_texts(("SEED", "REPEATABLE")): -2398 seed = self._parse_wrapped(self._parse_number) -2399 -2400 return self.expression( -2401 exp.TableSample, -2402 method=method, -2403 bucket_numerator=bucket_numerator, -2404 bucket_denominator=bucket_denominator, -2405 bucket_field=bucket_field, -2406 percent=percent, -2407 rows=rows, -2408 size=size, -2409 seed=seed, -2410 kind=kind, +2393 return self.expression(exp.Values, expressions=expressions, alias=self._parse_table_alias()) +2394 +2395 def _parse_table_sample(self, as_modifier: bool = False) -> t.Optional[exp.Expression]: +2396 if not self._match(TokenType.TABLE_SAMPLE) and not ( +2397 as_modifier and self._match_text_seq("USING", "SAMPLE") +2398 ): +2399 return None +2400 +2401 bucket_numerator = None +2402 bucket_denominator = None +2403 bucket_field = None +2404 percent = None +2405 rows = None +2406 size = None +2407 seed = None +2408 +2409 kind = ( +2410 self._prev.text if self._prev.token_type == TokenType.TABLE_SAMPLE else "USING SAMPLE" 2411 ) -2412 -2413 def _parse_pivots(self) -> t.List[t.Optional[exp.Expression]]: -2414 return list(iter(self._parse_pivot, None)) +2412 method = self._parse_var(tokens=(TokenType.ROW,)) +2413 +2414 self._match(TokenType.L_PAREN) 2415 -2416 def _parse_pivot(self) -> t.Optional[exp.Expression]: -2417 index = self._index -2418 -2419 if self._match(TokenType.PIVOT): -2420 unpivot = False -2421 elif self._match(TokenType.UNPIVOT): -2422 unpivot = True -2423 else: -2424 return None -2425 -2426 expressions = [] -2427 field = None -2428 -2429 if not self._match(TokenType.L_PAREN): -2430 self._retreat(index) -2431 return None +2416 num = self._parse_number() +2417 +2418 if self._match_text_seq("BUCKET"): +2419 bucket_numerator = self._parse_number() +2420 self._match_text_seq("OUT", "OF") +2421 bucket_denominator = bucket_denominator = self._parse_number() +2422 self._match(TokenType.ON) +2423 bucket_field = self._parse_field() +2424 elif self._match_set((TokenType.PERCENT, TokenType.MOD)): +2425 percent = num +2426 elif self._match(TokenType.ROWS): +2427 rows = num +2428 else: +2429 size = num +2430 +2431 self._match(TokenType.R_PAREN) 2432 -2433 if unpivot: -2434 expressions = self._parse_csv(self._parse_column) -2435 else: -2436 expressions = self._parse_csv(lambda: self._parse_alias(self._parse_function())) -2437 -2438 if not expressions: -2439 self.raise_error("Failed to parse PIVOT's aggregation list") -2440 -2441 if not self._match(TokenType.FOR): -2442 self.raise_error("Expecting FOR") -2443 -2444 value = self._parse_column() -2445 -2446 if not self._match(TokenType.IN): -2447 self.raise_error("Expecting IN") -2448 -2449 field = self._parse_in(value, alias=True) -2450 -2451 self._match_r_paren() +2433 if self._match(TokenType.L_PAREN): +2434 method = self._parse_var() +2435 seed = self._match(TokenType.COMMA) and self._parse_number() +2436 self._match_r_paren() +2437 elif self._match_texts(("SEED", "REPEATABLE")): +2438 seed = self._parse_wrapped(self._parse_number) +2439 +2440 return self.expression( +2441 exp.TableSample, +2442 method=method, +2443 bucket_numerator=bucket_numerator, +2444 bucket_denominator=bucket_denominator, +2445 bucket_field=bucket_field, +2446 percent=percent, +2447 rows=rows, +2448 size=size, +2449 seed=seed, +2450 kind=kind, +2451 ) 2452 -2453 pivot = self.expression(exp.Pivot, expressions=expressions, field=field, unpivot=unpivot) -2454 -2455 if not self._match_set((TokenType.PIVOT, TokenType.UNPIVOT), advance=False): -2456 pivot.set("alias", self._parse_table_alias()) -2457 -2458 if not unpivot: -2459 names = self._pivot_column_names(t.cast(t.List[exp.Expression], expressions)) -2460 -2461 columns: t.List[exp.Expression] = [] -2462 for fld in pivot.args["field"].expressions: -2463 field_name = fld.sql() if self.IDENTIFY_PIVOT_STRINGS else fld.alias_or_name -2464 for name in names: -2465 if self.PREFIXED_PIVOT_COLUMNS: -2466 name = f"{name}_{field_name}" if name else field_name -2467 else: -2468 name = f"{field_name}_{name}" if name else field_name -2469 -2470 columns.append(exp.to_identifier(name)) +2453 def _parse_pivots(self) -> t.List[t.Optional[exp.Expression]]: +2454 return list(iter(self._parse_pivot, None)) +2455 +2456 # https://duckdb.org/docs/sql/statements/pivot +2457 def _parse_simplified_pivot(self) -> exp.Pivot: +2458 def _parse_on() -> t.Optional[exp.Expression]: +2459 this = self._parse_bitwise() +2460 return self._parse_in(this) if self._match(TokenType.IN) else this +2461 +2462 this = self._parse_table() +2463 expressions = self._match(TokenType.ON) and self._parse_csv(_parse_on) +2464 using = self._match(TokenType.USING) and self._parse_csv( +2465 lambda: self._parse_alias(self._parse_function()) +2466 ) +2467 group = self._parse_group() +2468 return self.expression( +2469 exp.Pivot, this=this, expressions=expressions, using=using, group=group +2470 ) 2471 -2472 pivot.set("columns", columns) -2473 -2474 return pivot -2475 -2476 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: -2477 return [agg.alias for agg in aggregations] -2478 -2479 def _parse_where(self, skip_where_token: bool = False) -> t.Optional[exp.Expression]: -2480 if not skip_where_token and not self._match(TokenType.WHERE): -2481 return None -2482 -2483 return self.expression( -2484 exp.Where, comments=self._prev_comments, this=self._parse_conjunction() -2485 ) -2486 -2487 def _parse_group(self, skip_group_by_token: bool = False) -> t.Optional[exp.Expression]: -2488 if not skip_group_by_token and not self._match(TokenType.GROUP_BY): -2489 return None -2490 -2491 elements = defaultdict(list) -2492 -2493 while True: -2494 expressions = self._parse_csv(self._parse_conjunction) -2495 if expressions: -2496 elements["expressions"].extend(expressions) -2497 -2498 grouping_sets = self._parse_grouping_sets() -2499 if grouping_sets: -2500 elements["grouping_sets"].extend(grouping_sets) +2472 def _parse_pivot(self) -> t.Optional[exp.Expression]: +2473 index = self._index +2474 +2475 if self._match(TokenType.PIVOT): +2476 unpivot = False +2477 elif self._match(TokenType.UNPIVOT): +2478 unpivot = True +2479 else: +2480 return None +2481 +2482 expressions = [] +2483 field = None +2484 +2485 if not self._match(TokenType.L_PAREN): +2486 self._retreat(index) +2487 return None +2488 +2489 if unpivot: +2490 expressions = self._parse_csv(self._parse_column) +2491 else: +2492 expressions = self._parse_csv(lambda: self._parse_alias(self._parse_function())) +2493 +2494 if not expressions: +2495 self.raise_error("Failed to parse PIVOT's aggregation list") +2496 +2497 if not self._match(TokenType.FOR): +2498 self.raise_error("Expecting FOR") +2499 +2500 value = self._parse_column() 2501 -2502 rollup = None -2503 cube = None -2504 totals = None -2505 -2506 with_ = self._match(TokenType.WITH) -2507 if self._match(TokenType.ROLLUP): -2508 rollup = with_ or self._parse_wrapped_csv(self._parse_column) -2509 elements["rollup"].extend(ensure_list(rollup)) +2502 if not self._match(TokenType.IN): +2503 self.raise_error("Expecting IN") +2504 +2505 field = self._parse_in(value, alias=True) +2506 +2507 self._match_r_paren() +2508 +2509 pivot = self.expression(exp.Pivot, expressions=expressions, field=field, unpivot=unpivot) 2510 -2511 if self._match(TokenType.CUBE): -2512 cube = with_ or self._parse_wrapped_csv(self._parse_column) -2513 elements["cube"].extend(ensure_list(cube)) -2514 -2515 if self._match_text_seq("TOTALS"): -2516 totals = True -2517 elements["totals"] = True # type: ignore -2518 -2519 if not (grouping_sets or rollup or cube or totals): -2520 break -2521 -2522 return self.expression(exp.Group, **elements) # type: ignore -2523 -2524 def _parse_grouping_sets(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]: -2525 if not self._match(TokenType.GROUPING_SETS): -2526 return None +2511 if not self._match_set((TokenType.PIVOT, TokenType.UNPIVOT), advance=False): +2512 pivot.set("alias", self._parse_table_alias()) +2513 +2514 if not unpivot: +2515 names = self._pivot_column_names(t.cast(t.List[exp.Expression], expressions)) +2516 +2517 columns: t.List[exp.Expression] = [] +2518 for fld in pivot.args["field"].expressions: +2519 field_name = fld.sql() if self.IDENTIFY_PIVOT_STRINGS else fld.alias_or_name +2520 for name in names: +2521 if self.PREFIXED_PIVOT_COLUMNS: +2522 name = f"{name}_{field_name}" if name else field_name +2523 else: +2524 name = f"{field_name}_{name}" if name else field_name +2525 +2526 columns.append(exp.to_identifier(name)) 2527 -2528 return self._parse_wrapped_csv(self._parse_grouping_set) +2528 pivot.set("columns", columns) 2529 -2530 def _parse_grouping_set(self) -> t.Optional[exp.Expression]: -2531 if self._match(TokenType.L_PAREN): -2532 grouping_set = self._parse_csv(self._parse_column) -2533 self._match_r_paren() -2534 return self.expression(exp.Tuple, expressions=grouping_set) -2535 -2536 return self._parse_column() -2537 -2538 def _parse_having(self, skip_having_token: bool = False) -> t.Optional[exp.Expression]: -2539 if not skip_having_token and not self._match(TokenType.HAVING): -2540 return None -2541 return self.expression(exp.Having, this=self._parse_conjunction()) +2530 return pivot +2531 +2532 def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]: +2533 return [agg.alias for agg in aggregations] +2534 +2535 def _parse_where(self, skip_where_token: bool = False) -> t.Optional[exp.Expression]: +2536 if not skip_where_token and not self._match(TokenType.WHERE): +2537 return None +2538 +2539 return self.expression( +2540 exp.Where, comments=self._prev_comments, this=self._parse_conjunction() +2541 ) 2542 -2543 def _parse_qualify(self) -> t.Optional[exp.Expression]: -2544 if not self._match(TokenType.QUALIFY): +2543 def _parse_group(self, skip_group_by_token: bool = False) -> t.Optional[exp.Expression]: +2544 if not skip_group_by_token and not self._match(TokenType.GROUP_BY): 2545 return None -2546 return self.expression(exp.Qualify, this=self._parse_conjunction()) -2547 -2548 def _parse_order( -2549 self, this: t.Optional[exp.Expression] = None, skip_order_token: bool = False -2550 ) -> t.Optional[exp.Expression]: -2551 if not skip_order_token and not self._match(TokenType.ORDER_BY): -2552 return this +2546 +2547 elements = defaultdict(list) +2548 +2549 while True: +2550 expressions = self._parse_csv(self._parse_conjunction) +2551 if expressions: +2552 elements["expressions"].extend(expressions) 2553 -2554 return self.expression( -2555 exp.Order, this=this, expressions=self._parse_csv(self._parse_ordered) -2556 ) +2554 grouping_sets = self._parse_grouping_sets() +2555 if grouping_sets: +2556 elements["grouping_sets"].extend(grouping_sets) 2557 -2558 def _parse_sort( -2559 self, exp_class: t.Type[exp.Expression], *texts: str -2560 ) -> t.Optional[exp.Expression]: -2561 if not self._match_text_seq(*texts): -2562 return None -2563 return self.expression(exp_class, expressions=self._parse_csv(self._parse_ordered)) -2564 -2565 def _parse_ordered(self) -> exp.Expression: -2566 this = self._parse_conjunction() -2567 self._match(TokenType.ASC) -2568 is_desc = self._match(TokenType.DESC) -2569 is_nulls_first = self._match_text_seq("NULLS", "FIRST") -2570 is_nulls_last = self._match_text_seq("NULLS", "LAST") -2571 desc = is_desc or False -2572 asc = not desc -2573 nulls_first = is_nulls_first or False -2574 explicitly_null_ordered = is_nulls_first or is_nulls_last -2575 if ( -2576 not explicitly_null_ordered -2577 and ( -2578 (asc and self.null_ordering == "nulls_are_small") -2579 or (desc and self.null_ordering != "nulls_are_small") -2580 ) -2581 and self.null_ordering != "nulls_are_last" -2582 ): -2583 nulls_first = True -2584 -2585 return self.expression(exp.Ordered, this=this, desc=desc, nulls_first=nulls_first) -2586 -2587 def _parse_limit( -2588 self, this: t.Optional[exp.Expression] = None, top: bool = False -2589 ) -> t.Optional[exp.Expression]: -2590 if self._match(TokenType.TOP if top else TokenType.LIMIT): -2591 limit_paren = self._match(TokenType.L_PAREN) -2592 limit_exp = self.expression( -2593 exp.Limit, this=this, expression=self._parse_number() if top else self._parse_term() -2594 ) -2595 -2596 if limit_paren: -2597 self._match_r_paren() +2558 rollup = None +2559 cube = None +2560 totals = None +2561 +2562 with_ = self._match(TokenType.WITH) +2563 if self._match(TokenType.ROLLUP): +2564 rollup = with_ or self._parse_wrapped_csv(self._parse_column) +2565 elements["rollup"].extend(ensure_list(rollup)) +2566 +2567 if self._match(TokenType.CUBE): +2568 cube = with_ or self._parse_wrapped_csv(self._parse_column) +2569 elements["cube"].extend(ensure_list(cube)) +2570 +2571 if self._match_text_seq("TOTALS"): +2572 totals = True +2573 elements["totals"] = True # type: ignore +2574 +2575 if not (grouping_sets or rollup or cube or totals): +2576 break +2577 +2578 return self.expression(exp.Group, **elements) # type: ignore +2579 +2580 def _parse_grouping_sets(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]: +2581 if not self._match(TokenType.GROUPING_SETS): +2582 return None +2583 +2584 return self._parse_wrapped_csv(self._parse_grouping_set) +2585 +2586 def _parse_grouping_set(self) -> t.Optional[exp.Expression]: +2587 if self._match(TokenType.L_PAREN): +2588 grouping_set = self._parse_csv(self._parse_column) +2589 self._match_r_paren() +2590 return self.expression(exp.Tuple, expressions=grouping_set) +2591 +2592 return self._parse_column() +2593 +2594 def _parse_having(self, skip_having_token: bool = False) -> t.Optional[exp.Expression]: +2595 if not skip_having_token and not self._match(TokenType.HAVING): +2596 return None +2597 return self.expression(exp.Having, this=self._parse_conjunction()) 2598 -2599 return limit_exp -2600 -2601 if self._match(TokenType.FETCH): -2602 direction = self._match_set((TokenType.FIRST, TokenType.NEXT)) -2603 direction = self._prev.text if direction else "FIRST" -2604 -2605 count = self._parse_number() -2606 percent = self._match(TokenType.PERCENT) -2607 -2608 self._match_set((TokenType.ROW, TokenType.ROWS)) +2599 def _parse_qualify(self) -> t.Optional[exp.Expression]: +2600 if not self._match(TokenType.QUALIFY): +2601 return None +2602 return self.expression(exp.Qualify, this=self._parse_conjunction()) +2603 +2604 def _parse_order( +2605 self, this: t.Optional[exp.Expression] = None, skip_order_token: bool = False +2606 ) -> t.Optional[exp.Expression]: +2607 if not skip_order_token and not self._match(TokenType.ORDER_BY): +2608 return this 2609 -2610 only = self._match_text_seq("ONLY") -2611 with_ties = self._match_text_seq("WITH", "TIES") -2612 -2613 if only and with_ties: -2614 self.raise_error("Cannot specify both ONLY and WITH TIES in FETCH clause") -2615 -2616 return self.expression( -2617 exp.Fetch, -2618 direction=direction, -2619 count=count, -2620 percent=percent, -2621 with_ties=with_ties, -2622 ) -2623 -2624 return this -2625 -2626 def _parse_offset(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]: -2627 if not self._match_set((TokenType.OFFSET, TokenType.COMMA)): -2628 return this -2629 -2630 count = self._parse_number() -2631 self._match_set((TokenType.ROW, TokenType.ROWS)) -2632 return self.expression(exp.Offset, this=this, expression=count) -2633 -2634 def _parse_locks(self) -> t.List[exp.Expression]: -2635 # Lists are invariant, so we need to use a type hint here -2636 locks: t.List[exp.Expression] = [] -2637 -2638 while True: -2639 if self._match_text_seq("FOR", "UPDATE"): -2640 update = True -2641 elif self._match_text_seq("FOR", "SHARE") or self._match_text_seq( -2642 "LOCK", "IN", "SHARE", "MODE" -2643 ): -2644 update = False -2645 else: -2646 break -2647 -2648 expressions = None -2649 if self._match_text_seq("OF"): -2650 expressions = self._parse_csv(lambda: self._parse_table(schema=True)) +2610 return self.expression( +2611 exp.Order, this=this, expressions=self._parse_csv(self._parse_ordered) +2612 ) +2613 +2614 def _parse_sort( +2615 self, exp_class: t.Type[exp.Expression], *texts: str +2616 ) -> t.Optional[exp.Expression]: +2617 if not self._match_text_seq(*texts): +2618 return None +2619 return self.expression(exp_class, expressions=self._parse_csv(self._parse_ordered)) +2620 +2621 def _parse_ordered(self) -> exp.Expression: +2622 this = self._parse_conjunction() +2623 self._match(TokenType.ASC) +2624 is_desc = self._match(TokenType.DESC) +2625 is_nulls_first = self._match_text_seq("NULLS", "FIRST") +2626 is_nulls_last = self._match_text_seq("NULLS", "LAST") +2627 desc = is_desc or False +2628 asc = not desc +2629 nulls_first = is_nulls_first or False +2630 explicitly_null_ordered = is_nulls_first or is_nulls_last +2631 if ( +2632 not explicitly_null_ordered +2633 and ( +2634 (asc and self.null_ordering == "nulls_are_small") +2635 or (desc and self.null_ordering != "nulls_are_small") +2636 ) +2637 and self.null_ordering != "nulls_are_last" +2638 ): +2639 nulls_first = True +2640 +2641 return self.expression(exp.Ordered, this=this, desc=desc, nulls_first=nulls_first) +2642 +2643 def _parse_limit( +2644 self, this: t.Optional[exp.Expression] = None, top: bool = False +2645 ) -> t.Optional[exp.Expression]: +2646 if self._match(TokenType.TOP if top else TokenType.LIMIT): +2647 limit_paren = self._match(TokenType.L_PAREN) +2648 limit_exp = self.expression( +2649 exp.Limit, this=this, expression=self._parse_number() if top else self._parse_term() +2650 ) 2651 -2652 wait: t.Optional[bool | exp.Expression] = None -2653 if self._match_text_seq("NOWAIT"): -2654 wait = True -2655 elif self._match_text_seq("WAIT"): -2656 wait = self._parse_primary() -2657 elif self._match_text_seq("SKIP", "LOCKED"): -2658 wait = False -2659 -2660 locks.append( -2661 self.expression(exp.Lock, update=update, expressions=expressions, wait=wait) -2662 ) +2652 if limit_paren: +2653 self._match_r_paren() +2654 +2655 return limit_exp +2656 +2657 if self._match(TokenType.FETCH): +2658 direction = self._match_set((TokenType.FIRST, TokenType.NEXT)) +2659 direction = self._prev.text if direction else "FIRST" +2660 +2661 count = self._parse_number() +2662 percent = self._match(TokenType.PERCENT) 2663 -2664 return locks +2664 self._match_set((TokenType.ROW, TokenType.ROWS)) 2665 -2666 def _parse_set_operations(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: -2667 if not self._match_set(self.SET_OPERATIONS): -2668 return this -2669 -2670 token_type = self._prev.token_type +2666 only = self._match_text_seq("ONLY") +2667 with_ties = self._match_text_seq("WITH", "TIES") +2668 +2669 if only and with_ties: +2670 self.raise_error("Cannot specify both ONLY and WITH TIES in FETCH clause") 2671 -2672 if token_type == TokenType.UNION: -2673 expression = exp.Union -2674 elif token_type == TokenType.EXCEPT: -2675 expression = exp.Except -2676 else: -2677 expression = exp.Intersect -2678 -2679 return self.expression( -2680 expression, -2681 this=this, -2682 distinct=self._match(TokenType.DISTINCT) or not self._match(TokenType.ALL), -2683 expression=self._parse_set_operations(self._parse_select(nested=True)), -2684 ) +2672 return self.expression( +2673 exp.Fetch, +2674 direction=direction, +2675 count=count, +2676 percent=percent, +2677 with_ties=with_ties, +2678 ) +2679 +2680 return this +2681 +2682 def _parse_offset(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]: +2683 if not self._match_set((TokenType.OFFSET, TokenType.COMMA)): +2684 return this 2685 -2686 def _parse_expression(self) -> t.Optional[exp.Expression]: -2687 return self._parse_alias(self._parse_conjunction()) -2688 -2689 def _parse_conjunction(self) -> t.Optional[exp.Expression]: -2690 return self._parse_tokens(self._parse_equality, self.CONJUNCTION) -2691 -2692 def _parse_equality(self) -> t.Optional[exp.Expression]: -2693 return self._parse_tokens(self._parse_comparison, self.EQUALITY) -2694 -2695 def _parse_comparison(self) -> t.Optional[exp.Expression]: -2696 return self._parse_tokens(self._parse_range, self.COMPARISON) -2697 -2698 def _parse_range(self) -> t.Optional[exp.Expression]: -2699 this = self._parse_bitwise() -2700 negate = self._match(TokenType.NOT) -2701 -2702 if self._match_set(self.RANGE_PARSERS): -2703 expression = self.RANGE_PARSERS[self._prev.token_type](self, this) -2704 if not expression: -2705 return this -2706 -2707 this = expression -2708 elif self._match(TokenType.ISNULL): -2709 this = self.expression(exp.Is, this=this, expression=exp.Null()) -2710 -2711 # Postgres supports ISNULL and NOTNULL for conditions. -2712 # https://blog.andreiavram.ro/postgresql-null-composite-type/ -2713 if self._match(TokenType.NOTNULL): -2714 this = self.expression(exp.Is, this=this, expression=exp.Null()) -2715 this = self.expression(exp.Not, this=this) -2716 -2717 if negate: -2718 this = self.expression(exp.Not, this=this) +2686 count = self._parse_number() +2687 self._match_set((TokenType.ROW, TokenType.ROWS)) +2688 return self.expression(exp.Offset, this=this, expression=count) +2689 +2690 def _parse_locks(self) -> t.List[exp.Expression]: +2691 # Lists are invariant, so we need to use a type hint here +2692 locks: t.List[exp.Expression] = [] +2693 +2694 while True: +2695 if self._match_text_seq("FOR", "UPDATE"): +2696 update = True +2697 elif self._match_text_seq("FOR", "SHARE") or self._match_text_seq( +2698 "LOCK", "IN", "SHARE", "MODE" +2699 ): +2700 update = False +2701 else: +2702 break +2703 +2704 expressions = None +2705 if self._match_text_seq("OF"): +2706 expressions = self._parse_csv(lambda: self._parse_table(schema=True)) +2707 +2708 wait: t.Optional[bool | exp.Expression] = None +2709 if self._match_text_seq("NOWAIT"): +2710 wait = True +2711 elif self._match_text_seq("WAIT"): +2712 wait = self._parse_primary() +2713 elif self._match_text_seq("SKIP", "LOCKED"): +2714 wait = False +2715 +2716 locks.append( +2717 self.expression(exp.Lock, update=update, expressions=expressions, wait=wait) +2718 ) 2719 -2720 if self._match(TokenType.IS): -2721 this = self._parse_is(this) -2722 -2723 return this -2724 -2725 def _parse_is(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: -2726 index = self._index - 1 -2727 negate = self._match(TokenType.NOT) -2728 if self._match_text_seq("DISTINCT", "FROM"): -2729 klass = exp.NullSafeEQ if negate else exp.NullSafeNEQ -2730 return self.expression(klass, this=this, expression=self._parse_expression()) -2731 -2732 expression = self._parse_null() or self._parse_boolean() -2733 if not expression: -2734 self._retreat(index) -2735 return None -2736 -2737 this = self.expression(exp.Is, this=this, expression=expression) -2738 return self.expression(exp.Not, this=this) if negate else this -2739 -2740 def _parse_in(self, this: t.Optional[exp.Expression], alias: bool = False) -> exp.Expression: -2741 unnest = self._parse_unnest() -2742 if unnest: -2743 this = self.expression(exp.In, this=this, unnest=unnest) -2744 elif self._match(TokenType.L_PAREN): -2745 expressions = self._parse_csv(lambda: self._parse_select_or_expression(alias=alias)) -2746 -2747 if len(expressions) == 1 and isinstance(expressions[0], exp.Subqueryable): -2748 this = self.expression(exp.In, this=this, query=expressions[0]) -2749 else: -2750 this = self.expression(exp.In, this=this, expressions=expressions) -2751 -2752 self._match_r_paren(this) -2753 else: -2754 this = self.expression(exp.In, this=this, field=self._parse_field()) -2755 -2756 return this +2720 return locks +2721 +2722 def _parse_set_operations(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: +2723 if not self._match_set(self.SET_OPERATIONS): +2724 return this +2725 +2726 token_type = self._prev.token_type +2727 +2728 if token_type == TokenType.UNION: +2729 expression = exp.Union +2730 elif token_type == TokenType.EXCEPT: +2731 expression = exp.Except +2732 else: +2733 expression = exp.Intersect +2734 +2735 return self.expression( +2736 expression, +2737 this=this, +2738 distinct=self._match(TokenType.DISTINCT) or not self._match(TokenType.ALL), +2739 expression=self._parse_set_operations(self._parse_select(nested=True)), +2740 ) +2741 +2742 def _parse_expression(self) -> t.Optional[exp.Expression]: +2743 return self._parse_alias(self._parse_conjunction()) +2744 +2745 def _parse_conjunction(self) -> t.Optional[exp.Expression]: +2746 return self._parse_tokens(self._parse_equality, self.CONJUNCTION) +2747 +2748 def _parse_equality(self) -> t.Optional[exp.Expression]: +2749 return self._parse_tokens(self._parse_comparison, self.EQUALITY) +2750 +2751 def _parse_comparison(self) -> t.Optional[exp.Expression]: +2752 return self._parse_tokens(self._parse_range, self.COMPARISON) +2753 +2754 def _parse_range(self) -> t.Optional[exp.Expression]: +2755 this = self._parse_bitwise() +2756 negate = self._match(TokenType.NOT) 2757 -2758 def _parse_between(self, this: exp.Expression) -> exp.Expression: -2759 low = self._parse_bitwise() -2760 self._match(TokenType.AND) -2761 high = self._parse_bitwise() -2762 return self.expression(exp.Between, this=this, low=low, high=high) -2763 -2764 def _parse_escape(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: -2765 if not self._match(TokenType.ESCAPE): -2766 return this -2767 return self.expression(exp.Escape, this=this, expression=self._parse_string()) -2768 -2769 def _parse_interval(self) -> t.Optional[exp.Expression]: -2770 if not self._match(TokenType.INTERVAL): -2771 return None +2758 if self._match_set(self.RANGE_PARSERS): +2759 expression = self.RANGE_PARSERS[self._prev.token_type](self, this) +2760 if not expression: +2761 return this +2762 +2763 this = expression +2764 elif self._match(TokenType.ISNULL): +2765 this = self.expression(exp.Is, this=this, expression=exp.Null()) +2766 +2767 # Postgres supports ISNULL and NOTNULL for conditions. +2768 # https://blog.andreiavram.ro/postgresql-null-composite-type/ +2769 if self._match(TokenType.NOTNULL): +2770 this = self.expression(exp.Is, this=this, expression=exp.Null()) +2771 this = self.expression(exp.Not, this=this) 2772 -2773 this = self._parse_primary() or self._parse_term() -2774 unit = self._parse_function() or self._parse_var() +2773 if negate: +2774 this = self.expression(exp.Not, this=this) 2775 -2776 # Most dialects support, e.g., the form INTERVAL '5' day, thus we try to parse -2777 # each INTERVAL expression into this canonical form so it's easy to transpile -2778 if this and isinstance(this, exp.Literal): -2779 if this.is_number: -2780 this = exp.Literal.string(this.name) -2781 -2782 # Try to not clutter Snowflake's multi-part intervals like INTERVAL '1 day, 1 year' -2783 parts = this.name.split() -2784 if not unit and len(parts) <= 2: -2785 this = exp.Literal.string(seq_get(parts, 0)) -2786 unit = self.expression(exp.Var, this=seq_get(parts, 1)) +2776 if self._match(TokenType.IS): +2777 this = self._parse_is(this) +2778 +2779 return this +2780 +2781 def _parse_is(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: +2782 index = self._index - 1 +2783 negate = self._match(TokenType.NOT) +2784 if self._match_text_seq("DISTINCT", "FROM"): +2785 klass = exp.NullSafeEQ if negate else exp.NullSafeNEQ +2786 return self.expression(klass, this=this, expression=self._parse_expression()) 2787 -2788 return self.expression(exp.Interval, this=this, unit=unit) -2789 -2790 def _parse_bitwise(self) -> t.Optional[exp.Expression]: -2791 this = self._parse_term() +2788 expression = self._parse_null() or self._parse_boolean() +2789 if not expression: +2790 self._retreat(index) +2791 return None 2792 -2793 while True: -2794 if self._match_set(self.BITWISE): -2795 this = self.expression( -2796 self.BITWISE[self._prev.token_type], -2797 this=this, -2798 expression=self._parse_term(), -2799 ) -2800 elif self._match_pair(TokenType.LT, TokenType.LT): -2801 this = self.expression( -2802 exp.BitwiseLeftShift, this=this, expression=self._parse_term() -2803 ) -2804 elif self._match_pair(TokenType.GT, TokenType.GT): -2805 this = self.expression( -2806 exp.BitwiseRightShift, this=this, expression=self._parse_term() -2807 ) -2808 else: -2809 break -2810 -2811 return this -2812 -2813 def _parse_term(self) -> t.Optional[exp.Expression]: -2814 return self._parse_tokens(self._parse_factor, self.TERM) -2815 -2816 def _parse_factor(self) -> t.Optional[exp.Expression]: -2817 return self._parse_tokens(self._parse_unary, self.FACTOR) -2818 -2819 def _parse_unary(self) -> t.Optional[exp.Expression]: -2820 if self._match_set(self.UNARY_PARSERS): -2821 return self.UNARY_PARSERS[self._prev.token_type](self) -2822 return self._parse_at_time_zone(self._parse_type()) -2823 -2824 def _parse_type(self) -> t.Optional[exp.Expression]: -2825 interval = self._parse_interval() -2826 if interval: -2827 return interval +2793 this = self.expression(exp.Is, this=this, expression=expression) +2794 return self.expression(exp.Not, this=this) if negate else this +2795 +2796 def _parse_in(self, this: t.Optional[exp.Expression], alias: bool = False) -> exp.In: +2797 unnest = self._parse_unnest() +2798 if unnest: +2799 this = self.expression(exp.In, this=this, unnest=unnest) +2800 elif self._match(TokenType.L_PAREN): +2801 expressions = self._parse_csv(lambda: self._parse_select_or_expression(alias=alias)) +2802 +2803 if len(expressions) == 1 and isinstance(expressions[0], exp.Subqueryable): +2804 this = self.expression(exp.In, this=this, query=expressions[0]) +2805 else: +2806 this = self.expression(exp.In, this=this, expressions=expressions) +2807 +2808 self._match_r_paren(this) +2809 else: +2810 this = self.expression(exp.In, this=this, field=self._parse_field()) +2811 +2812 return this +2813 +2814 def _parse_between(self, this: exp.Expression) -> exp.Expression: +2815 low = self._parse_bitwise() +2816 self._match(TokenType.AND) +2817 high = self._parse_bitwise() +2818 return self.expression(exp.Between, this=this, low=low, high=high) +2819 +2820 def _parse_escape(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: +2821 if not self._match(TokenType.ESCAPE): +2822 return this +2823 return self.expression(exp.Escape, this=this, expression=self._parse_string()) +2824 +2825 def _parse_interval(self) -> t.Optional[exp.Expression]: +2826 if not self._match(TokenType.INTERVAL): +2827 return None 2828 -2829 index = self._index -2830 data_type = self._parse_types(check_func=True) -2831 this = self._parse_column() -2832 -2833 if data_type: -2834 if isinstance(this, exp.Literal): -2835 parser = self.TYPE_LITERAL_PARSERS.get(data_type.this) -2836 if parser: -2837 return parser(self, this, data_type) -2838 return self.expression(exp.Cast, this=this, to=data_type) -2839 if not data_type.expressions: -2840 self._retreat(index) -2841 return self._parse_column() -2842 return data_type -2843 -2844 return this -2845 -2846 def _parse_type_size(self) -> t.Optional[exp.Expression]: -2847 this = self._parse_type() -2848 if not this: -2849 return None -2850 -2851 return self.expression( -2852 exp.DataTypeSize, this=this, expression=self._parse_var(any_token=True) -2853 ) -2854 -2855 def _parse_types(self, check_func: bool = False) -> t.Optional[exp.Expression]: -2856 index = self._index -2857 -2858 prefix = self._match_text_seq("SYSUDTLIB", ".") -2859 -2860 if not self._match_set(self.TYPE_TOKENS): -2861 return None -2862 -2863 type_token = self._prev.token_type -2864 -2865 if type_token == TokenType.PSEUDO_TYPE: -2866 return self.expression(exp.PseudoType, this=self._prev.text) -2867 -2868 nested = type_token in self.NESTED_TYPE_TOKENS -2869 is_struct = type_token == TokenType.STRUCT -2870 expressions = None -2871 maybe_func = False +2829 this = self._parse_primary() or self._parse_term() +2830 unit = self._parse_function() or self._parse_var() +2831 +2832 # Most dialects support, e.g., the form INTERVAL '5' day, thus we try to parse +2833 # each INTERVAL expression into this canonical form so it's easy to transpile +2834 if this and this.is_number: +2835 this = exp.Literal.string(this.name) +2836 elif this and this.is_string: +2837 parts = this.name.split() +2838 +2839 if len(parts) == 2: +2840 if unit: +2841 # this is not actually a unit, it's something else +2842 unit = None +2843 self._retreat(self._index - 1) +2844 else: +2845 this = exp.Literal.string(parts[0]) +2846 unit = self.expression(exp.Var, this=parts[1]) +2847 +2848 return self.expression(exp.Interval, this=this, unit=unit) +2849 +2850 def _parse_bitwise(self) -> t.Optional[exp.Expression]: +2851 this = self._parse_term() +2852 +2853 while True: +2854 if self._match_set(self.BITWISE): +2855 this = self.expression( +2856 self.BITWISE[self._prev.token_type], +2857 this=this, +2858 expression=self._parse_term(), +2859 ) +2860 elif self._match_pair(TokenType.LT, TokenType.LT): +2861 this = self.expression( +2862 exp.BitwiseLeftShift, this=this, expression=self._parse_term() +2863 ) +2864 elif self._match_pair(TokenType.GT, TokenType.GT): +2865 this = self.expression( +2866 exp.BitwiseRightShift, this=this, expression=self._parse_term() +2867 ) +2868 else: +2869 break +2870 +2871 return this 2872 -2873 if self._match(TokenType.L_PAREN): -2874 if is_struct: -2875 expressions = self._parse_csv(self._parse_struct_types) -2876 elif nested: -2877 expressions = self._parse_csv(self._parse_types) -2878 else: -2879 expressions = self._parse_csv(self._parse_type_size) -2880 -2881 if not expressions or not self._match(TokenType.R_PAREN): -2882 self._retreat(index) -2883 return None -2884 -2885 maybe_func = True -2886 -2887 if self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET): -2888 this = exp.DataType( -2889 this=exp.DataType.Type.ARRAY, -2890 expressions=[exp.DataType.build(type_token.value, expressions=expressions)], -2891 nested=True, -2892 ) -2893 -2894 while self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET): -2895 this = exp.DataType( -2896 this=exp.DataType.Type.ARRAY, -2897 expressions=[this], -2898 nested=True, -2899 ) -2900 -2901 return this -2902 -2903 if self._match(TokenType.L_BRACKET): -2904 self._retreat(index) -2905 return None -2906 -2907 values: t.Optional[t.List[t.Optional[exp.Expression]]] = None -2908 if nested and self._match(TokenType.LT): -2909 if is_struct: -2910 expressions = self._parse_csv(self._parse_struct_types) -2911 else: -2912 expressions = self._parse_csv(self._parse_types) -2913 -2914 if not self._match(TokenType.GT): -2915 self.raise_error("Expecting >") -2916 -2917 if self._match_set((TokenType.L_BRACKET, TokenType.L_PAREN)): -2918 values = self._parse_csv(self._parse_conjunction) -2919 self._match_set((TokenType.R_BRACKET, TokenType.R_PAREN)) -2920 -2921 value: t.Optional[exp.Expression] = None -2922 if type_token in self.TIMESTAMPS: -2923 if self._match_text_seq("WITH", "TIME", "ZONE") or type_token == TokenType.TIMESTAMPTZ: -2924 value = exp.DataType(this=exp.DataType.Type.TIMESTAMPTZ, expressions=expressions) -2925 elif ( -2926 self._match_text_seq("WITH", "LOCAL", "TIME", "ZONE") -2927 or type_token == TokenType.TIMESTAMPLTZ -2928 ): -2929 value = exp.DataType(this=exp.DataType.Type.TIMESTAMPLTZ, expressions=expressions) -2930 elif self._match_text_seq("WITHOUT", "TIME", "ZONE"): -2931 if type_token == TokenType.TIME: -2932 value = exp.DataType(this=exp.DataType.Type.TIME, expressions=expressions) -2933 else: -2934 value = exp.DataType(this=exp.DataType.Type.TIMESTAMP, expressions=expressions) -2935 -2936 maybe_func = maybe_func and value is None -2937 -2938 if value is None: -2939 value = exp.DataType(this=exp.DataType.Type.TIMESTAMP, expressions=expressions) -2940 elif type_token == TokenType.INTERVAL: -2941 unit = self._parse_var() -2942 -2943 if not unit: -2944 value = self.expression(exp.DataType, this=exp.DataType.Type.INTERVAL) -2945 else: -2946 value = self.expression(exp.Interval, unit=unit) -2947 -2948 if maybe_func and check_func: -2949 index2 = self._index -2950 peek = self._parse_string() -2951 -2952 if not peek: -2953 self._retreat(index) -2954 return None -2955 -2956 self._retreat(index2) +2873 def _parse_term(self) -> t.Optional[exp.Expression]: +2874 return self._parse_tokens(self._parse_factor, self.TERM) +2875 +2876 def _parse_factor(self) -> t.Optional[exp.Expression]: +2877 return self._parse_tokens(self._parse_unary, self.FACTOR) +2878 +2879 def _parse_unary(self) -> t.Optional[exp.Expression]: +2880 if self._match_set(self.UNARY_PARSERS): +2881 return self.UNARY_PARSERS[self._prev.token_type](self) +2882 return self._parse_at_time_zone(self._parse_type()) +2883 +2884 def _parse_type(self) -> t.Optional[exp.Expression]: +2885 interval = self._parse_interval() +2886 if interval: +2887 return interval +2888 +2889 index = self._index +2890 data_type = self._parse_types(check_func=True) +2891 this = self._parse_column() +2892 +2893 if data_type: +2894 if isinstance(this, exp.Literal): +2895 parser = self.TYPE_LITERAL_PARSERS.get(data_type.this) +2896 if parser: +2897 return parser(self, this, data_type) +2898 return self.expression(exp.Cast, this=this, to=data_type) +2899 if not data_type.expressions: +2900 self._retreat(index) +2901 return self._parse_column() +2902 return self._parse_column_ops(data_type) +2903 +2904 return this +2905 +2906 def _parse_type_size(self) -> t.Optional[exp.Expression]: +2907 this = self._parse_type() +2908 if not this: +2909 return None +2910 +2911 return self.expression( +2912 exp.DataTypeSize, this=this, expression=self._parse_var(any_token=True) +2913 ) +2914 +2915 def _parse_types( +2916 self, check_func: bool = False, schema: bool = False +2917 ) -> t.Optional[exp.Expression]: +2918 index = self._index +2919 +2920 prefix = self._match_text_seq("SYSUDTLIB", ".") +2921 +2922 if not self._match_set(self.TYPE_TOKENS): +2923 return None +2924 +2925 type_token = self._prev.token_type +2926 +2927 if type_token == TokenType.PSEUDO_TYPE: +2928 return self.expression(exp.PseudoType, this=self._prev.text) +2929 +2930 nested = type_token in self.NESTED_TYPE_TOKENS +2931 is_struct = type_token == TokenType.STRUCT +2932 expressions = None +2933 maybe_func = False +2934 +2935 if self._match(TokenType.L_PAREN): +2936 if is_struct: +2937 expressions = self._parse_csv(self._parse_struct_types) +2938 elif nested: +2939 expressions = self._parse_csv( +2940 lambda: self._parse_types(check_func=check_func, schema=schema) +2941 ) +2942 else: +2943 expressions = self._parse_csv(self._parse_type_size) +2944 +2945 if not expressions or not self._match(TokenType.R_PAREN): +2946 self._retreat(index) +2947 return None +2948 +2949 maybe_func = True +2950 +2951 if self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET): +2952 this = exp.DataType( +2953 this=exp.DataType.Type.ARRAY, +2954 expressions=[exp.DataType.build(type_token.value, expressions=expressions)], +2955 nested=True, +2956 ) 2957 -2958 if value: -2959 return value -2960 -2961 return exp.DataType( -2962 this=exp.DataType.Type[type_token.value.upper()], -2963 expressions=expressions, -2964 nested=nested, -2965 values=values, -2966 prefix=prefix, -2967 ) -2968 -2969 def _parse_struct_types(self) -> t.Optional[exp.Expression]: -2970 this = self._parse_type() or self._parse_id_var() -2971 self._match(TokenType.COLON) -2972 return self._parse_column_def(this) -2973 -2974 def _parse_at_time_zone(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: -2975 if not self._match_text_seq("AT", "TIME", "ZONE"): -2976 return this -2977 return self.expression(exp.AtTimeZone, this=this, zone=self._parse_unary()) -2978 -2979 def _parse_column(self) -> t.Optional[exp.Expression]: -2980 this = self._parse_field() -2981 if isinstance(this, exp.Identifier): -2982 this = self.expression(exp.Column, this=this) -2983 elif not this: -2984 return self._parse_bracket(this) -2985 this = self._parse_bracket(this) +2958 while self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET): +2959 this = exp.DataType( +2960 this=exp.DataType.Type.ARRAY, +2961 expressions=[this], +2962 nested=True, +2963 ) +2964 +2965 return this +2966 +2967 if self._match(TokenType.L_BRACKET): +2968 self._retreat(index) +2969 return None +2970 +2971 values: t.Optional[t.List[t.Optional[exp.Expression]]] = None +2972 if nested and self._match(TokenType.LT): +2973 if is_struct: +2974 expressions = self._parse_csv(self._parse_struct_types) +2975 else: +2976 expressions = self._parse_csv( +2977 lambda: self._parse_types(check_func=check_func, schema=schema) +2978 ) +2979 +2980 if not self._match(TokenType.GT): +2981 self.raise_error("Expecting >") +2982 +2983 if self._match_set((TokenType.L_BRACKET, TokenType.L_PAREN)): +2984 values = self._parse_csv(self._parse_conjunction) +2985 self._match_set((TokenType.R_BRACKET, TokenType.R_PAREN)) 2986 -2987 while self._match_set(self.COLUMN_OPERATORS): -2988 op_token = self._prev.token_type -2989 op = self.COLUMN_OPERATORS.get(op_token) -2990 -2991 if op_token == TokenType.DCOLON: -2992 field = self._parse_types() -2993 if not field: -2994 self.raise_error("Expected type") -2995 elif op and self._curr: -2996 self._advance() -2997 value = self._prev.text -2998 field = ( -2999 exp.Literal.number(value) -3000 if self._prev.token_type == TokenType.NUMBER -3001 else exp.Literal.string(value) -3002 ) -3003 else: -3004 field = ( -3005 self._parse_star() -3006 or self._parse_function(anonymous=True) -3007 or self._parse_id_var() -3008 ) -3009 -3010 if isinstance(field, exp.Func): -3011 # bigquery allows function calls like x.y.count(...) -3012 # SAFE.SUBSTR(...) -3013 # https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-reference#function_call_rules -3014 this = self._replace_columns_with_dots(this) -3015 -3016 if op: -3017 this = op(self, this, field) -3018 elif isinstance(this, exp.Column) and not this.args.get("catalog"): -3019 this = self.expression( -3020 exp.Column, -3021 this=field, -3022 table=this.this, -3023 db=this.args.get("table"), -3024 catalog=this.args.get("db"), -3025 ) -3026 else: -3027 this = self.expression(exp.Dot, this=this, expression=field) -3028 this = self._parse_bracket(this) -3029 -3030 return this -3031 -3032 def _parse_primary(self) -> t.Optional[exp.Expression]: -3033 if self._match_set(self.PRIMARY_PARSERS): -3034 token_type = self._prev.token_type -3035 primary = self.PRIMARY_PARSERS[token_type](self, self._prev) -3036 -3037 if token_type == TokenType.STRING: -3038 expressions = [primary] -3039 while self._match(TokenType.STRING): -3040 expressions.append(exp.Literal.string(self._prev.text)) -3041 if len(expressions) > 1: -3042 return self.expression(exp.Concat, expressions=expressions) -3043 return primary +2987 value: t.Optional[exp.Expression] = None +2988 if type_token in self.TIMESTAMPS: +2989 if self._match_text_seq("WITH", "TIME", "ZONE") or type_token == TokenType.TIMESTAMPTZ: +2990 value = exp.DataType(this=exp.DataType.Type.TIMESTAMPTZ, expressions=expressions) +2991 elif ( +2992 self._match_text_seq("WITH", "LOCAL", "TIME", "ZONE") +2993 or type_token == TokenType.TIMESTAMPLTZ +2994 ): +2995 value = exp.DataType(this=exp.DataType.Type.TIMESTAMPLTZ, expressions=expressions) +2996 elif self._match_text_seq("WITHOUT", "TIME", "ZONE"): +2997 if type_token == TokenType.TIME: +2998 value = exp.DataType(this=exp.DataType.Type.TIME, expressions=expressions) +2999 else: +3000 value = exp.DataType(this=exp.DataType.Type.TIMESTAMP, expressions=expressions) +3001 +3002 maybe_func = maybe_func and value is None +3003 +3004 if value is None: +3005 value = exp.DataType(this=exp.DataType.Type.TIMESTAMP, expressions=expressions) +3006 elif type_token == TokenType.INTERVAL: +3007 unit = self._parse_var() +3008 +3009 if not unit: +3010 value = self.expression(exp.DataType, this=exp.DataType.Type.INTERVAL) +3011 else: +3012 value = self.expression(exp.Interval, unit=unit) +3013 +3014 if maybe_func and check_func: +3015 index2 = self._index +3016 peek = self._parse_string() +3017 +3018 if not peek: +3019 self._retreat(index) +3020 return None +3021 +3022 self._retreat(index2) +3023 +3024 if value: +3025 return value +3026 +3027 return exp.DataType( +3028 this=exp.DataType.Type[type_token.value.upper()], +3029 expressions=expressions, +3030 nested=nested, +3031 values=values, +3032 prefix=prefix, +3033 ) +3034 +3035 def _parse_struct_types(self) -> t.Optional[exp.Expression]: +3036 this = self._parse_type() or self._parse_id_var() +3037 self._match(TokenType.COLON) +3038 return self._parse_column_def(this) +3039 +3040 def _parse_at_time_zone(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: +3041 if not self._match_text_seq("AT", "TIME", "ZONE"): +3042 return this +3043 return self.expression(exp.AtTimeZone, this=this, zone=self._parse_unary()) 3044 -3045 if self._match_pair(TokenType.DOT, TokenType.NUMBER): -3046 return exp.Literal.number(f"0.{self._prev.text}") -3047 -3048 if self._match(TokenType.L_PAREN): -3049 comments = self._prev_comments -3050 query = self._parse_select() -3051 -3052 if query: -3053 expressions = [query] -3054 else: -3055 expressions = self._parse_csv(self._parse_expression) -3056 -3057 this = self._parse_query_modifiers(seq_get(expressions, 0)) -3058 -3059 if isinstance(this, exp.Subqueryable): -3060 this = self._parse_set_operations( -3061 self._parse_subquery(this=this, parse_alias=False) -3062 ) -3063 elif len(expressions) > 1: -3064 this = self.expression(exp.Tuple, expressions=expressions) -3065 else: -3066 this = self.expression(exp.Paren, this=self._parse_set_operations(this)) -3067 -3068 if this: -3069 this.add_comments(comments) -3070 self._match_r_paren(expression=this) -3071 -3072 return this -3073 -3074 return None -3075 -3076 def _parse_field( -3077 self, -3078 any_token: bool = False, -3079 tokens: t.Optional[t.Collection[TokenType]] = None, -3080 ) -> t.Optional[exp.Expression]: -3081 return ( -3082 self._parse_primary() -3083 or self._parse_function() -3084 or self._parse_id_var(any_token=any_token, tokens=tokens) -3085 ) -3086 -3087 def _parse_function( -3088 self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False -3089 ) -> t.Optional[exp.Expression]: -3090 if not self._curr: -3091 return None -3092 -3093 token_type = self._curr.token_type -3094 -3095 if self._match_set(self.NO_PAREN_FUNCTION_PARSERS): -3096 return self.NO_PAREN_FUNCTION_PARSERS[token_type](self) -3097 -3098 if not self._next or self._next.token_type != TokenType.L_PAREN: -3099 if token_type in self.NO_PAREN_FUNCTIONS: -3100 self._advance() -3101 return self.expression(self.NO_PAREN_FUNCTIONS[token_type]) -3102 -3103 return None -3104 -3105 if token_type not in self.FUNC_TOKENS: -3106 return None -3107 -3108 this = self._curr.text -3109 upper = this.upper() -3110 self._advance(2) +3045 def _parse_column(self) -> t.Optional[exp.Expression]: +3046 this = self._parse_field() +3047 if isinstance(this, exp.Identifier): +3048 this = self.expression(exp.Column, this=this) +3049 elif not this: +3050 return self._parse_bracket(this) +3051 return self._parse_column_ops(this) +3052 +3053 def _parse_column_ops(self, this: exp.Expression) -> exp.Expression: +3054 this = self._parse_bracket(this) +3055 +3056 while self._match_set(self.COLUMN_OPERATORS): +3057 op_token = self._prev.token_type +3058 op = self.COLUMN_OPERATORS.get(op_token) +3059 +3060 if op_token == TokenType.DCOLON: +3061 field = self._parse_types() +3062 if not field: +3063 self.raise_error("Expected type") +3064 elif op and self._curr: +3065 self._advance() +3066 value = self._prev.text +3067 field = ( +3068 exp.Literal.number(value) +3069 if self._prev.token_type == TokenType.NUMBER +3070 else exp.Literal.string(value) +3071 ) +3072 else: +3073 field = self._parse_field(anonymous_func=True) +3074 +3075 if isinstance(field, exp.Func): +3076 # bigquery allows function calls like x.y.count(...) +3077 # SAFE.SUBSTR(...) +3078 # https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-reference#function_call_rules +3079 this = self._replace_columns_with_dots(this) +3080 +3081 if op: +3082 this = op(self, this, field) +3083 elif isinstance(this, exp.Column) and not this.args.get("catalog"): +3084 this = self.expression( +3085 exp.Column, +3086 this=field, +3087 table=this.this, +3088 db=this.args.get("table"), +3089 catalog=this.args.get("db"), +3090 ) +3091 else: +3092 this = self.expression(exp.Dot, this=this, expression=field) +3093 this = self._parse_bracket(this) +3094 return this +3095 +3096 def _parse_primary(self) -> t.Optional[exp.Expression]: +3097 if self._match_set(self.PRIMARY_PARSERS): +3098 token_type = self._prev.token_type +3099 primary = self.PRIMARY_PARSERS[token_type](self, self._prev) +3100 +3101 if token_type == TokenType.STRING: +3102 expressions = [primary] +3103 while self._match(TokenType.STRING): +3104 expressions.append(exp.Literal.string(self._prev.text)) +3105 if len(expressions) > 1: +3106 return self.expression(exp.Concat, expressions=expressions) +3107 return primary +3108 +3109 if self._match_pair(TokenType.DOT, TokenType.NUMBER): +3110 return exp.Literal.number(f"0.{self._prev.text}") 3111 -3112 parser = self.FUNCTION_PARSERS.get(upper) -3113 -3114 if parser and not anonymous: -3115 this = parser(self) -3116 else: -3117 subquery_predicate = self.SUBQUERY_PREDICATES.get(token_type) -3118 -3119 if subquery_predicate and self._curr.token_type in (TokenType.SELECT, TokenType.WITH): -3120 this = self.expression(subquery_predicate, this=self._parse_select()) -3121 self._match_r_paren() -3122 return this -3123 -3124 if functions is None: -3125 functions = self.FUNCTIONS -3126 -3127 function = functions.get(upper) -3128 -3129 alias = upper in self.FUNCTIONS_WITH_ALIASED_ARGS -3130 args = self._parse_csv(lambda: self._parse_lambda(alias=alias)) +3112 if self._match(TokenType.L_PAREN): +3113 comments = self._prev_comments +3114 query = self._parse_select() +3115 +3116 if query: +3117 expressions = [query] +3118 else: +3119 expressions = self._parse_csv(self._parse_expression) +3120 +3121 this = self._parse_query_modifiers(seq_get(expressions, 0)) +3122 +3123 if isinstance(this, exp.Subqueryable): +3124 this = self._parse_set_operations( +3125 self._parse_subquery(this=this, parse_alias=False) +3126 ) +3127 elif len(expressions) > 1: +3128 this = self.expression(exp.Tuple, expressions=expressions) +3129 else: +3130 this = self.expression(exp.Paren, this=self._parse_set_operations(this)) 3131 -3132 if function and not anonymous: -3133 this = function(args) -3134 self.validate_expression(this, args) -3135 else: -3136 this = self.expression(exp.Anonymous, this=this, expressions=args) +3132 if this: +3133 this.add_comments(comments) +3134 self._match_r_paren(expression=this) +3135 +3136 return this 3137 -3138 self._match_r_paren(this) -3139 return self._parse_window(this) -3140 -3141 def _parse_function_parameter(self) -> t.Optional[exp.Expression]: -3142 return self._parse_column_def(self._parse_id_var()) -3143 -3144 def _parse_user_defined_function( -3145 self, kind: t.Optional[TokenType] = None -3146 ) -> t.Optional[exp.Expression]: -3147 this = self._parse_id_var() -3148 -3149 while self._match(TokenType.DOT): -3150 this = self.expression(exp.Dot, this=this, expression=self._parse_id_var()) +3138 return None +3139 +3140 def _parse_field( +3141 self, +3142 any_token: bool = False, +3143 tokens: t.Optional[t.Collection[TokenType]] = None, +3144 anonymous_func: bool = False, +3145 ) -> t.Optional[exp.Expression]: +3146 return ( +3147 self._parse_primary() +3148 or self._parse_function(anonymous=anonymous_func) +3149 or self._parse_id_var(any_token=any_token, tokens=tokens) +3150 ) 3151 -3152 if not self._match(TokenType.L_PAREN): -3153 return this -3154 -3155 expressions = self._parse_csv(self._parse_function_parameter) -3156 self._match_r_paren() -3157 return self.expression( -3158 exp.UserDefinedFunction, this=this, expressions=expressions, wrapped=True -3159 ) -3160 -3161 def _parse_introducer(self, token: Token) -> t.Optional[exp.Expression]: -3162 literal = self._parse_primary() -3163 if literal: -3164 return self.expression(exp.Introducer, this=token.text, expression=literal) -3165 -3166 return self.expression(exp.Identifier, this=token.text) +3152 def _parse_function( +3153 self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False +3154 ) -> t.Optional[exp.Expression]: +3155 if not self._curr: +3156 return None +3157 +3158 token_type = self._curr.token_type +3159 +3160 if self._match_set(self.NO_PAREN_FUNCTION_PARSERS): +3161 return self.NO_PAREN_FUNCTION_PARSERS[token_type](self) +3162 +3163 if not self._next or self._next.token_type != TokenType.L_PAREN: +3164 if token_type in self.NO_PAREN_FUNCTIONS: +3165 self._advance() +3166 return self.expression(self.NO_PAREN_FUNCTIONS[token_type]) 3167 -3168 def _parse_session_parameter(self) -> exp.Expression: -3169 kind = None -3170 this = self._parse_id_var() or self._parse_primary() -3171 -3172 if this and self._match(TokenType.DOT): -3173 kind = this.name -3174 this = self._parse_var() or self._parse_primary() -3175 -3176 return self.expression(exp.SessionParameter, this=this, kind=kind) -3177 -3178 def _parse_lambda(self, alias: bool = False) -> t.Optional[exp.Expression]: -3179 index = self._index -3180 -3181 if self._match(TokenType.L_PAREN): -3182 expressions = self._parse_csv(self._parse_id_var) +3168 return None +3169 +3170 if token_type not in self.FUNC_TOKENS: +3171 return None +3172 +3173 this = self._curr.text +3174 upper = this.upper() +3175 self._advance(2) +3176 +3177 parser = self.FUNCTION_PARSERS.get(upper) +3178 +3179 if parser and not anonymous: +3180 this = parser(self) +3181 else: +3182 subquery_predicate = self.SUBQUERY_PREDICATES.get(token_type) 3183 -3184 if not self._match(TokenType.R_PAREN): -3185 self._retreat(index) -3186 else: -3187 expressions = [self._parse_id_var()] +3184 if subquery_predicate and self._curr.token_type in (TokenType.SELECT, TokenType.WITH): +3185 this = self.expression(subquery_predicate, this=self._parse_select()) +3186 self._match_r_paren() +3187 return this 3188 -3189 if self._match_set(self.LAMBDAS): -3190 return self.LAMBDAS[self._prev.token_type](self, expressions) +3189 if functions is None: +3190 functions = self.FUNCTIONS 3191 -3192 self._retreat(index) +3192 function = functions.get(upper) 3193 -3194 this: t.Optional[exp.Expression] -3195 -3196 if self._match(TokenType.DISTINCT): -3197 this = self.expression( -3198 exp.Distinct, expressions=self._parse_csv(self._parse_conjunction) -3199 ) -3200 else: -3201 this = self._parse_select_or_expression(alias=alias) +3194 alias = upper in self.FUNCTIONS_WITH_ALIASED_ARGS +3195 args = self._parse_csv(lambda: self._parse_lambda(alias=alias)) +3196 +3197 if function and not anonymous: +3198 this = function(args) +3199 self.validate_expression(this, args) +3200 else: +3201 this = self.expression(exp.Anonymous, this=this, expressions=args) 3202 -3203 if isinstance(this, exp.EQ): -3204 left = this.this -3205 if isinstance(left, exp.Column): -3206 left.replace(exp.Var(this=left.text("this"))) -3207 -3208 return self._parse_limit(self._parse_order(self._parse_respect_or_ignore_nulls(this))) -3209 -3210 def _parse_schema(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]: -3211 index = self._index -3212 -3213 try: -3214 if self._parse_select(nested=True): -3215 return this -3216 except Exception: -3217 pass -3218 finally: -3219 self._retreat(index) -3220 -3221 if not self._match(TokenType.L_PAREN): -3222 return this -3223 -3224 args = self._parse_csv( -3225 lambda: self._parse_constraint() -3226 or self._parse_column_def(self._parse_field(any_token=True)) -3227 ) -3228 self._match_r_paren() -3229 return self.expression(exp.Schema, this=this, expressions=args) +3203 self._match_r_paren(this) +3204 return self._parse_window(this) +3205 +3206 def _parse_function_parameter(self) -> t.Optional[exp.Expression]: +3207 return self._parse_column_def(self._parse_id_var()) +3208 +3209 def _parse_user_defined_function( +3210 self, kind: t.Optional[TokenType] = None +3211 ) -> t.Optional[exp.Expression]: +3212 this = self._parse_id_var() +3213 +3214 while self._match(TokenType.DOT): +3215 this = self.expression(exp.Dot, this=this, expression=self._parse_id_var()) +3216 +3217 if not self._match(TokenType.L_PAREN): +3218 return this +3219 +3220 expressions = self._parse_csv(self._parse_function_parameter) +3221 self._match_r_paren() +3222 return self.expression( +3223 exp.UserDefinedFunction, this=this, expressions=expressions, wrapped=True +3224 ) +3225 +3226 def _parse_introducer(self, token: Token) -> t.Optional[exp.Expression]: +3227 literal = self._parse_primary() +3228 if literal: +3229 return self.expression(exp.Introducer, this=token.text, expression=literal) 3230 -3231 def _parse_column_def(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: -3232 # column defs are not really columns, they're identifiers -3233 if isinstance(this, exp.Column): -3234 this = this.this -3235 kind = self._parse_types() +3231 return self.expression(exp.Identifier, this=token.text) +3232 +3233 def _parse_session_parameter(self) -> exp.Expression: +3234 kind = None +3235 this = self._parse_id_var() or self._parse_primary() 3236 -3237 if self._match_text_seq("FOR", "ORDINALITY"): -3238 return self.expression(exp.ColumnDef, this=this, ordinality=True) -3239 -3240 constraints = [] -3241 while True: -3242 constraint = self._parse_column_constraint() -3243 if not constraint: -3244 break -3245 constraints.append(constraint) -3246 -3247 if not kind and not constraints: -3248 return this -3249 -3250 return self.expression(exp.ColumnDef, this=this, kind=kind, constraints=constraints) -3251 -3252 def _parse_auto_increment(self) -> exp.Expression: -3253 start = None -3254 increment = None -3255 -3256 if self._match(TokenType.L_PAREN, advance=False): -3257 args = self._parse_wrapped_csv(self._parse_bitwise) -3258 start = seq_get(args, 0) -3259 increment = seq_get(args, 1) -3260 elif self._match_text_seq("START"): -3261 start = self._parse_bitwise() -3262 self._match_text_seq("INCREMENT") -3263 increment = self._parse_bitwise() -3264 -3265 if start and increment: -3266 return exp.GeneratedAsIdentityColumnConstraint(start=start, increment=increment) +3237 if this and self._match(TokenType.DOT): +3238 kind = this.name +3239 this = self._parse_var() or self._parse_primary() +3240 +3241 return self.expression(exp.SessionParameter, this=this, kind=kind) +3242 +3243 def _parse_lambda(self, alias: bool = False) -> t.Optional[exp.Expression]: +3244 index = self._index +3245 +3246 if self._match(TokenType.L_PAREN): +3247 expressions = self._parse_csv(self._parse_id_var) +3248 +3249 if not self._match(TokenType.R_PAREN): +3250 self._retreat(index) +3251 else: +3252 expressions = [self._parse_id_var()] +3253 +3254 if self._match_set(self.LAMBDAS): +3255 return self.LAMBDAS[self._prev.token_type](self, expressions) +3256 +3257 self._retreat(index) +3258 +3259 this: t.Optional[exp.Expression] +3260 +3261 if self._match(TokenType.DISTINCT): +3262 this = self.expression( +3263 exp.Distinct, expressions=self._parse_csv(self._parse_conjunction) +3264 ) +3265 else: +3266 this = self._parse_select_or_expression(alias=alias) 3267 -3268 return exp.AutoIncrementColumnConstraint() -3269 -3270 def _parse_compress(self) -> exp.Expression: -3271 if self._match(TokenType.L_PAREN, advance=False): -3272 return self.expression( -3273 exp.CompressColumnConstraint, this=self._parse_wrapped_csv(self._parse_bitwise) -3274 ) -3275 -3276 return self.expression(exp.CompressColumnConstraint, this=self._parse_bitwise()) +3268 if isinstance(this, exp.EQ): +3269 left = this.this +3270 if isinstance(left, exp.Column): +3271 left.replace(exp.Var(this=left.text("this"))) +3272 +3273 return self._parse_limit(self._parse_order(self._parse_respect_or_ignore_nulls(this))) +3274 +3275 def _parse_schema(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]: +3276 index = self._index 3277 -3278 def _parse_generated_as_identity(self) -> exp.Expression: -3279 if self._match_text_seq("BY", "DEFAULT"): -3280 on_null = self._match_pair(TokenType.ON, TokenType.NULL) -3281 this = self.expression( -3282 exp.GeneratedAsIdentityColumnConstraint, this=False, on_null=on_null -3283 ) -3284 else: -3285 self._match_text_seq("ALWAYS") -3286 this = self.expression(exp.GeneratedAsIdentityColumnConstraint, this=True) +3278 if not self.errors: +3279 try: +3280 if self._parse_select(nested=True): +3281 return this +3282 except ParseError: +3283 pass +3284 finally: +3285 self.errors.clear() +3286 self._retreat(index) 3287 -3288 self._match(TokenType.ALIAS) -3289 identity = self._match_text_seq("IDENTITY") +3288 if not self._match(TokenType.L_PAREN): +3289 return this 3290 -3291 if self._match(TokenType.L_PAREN): -3292 if self._match_text_seq("START", "WITH"): -3293 this.set("start", self._parse_bitwise()) -3294 if self._match_text_seq("INCREMENT", "BY"): -3295 this.set("increment", self._parse_bitwise()) -3296 if self._match_text_seq("MINVALUE"): -3297 this.set("minvalue", self._parse_bitwise()) -3298 if self._match_text_seq("MAXVALUE"): -3299 this.set("maxvalue", self._parse_bitwise()) -3300 -3301 if self._match_text_seq("CYCLE"): -3302 this.set("cycle", True) -3303 elif self._match_text_seq("NO", "CYCLE"): -3304 this.set("cycle", False) -3305 -3306 if not identity: -3307 this.set("expression", self._parse_bitwise()) -3308 -3309 self._match_r_paren() -3310 -3311 return this -3312 -3313 def _parse_inline(self) -> t.Optional[exp.Expression]: -3314 self._match_text_seq("LENGTH") -3315 return self.expression(exp.InlineLengthColumnConstraint, this=self._parse_bitwise()) +3291 args = self._parse_csv( +3292 lambda: self._parse_constraint() +3293 or self._parse_column_def(self._parse_field(any_token=True)) +3294 ) +3295 self._match_r_paren() +3296 return self.expression(exp.Schema, this=this, expressions=args) +3297 +3298 def _parse_column_def(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: +3299 # column defs are not really columns, they're identifiers +3300 if isinstance(this, exp.Column): +3301 this = this.this +3302 kind = self._parse_types(schema=True) +3303 +3304 if self._match_text_seq("FOR", "ORDINALITY"): +3305 return self.expression(exp.ColumnDef, this=this, ordinality=True) +3306 +3307 constraints = [] +3308 while True: +3309 constraint = self._parse_column_constraint() +3310 if not constraint: +3311 break +3312 constraints.append(constraint) +3313 +3314 if not kind and not constraints: +3315 return this 3316 -3317 def _parse_not_constraint(self) -> t.Optional[exp.Expression]: -3318 if self._match_text_seq("NULL"): -3319 return self.expression(exp.NotNullColumnConstraint) -3320 if self._match_text_seq("CASESPECIFIC"): -3321 return self.expression(exp.CaseSpecificColumnConstraint, not_=True) -3322 return None -3323 -3324 def _parse_column_constraint(self) -> t.Optional[exp.Expression]: -3325 if self._match(TokenType.CONSTRAINT): -3326 this = self._parse_id_var() -3327 else: -3328 this = None -3329 -3330 if self._match_texts(self.CONSTRAINT_PARSERS): -3331 return self.expression( -3332 exp.ColumnConstraint, -3333 this=this, -3334 kind=self.CONSTRAINT_PARSERS[self._prev.text.upper()](self), -3335 ) +3317 return self.expression(exp.ColumnDef, this=this, kind=kind, constraints=constraints) +3318 +3319 def _parse_auto_increment(self) -> exp.Expression: +3320 start = None +3321 increment = None +3322 +3323 if self._match(TokenType.L_PAREN, advance=False): +3324 args = self._parse_wrapped_csv(self._parse_bitwise) +3325 start = seq_get(args, 0) +3326 increment = seq_get(args, 1) +3327 elif self._match_text_seq("START"): +3328 start = self._parse_bitwise() +3329 self._match_text_seq("INCREMENT") +3330 increment = self._parse_bitwise() +3331 +3332 if start and increment: +3333 return exp.GeneratedAsIdentityColumnConstraint(start=start, increment=increment) +3334 +3335 return exp.AutoIncrementColumnConstraint() 3336 -3337 return this -3338 -3339 def _parse_constraint(self) -> t.Optional[exp.Expression]: -3340 if not self._match(TokenType.CONSTRAINT): -3341 return self._parse_unnamed_constraint(constraints=self.SCHEMA_UNNAMED_CONSTRAINTS) +3337 def _parse_compress(self) -> exp.Expression: +3338 if self._match(TokenType.L_PAREN, advance=False): +3339 return self.expression( +3340 exp.CompressColumnConstraint, this=self._parse_wrapped_csv(self._parse_bitwise) +3341 ) 3342 -3343 this = self._parse_id_var() -3344 expressions = [] -3345 -3346 while True: -3347 constraint = self._parse_unnamed_constraint() or self._parse_function() -3348 if not constraint: -3349 break -3350 expressions.append(constraint) -3351 -3352 return self.expression(exp.Constraint, this=this, expressions=expressions) -3353 -3354 def _parse_unnamed_constraint( -3355 self, constraints: t.Optional[t.Collection[str]] = None -3356 ) -> t.Optional[exp.Expression]: -3357 if not self._match_texts(constraints or self.CONSTRAINT_PARSERS): -3358 return None -3359 -3360 constraint = self._prev.text.upper() -3361 if constraint not in self.CONSTRAINT_PARSERS: -3362 self.raise_error(f"No parser found for schema constraint {constraint}.") -3363 -3364 return self.CONSTRAINT_PARSERS[constraint](self) -3365 -3366 def _parse_unique(self) -> exp.Expression: -3367 if not self._match(TokenType.L_PAREN, advance=False): -3368 return self.expression(exp.UniqueColumnConstraint) -3369 return self.expression(exp.Unique, expressions=self._parse_wrapped_id_vars()) -3370 -3371 def _parse_key_constraint_options(self) -> t.List[str]: -3372 options = [] -3373 while True: -3374 if not self._curr: -3375 break -3376 -3377 if self._match(TokenType.ON): -3378 action = None -3379 on = self._advance_any() and self._prev.text -3380 -3381 if self._match_text_seq("NO", "ACTION"): -3382 action = "NO ACTION" -3383 elif self._match_text_seq("CASCADE"): -3384 action = "CASCADE" -3385 elif self._match_pair(TokenType.SET, TokenType.NULL): -3386 action = "SET NULL" -3387 elif self._match_pair(TokenType.SET, TokenType.DEFAULT): -3388 action = "SET DEFAULT" -3389 else: -3390 self.raise_error("Invalid key constraint") -3391 -3392 options.append(f"ON {on} {action}") -3393 elif self._match_text_seq("NOT", "ENFORCED"): -3394 options.append("NOT ENFORCED") -3395 elif self._match_text_seq("DEFERRABLE"): -3396 options.append("DEFERRABLE") -3397 elif self._match_text_seq("INITIALLY", "DEFERRED"): -3398 options.append("INITIALLY DEFERRED") -3399 elif self._match_text_seq("NORELY"): -3400 options.append("NORELY") -3401 elif self._match_text_seq("MATCH", "FULL"): -3402 options.append("MATCH FULL") -3403 else: -3404 break +3343 return self.expression(exp.CompressColumnConstraint, this=self._parse_bitwise()) +3344 +3345 def _parse_generated_as_identity(self) -> exp.Expression: +3346 if self._match_text_seq("BY", "DEFAULT"): +3347 on_null = self._match_pair(TokenType.ON, TokenType.NULL) +3348 this = self.expression( +3349 exp.GeneratedAsIdentityColumnConstraint, this=False, on_null=on_null +3350 ) +3351 else: +3352 self._match_text_seq("ALWAYS") +3353 this = self.expression(exp.GeneratedAsIdentityColumnConstraint, this=True) +3354 +3355 self._match(TokenType.ALIAS) +3356 identity = self._match_text_seq("IDENTITY") +3357 +3358 if self._match(TokenType.L_PAREN): +3359 if self._match_text_seq("START", "WITH"): +3360 this.set("start", self._parse_bitwise()) +3361 if self._match_text_seq("INCREMENT", "BY"): +3362 this.set("increment", self._parse_bitwise()) +3363 if self._match_text_seq("MINVALUE"): +3364 this.set("minvalue", self._parse_bitwise()) +3365 if self._match_text_seq("MAXVALUE"): +3366 this.set("maxvalue", self._parse_bitwise()) +3367 +3368 if self._match_text_seq("CYCLE"): +3369 this.set("cycle", True) +3370 elif self._match_text_seq("NO", "CYCLE"): +3371 this.set("cycle", False) +3372 +3373 if not identity: +3374 this.set("expression", self._parse_bitwise()) +3375 +3376 self._match_r_paren() +3377 +3378 return this +3379 +3380 def _parse_inline(self) -> t.Optional[exp.Expression]: +3381 self._match_text_seq("LENGTH") +3382 return self.expression(exp.InlineLengthColumnConstraint, this=self._parse_bitwise()) +3383 +3384 def _parse_not_constraint(self) -> t.Optional[exp.Expression]: +3385 if self._match_text_seq("NULL"): +3386 return self.expression(exp.NotNullColumnConstraint) +3387 if self._match_text_seq("CASESPECIFIC"): +3388 return self.expression(exp.CaseSpecificColumnConstraint, not_=True) +3389 return None +3390 +3391 def _parse_column_constraint(self) -> t.Optional[exp.Expression]: +3392 if self._match(TokenType.CONSTRAINT): +3393 this = self._parse_id_var() +3394 else: +3395 this = None +3396 +3397 if self._match_texts(self.CONSTRAINT_PARSERS): +3398 return self.expression( +3399 exp.ColumnConstraint, +3400 this=this, +3401 kind=self.CONSTRAINT_PARSERS[self._prev.text.upper()](self), +3402 ) +3403 +3404 return this 3405 -3406 return options -3407 -3408 def _parse_references(self, match: bool = True) -> t.Optional[exp.Expression]: -3409 if match and not self._match(TokenType.REFERENCES): -3410 return None -3411 -3412 expressions = None -3413 this = self._parse_id_var() -3414 -3415 if self._match(TokenType.L_PAREN, advance=False): -3416 expressions = self._parse_wrapped_id_vars() -3417 -3418 options = self._parse_key_constraint_options() -3419 return self.expression(exp.Reference, this=this, expressions=expressions, options=options) +3406 def _parse_constraint(self) -> t.Optional[exp.Expression]: +3407 if not self._match(TokenType.CONSTRAINT): +3408 return self._parse_unnamed_constraint(constraints=self.SCHEMA_UNNAMED_CONSTRAINTS) +3409 +3410 this = self._parse_id_var() +3411 expressions = [] +3412 +3413 while True: +3414 constraint = self._parse_unnamed_constraint() or self._parse_function() +3415 if not constraint: +3416 break +3417 expressions.append(constraint) +3418 +3419 return self.expression(exp.Constraint, this=this, expressions=expressions) 3420 -3421 def _parse_foreign_key(self) -> exp.Expression: -3422 expressions = self._parse_wrapped_id_vars() -3423 reference = self._parse_references() -3424 options = {} -3425 -3426 while self._match(TokenType.ON): -3427 if not self._match_set((TokenType.DELETE, TokenType.UPDATE)): -3428 self.raise_error("Expected DELETE or UPDATE") -3429 -3430 kind = self._prev.text.lower() -3431 -3432 if self._match_text_seq("NO", "ACTION"): -3433 action = "NO ACTION" -3434 elif self._match(TokenType.SET): -3435 self._match_set((TokenType.NULL, TokenType.DEFAULT)) -3436 action = "SET " + self._prev.text.upper() -3437 else: -3438 self._advance() -3439 action = self._prev.text.upper() -3440 -3441 options[kind] = action -3442 -3443 return self.expression( -3444 exp.ForeignKey, expressions=expressions, reference=reference, **options # type: ignore -3445 ) -3446 -3447 def _parse_primary_key(self) -> exp.Expression: -3448 desc = ( -3449 self._match_set((TokenType.ASC, TokenType.DESC)) -3450 and self._prev.token_type == TokenType.DESC -3451 ) -3452 -3453 if not self._match(TokenType.L_PAREN, advance=False): -3454 return self.expression(exp.PrimaryKeyColumnConstraint, desc=desc) -3455 -3456 expressions = self._parse_wrapped_csv(self._parse_field) -3457 options = self._parse_key_constraint_options() -3458 return self.expression(exp.PrimaryKey, expressions=expressions, options=options) +3421 def _parse_unnamed_constraint( +3422 self, constraints: t.Optional[t.Collection[str]] = None +3423 ) -> t.Optional[exp.Expression]: +3424 if not self._match_texts(constraints or self.CONSTRAINT_PARSERS): +3425 return None +3426 +3427 constraint = self._prev.text.upper() +3428 if constraint not in self.CONSTRAINT_PARSERS: +3429 self.raise_error(f"No parser found for schema constraint {constraint}.") +3430 +3431 return self.CONSTRAINT_PARSERS[constraint](self) +3432 +3433 def _parse_unique(self) -> exp.Expression: +3434 self._match_text_seq("KEY") +3435 return self.expression( +3436 exp.UniqueColumnConstraint, this=self._parse_schema(self._parse_id_var(any_token=False)) +3437 ) +3438 +3439 def _parse_key_constraint_options(self) -> t.List[str]: +3440 options = [] +3441 while True: +3442 if not self._curr: +3443 break +3444 +3445 if self._match(TokenType.ON): +3446 action = None +3447 on = self._advance_any() and self._prev.text +3448 +3449 if self._match_text_seq("NO", "ACTION"): +3450 action = "NO ACTION" +3451 elif self._match_text_seq("CASCADE"): +3452 action = "CASCADE" +3453 elif self._match_pair(TokenType.SET, TokenType.NULL): +3454 action = "SET NULL" +3455 elif self._match_pair(TokenType.SET, TokenType.DEFAULT): +3456 action = "SET DEFAULT" +3457 else: +3458 self.raise_error("Invalid key constraint") 3459 -3460 def _parse_bracket(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: -3461 if not self._match_set((TokenType.L_BRACKET, TokenType.L_BRACE)): -3462 return this -3463 -3464 bracket_kind = self._prev.token_type -3465 expressions: t.List[t.Optional[exp.Expression]] -3466 -3467 if self._match(TokenType.COLON): -3468 expressions = [self.expression(exp.Slice, expression=self._parse_conjunction())] -3469 else: -3470 expressions = self._parse_csv(lambda: self._parse_slice(self._parse_conjunction())) -3471 -3472 # https://duckdb.org/docs/sql/data_types/struct.html#creating-structs -3473 if bracket_kind == TokenType.L_BRACE: -3474 this = self.expression(exp.Struct, expressions=expressions) -3475 elif not this or this.name.upper() == "ARRAY": -3476 this = self.expression(exp.Array, expressions=expressions) -3477 else: -3478 expressions = apply_index_offset(this, expressions, -self.index_offset) -3479 this = self.expression(exp.Bracket, this=this, expressions=expressions) -3480 -3481 if not self._match(TokenType.R_BRACKET) and bracket_kind == TokenType.L_BRACKET: -3482 self.raise_error("Expected ]") -3483 elif not self._match(TokenType.R_BRACE) and bracket_kind == TokenType.L_BRACE: -3484 self.raise_error("Expected }") +3460 options.append(f"ON {on} {action}") +3461 elif self._match_text_seq("NOT", "ENFORCED"): +3462 options.append("NOT ENFORCED") +3463 elif self._match_text_seq("DEFERRABLE"): +3464 options.append("DEFERRABLE") +3465 elif self._match_text_seq("INITIALLY", "DEFERRED"): +3466 options.append("INITIALLY DEFERRED") +3467 elif self._match_text_seq("NORELY"): +3468 options.append("NORELY") +3469 elif self._match_text_seq("MATCH", "FULL"): +3470 options.append("MATCH FULL") +3471 else: +3472 break +3473 +3474 return options +3475 +3476 def _parse_references(self, match: bool = True) -> t.Optional[exp.Expression]: +3477 if match and not self._match(TokenType.REFERENCES): +3478 return None +3479 +3480 expressions = None +3481 this = self._parse_id_var() +3482 +3483 if self._match(TokenType.L_PAREN, advance=False): +3484 expressions = self._parse_wrapped_id_vars() 3485 -3486 self._add_comments(this) -3487 return self._parse_bracket(this) +3486 options = self._parse_key_constraint_options() +3487 return self.expression(exp.Reference, this=this, expressions=expressions, options=options) 3488 -3489 def _parse_slice(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: -3490 if self._match(TokenType.COLON): -3491 return self.expression(exp.Slice, this=this, expression=self._parse_conjunction()) -3492 return this +3489 def _parse_foreign_key(self) -> exp.Expression: +3490 expressions = self._parse_wrapped_id_vars() +3491 reference = self._parse_references() +3492 options = {} 3493 -3494 def _parse_case(self) -> t.Optional[exp.Expression]: -3495 ifs = [] -3496 default = None +3494 while self._match(TokenType.ON): +3495 if not self._match_set((TokenType.DELETE, TokenType.UPDATE)): +3496 self.raise_error("Expected DELETE or UPDATE") 3497 -3498 expression = self._parse_conjunction() +3498 kind = self._prev.text.lower() 3499 -3500 while self._match(TokenType.WHEN): -3501 this = self._parse_conjunction() -3502 self._match(TokenType.THEN) -3503 then = self._parse_conjunction() -3504 ifs.append(self.expression(exp.If, this=this, true=then)) -3505 -3506 if self._match(TokenType.ELSE): -3507 default = self._parse_conjunction() +3500 if self._match_text_seq("NO", "ACTION"): +3501 action = "NO ACTION" +3502 elif self._match(TokenType.SET): +3503 self._match_set((TokenType.NULL, TokenType.DEFAULT)) +3504 action = "SET " + self._prev.text.upper() +3505 else: +3506 self._advance() +3507 action = self._prev.text.upper() 3508 -3509 if not self._match(TokenType.END): -3510 self.raise_error("Expected END after CASE", self._prev) -3511 -3512 return self._parse_window( -3513 self.expression(exp.Case, this=expression, ifs=ifs, default=default) -3514 ) -3515 -3516 def _parse_if(self) -> t.Optional[exp.Expression]: -3517 if self._match(TokenType.L_PAREN): -3518 args = self._parse_csv(self._parse_conjunction) -3519 this = exp.If.from_arg_list(args) -3520 self.validate_expression(this, args) -3521 self._match_r_paren() -3522 else: -3523 index = self._index - 1 -3524 condition = self._parse_conjunction() +3509 options[kind] = action +3510 +3511 return self.expression( +3512 exp.ForeignKey, expressions=expressions, reference=reference, **options # type: ignore +3513 ) +3514 +3515 def _parse_primary_key( +3516 self, wrapped_optional: bool = False, in_props: bool = False +3517 ) -> exp.Expression: +3518 desc = ( +3519 self._match_set((TokenType.ASC, TokenType.DESC)) +3520 and self._prev.token_type == TokenType.DESC +3521 ) +3522 +3523 if not in_props and not self._match(TokenType.L_PAREN, advance=False): +3524 return self.expression(exp.PrimaryKeyColumnConstraint, desc=desc) 3525 -3526 if not condition: -3527 self._retreat(index) -3528 return None +3526 expressions = self._parse_wrapped_csv(self._parse_field, optional=wrapped_optional) +3527 options = self._parse_key_constraint_options() +3528 return self.expression(exp.PrimaryKey, expressions=expressions, options=options) 3529 -3530 self._match(TokenType.THEN) -3531 true = self._parse_conjunction() -3532 false = self._parse_conjunction() if self._match(TokenType.ELSE) else None -3533 self._match(TokenType.END) -3534 this = self.expression(exp.If, this=condition, true=true, false=false) -3535 -3536 return self._parse_window(this) +3530 @t.overload +3531 def _parse_bracket(self, this: exp.Expression) -> exp.Expression: +3532 ... +3533 +3534 @t.overload +3535 def _parse_bracket(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: +3536 ... 3537 -3538 def _parse_extract(self) -> exp.Expression: -3539 this = self._parse_function() or self._parse_var() or self._parse_type() -3540 -3541 if self._match(TokenType.FROM): -3542 return self.expression(exp.Extract, this=this, expression=self._parse_bitwise()) -3543 -3544 if not self._match(TokenType.COMMA): -3545 self.raise_error("Expected FROM or comma after EXTRACT", self._prev) -3546 -3547 return self.expression(exp.Extract, this=this, expression=self._parse_bitwise()) -3548 -3549 def _parse_cast(self, strict: bool) -> exp.Expression: -3550 this = self._parse_conjunction() -3551 -3552 if not self._match(TokenType.ALIAS): -3553 if self._match(TokenType.COMMA): -3554 return self.expression( -3555 exp.CastToStrType, this=this, expression=self._parse_string() -3556 ) -3557 else: -3558 self.raise_error("Expected AS after CAST") -3559 -3560 to = self._parse_types() -3561 -3562 if not to: -3563 self.raise_error("Expected TYPE after CAST") -3564 elif to.this == exp.DataType.Type.CHAR: -3565 if self._match(TokenType.CHARACTER_SET): -3566 to = self.expression(exp.CharacterSet, this=self._parse_var_or_string()) -3567 -3568 return self.expression(exp.Cast if strict else exp.TryCast, this=this, to=to) -3569 -3570 def _parse_string_agg(self) -> exp.Expression: -3571 expression: t.Optional[exp.Expression] -3572 -3573 if self._match(TokenType.DISTINCT): -3574 args = self._parse_csv(self._parse_conjunction) -3575 expression = self.expression(exp.Distinct, expressions=[seq_get(args, 0)]) -3576 else: -3577 args = self._parse_csv(self._parse_conjunction) -3578 expression = seq_get(args, 0) -3579 -3580 index = self._index -3581 if not self._match(TokenType.R_PAREN): -3582 # postgres: STRING_AGG([DISTINCT] expression, separator [ORDER BY expression1 {ASC | DESC} [, ...]]) -3583 order = self._parse_order(this=expression) -3584 return self.expression(exp.GroupConcat, this=order, separator=seq_get(args, 1)) -3585 -3586 # Checks if we can parse an order clause: WITHIN GROUP (ORDER BY <order_by_expression_list> [ASC | DESC]). -3587 # This is done "manually", instead of letting _parse_window parse it into an exp.WithinGroup node, so that -3588 # the STRING_AGG call is parsed like in MySQL / SQLite and can thus be transpiled more easily to them. -3589 if not self._match_text_seq("WITHIN", "GROUP"): -3590 self._retreat(index) -3591 this = exp.GroupConcat.from_arg_list(args) -3592 self.validate_expression(this, args) -3593 return this -3594 -3595 self._match_l_paren() # The corresponding match_r_paren will be called in parse_function (caller) -3596 order = self._parse_order(this=expression) -3597 return self.expression(exp.GroupConcat, this=order, separator=seq_get(args, 1)) -3598 -3599 def _parse_convert(self, strict: bool) -> t.Optional[exp.Expression]: -3600 to: t.Optional[exp.Expression] -3601 this = self._parse_bitwise() -3602 -3603 if self._match(TokenType.USING): -3604 to = self.expression(exp.CharacterSet, this=self._parse_var()) -3605 elif self._match(TokenType.COMMA): -3606 to = self._parse_bitwise() -3607 else: -3608 to = None -3609 -3610 # Swap the argument order if needed to produce the correct AST -3611 if self.CONVERT_TYPE_FIRST: -3612 this, to = to, this +3538 def _parse_bracket(self, this): +3539 if not self._match_set((TokenType.L_BRACKET, TokenType.L_BRACE)): +3540 return this +3541 +3542 bracket_kind = self._prev.token_type +3543 expressions: t.List[t.Optional[exp.Expression]] +3544 +3545 if self._match(TokenType.COLON): +3546 expressions = [self.expression(exp.Slice, expression=self._parse_conjunction())] +3547 else: +3548 expressions = self._parse_csv(lambda: self._parse_slice(self._parse_conjunction())) +3549 +3550 # https://duckdb.org/docs/sql/data_types/struct.html#creating-structs +3551 if bracket_kind == TokenType.L_BRACE: +3552 this = self.expression(exp.Struct, expressions=expressions) +3553 elif not this or this.name.upper() == "ARRAY": +3554 this = self.expression(exp.Array, expressions=expressions) +3555 else: +3556 expressions = apply_index_offset(this, expressions, -self.index_offset) +3557 this = self.expression(exp.Bracket, this=this, expressions=expressions) +3558 +3559 if not self._match(TokenType.R_BRACKET) and bracket_kind == TokenType.L_BRACKET: +3560 self.raise_error("Expected ]") +3561 elif not self._match(TokenType.R_BRACE) and bracket_kind == TokenType.L_BRACE: +3562 self.raise_error("Expected }") +3563 +3564 self._add_comments(this) +3565 return self._parse_bracket(this) +3566 +3567 def _parse_slice(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]: +3568 if self._match(TokenType.COLON): +3569 return self.expression(exp.Slice, this=this, expression=self._parse_conjunction()) +3570 return this +3571 +3572 def _parse_case(self) -> t.Optional[exp.Expression]: +3573 ifs = [] +3574 default = None +3575 +3576 expression = self._parse_conjunction() +3577 +3578 while self._match(TokenType.WHEN): +3579 this = self._parse_conjunction() +3580 self._match(TokenType.THEN) +3581 then = self._parse_conjunction() +3582 ifs.append(self.expression(exp.If, this=this, true=then)) +3583 +3584 if self._match(TokenType.ELSE): +3585 default = self._parse_conjunction() +3586 +3587 if not self._match(TokenType.END): +3588 self.raise_error("Expected END after CASE", self._prev) +3589 +3590 return self._parse_window( +3591 self.expression(exp.Case, this=expression, ifs=ifs, default=default) +3592 ) +3593 +3594 def _parse_if(self) -> t.Optional[exp.Expression]: +3595 if self._match(TokenType.L_PAREN): +3596 args = self._parse_csv(self._parse_conjunction) +3597 this = exp.If.from_arg_list(args) +3598 self.validate_expression(this, args) +3599 self._match_r_paren() +3600 else: +3601 index = self._index - 1 +3602 condition = self._parse_conjunction() +3603 +3604 if not condition: +3605 self._retreat(index) +3606 return None +3607 +3608 self._match(TokenType.THEN) +3609 true = self._parse_conjunction() +3610 false = self._parse_conjunction() if self._match(TokenType.ELSE) else None +3611 self._match(TokenType.END) +3612 this = self.expression(exp.If, this=condition, true=true, false=false) 3613 -3614 return self.expression(exp.Cast if strict else exp.TryCast, this=this, to=to) +3614 return self._parse_window(this) 3615 -3616 def _parse_decode(self) -> t.Optional[exp.Expression]: -3617 """ -3618 There are generally two variants of the DECODE function: -3619 -3620 - DECODE(bin, charset) -3621 - DECODE(expression, search, result [, search, result] ... [, default]) -3622 -3623 The second variant will always be parsed into a CASE expression. Note that NULL -3624 needs special treatment, since we need to explicitly check for it with `IS NULL`, -3625 instead of relying on pattern matching. -3626 """ -3627 args = self._parse_csv(self._parse_conjunction) -3628 -3629 if len(args) < 3: -3630 return self.expression(exp.Decode, this=seq_get(args, 0), charset=seq_get(args, 1)) -3631 -3632 expression, *expressions = args -3633 if not expression: -3634 return None -3635 -3636 ifs = [] -3637 for search, result in zip(expressions[::2], expressions[1::2]): -3638 if not search or not result: -3639 return None -3640 -3641 if isinstance(search, exp.Literal): -3642 ifs.append( -3643 exp.If(this=exp.EQ(this=expression.copy(), expression=search), true=result) -3644 ) -3645 elif isinstance(search, exp.Null): -3646 ifs.append( -3647 exp.If(this=exp.Is(this=expression.copy(), expression=exp.Null()), true=result) -3648 ) -3649 else: -3650 cond = exp.or_( -3651 exp.EQ(this=expression.copy(), expression=search), -3652 exp.and_( -3653 exp.Is(this=expression.copy(), expression=exp.Null()), -3654 exp.Is(this=search.copy(), expression=exp.Null()), -3655 copy=False, -3656 ), -3657 copy=False, -3658 ) -3659 ifs.append(exp.If(this=cond, true=result)) -3660 -3661 return exp.Case(ifs=ifs, default=expressions[-1] if len(expressions) % 2 == 1 else None) -3662 -3663 def _parse_json_key_value(self) -> t.Optional[exp.Expression]: -3664 self._match_text_seq("KEY") -3665 key = self._parse_field() -3666 self._match(TokenType.COLON) -3667 self._match_text_seq("VALUE") -3668 value = self._parse_field() -3669 if not key and not value: -3670 return None -3671 return self.expression(exp.JSONKeyValue, this=key, expression=value) +3616 def _parse_extract(self) -> exp.Expression: +3617 this = self._parse_function() or self._parse_var() or self._parse_type() +3618 +3619 if self._match(TokenType.FROM): +3620 return self.expression(exp.Extract, this=this, expression=self._parse_bitwise()) +3621 +3622 if not self._match(TokenType.COMMA): +3623 self.raise_error("Expected FROM or comma after EXTRACT", self._prev) +3624 +3625 return self.expression(exp.Extract, this=this, expression=self._parse_bitwise()) +3626 +3627 def _parse_cast(self, strict: bool) -> exp.Expression: +3628 this = self._parse_conjunction() +3629 +3630 if not self._match(TokenType.ALIAS): +3631 if self._match(TokenType.COMMA): +3632 return self.expression( +3633 exp.CastToStrType, this=this, expression=self._parse_string() +3634 ) +3635 else: +3636 self.raise_error("Expected AS after CAST") +3637 +3638 to = self._parse_types() +3639 +3640 if not to: +3641 self.raise_error("Expected TYPE after CAST") +3642 elif to.this == exp.DataType.Type.CHAR: +3643 if self._match(TokenType.CHARACTER_SET): +3644 to = self.expression(exp.CharacterSet, this=self._parse_var_or_string()) +3645 +3646 return self.expression(exp.Cast if strict else exp.TryCast, this=this, to=to) +3647 +3648 def _parse_string_agg(self) -> exp.Expression: +3649 expression: t.Optional[exp.Expression] +3650 +3651 if self._match(TokenType.DISTINCT): +3652 args = self._parse_csv(self._parse_conjunction) +3653 expression = self.expression(exp.Distinct, expressions=[seq_get(args, 0)]) +3654 else: +3655 args = self._parse_csv(self._parse_conjunction) +3656 expression = seq_get(args, 0) +3657 +3658 index = self._index +3659 if not self._match(TokenType.R_PAREN): +3660 # postgres: STRING_AGG([DISTINCT] expression, separator [ORDER BY expression1 {ASC | DESC} [, ...]]) +3661 order = self._parse_order(this=expression) +3662 return self.expression(exp.GroupConcat, this=order, separator=seq_get(args, 1)) +3663 +3664 # Checks if we can parse an order clause: WITHIN GROUP (ORDER BY <order_by_expression_list> [ASC | DESC]). +3665 # This is done "manually", instead of letting _parse_window parse it into an exp.WithinGroup node, so that +3666 # the STRING_AGG call is parsed like in MySQL / SQLite and can thus be transpiled more easily to them. +3667 if not self._match_text_seq("WITHIN", "GROUP"): +3668 self._retreat(index) +3669 this = exp.GroupConcat.from_arg_list(args) +3670 self.validate_expression(this, args) +3671 return this 3672 -3673 def _parse_json_object(self) -> exp.Expression: -3674 expressions = self._parse_csv(self._parse_json_key_value) -3675 -3676 null_handling = None -3677 if self._match_text_seq("NULL", "ON", "NULL"): -3678 null_handling = "NULL ON NULL" -3679 elif self._match_text_seq("ABSENT", "ON", "NULL"): -3680 null_handling = "ABSENT ON NULL" -3681 -3682 unique_keys = None -3683 if self._match_text_seq("WITH", "UNIQUE"): -3684 unique_keys = True -3685 elif self._match_text_seq("WITHOUT", "UNIQUE"): -3686 unique_keys = False +3673 self._match_l_paren() # The corresponding match_r_paren will be called in parse_function (caller) +3674 order = self._parse_order(this=expression) +3675 return self.expression(exp.GroupConcat, this=order, separator=seq_get(args, 1)) +3676 +3677 def _parse_convert(self, strict: bool) -> t.Optional[exp.Expression]: +3678 to: t.Optional[exp.Expression] +3679 this = self._parse_bitwise() +3680 +3681 if self._match(TokenType.USING): +3682 to = self.expression(exp.CharacterSet, this=self._parse_var()) +3683 elif self._match(TokenType.COMMA): +3684 to = self._parse_bitwise() +3685 else: +3686 to = None 3687 -3688 self._match_text_seq("KEYS") -3689 -3690 return_type = self._match_text_seq("RETURNING") and self._parse_type() -3691 format_json = self._match_text_seq("FORMAT", "JSON") -3692 encoding = self._match_text_seq("ENCODING") and self._parse_var() +3688 # Swap the argument order if needed to produce the correct AST +3689 if self.CONVERT_TYPE_FIRST: +3690 this, to = to, this +3691 +3692 return self.expression(exp.Cast if strict else exp.TryCast, this=this, to=to) 3693 -3694 return self.expression( -3695 exp.JSONObject, -3696 expressions=expressions, -3697 null_handling=null_handling, -3698 unique_keys=unique_keys, -3699 return_type=return_type, -3700 format_json=format_json, -3701 encoding=encoding, -3702 ) -3703 -3704 def _parse_logarithm(self) -> exp.Expression: -3705 # Default argument order is base, expression -3706 args = self._parse_csv(self._parse_range) -3707 -3708 if len(args) > 1: -3709 if not self.LOG_BASE_FIRST: -3710 args.reverse() -3711 return exp.Log.from_arg_list(args) -3712 -3713 return self.expression( -3714 exp.Ln if self.LOG_DEFAULTS_TO_LN else exp.Log, this=seq_get(args, 0) -3715 ) -3716 -3717 def _parse_match_against(self) -> exp.Expression: -3718 expressions = self._parse_csv(self._parse_column) -3719 -3720 self._match_text_seq(")", "AGAINST", "(") -3721 -3722 this = self._parse_string() -3723 -3724 if self._match_text_seq("IN", "NATURAL", "LANGUAGE", "MODE"): -3725 modifier = "IN NATURAL LANGUAGE MODE" -3726 if self._match_text_seq("WITH", "QUERY", "EXPANSION"): -3727 modifier = f"{modifier} WITH QUERY EXPANSION" -3728 elif self._match_text_seq("IN", "BOOLEAN", "MODE"): -3729 modifier = "IN BOOLEAN MODE" -3730 elif self._match_text_seq("WITH", "QUERY", "EXPANSION"): -3731 modifier = "WITH QUERY EXPANSION" -3732 else: -3733 modifier = None -3734 -3735 return self.expression( -3736 exp.MatchAgainst, this=this, expressions=expressions, modifier=modifier -3737 ) +3694 def _parse_decode(self) -> t.Optional[exp.Expression]: +3695 """ +3696 There are generally two variants of the DECODE function: +3697 +3698 - DECODE(bin, charset) +3699 - DECODE(expression, search, result [, search, result] ... [, default]) +3700 +3701 The second variant will always be parsed into a CASE expression. Note that NULL +3702 needs special treatment, since we need to explicitly check for it with `IS NULL`, +3703 instead of relying on pattern matching. +3704 """ +3705 args = self._parse_csv(self._parse_conjunction) +3706 +3707 if len(args) < 3: +3708 return self.expression(exp.Decode, this=seq_get(args, 0), charset=seq_get(args, 1)) +3709 +3710 expression, *expressions = args +3711 if not expression: +3712 return None +3713 +3714 ifs = [] +3715 for search, result in zip(expressions[::2], expressions[1::2]): +3716 if not search or not result: +3717 return None +3718 +3719 if isinstance(search, exp.Literal): +3720 ifs.append( +3721 exp.If(this=exp.EQ(this=expression.copy(), expression=search), true=result) +3722 ) +3723 elif isinstance(search, exp.Null): +3724 ifs.append( +3725 exp.If(this=exp.Is(this=expression.copy(), expression=exp.Null()), true=result) +3726 ) +3727 else: +3728 cond = exp.or_( +3729 exp.EQ(this=expression.copy(), expression=search), +3730 exp.and_( +3731 exp.Is(this=expression.copy(), expression=exp.Null()), +3732 exp.Is(this=search.copy(), expression=exp.Null()), +3733 copy=False, +3734 ), +3735 copy=False, +3736 ) +3737 ifs.append(exp.If(this=cond, true=result)) 3738 -3739 # https://learn.microsoft.com/en-us/sql/t-sql/functions/openjson-transact-sql?view=sql-server-ver16 -3740 def _parse_open_json(self) -> exp.Expression: -3741 this = self._parse_bitwise() -3742 path = self._match(TokenType.COMMA) and self._parse_string() -3743 -3744 def _parse_open_json_column_def() -> exp.Expression: -3745 this = self._parse_field(any_token=True) -3746 kind = self._parse_types() -3747 path = self._parse_string() -3748 as_json = self._match_pair(TokenType.ALIAS, TokenType.JSON) -3749 return self.expression( -3750 exp.OpenJSONColumnDef, this=this, kind=kind, path=path, as_json=as_json -3751 ) -3752 -3753 expressions = None -3754 if self._match_pair(TokenType.R_PAREN, TokenType.WITH): -3755 self._match_l_paren() -3756 expressions = self._parse_csv(_parse_open_json_column_def) -3757 -3758 return self.expression(exp.OpenJSON, this=this, path=path, expressions=expressions) +3739 return exp.Case(ifs=ifs, default=expressions[-1] if len(expressions) % 2 == 1 else None) +3740 +3741 def _parse_json_key_value(self) -> t.Optional[exp.Expression]: +3742 self._match_text_seq("KEY") +3743 key = self._parse_field() +3744 self._match(TokenType.COLON) +3745 self._match_text_seq("VALUE") +3746 value = self._parse_field() +3747 if not key and not value: +3748 return None +3749 return self.expression(exp.JSONKeyValue, this=key, expression=value) +3750 +3751 def _parse_json_object(self) -> exp.Expression: +3752 expressions = self._parse_csv(self._parse_json_key_value) +3753 +3754 null_handling = None +3755 if self._match_text_seq("NULL", "ON", "NULL"): +3756 null_handling = "NULL ON NULL" +3757 elif self._match_text_seq("ABSENT", "ON", "NULL"): +3758 null_handling = "ABSENT ON NULL" 3759 -3760 def _parse_position(self, haystack_first: bool = False) -> exp.Expression: -3761 args = self._parse_csv(self._parse_bitwise) -3762 -3763 if self._match(TokenType.IN): -3764 return self.expression( -3765 exp.StrPosition, this=self._parse_bitwise(), substr=seq_get(args, 0) -3766 ) +3760 unique_keys = None +3761 if self._match_text_seq("WITH", "UNIQUE"): +3762 unique_keys = True +3763 elif self._match_text_seq("WITHOUT", "UNIQUE"): +3764 unique_keys = False +3765 +3766 self._match_text_seq("KEYS") 3767 -3768 if haystack_first: -3769 haystack = seq_get(args, 0) -3770 needle = seq_get(args, 1) -3771 else: -3772 needle = seq_get(args, 0) -3773 haystack = seq_get(args, 1) -3774 -3775 this = exp.StrPosition(this=haystack, substr=needle, position=seq_get(args, 2)) -3776 -3777 self.validate_expression(this, args) -3778 -3779 return this -3780 -3781 def _parse_join_hint(self, func_name: str) -> exp.Expression: -3782 args = self._parse_csv(self._parse_table) -3783 return exp.JoinHint(this=func_name.upper(), expressions=args) -3784 -3785 def _parse_substring(self) -> exp.Expression: -3786 # Postgres supports the form: substring(string [from int] [for int]) -3787 # https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6 -3788 -3789 args = self._parse_csv(self._parse_bitwise) +3768 return_type = self._match_text_seq("RETURNING") and self._parse_type() +3769 format_json = self._match_text_seq("FORMAT", "JSON") +3770 encoding = self._match_text_seq("ENCODING") and self._parse_var() +3771 +3772 return self.expression( +3773 exp.JSONObject, +3774 expressions=expressions, +3775 null_handling=null_handling, +3776 unique_keys=unique_keys, +3777 return_type=return_type, +3778 format_json=format_json, +3779 encoding=encoding, +3780 ) +3781 +3782 def _parse_logarithm(self) -> exp.Expression: +3783 # Default argument order is base, expression +3784 args = self._parse_csv(self._parse_range) +3785 +3786 if len(args) > 1: +3787 if not self.LOG_BASE_FIRST: +3788 args.reverse() +3789 return exp.Log.from_arg_list(args) 3790 -3791 if self._match(TokenType.FROM): -3792 args.append(self._parse_bitwise()) -3793 if self._match(TokenType.FOR): -3794 args.append(self._parse_bitwise()) -3795 -3796 this = exp.Substring.from_arg_list(args) -3797 self.validate_expression(this, args) -3798 -3799 return this -3800 -3801 def _parse_trim(self) -> exp.Expression: -3802 # https://www.w3resource.com/sql/character-functions/trim.php -3803 # https://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html -3804 -3805 position = None -3806 collation = None -3807 -3808 if self._match_texts(self.TRIM_TYPES): -3809 position = self._prev.text.upper() -3810 -3811 expression = self._parse_bitwise() -3812 if self._match_set((TokenType.FROM, TokenType.COMMA)): -3813 this = self._parse_bitwise() -3814 else: -3815 this = expression -3816 expression = None -3817 -3818 if self._match(TokenType.COLLATE): -3819 collation = self._parse_bitwise() -3820 -3821 return self.expression( -3822 exp.Trim, -3823 this=this, -3824 position=position, -3825 expression=expression, -3826 collation=collation, -3827 ) -3828 -3829 def _parse_window_clause(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]: -3830 return self._match(TokenType.WINDOW) and self._parse_csv(self._parse_named_window) -3831 -3832 def _parse_named_window(self) -> t.Optional[exp.Expression]: -3833 return self._parse_window(self._parse_id_var(), alias=True) -3834 -3835 def _parse_respect_or_ignore_nulls( -3836 self, this: t.Optional[exp.Expression] -3837 ) -> t.Optional[exp.Expression]: -3838 if self._match_text_seq("IGNORE", "NULLS"): -3839 return self.expression(exp.IgnoreNulls, this=this) -3840 if self._match_text_seq("RESPECT", "NULLS"): -3841 return self.expression(exp.RespectNulls, this=this) -3842 return this -3843 -3844 def _parse_window( -3845 self, this: t.Optional[exp.Expression], alias: bool = False -3846 ) -> t.Optional[exp.Expression]: -3847 if self._match_pair(TokenType.FILTER, TokenType.L_PAREN): -3848 this = self.expression(exp.Filter, this=this, expression=self._parse_where()) -3849 self._match_r_paren() -3850 -3851 # T-SQL allows the OVER (...) syntax after WITHIN GROUP. -3852 # https://learn.microsoft.com/en-us/sql/t-sql/functions/percentile-disc-transact-sql?view=sql-server-ver16 -3853 if self._match_text_seq("WITHIN", "GROUP"): -3854 order = self._parse_wrapped(self._parse_order) -3855 this = self.expression(exp.WithinGroup, this=this, expression=order) +3791 return self.expression( +3792 exp.Ln if self.LOG_DEFAULTS_TO_LN else exp.Log, this=seq_get(args, 0) +3793 ) +3794 +3795 def _parse_match_against(self) -> exp.Expression: +3796 expressions = self._parse_csv(self._parse_column) +3797 +3798 self._match_text_seq(")", "AGAINST", "(") +3799 +3800 this = self._parse_string() +3801 +3802 if self._match_text_seq("IN", "NATURAL", "LANGUAGE", "MODE"): +3803 modifier = "IN NATURAL LANGUAGE MODE" +3804 if self._match_text_seq("WITH", "QUERY", "EXPANSION"): +3805 modifier = f"{modifier} WITH QUERY EXPANSION" +3806 elif self._match_text_seq("IN", "BOOLEAN", "MODE"): +3807 modifier = "IN BOOLEAN MODE" +3808 elif self._match_text_seq("WITH", "QUERY", "EXPANSION"): +3809 modifier = "WITH QUERY EXPANSION" +3810 else: +3811 modifier = None +3812 +3813 return self.expression( +3814 exp.MatchAgainst, this=this, expressions=expressions, modifier=modifier +3815 ) +3816 +3817 # https://learn.microsoft.com/en-us/sql/t-sql/functions/openjson-transact-sql?view=sql-server-ver16 +3818 def _parse_open_json(self) -> exp.Expression: +3819 this = self._parse_bitwise() +3820 path = self._match(TokenType.COMMA) and self._parse_string() +3821 +3822 def _parse_open_json_column_def() -> exp.Expression: +3823 this = self._parse_field(any_token=True) +3824 kind = self._parse_types() +3825 path = self._parse_string() +3826 as_json = self._match_pair(TokenType.ALIAS, TokenType.JSON) +3827 return self.expression( +3828 exp.OpenJSONColumnDef, this=this, kind=kind, path=path, as_json=as_json +3829 ) +3830 +3831 expressions = None +3832 if self._match_pair(TokenType.R_PAREN, TokenType.WITH): +3833 self._match_l_paren() +3834 expressions = self._parse_csv(_parse_open_json_column_def) +3835 +3836 return self.expression(exp.OpenJSON, this=this, path=path, expressions=expressions) +3837 +3838 def _parse_position(self, haystack_first: bool = False) -> exp.Expression: +3839 args = self._parse_csv(self._parse_bitwise) +3840 +3841 if self._match(TokenType.IN): +3842 return self.expression( +3843 exp.StrPosition, this=self._parse_bitwise(), substr=seq_get(args, 0) +3844 ) +3845 +3846 if haystack_first: +3847 haystack = seq_get(args, 0) +3848 needle = seq_get(args, 1) +3849 else: +3850 needle = seq_get(args, 0) +3851 haystack = seq_get(args, 1) +3852 +3853 this = exp.StrPosition(this=haystack, substr=needle, position=seq_get(args, 2)) +3854 +3855 self.validate_expression(this, args) 3856 -3857 # SQL spec defines an optional [ { IGNORE | RESPECT } NULLS ] OVER -3858 # Some dialects choose to implement and some do not. -3859 # https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html -3860 -3861 # There is some code above in _parse_lambda that handles -3862 # SELECT FIRST_VALUE(TABLE.COLUMN IGNORE|RESPECT NULLS) OVER ... -3863 -3864 # The below changes handle -3865 # SELECT FIRST_VALUE(TABLE.COLUMN) IGNORE|RESPECT NULLS OVER ... +3857 return this +3858 +3859 def _parse_join_hint(self, func_name: str) -> exp.Expression: +3860 args = self._parse_csv(self._parse_table) +3861 return exp.JoinHint(this=func_name.upper(), expressions=args) +3862 +3863 def _parse_substring(self) -> exp.Expression: +3864 # Postgres supports the form: substring(string [from int] [for int]) +3865 # https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6 3866 -3867 # Oracle allows both formats -3868 # (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/img_text/first_value.html) -3869 # and Snowflake chose to do the same for familiarity -3870 # https://docs.snowflake.com/en/sql-reference/functions/first_value.html#usage-notes -3871 this = self._parse_respect_or_ignore_nulls(this) -3872 -3873 # bigquery select from window x AS (partition by ...) -3874 if alias: -3875 over = None -3876 self._match(TokenType.ALIAS) -3877 elif not self._match_set(self.WINDOW_BEFORE_PAREN_TOKENS): -3878 return this -3879 else: -3880 over = self._prev.text.upper() -3881 -3882 if not self._match(TokenType.L_PAREN): -3883 return self.expression( -3884 exp.Window, this=this, alias=self._parse_id_var(False), over=over -3885 ) -3886 -3887 window_alias = self._parse_id_var(any_token=False, tokens=self.WINDOW_ALIAS_TOKENS) +3867 args = self._parse_csv(self._parse_bitwise) +3868 +3869 if self._match(TokenType.FROM): +3870 args.append(self._parse_bitwise()) +3871 if self._match(TokenType.FOR): +3872 args.append(self._parse_bitwise()) +3873 +3874 this = exp.Substring.from_arg_list(args) +3875 self.validate_expression(this, args) +3876 +3877 return this +3878 +3879 def _parse_trim(self) -> exp.Expression: +3880 # https://www.w3resource.com/sql/character-functions/trim.php +3881 # https://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html +3882 +3883 position = None +3884 collation = None +3885 +3886 if self._match_texts(self.TRIM_TYPES): +3887 position = self._prev.text.upper() 3888 -3889 first = self._match(TokenType.FIRST) -3890 if self._match_text_seq("LAST"): -3891 first = False -3892 -3893 partition = self._parse_partition_by() -3894 order = self._parse_order() -3895 kind = self._match_set((TokenType.ROWS, TokenType.RANGE)) and self._prev.text -3896 -3897 if kind: -3898 self._match(TokenType.BETWEEN) -3899 start = self._parse_window_spec() -3900 self._match(TokenType.AND) -3901 end = self._parse_window_spec() -3902 -3903 spec = self.expression( -3904 exp.WindowSpec, -3905 kind=kind, -3906 start=start["value"], -3907 start_side=start["side"], -3908 end=end["value"], -3909 end_side=end["side"], -3910 ) -3911 else: -3912 spec = None -3913 -3914 self._match_r_paren() -3915 -3916 return self.expression( -3917 exp.Window, -3918 this=this, -3919 partition_by=partition, -3920 order=order, -3921 spec=spec, -3922 alias=window_alias, -3923 over=over, -3924 first=first, -3925 ) -3926 -3927 def _parse_window_spec(self) -> t.Dict[str, t.Optional[str | exp.Expression]]: -3928 self._match(TokenType.BETWEEN) -3929 -3930 return { -3931 "value": ( -3932 (self._match_text_seq("UNBOUNDED") and "UNBOUNDED") -3933 or (self._match_text_seq("CURRENT", "ROW") and "CURRENT ROW") -3934 or self._parse_bitwise() -3935 ), -3936 "side": self._match_texts(("PRECEDING", "FOLLOWING")) and self._prev.text, -3937 } +3889 expression = self._parse_bitwise() +3890 if self._match_set((TokenType.FROM, TokenType.COMMA)): +3891 this = self._parse_bitwise() +3892 else: +3893 this = expression +3894 expression = None +3895 +3896 if self._match(TokenType.COLLATE): +3897 collation = self._parse_bitwise() +3898 +3899 return self.expression( +3900 exp.Trim, +3901 this=this, +3902 position=position, +3903 expression=expression, +3904 collation=collation, +3905 ) +3906 +3907 def _parse_window_clause(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]: +3908 return self._match(TokenType.WINDOW) and self._parse_csv(self._parse_named_window) +3909 +3910 def _parse_named_window(self) -> t.Optional[exp.Expression]: +3911 return self._parse_window(self._parse_id_var(), alias=True) +3912 +3913 def _parse_respect_or_ignore_nulls( +3914 self, this: t.Optional[exp.Expression] +3915 ) -> t.Optional[exp.Expression]: +3916 if self._match_text_seq("IGNORE", "NULLS"): +3917 return self.expression(exp.IgnoreNulls, this=this) +3918 if self._match_text_seq("RESPECT", "NULLS"): +3919 return self.expression(exp.RespectNulls, this=this) +3920 return this +3921 +3922 def _parse_window( +3923 self, this: t.Optional[exp.Expression], alias: bool = False +3924 ) -> t.Optional[exp.Expression]: +3925 if self._match_pair(TokenType.FILTER, TokenType.L_PAREN): +3926 this = self.expression(exp.Filter, this=this, expression=self._parse_where()) +3927 self._match_r_paren() +3928 +3929 # T-SQL allows the OVER (...) syntax after WITHIN GROUP. +3930 # https://learn.microsoft.com/en-us/sql/t-sql/functions/percentile-disc-transact-sql?view=sql-server-ver16 +3931 if self._match_text_seq("WITHIN", "GROUP"): +3932 order = self._parse_wrapped(self._parse_order) +3933 this = self.expression(exp.WithinGroup, this=this, expression=order) +3934 +3935 # SQL spec defines an optional [ { IGNORE | RESPECT } NULLS ] OVER +3936 # Some dialects choose to implement and some do not. +3937 # https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html 3938 -3939 def _parse_alias( -3940 self, this: t.Optional[exp.Expression], explicit: bool = False -3941 ) -> t.Optional[exp.Expression]: -3942 any_token = self._match(TokenType.ALIAS) -3943 -3944 if explicit and not any_token: -3945 return this -3946 -3947 if self._match(TokenType.L_PAREN): -3948 aliases = self.expression( -3949 exp.Aliases, -3950 this=this, -3951 expressions=self._parse_csv(lambda: self._parse_id_var(any_token)), -3952 ) -3953 self._match_r_paren(aliases) -3954 return aliases -3955 -3956 alias = self._parse_id_var(any_token) -3957 -3958 if alias: -3959 return self.expression(exp.Alias, this=this, alias=alias) -3960 -3961 return this -3962 -3963 def _parse_id_var( -3964 self, -3965 any_token: bool = True, -3966 tokens: t.Optional[t.Collection[TokenType]] = None, -3967 prefix_tokens: t.Optional[t.Collection[TokenType]] = None, -3968 ) -> t.Optional[exp.Expression]: -3969 identifier = self._parse_identifier() +3939 # There is some code above in _parse_lambda that handles +3940 # SELECT FIRST_VALUE(TABLE.COLUMN IGNORE|RESPECT NULLS) OVER ... +3941 +3942 # The below changes handle +3943 # SELECT FIRST_VALUE(TABLE.COLUMN) IGNORE|RESPECT NULLS OVER ... +3944 +3945 # Oracle allows both formats +3946 # (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/img_text/first_value.html) +3947 # and Snowflake chose to do the same for familiarity +3948 # https://docs.snowflake.com/en/sql-reference/functions/first_value.html#usage-notes +3949 this = self._parse_respect_or_ignore_nulls(this) +3950 +3951 # bigquery select from window x AS (partition by ...) +3952 if alias: +3953 over = None +3954 self._match(TokenType.ALIAS) +3955 elif not self._match_set(self.WINDOW_BEFORE_PAREN_TOKENS): +3956 return this +3957 else: +3958 over = self._prev.text.upper() +3959 +3960 if not self._match(TokenType.L_PAREN): +3961 return self.expression( +3962 exp.Window, this=this, alias=self._parse_id_var(False), over=over +3963 ) +3964 +3965 window_alias = self._parse_id_var(any_token=False, tokens=self.WINDOW_ALIAS_TOKENS) +3966 +3967 first = self._match(TokenType.FIRST) +3968 if self._match_text_seq("LAST"): +3969 first = False 3970 -3971 if identifier: -3972 return identifier -3973 -3974 prefix = "" -3975 -3976 if prefix_tokens: -3977 while self._match_set(prefix_tokens): -3978 prefix += self._prev.text -3979 -3980 if (any_token and self._advance_any()) or self._match_set(tokens or self.ID_VAR_TOKENS): -3981 quoted = self._prev.token_type == TokenType.STRING -3982 return exp.Identifier(this=prefix + self._prev.text, quoted=quoted) -3983 -3984 return None -3985 -3986 def _parse_string(self) -> t.Optional[exp.Expression]: -3987 if self._match(TokenType.STRING): -3988 return self.PRIMARY_PARSERS[TokenType.STRING](self, self._prev) -3989 return self._parse_placeholder() -3990 -3991 def _parse_string_as_identifier(self) -> t.Optional[exp.Expression]: -3992 return exp.to_identifier(self._match(TokenType.STRING) and self._prev.text, quoted=True) +3971 partition = self._parse_partition_by() +3972 order = self._parse_order() +3973 kind = self._match_set((TokenType.ROWS, TokenType.RANGE)) and self._prev.text +3974 +3975 if kind: +3976 self._match(TokenType.BETWEEN) +3977 start = self._parse_window_spec() +3978 self._match(TokenType.AND) +3979 end = self._parse_window_spec() +3980 +3981 spec = self.expression( +3982 exp.WindowSpec, +3983 kind=kind, +3984 start=start["value"], +3985 start_side=start["side"], +3986 end=end["value"], +3987 end_side=end["side"], +3988 ) +3989 else: +3990 spec = None +3991 +3992 self._match_r_paren() 3993 -3994 def _parse_number(self) -> t.Optional[exp.Expression]: -3995 if self._match(TokenType.NUMBER): -3996 return self.PRIMARY_PARSERS[TokenType.NUMBER](self, self._prev) -3997 return self._parse_placeholder() -3998 -3999 def _parse_identifier(self) -> t.Optional[exp.Expression]: -4000 if self._match(TokenType.IDENTIFIER): -4001 return self.expression(exp.Identifier, this=self._prev.text, quoted=True) -4002 return self._parse_placeholder() -4003 -4004 def _parse_var( -4005 self, any_token: bool = False, tokens: t.Optional[t.Collection[TokenType]] = None -4006 ) -> t.Optional[exp.Expression]: -4007 if ( -4008 (any_token and self._advance_any()) -4009 or self._match(TokenType.VAR) -4010 or (self._match_set(tokens) if tokens else False) -4011 ): -4012 return self.expression(exp.Var, this=self._prev.text) -4013 return self._parse_placeholder() -4014 -4015 def _advance_any(self) -> t.Optional[Token]: -4016 if self._curr and self._curr.token_type not in self.RESERVED_KEYWORDS: -4017 self._advance() -4018 return self._prev -4019 return None -4020 -4021 def _parse_var_or_string(self) -> t.Optional[exp.Expression]: -4022 return self._parse_var() or self._parse_string() -4023 -4024 def _parse_null(self) -> t.Optional[exp.Expression]: -4025 if self._match(TokenType.NULL): -4026 return self.PRIMARY_PARSERS[TokenType.NULL](self, self._prev) -4027 return None -4028 -4029 def _parse_boolean(self) -> t.Optional[exp.Expression]: -4030 if self._match(TokenType.TRUE): -4031 return self.PRIMARY_PARSERS[TokenType.TRUE](self, self._prev) -4032 if self._match(TokenType.FALSE): -4033 return self.PRIMARY_PARSERS[TokenType.FALSE](self, self._prev) -4034 return None +3994 return self.expression( +3995 exp.Window, +3996 this=this, +3997 partition_by=partition, +3998 order=order, +3999 spec=spec, +4000 alias=window_alias, +4001 over=over, +4002 first=first, +4003 ) +4004 +4005 def _parse_window_spec(self) -> t.Dict[str, t.Optional[str | exp.Expression]]: +4006 self._match(TokenType.BETWEEN) +4007 +4008 return { +4009 "value": ( +4010 (self._match_text_seq("UNBOUNDED") and "UNBOUNDED") +4011 or (self._match_text_seq("CURRENT", "ROW") and "CURRENT ROW") +4012 or self._parse_bitwise() +4013 ), +4014 "side": self._match_texts(self.WINDOW_SIDES) and self._prev.text, +4015 } +4016 +4017 def _parse_alias( +4018 self, this: t.Optional[exp.Expression], explicit: bool = False +4019 ) -> t.Optional[exp.Expression]: +4020 any_token = self._match(TokenType.ALIAS) +4021 +4022 if explicit and not any_token: +4023 return this +4024 +4025 if self._match(TokenType.L_PAREN): +4026 aliases = self.expression( +4027 exp.Aliases, +4028 this=this, +4029 expressions=self._parse_csv(lambda: self._parse_id_var(any_token)), +4030 ) +4031 self._match_r_paren(aliases) +4032 return aliases +4033 +4034 alias = self._parse_id_var(any_token) 4035 -4036 def _parse_star(self) -> t.Optional[exp.Expression]: -4037 if self._match(TokenType.STAR): -4038 return self.PRIMARY_PARSERS[TokenType.STAR](self, self._prev) -4039 return None +4036 if alias: +4037 return self.expression(exp.Alias, this=this, alias=alias) +4038 +4039 return this 4040 -4041 def _parse_parameter(self) -> exp.Expression: -4042 wrapped = self._match(TokenType.L_BRACE) -4043 this = self._parse_var() or self._parse_identifier() or self._parse_primary() -4044 self._match(TokenType.R_BRACE) -4045 return self.expression(exp.Parameter, this=this, wrapped=wrapped) -4046 -4047 def _parse_placeholder(self) -> t.Optional[exp.Expression]: -4048 if self._match_set(self.PLACEHOLDER_PARSERS): -4049 placeholder = self.PLACEHOLDER_PARSERS[self._prev.token_type](self) -4050 if placeholder: -4051 return placeholder -4052 self._advance(-1) -4053 return None +4041 def _parse_id_var( +4042 self, +4043 any_token: bool = True, +4044 tokens: t.Optional[t.Collection[TokenType]] = None, +4045 ) -> t.Optional[exp.Expression]: +4046 identifier = self._parse_identifier() +4047 +4048 if identifier: +4049 return identifier +4050 +4051 if (any_token and self._advance_any()) or self._match_set(tokens or self.ID_VAR_TOKENS): +4052 quoted = self._prev.token_type == TokenType.STRING +4053 return exp.Identifier(this=self._prev.text, quoted=quoted) 4054 -4055 def _parse_except(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]: -4056 if not self._match(TokenType.EXCEPT): -4057 return None -4058 if self._match(TokenType.L_PAREN, advance=False): -4059 return self._parse_wrapped_csv(self._parse_column) -4060 return self._parse_csv(self._parse_column) +4055 return None +4056 +4057 def _parse_string(self) -> t.Optional[exp.Expression]: +4058 if self._match(TokenType.STRING): +4059 return self.PRIMARY_PARSERS[TokenType.STRING](self, self._prev) +4060 return self._parse_placeholder() 4061 -4062 def _parse_replace(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]: -4063 if not self._match(TokenType.REPLACE): -4064 return None -4065 if self._match(TokenType.L_PAREN, advance=False): -4066 return self._parse_wrapped_csv(self._parse_expression) -4067 return self._parse_csv(self._parse_expression) -4068 -4069 def _parse_csv( -4070 self, parse_method: t.Callable, sep: TokenType = TokenType.COMMA -4071 ) -> t.List[t.Optional[exp.Expression]]: -4072 parse_result = parse_method() -4073 items = [parse_result] if parse_result is not None else [] +4062 def _parse_string_as_identifier(self) -> t.Optional[exp.Expression]: +4063 return exp.to_identifier(self._match(TokenType.STRING) and self._prev.text, quoted=True) +4064 +4065 def _parse_number(self) -> t.Optional[exp.Expression]: +4066 if self._match(TokenType.NUMBER): +4067 return self.PRIMARY_PARSERS[TokenType.NUMBER](self, self._prev) +4068 return self._parse_placeholder() +4069 +4070 def _parse_identifier(self) -> t.Optional[exp.Expression]: +4071 if self._match(TokenType.IDENTIFIER): +4072 return self.expression(exp.Identifier, this=self._prev.text, quoted=True) +4073 return self._parse_placeholder() 4074 -4075 while self._match(sep): -4076 self._add_comments(parse_result) -4077 parse_result = parse_method() -4078 if parse_result is not None: -4079 items.append(parse_result) -4080 -4081 return items -4082 -4083 def _parse_tokens( -4084 self, parse_method: t.Callable, expressions: t.Dict -4085 ) -> t.Optional[exp.Expression]: -4086 this = parse_method() -4087 -4088 while self._match_set(expressions): -4089 this = self.expression( -4090 expressions[self._prev.token_type], -4091 this=this, -4092 comments=self._prev_comments, -4093 expression=parse_method(), -4094 ) -4095 -4096 return this -4097 -4098 def _parse_wrapped_id_vars(self, optional: bool = False) -> t.List[t.Optional[exp.Expression]]: -4099 return self._parse_wrapped_csv(self._parse_id_var, optional=optional) -4100 -4101 def _parse_wrapped_csv( -4102 self, parse_method: t.Callable, sep: TokenType = TokenType.COMMA, optional: bool = False -4103 ) -> t.List[t.Optional[exp.Expression]]: -4104 return self._parse_wrapped( -4105 lambda: self._parse_csv(parse_method, sep=sep), optional=optional -4106 ) -4107 -4108 def _parse_wrapped(self, parse_method: t.Callable, optional: bool = False) -> t.Any: -4109 wrapped = self._match(TokenType.L_PAREN) -4110 if not wrapped and not optional: -4111 self.raise_error("Expecting (") -4112 parse_result = parse_method() -4113 if wrapped: -4114 self._match_r_paren() -4115 return parse_result -4116 -4117 def _parse_select_or_expression(self, alias: bool = False) -> t.Optional[exp.Expression]: -4118 return self._parse_select() or self._parse_set_operations( -4119 self._parse_expression() if alias else self._parse_conjunction() -4120 ) -4121 -4122 def _parse_ddl_select(self) -> t.Optional[exp.Expression]: -4123 return self._parse_set_operations( -4124 self._parse_select(nested=True, parse_subquery_alias=False) -4125 ) -4126 -4127 def _parse_transaction(self) -> exp.Expression: -4128 this = None -4129 if self._match_texts(self.TRANSACTION_KIND): -4130 this = self._prev.text -4131 -4132 self._match_texts({"TRANSACTION", "WORK"}) -4133 -4134 modes = [] -4135 while True: -4136 mode = [] -4137 while self._match(TokenType.VAR): -4138 mode.append(self._prev.text) +4075 def _parse_var( +4076 self, any_token: bool = False, tokens: t.Optional[t.Collection[TokenType]] = None +4077 ) -> t.Optional[exp.Expression]: +4078 if ( +4079 (any_token and self._advance_any()) +4080 or self._match(TokenType.VAR) +4081 or (self._match_set(tokens) if tokens else False) +4082 ): +4083 return self.expression(exp.Var, this=self._prev.text) +4084 return self._parse_placeholder() +4085 +4086 def _advance_any(self) -> t.Optional[Token]: +4087 if self._curr and self._curr.token_type not in self.RESERVED_KEYWORDS: +4088 self._advance() +4089 return self._prev +4090 return None +4091 +4092 def _parse_var_or_string(self) -> t.Optional[exp.Expression]: +4093 return self._parse_var() or self._parse_string() +4094 +4095 def _parse_null(self) -> t.Optional[exp.Expression]: +4096 if self._match(TokenType.NULL): +4097 return self.PRIMARY_PARSERS[TokenType.NULL](self, self._prev) +4098 return None +4099 +4100 def _parse_boolean(self) -> t.Optional[exp.Expression]: +4101 if self._match(TokenType.TRUE): +4102 return self.PRIMARY_PARSERS[TokenType.TRUE](self, self._prev) +4103 if self._match(TokenType.FALSE): +4104 return self.PRIMARY_PARSERS[TokenType.FALSE](self, self._prev) +4105 return None +4106 +4107 def _parse_star(self) -> t.Optional[exp.Expression]: +4108 if self._match(TokenType.STAR): +4109 return self.PRIMARY_PARSERS[TokenType.STAR](self, self._prev) +4110 return None +4111 +4112 def _parse_parameter(self) -> exp.Expression: +4113 wrapped = self._match(TokenType.L_BRACE) +4114 this = self._parse_var() or self._parse_identifier() or self._parse_primary() +4115 self._match(TokenType.R_BRACE) +4116 return self.expression(exp.Parameter, this=this, wrapped=wrapped) +4117 +4118 def _parse_placeholder(self) -> t.Optional[exp.Expression]: +4119 if self._match_set(self.PLACEHOLDER_PARSERS): +4120 placeholder = self.PLACEHOLDER_PARSERS[self._prev.token_type](self) +4121 if placeholder: +4122 return placeholder +4123 self._advance(-1) +4124 return None +4125 +4126 def _parse_except(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]: +4127 if not self._match(TokenType.EXCEPT): +4128 return None +4129 if self._match(TokenType.L_PAREN, advance=False): +4130 return self._parse_wrapped_csv(self._parse_column) +4131 return self._parse_csv(self._parse_column) +4132 +4133 def _parse_replace(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]: +4134 if not self._match(TokenType.REPLACE): +4135 return None +4136 if self._match(TokenType.L_PAREN, advance=False): +4137 return self._parse_wrapped_csv(self._parse_expression) +4138 return self._parse_csv(self._parse_expression) 4139 -4140 if mode: -4141 modes.append(" ".join(mode)) -4142 if not self._match(TokenType.COMMA): -4143 break -4144 -4145 return self.expression(exp.Transaction, this=this, modes=modes) -4146 -4147 def _parse_commit_or_rollback(self) -> exp.Expression: -4148 chain = None -4149 savepoint = None -4150 is_rollback = self._prev.token_type == TokenType.ROLLBACK +4140 def _parse_csv( +4141 self, parse_method: t.Callable, sep: TokenType = TokenType.COMMA +4142 ) -> t.List[t.Optional[exp.Expression]]: +4143 parse_result = parse_method() +4144 items = [parse_result] if parse_result is not None else [] +4145 +4146 while self._match(sep): +4147 self._add_comments(parse_result) +4148 parse_result = parse_method() +4149 if parse_result is not None: +4150 items.append(parse_result) 4151 -4152 self._match_texts({"TRANSACTION", "WORK"}) +4152 return items 4153 -4154 if self._match_text_seq("TO"): -4155 self._match_text_seq("SAVEPOINT") -4156 savepoint = self._parse_id_var() -4157 -4158 if self._match(TokenType.AND): -4159 chain = not self._match_text_seq("NO") -4160 self._match_text_seq("CHAIN") -4161 -4162 if is_rollback: -4163 return self.expression(exp.Rollback, savepoint=savepoint) -4164 return self.expression(exp.Commit, chain=chain) -4165 -4166 def _parse_add_column(self) -> t.Optional[exp.Expression]: -4167 if not self._match_text_seq("ADD"): -4168 return None -4169 -4170 self._match(TokenType.COLUMN) -4171 exists_column = self._parse_exists(not_=True) -4172 expression = self._parse_column_def(self._parse_field(any_token=True)) -4173 -4174 if expression: -4175 expression.set("exists", exists_column) -4176 -4177 # https://docs.databricks.com/delta/update-schema.html#explicitly-update-schema-to-add-columns -4178 if self._match_texts(("FIRST", "AFTER")): -4179 position = self._prev.text -4180 column_position = self.expression( -4181 exp.ColumnPosition, this=self._parse_column(), position=position -4182 ) -4183 expression.set("position", column_position) -4184 -4185 return expression -4186 -4187 def _parse_drop_column(self) -> t.Optional[exp.Expression]: -4188 drop = self._match(TokenType.DROP) and self._parse_drop() -4189 if drop and not isinstance(drop, exp.Command): -4190 drop.set("kind", drop.args.get("kind", "COLUMN")) -4191 return drop +4154 def _parse_tokens( +4155 self, parse_method: t.Callable, expressions: t.Dict +4156 ) -> t.Optional[exp.Expression]: +4157 this = parse_method() +4158 +4159 while self._match_set(expressions): +4160 this = self.expression( +4161 expressions[self._prev.token_type], +4162 this=this, +4163 comments=self._prev_comments, +4164 expression=parse_method(), +4165 ) +4166 +4167 return this +4168 +4169 def _parse_wrapped_id_vars(self, optional: bool = False) -> t.List[t.Optional[exp.Expression]]: +4170 return self._parse_wrapped_csv(self._parse_id_var, optional=optional) +4171 +4172 def _parse_wrapped_csv( +4173 self, parse_method: t.Callable, sep: TokenType = TokenType.COMMA, optional: bool = False +4174 ) -> t.List[t.Optional[exp.Expression]]: +4175 return self._parse_wrapped( +4176 lambda: self._parse_csv(parse_method, sep=sep), optional=optional +4177 ) +4178 +4179 def _parse_wrapped(self, parse_method: t.Callable, optional: bool = False) -> t.Any: +4180 wrapped = self._match(TokenType.L_PAREN) +4181 if not wrapped and not optional: +4182 self.raise_error("Expecting (") +4183 parse_result = parse_method() +4184 if wrapped: +4185 self._match_r_paren() +4186 return parse_result +4187 +4188 def _parse_select_or_expression(self, alias: bool = False) -> t.Optional[exp.Expression]: +4189 return self._parse_select() or self._parse_set_operations( +4190 self._parse_expression() if alias else self._parse_conjunction() +4191 ) 4192 -4193 # https://docs.aws.amazon.com/athena/latest/ug/alter-table-drop-partition.html -4194 def _parse_drop_partition(self, exists: t.Optional[bool] = None) -> exp.Expression: -4195 return self.expression( -4196 exp.DropPartition, expressions=self._parse_csv(self._parse_partition), exists=exists -4197 ) -4198 -4199 def _parse_add_constraint(self) -> t.Optional[exp.Expression]: -4200 this = None -4201 kind = self._prev.token_type +4193 def _parse_ddl_select(self) -> t.Optional[exp.Expression]: +4194 return self._parse_query_modifiers( +4195 self._parse_set_operations(self._parse_select(nested=True, parse_subquery_alias=False)) +4196 ) +4197 +4198 def _parse_transaction(self) -> exp.Expression: +4199 this = None +4200 if self._match_texts(self.TRANSACTION_KIND): +4201 this = self._prev.text 4202 -4203 if kind == TokenType.CONSTRAINT: -4204 this = self._parse_id_var() -4205 -4206 if self._match_text_seq("CHECK"): -4207 expression = self._parse_wrapped(self._parse_conjunction) -4208 enforced = self._match_text_seq("ENFORCED") -4209 -4210 return self.expression( -4211 exp.AddConstraint, this=this, expression=expression, enforced=enforced -4212 ) -4213 -4214 if kind == TokenType.FOREIGN_KEY or self._match(TokenType.FOREIGN_KEY): -4215 expression = self._parse_foreign_key() -4216 elif kind == TokenType.PRIMARY_KEY or self._match(TokenType.PRIMARY_KEY): -4217 expression = self._parse_primary_key() -4218 else: -4219 expression = None -4220 -4221 return self.expression(exp.AddConstraint, this=this, expression=expression) +4203 self._match_texts({"TRANSACTION", "WORK"}) +4204 +4205 modes = [] +4206 while True: +4207 mode = [] +4208 while self._match(TokenType.VAR): +4209 mode.append(self._prev.text) +4210 +4211 if mode: +4212 modes.append(" ".join(mode)) +4213 if not self._match(TokenType.COMMA): +4214 break +4215 +4216 return self.expression(exp.Transaction, this=this, modes=modes) +4217 +4218 def _parse_commit_or_rollback(self) -> exp.Expression: +4219 chain = None +4220 savepoint = None +4221 is_rollback = self._prev.token_type == TokenType.ROLLBACK 4222 -4223 def _parse_alter_table_add(self) -> t.List[t.Optional[exp.Expression]]: -4224 index = self._index - 1 -4225 -4226 if self._match_set(self.ADD_CONSTRAINT_TOKENS): -4227 return self._parse_csv(self._parse_add_constraint) +4223 self._match_texts({"TRANSACTION", "WORK"}) +4224 +4225 if self._match_text_seq("TO"): +4226 self._match_text_seq("SAVEPOINT") +4227 savepoint = self._parse_id_var() 4228 -4229 self._retreat(index) -4230 return self._parse_csv(self._parse_add_column) -4231 -4232 def _parse_alter_table_alter(self) -> exp.Expression: -4233 self._match(TokenType.COLUMN) -4234 column = self._parse_field(any_token=True) -4235 -4236 if self._match_pair(TokenType.DROP, TokenType.DEFAULT): -4237 return self.expression(exp.AlterColumn, this=column, drop=True) -4238 if self._match_pair(TokenType.SET, TokenType.DEFAULT): -4239 return self.expression(exp.AlterColumn, this=column, default=self._parse_conjunction()) +4229 if self._match(TokenType.AND): +4230 chain = not self._match_text_seq("NO") +4231 self._match_text_seq("CHAIN") +4232 +4233 if is_rollback: +4234 return self.expression(exp.Rollback, savepoint=savepoint) +4235 return self.expression(exp.Commit, chain=chain) +4236 +4237 def _parse_add_column(self) -> t.Optional[exp.Expression]: +4238 if not self._match_text_seq("ADD"): +4239 return None 4240 -4241 self._match_text_seq("SET", "DATA") -4242 return self.expression( -4243 exp.AlterColumn, -4244 this=column, -4245 dtype=self._match_text_seq("TYPE") and self._parse_types(), -4246 collate=self._match(TokenType.COLLATE) and self._parse_term(), -4247 using=self._match(TokenType.USING) and self._parse_conjunction(), -4248 ) -4249 -4250 def _parse_alter_table_drop(self) -> t.List[t.Optional[exp.Expression]]: -4251 index = self._index - 1 -4252 -4253 partition_exists = self._parse_exists() -4254 if self._match(TokenType.PARTITION, advance=False): -4255 return self._parse_csv(lambda: self._parse_drop_partition(exists=partition_exists)) -4256 -4257 self._retreat(index) -4258 return self._parse_csv(self._parse_drop_column) -4259 -4260 def _parse_alter_table_rename(self) -> exp.Expression: -4261 self._match_text_seq("TO") -4262 return self.expression(exp.RenameTable, this=self._parse_table(schema=True)) +4241 self._match(TokenType.COLUMN) +4242 exists_column = self._parse_exists(not_=True) +4243 expression = self._parse_column_def(self._parse_field(any_token=True)) +4244 +4245 if expression: +4246 expression.set("exists", exists_column) +4247 +4248 # https://docs.databricks.com/delta/update-schema.html#explicitly-update-schema-to-add-columns +4249 if self._match_texts(("FIRST", "AFTER")): +4250 position = self._prev.text +4251 column_position = self.expression( +4252 exp.ColumnPosition, this=self._parse_column(), position=position +4253 ) +4254 expression.set("position", column_position) +4255 +4256 return expression +4257 +4258 def _parse_drop_column(self) -> t.Optional[exp.Expression]: +4259 drop = self._match(TokenType.DROP) and self._parse_drop() +4260 if drop and not isinstance(drop, exp.Command): +4261 drop.set("kind", drop.args.get("kind", "COLUMN")) +4262 return drop 4263 -4264 def _parse_alter(self) -> t.Optional[exp.Expression]: -4265 start = self._prev -4266 -4267 if not self._match(TokenType.TABLE): -4268 return self._parse_as_command(start) +4264 # https://docs.aws.amazon.com/athena/latest/ug/alter-table-drop-partition.html +4265 def _parse_drop_partition(self, exists: t.Optional[bool] = None) -> exp.Expression: +4266 return self.expression( +4267 exp.DropPartition, expressions=self._parse_csv(self._parse_partition), exists=exists +4268 ) 4269 -4270 exists = self._parse_exists() -4271 this = self._parse_table(schema=True) -4272 -4273 if self._next: -4274 self._advance() -4275 parser = self.ALTER_PARSERS.get(self._prev.text.upper()) if self._prev else None +4270 def _parse_add_constraint(self) -> t.Optional[exp.Expression]: +4271 this = None +4272 kind = self._prev.token_type +4273 +4274 if kind == TokenType.CONSTRAINT: +4275 this = self._parse_id_var() 4276 -4277 if parser: -4278 actions = ensure_list(parser(self)) -4279 -4280 if not self._curr: +4277 if self._match_text_seq("CHECK"): +4278 expression = self._parse_wrapped(self._parse_conjunction) +4279 enforced = self._match_text_seq("ENFORCED") +4280 4281 return self.expression( -4282 exp.AlterTable, -4283 this=this, -4284 exists=exists, -4285 actions=actions, -4286 ) -4287 return self._parse_as_command(start) -4288 -4289 def _parse_merge(self) -> exp.Expression: -4290 self._match(TokenType.INTO) -4291 target = self._parse_table() -4292 -4293 self._match(TokenType.USING) -4294 using = self._parse_table() -4295 -4296 self._match(TokenType.ON) -4297 on = self._parse_conjunction() -4298 -4299 whens = [] -4300 while self._match(TokenType.WHEN): -4301 matched = not self._match(TokenType.NOT) -4302 self._match_text_seq("MATCHED") -4303 source = ( -4304 False -4305 if self._match_text_seq("BY", "TARGET") -4306 else self._match_text_seq("BY", "SOURCE") -4307 ) -4308 condition = self._parse_conjunction() if self._match(TokenType.AND) else None -4309 -4310 self._match(TokenType.THEN) +4282 exp.AddConstraint, this=this, expression=expression, enforced=enforced +4283 ) +4284 +4285 if kind == TokenType.FOREIGN_KEY or self._match(TokenType.FOREIGN_KEY): +4286 expression = self._parse_foreign_key() +4287 elif kind == TokenType.PRIMARY_KEY or self._match(TokenType.PRIMARY_KEY): +4288 expression = self._parse_primary_key() +4289 else: +4290 expression = None +4291 +4292 return self.expression(exp.AddConstraint, this=this, expression=expression) +4293 +4294 def _parse_alter_table_add(self) -> t.List[t.Optional[exp.Expression]]: +4295 index = self._index - 1 +4296 +4297 if self._match_set(self.ADD_CONSTRAINT_TOKENS): +4298 return self._parse_csv(self._parse_add_constraint) +4299 +4300 self._retreat(index) +4301 return self._parse_csv(self._parse_add_column) +4302 +4303 def _parse_alter_table_alter(self) -> exp.Expression: +4304 self._match(TokenType.COLUMN) +4305 column = self._parse_field(any_token=True) +4306 +4307 if self._match_pair(TokenType.DROP, TokenType.DEFAULT): +4308 return self.expression(exp.AlterColumn, this=column, drop=True) +4309 if self._match_pair(TokenType.SET, TokenType.DEFAULT): +4310 return self.expression(exp.AlterColumn, this=column, default=self._parse_conjunction()) 4311 -4312 if self._match(TokenType.INSERT): -4313 _this = self._parse_star() -4314 if _this: -4315 then: t.Optional[exp.Expression] = self.expression(exp.Insert, this=_this) -4316 else: -4317 then = self.expression( -4318 exp.Insert, -4319 this=self._parse_value(), -4320 expression=self._match(TokenType.VALUES) and self._parse_value(), -4321 ) -4322 elif self._match(TokenType.UPDATE): -4323 expressions = self._parse_star() -4324 if expressions: -4325 then = self.expression(exp.Update, expressions=expressions) -4326 else: -4327 then = self.expression( -4328 exp.Update, -4329 expressions=self._match(TokenType.SET) -4330 and self._parse_csv(self._parse_equality), -4331 ) -4332 elif self._match(TokenType.DELETE): -4333 then = self.expression(exp.Var, this=self._prev.text) -4334 else: -4335 then = None -4336 -4337 whens.append( -4338 self.expression( -4339 exp.When, -4340 matched=matched, -4341 source=source, -4342 condition=condition, -4343 then=then, -4344 ) -4345 ) -4346 -4347 return self.expression( -4348 exp.Merge, -4349 this=target, -4350 using=using, -4351 on=on, -4352 expressions=whens, -4353 ) -4354 -4355 def _parse_show(self) -> t.Optional[exp.Expression]: -4356 parser = self._find_parser(self.SHOW_PARSERS, self._show_trie) # type: ignore -4357 if parser: -4358 return parser(self) -4359 self._advance() -4360 return self.expression(exp.Show, this=self._prev.text.upper()) -4361 -4362 def _parse_set_item_assignment( -4363 self, kind: t.Optional[str] = None -4364 ) -> t.Optional[exp.Expression]: -4365 index = self._index +4312 self._match_text_seq("SET", "DATA") +4313 return self.expression( +4314 exp.AlterColumn, +4315 this=column, +4316 dtype=self._match_text_seq("TYPE") and self._parse_types(), +4317 collate=self._match(TokenType.COLLATE) and self._parse_term(), +4318 using=self._match(TokenType.USING) and self._parse_conjunction(), +4319 ) +4320 +4321 def _parse_alter_table_drop(self) -> t.List[t.Optional[exp.Expression]]: +4322 index = self._index - 1 +4323 +4324 partition_exists = self._parse_exists() +4325 if self._match(TokenType.PARTITION, advance=False): +4326 return self._parse_csv(lambda: self._parse_drop_partition(exists=partition_exists)) +4327 +4328 self._retreat(index) +4329 return self._parse_csv(self._parse_drop_column) +4330 +4331 def _parse_alter_table_rename(self) -> exp.Expression: +4332 self._match_text_seq("TO") +4333 return self.expression(exp.RenameTable, this=self._parse_table(schema=True)) +4334 +4335 def _parse_alter(self) -> t.Optional[exp.Expression]: +4336 start = self._prev +4337 +4338 if not self._match(TokenType.TABLE): +4339 return self._parse_as_command(start) +4340 +4341 exists = self._parse_exists() +4342 this = self._parse_table(schema=True) +4343 +4344 if self._next: +4345 self._advance() +4346 parser = self.ALTER_PARSERS.get(self._prev.text.upper()) if self._prev else None +4347 +4348 if parser: +4349 actions = ensure_list(parser(self)) +4350 +4351 if not self._curr: +4352 return self.expression( +4353 exp.AlterTable, +4354 this=this, +4355 exists=exists, +4356 actions=actions, +4357 ) +4358 return self._parse_as_command(start) +4359 +4360 def _parse_merge(self) -> exp.Expression: +4361 self._match(TokenType.INTO) +4362 target = self._parse_table() +4363 +4364 self._match(TokenType.USING) +4365 using = self._parse_table() 4366 -4367 if kind in {"GLOBAL", "SESSION"} and self._match_text_seq("TRANSACTION"): -4368 return self._parse_set_transaction(global_=kind == "GLOBAL") +4367 self._match(TokenType.ON) +4368 on = self._parse_conjunction() 4369 -4370 left = self._parse_primary() or self._parse_id_var() -4371 -4372 if not self._match_texts(("=", "TO")): -4373 self._retreat(index) -4374 return None -4375 -4376 right = self._parse_statement() or self._parse_id_var() -4377 this = self.expression( -4378 exp.EQ, -4379 this=left, -4380 expression=right, -4381 ) +4370 whens = [] +4371 while self._match(TokenType.WHEN): +4372 matched = not self._match(TokenType.NOT) +4373 self._match_text_seq("MATCHED") +4374 source = ( +4375 False +4376 if self._match_text_seq("BY", "TARGET") +4377 else self._match_text_seq("BY", "SOURCE") +4378 ) +4379 condition = self._parse_conjunction() if self._match(TokenType.AND) else None +4380 +4381 self._match(TokenType.THEN) 4382 -4383 return self.expression( -4384 exp.SetItem, -4385 this=this, -4386 kind=kind, -4387 ) -4388 -4389 def _parse_set_transaction(self, global_: bool = False) -> exp.Expression: -4390 self._match_text_seq("TRANSACTION") -4391 characteristics = self._parse_csv( -4392 lambda: self._parse_var_from_options(self.TRANSACTION_CHARACTERISTICS) -4393 ) -4394 return self.expression( -4395 exp.SetItem, -4396 expressions=characteristics, -4397 kind="TRANSACTION", -4398 **{"global": global_}, # type: ignore -4399 ) -4400 -4401 def _parse_set_item(self) -> t.Optional[exp.Expression]: -4402 parser = self._find_parser(self.SET_PARSERS, self._set_trie) # type: ignore -4403 return parser(self) if parser else self._parse_set_item_assignment(kind=None) -4404 -4405 def _parse_set(self) -> exp.Expression: -4406 index = self._index -4407 set_ = self.expression(exp.Set, expressions=self._parse_csv(self._parse_set_item)) -4408 -4409 if self._curr: -4410 self._retreat(index) -4411 return self._parse_as_command(self._prev) -4412 -4413 return set_ -4414 -4415 def _parse_var_from_options(self, options: t.Collection[str]) -> t.Optional[exp.Expression]: -4416 for option in options: -4417 if self._match_text_seq(*option.split(" ")): -4418 return exp.Var(this=option) -4419 return None -4420 -4421 def _parse_as_command(self, start: Token) -> exp.Command: -4422 while self._curr: -4423 self._advance() -4424 text = self._find_sql(start, self._prev) -4425 size = len(start.text) -4426 return exp.Command(this=text[:size], expression=text[size:]) -4427 -4428 def _find_parser( -4429 self, parsers: t.Dict[str, t.Callable], trie: t.Dict -4430 ) -> t.Optional[t.Callable]: -4431 if not self._curr: -4432 return None -4433 -4434 index = self._index -4435 this = [] -4436 while True: -4437 # The current token might be multiple words -4438 curr = self._curr.text.upper() -4439 key = curr.split(" ") -4440 this.append(curr) -4441 self._advance() -4442 result, trie = in_trie(trie, key) -4443 if result == 0: -4444 break -4445 if result == 2: -4446 subparser = parsers[" ".join(this)] -4447 return subparser -4448 self._retreat(index) -4449 return None -4450 -4451 def _match(self, token_type, advance=True, expression=None): -4452 if not self._curr: -4453 return None -4454 -4455 if self._curr.token_type == token_type: -4456 if advance: -4457 self._advance() -4458 self._add_comments(expression) -4459 return True -4460 -4461 return None -4462 -4463 def _match_set(self, types, advance=True): -4464 if not self._curr: -4465 return None -4466 -4467 if self._curr.token_type in types: -4468 if advance: -4469 self._advance() -4470 return True +4383 if self._match(TokenType.INSERT): +4384 _this = self._parse_star() +4385 if _this: +4386 then: t.Optional[exp.Expression] = self.expression(exp.Insert, this=_this) +4387 else: +4388 then = self.expression( +4389 exp.Insert, +4390 this=self._parse_value(), +4391 expression=self._match(TokenType.VALUES) and self._parse_value(), +4392 ) +4393 elif self._match(TokenType.UPDATE): +4394 expressions = self._parse_star() +4395 if expressions: +4396 then = self.expression(exp.Update, expressions=expressions) +4397 else: +4398 then = self.expression( +4399 exp.Update, +4400 expressions=self._match(TokenType.SET) +4401 and self._parse_csv(self._parse_equality), +4402 ) +4403 elif self._match(TokenType.DELETE): +4404 then = self.expression(exp.Var, this=self._prev.text) +4405 else: +4406 then = None +4407 +4408 whens.append( +4409 self.expression( +4410 exp.When, +4411 matched=matched, +4412 source=source, +4413 condition=condition, +4414 then=then, +4415 ) +4416 ) +4417 +4418 return self.expression( +4419 exp.Merge, +4420 this=target, +4421 using=using, +4422 on=on, +4423 expressions=whens, +4424 ) +4425 +4426 def _parse_show(self) -> t.Optional[exp.Expression]: +4427 parser = self._find_parser(self.SHOW_PARSERS, self._show_trie) # type: ignore +4428 if parser: +4429 return parser(self) +4430 self._advance() +4431 return self.expression(exp.Show, this=self._prev.text.upper()) +4432 +4433 def _parse_set_item_assignment( +4434 self, kind: t.Optional[str] = None +4435 ) -> t.Optional[exp.Expression]: +4436 index = self._index +4437 +4438 if kind in {"GLOBAL", "SESSION"} and self._match_text_seq("TRANSACTION"): +4439 return self._parse_set_transaction(global_=kind == "GLOBAL") +4440 +4441 left = self._parse_primary() or self._parse_id_var() +4442 +4443 if not self._match_texts(("=", "TO")): +4444 self._retreat(index) +4445 return None +4446 +4447 right = self._parse_statement() or self._parse_id_var() +4448 this = self.expression( +4449 exp.EQ, +4450 this=left, +4451 expression=right, +4452 ) +4453 +4454 return self.expression( +4455 exp.SetItem, +4456 this=this, +4457 kind=kind, +4458 ) +4459 +4460 def _parse_set_transaction(self, global_: bool = False) -> exp.Expression: +4461 self._match_text_seq("TRANSACTION") +4462 characteristics = self._parse_csv( +4463 lambda: self._parse_var_from_options(self.TRANSACTION_CHARACTERISTICS) +4464 ) +4465 return self.expression( +4466 exp.SetItem, +4467 expressions=characteristics, +4468 kind="TRANSACTION", +4469 **{"global": global_}, # type: ignore +4470 ) 4471 -4472 return None -4473 -4474 def _match_pair(self, token_type_a, token_type_b, advance=True): -4475 if not self._curr or not self._next: -4476 return None -4477 -4478 if self._curr.token_type == token_type_a and self._next.token_type == token_type_b: -4479 if advance: -4480 self._advance(2) -4481 return True -4482 -4483 return None -4484 -4485 def _match_l_paren(self, expression: t.Optional[exp.Expression] = None) -> None: -4486 if not self._match(TokenType.L_PAREN, expression=expression): -4487 self.raise_error("Expecting (") -4488 -4489 def _match_r_paren(self, expression: t.Optional[exp.Expression] = None) -> None: -4490 if not self._match(TokenType.R_PAREN, expression=expression): -4491 self.raise_error("Expecting )") -4492 -4493 def _match_texts(self, texts, advance=True): -4494 if self._curr and self._curr.text.upper() in texts: -4495 if advance: -4496 self._advance() -4497 return True -4498 return False -4499 -4500 def _match_text_seq(self, *texts, advance=True): -4501 index = self._index -4502 for text in texts: -4503 if self._curr and self._curr.text.upper() == text: -4504 self._advance() -4505 else: -4506 self._retreat(index) -4507 return False -4508 -4509 if not advance: -4510 self._retreat(index) -4511 -4512 return True -4513 -4514 def _replace_columns_with_dots( -4515 self, this: t.Optional[exp.Expression] -4516 ) -> t.Optional[exp.Expression]: -4517 if isinstance(this, exp.Dot): -4518 exp.replace_children(this, self._replace_columns_with_dots) -4519 elif isinstance(this, exp.Column): -4520 exp.replace_children(this, self._replace_columns_with_dots) -4521 table = this.args.get("table") -4522 this = ( -4523 self.expression(exp.Dot, this=table, expression=this.this) -4524 if table -4525 else self.expression(exp.Var, this=this.name) -4526 ) -4527 elif isinstance(this, exp.Identifier): -4528 this = self.expression(exp.Var, this=this.name) -4529 -4530 return this -4531 -4532 def _replace_lambda( -4533 self, node: t.Optional[exp.Expression], lambda_variables: t.Set[str] -4534 ) -> t.Optional[exp.Expression]: -4535 if not node: -4536 return node -4537 -4538 for column in node.find_all(exp.Column): -4539 if column.parts[0].name in lambda_variables: -4540 dot_or_id = column.to_dot() if column.table else column.this -4541 parent = column.parent +4472 def _parse_set_item(self) -> t.Optional[exp.Expression]: +4473 parser = self._find_parser(self.SET_PARSERS, self._set_trie) # type: ignore +4474 return parser(self) if parser else self._parse_set_item_assignment(kind=None) +4475 +4476 def _parse_set(self) -> exp.Expression: +4477 index = self._index +4478 set_ = self.expression(exp.Set, expressions=self._parse_csv(self._parse_set_item)) +4479 +4480 if self._curr: +4481 self._retreat(index) +4482 return self._parse_as_command(self._prev) +4483 +4484 return set_ +4485 +4486 def _parse_var_from_options(self, options: t.Collection[str]) -> t.Optional[exp.Expression]: +4487 for option in options: +4488 if self._match_text_seq(*option.split(" ")): +4489 return exp.Var(this=option) +4490 return None +4491 +4492 def _parse_as_command(self, start: Token) -> exp.Command: +4493 while self._curr: +4494 self._advance() +4495 text = self._find_sql(start, self._prev) +4496 size = len(start.text) +4497 return exp.Command(this=text[:size], expression=text[size:]) +4498 +4499 def _parse_dict_property(self, this: str) -> exp.DictProperty: +4500 settings = [] +4501 +4502 self._match_l_paren() +4503 kind = self._parse_id_var() +4504 +4505 if self._match(TokenType.L_PAREN): +4506 while True: +4507 key = self._parse_id_var() +4508 value = self._parse_primary() +4509 +4510 if not key and value is None: +4511 break +4512 settings.append(self.expression(exp.DictSubProperty, this=key, value=value)) +4513 self._match(TokenType.R_PAREN) +4514 +4515 self._match_r_paren() +4516 +4517 return self.expression( +4518 exp.DictProperty, +4519 this=this, +4520 kind=kind.this if kind else None, +4521 settings=settings, +4522 ) +4523 +4524 def _parse_dict_range(self, this: str) -> exp.DictRange: +4525 self._match_l_paren() +4526 has_min = self._match_text_seq("MIN") +4527 if has_min: +4528 min = self._parse_var() or self._parse_primary() +4529 self._match_text_seq("MAX") +4530 max = self._parse_var() or self._parse_primary() +4531 else: +4532 max = self._parse_var() or self._parse_primary() +4533 min = exp.Literal.number(0) +4534 self._match_r_paren() +4535 return self.expression(exp.DictRange, this=this, min=min, max=max) +4536 +4537 def _find_parser( +4538 self, parsers: t.Dict[str, t.Callable], trie: t.Dict +4539 ) -> t.Optional[t.Callable]: +4540 if not self._curr: +4541 return None 4542 -4543 while isinstance(parent, exp.Dot): -4544 if not isinstance(parent.parent, exp.Dot): -4545 parent.replace(dot_or_id) -4546 break -4547 parent = parent.parent -4548 else: -4549 if column is node: -4550 node = dot_or_id -4551 else: -4552 column.replace(dot_or_id) -4553 return node +4543 index = self._index +4544 this = [] +4545 while True: +4546 # The current token might be multiple words +4547 curr = self._curr.text.upper() +4548 key = curr.split(" ") +4549 this.append(curr) +4550 self._advance() +4551 result, trie = in_trie(trie, key) +4552 if result == 0: +4553 break +4554 if result == 2: +4555 subparser = parsers[" ".join(this)] +4556 return subparser +4557 self._retreat(index) +4558 return None +4559 +4560 def _match(self, token_type, advance=True, expression=None): +4561 if not self._curr: +4562 return None +4563 +4564 if self._curr.token_type == token_type: +4565 if advance: +4566 self._advance() +4567 self._add_comments(expression) +4568 return True +4569 +4570 return None +4571 +4572 def _match_set(self, types, advance=True): +4573 if not self._curr: +4574 return None +4575 +4576 if self._curr.token_type in types: +4577 if advance: +4578 self._advance() +4579 return True +4580 +4581 return None +4582 +4583 def _match_pair(self, token_type_a, token_type_b, advance=True): +4584 if not self._curr or not self._next: +4585 return None +4586 +4587 if self._curr.token_type == token_type_a and self._next.token_type == token_type_b: +4588 if advance: +4589 self._advance(2) +4590 return True +4591 +4592 return None +4593 +4594 def _match_l_paren(self, expression: t.Optional[exp.Expression] = None) -> None: +4595 if not self._match(TokenType.L_PAREN, expression=expression): +4596 self.raise_error("Expecting (") +4597 +4598 def _match_r_paren(self, expression: t.Optional[exp.Expression] = None) -> None: +4599 if not self._match(TokenType.R_PAREN, expression=expression): +4600 self.raise_error("Expecting )") +4601 +4602 def _match_texts(self, texts, advance=True): +4603 if self._curr and self._curr.text.upper() in texts: +4604 if advance: +4605 self._advance() +4606 return True +4607 return False +4608 +4609 def _match_text_seq(self, *texts, advance=True): +4610 index = self._index +4611 for text in texts: +4612 if self._curr and self._curr.text.upper() == text: +4613 self._advance() +4614 else: +4615 self._retreat(index) +4616 return False +4617 +4618 if not advance: +4619 self._retreat(index) +4620 +4621 return True +4622 +4623 @t.overload +4624 def _replace_columns_with_dots(self, this: exp.Expression) -> exp.Expression: +4625 ... +4626 +4627 @t.overload +4628 def _replace_columns_with_dots( +4629 self, this: t.Optional[exp.Expression] +4630 ) -> t.Optional[exp.Expression]: +4631 ... +4632 +4633 def _replace_columns_with_dots(self, this): +4634 if isinstance(this, exp.Dot): +4635 exp.replace_children(this, self._replace_columns_with_dots) +4636 elif isinstance(this, exp.Column): +4637 exp.replace_children(this, self._replace_columns_with_dots) +4638 table = this.args.get("table") +4639 this = ( +4640 self.expression(exp.Dot, this=table, expression=this.this) +4641 if table +4642 else self.expression(exp.Var, this=this.name) +4643 ) +4644 elif isinstance(this, exp.Identifier): +4645 this = self.expression(exp.Var, this=this.name) +4646 +4647 return this +4648 +4649 def _replace_lambda( +4650 self, node: t.Optional[exp.Expression], lambda_variables: t.Set[str] +4651 ) -> t.Optional[exp.Expression]: +4652 if not node: +4653 return node +4654 +4655 for column in node.find_all(exp.Column): +4656 if column.parts[0].name in lambda_variables: +4657 dot_or_id = column.to_dot() if column.table else column.this +4658 parent = column.parent +4659 +4660 while isinstance(parent, exp.Dot): +4661 if not isinstance(parent.parent, exp.Dot): +4662 parent.replace(dot_or_id) +4663 break +4664 parent = parent.parent +4665 else: +4666 if column is node: +4667 node = dot_or_id +4668 else: +4669 column.replace(dot_or_id) +4670 return node
                  @@ -4654,13 +4771,13 @@
                  def - parse_var_map(args: List) -> sqlglot.expressions.Expression: + parse_var_map(args: List) -> sqlglot.expressions.StarMap | sqlglot.expressions.VarMap:
                  -
                  20def parse_var_map(args: t.List) -> exp.Expression:
                  +            
                  20def parse_var_map(args: t.List) -> exp.StarMap | exp.VarMap:
                   21    if len(args) == 1 and args[0].is_star:
                   22        return exp.StarMap(this=args[0])
                   23
                  @@ -4740,7 +4857,7 @@
                     61
                     62    Args:
                     63        error_level: the desired error level.
                  -  64            Default: ErrorLevel.RAISE
                  +  64            Default: ErrorLevel.IMMEDIATE
                     65        error_message_context: determines the amount of context to capture from a
                     66            query string when displaying the error message (in number of characters).
                     67            Default: 50.
                  @@ -4835,1010 +4952,1010 @@
                    156        TokenType.DATETIME,
                    157        TokenType.DATETIME64,
                    158        TokenType.DATE,
                  - 159        TokenType.DECIMAL,
                  - 160        TokenType.BIGDECIMAL,
                  - 161        TokenType.UUID,
                  - 162        TokenType.GEOGRAPHY,
                  - 163        TokenType.GEOMETRY,
                  - 164        TokenType.HLLSKETCH,
                  - 165        TokenType.HSTORE,
                  - 166        TokenType.PSEUDO_TYPE,
                  - 167        TokenType.SUPER,
                  - 168        TokenType.SERIAL,
                  - 169        TokenType.SMALLSERIAL,
                  - 170        TokenType.BIGSERIAL,
                  - 171        TokenType.XML,
                  - 172        TokenType.UNIQUEIDENTIFIER,
                  - 173        TokenType.MONEY,
                  - 174        TokenType.SMALLMONEY,
                  - 175        TokenType.ROWVERSION,
                  - 176        TokenType.IMAGE,
                  - 177        TokenType.VARIANT,
                  - 178        TokenType.OBJECT,
                  - 179        TokenType.INET,
                  - 180        *NESTED_TYPE_TOKENS,
                  - 181    }
                  - 182
                  - 183    SUBQUERY_PREDICATES = {
                  - 184        TokenType.ANY: exp.Any,
                  - 185        TokenType.ALL: exp.All,
                  - 186        TokenType.EXISTS: exp.Exists,
                  - 187        TokenType.SOME: exp.Any,
                  - 188    }
                  - 189
                  - 190    RESERVED_KEYWORDS = {*Tokenizer.SINGLE_TOKENS.values(), TokenType.SELECT}
                  - 191
                  - 192    DB_CREATABLES = {
                  - 193        TokenType.DATABASE,
                  - 194        TokenType.SCHEMA,
                  - 195        TokenType.TABLE,
                  - 196        TokenType.VIEW,
                  - 197    }
                  - 198
                  - 199    CREATABLES = {
                  - 200        TokenType.COLUMN,
                  - 201        TokenType.FUNCTION,
                  - 202        TokenType.INDEX,
                  - 203        TokenType.PROCEDURE,
                  - 204        *DB_CREATABLES,
                  - 205    }
                  - 206
                  - 207    ID_VAR_TOKENS = {
                  - 208        TokenType.VAR,
                  - 209        TokenType.ANTI,
                  - 210        TokenType.APPLY,
                  - 211        TokenType.ASC,
                  - 212        TokenType.AUTO_INCREMENT,
                  - 213        TokenType.BEGIN,
                  - 214        TokenType.CACHE,
                  - 215        TokenType.COLLATE,
                  - 216        TokenType.COMMAND,
                  - 217        TokenType.COMMENT,
                  - 218        TokenType.COMMIT,
                  - 219        TokenType.CONSTRAINT,
                  - 220        TokenType.DEFAULT,
                  - 221        TokenType.DELETE,
                  - 222        TokenType.DESC,
                  - 223        TokenType.DESCRIBE,
                  - 224        TokenType.DIV,
                  - 225        TokenType.END,
                  - 226        TokenType.EXECUTE,
                  - 227        TokenType.ESCAPE,
                  - 228        TokenType.FALSE,
                  - 229        TokenType.FIRST,
                  - 230        TokenType.FILTER,
                  - 231        TokenType.FORMAT,
                  - 232        TokenType.FULL,
                  - 233        TokenType.IF,
                  - 234        TokenType.IS,
                  - 235        TokenType.ISNULL,
                  - 236        TokenType.INTERVAL,
                  - 237        TokenType.KEEP,
                  - 238        TokenType.LEFT,
                  - 239        TokenType.LOAD,
                  - 240        TokenType.MERGE,
                  - 241        TokenType.NATURAL,
                  - 242        TokenType.NEXT,
                  - 243        TokenType.OFFSET,
                  - 244        TokenType.ORDINALITY,
                  - 245        TokenType.OVERWRITE,
                  - 246        TokenType.PARTITION,
                  - 247        TokenType.PERCENT,
                  - 248        TokenType.PIVOT,
                  - 249        TokenType.PRAGMA,
                  - 250        TokenType.RANGE,
                  - 251        TokenType.REFERENCES,
                  - 252        TokenType.RIGHT,
                  - 253        TokenType.ROW,
                  - 254        TokenType.ROWS,
                  - 255        TokenType.SEMI,
                  - 256        TokenType.SET,
                  - 257        TokenType.SETTINGS,
                  - 258        TokenType.SHOW,
                  - 259        TokenType.TEMPORARY,
                  - 260        TokenType.TOP,
                  - 261        TokenType.TRUE,
                  - 262        TokenType.UNIQUE,
                  - 263        TokenType.UNPIVOT,
                  - 264        TokenType.VOLATILE,
                  - 265        TokenType.WINDOW,
                  - 266        *CREATABLES,
                  - 267        *SUBQUERY_PREDICATES,
                  - 268        *TYPE_TOKENS,
                  - 269        *NO_PAREN_FUNCTIONS,
                  - 270    }
                  - 271
                  - 272    INTERVAL_VARS = ID_VAR_TOKENS - {TokenType.END}
                  - 273
                  - 274    TABLE_ALIAS_TOKENS = ID_VAR_TOKENS - {
                  - 275        TokenType.APPLY,
                  - 276        TokenType.FULL,
                  - 277        TokenType.LEFT,
                  - 278        TokenType.LOCK,
                  - 279        TokenType.NATURAL,
                  - 280        TokenType.OFFSET,
                  - 281        TokenType.RIGHT,
                  - 282        TokenType.WINDOW,
                  - 283    }
                  - 284
                  - 285    COMMENT_TABLE_ALIAS_TOKENS = TABLE_ALIAS_TOKENS - {TokenType.IS}
                  - 286
                  - 287    UPDATE_ALIAS_TOKENS = TABLE_ALIAS_TOKENS - {TokenType.SET}
                  - 288
                  - 289    TRIM_TYPES = {"LEADING", "TRAILING", "BOTH"}
                  - 290
                  - 291    FUNC_TOKENS = {
                  - 292        TokenType.COMMAND,
                  - 293        TokenType.CURRENT_DATE,
                  - 294        TokenType.CURRENT_DATETIME,
                  - 295        TokenType.CURRENT_TIMESTAMP,
                  - 296        TokenType.CURRENT_TIME,
                  - 297        TokenType.CURRENT_USER,
                  - 298        TokenType.FILTER,
                  - 299        TokenType.FIRST,
                  - 300        TokenType.FORMAT,
                  - 301        TokenType.GLOB,
                  - 302        TokenType.IDENTIFIER,
                  - 303        TokenType.INDEX,
                  - 304        TokenType.ISNULL,
                  - 305        TokenType.ILIKE,
                  - 306        TokenType.LIKE,
                  - 307        TokenType.MERGE,
                  - 308        TokenType.OFFSET,
                  - 309        TokenType.PRIMARY_KEY,
                  - 310        TokenType.RANGE,
                  - 311        TokenType.REPLACE,
                  - 312        TokenType.ROW,
                  - 313        TokenType.UNNEST,
                  - 314        TokenType.VAR,
                  - 315        TokenType.LEFT,
                  - 316        TokenType.RIGHT,
                  - 317        TokenType.DATE,
                  - 318        TokenType.DATETIME,
                  - 319        TokenType.TABLE,
                  - 320        TokenType.TIMESTAMP,
                  - 321        TokenType.TIMESTAMPTZ,
                  - 322        TokenType.WINDOW,
                  - 323        *TYPE_TOKENS,
                  - 324        *SUBQUERY_PREDICATES,
                  - 325    }
                  - 326
                  - 327    CONJUNCTION = {
                  - 328        TokenType.AND: exp.And,
                  - 329        TokenType.OR: exp.Or,
                  - 330    }
                  - 331
                  - 332    EQUALITY = {
                  - 333        TokenType.EQ: exp.EQ,
                  - 334        TokenType.NEQ: exp.NEQ,
                  - 335        TokenType.NULLSAFE_EQ: exp.NullSafeEQ,
                  - 336    }
                  - 337
                  - 338    COMPARISON = {
                  - 339        TokenType.GT: exp.GT,
                  - 340        TokenType.GTE: exp.GTE,
                  - 341        TokenType.LT: exp.LT,
                  - 342        TokenType.LTE: exp.LTE,
                  - 343    }
                  - 344
                  - 345    BITWISE = {
                  - 346        TokenType.AMP: exp.BitwiseAnd,
                  - 347        TokenType.CARET: exp.BitwiseXor,
                  - 348        TokenType.PIPE: exp.BitwiseOr,
                  - 349        TokenType.DPIPE: exp.DPipe,
                  - 350    }
                  - 351
                  - 352    TERM = {
                  - 353        TokenType.DASH: exp.Sub,
                  - 354        TokenType.PLUS: exp.Add,
                  - 355        TokenType.MOD: exp.Mod,
                  - 356        TokenType.COLLATE: exp.Collate,
                  - 357    }
                  - 358
                  - 359    FACTOR = {
                  - 360        TokenType.DIV: exp.IntDiv,
                  - 361        TokenType.LR_ARROW: exp.Distance,
                  - 362        TokenType.SLASH: exp.Div,
                  - 363        TokenType.STAR: exp.Mul,
                  - 364    }
                  - 365
                  - 366    TIMESTAMPS = {
                  - 367        TokenType.TIME,
                  - 368        TokenType.TIMESTAMP,
                  - 369        TokenType.TIMESTAMPTZ,
                  - 370        TokenType.TIMESTAMPLTZ,
                  - 371    }
                  - 372
                  - 373    SET_OPERATIONS = {
                  - 374        TokenType.UNION,
                  - 375        TokenType.INTERSECT,
                  - 376        TokenType.EXCEPT,
                  - 377    }
                  - 378
                  - 379    JOIN_SIDES = {
                  - 380        TokenType.LEFT,
                  - 381        TokenType.RIGHT,
                  - 382        TokenType.FULL,
                  - 383    }
                  - 384
                  - 385    JOIN_KINDS = {
                  - 386        TokenType.INNER,
                  - 387        TokenType.OUTER,
                  - 388        TokenType.CROSS,
                  - 389        TokenType.SEMI,
                  - 390        TokenType.ANTI,
                  - 391    }
                  - 392
                  - 393    LAMBDAS = {
                  - 394        TokenType.ARROW: lambda self, expressions: self.expression(
                  - 395            exp.Lambda,
                  - 396            this=self._replace_lambda(
                  - 397                self._parse_conjunction(),
                  - 398                {node.name for node in expressions},
                  - 399            ),
                  - 400            expressions=expressions,
                  - 401        ),
                  - 402        TokenType.FARROW: lambda self, expressions: self.expression(
                  - 403            exp.Kwarg,
                  - 404            this=exp.Var(this=expressions[0].name),
                  - 405            expression=self._parse_conjunction(),
                  - 406        ),
                  - 407    }
                  - 408
                  - 409    COLUMN_OPERATORS = {
                  - 410        TokenType.DOT: None,
                  - 411        TokenType.DCOLON: lambda self, this, to: self.expression(
                  - 412            exp.Cast if self.STRICT_CAST else exp.TryCast,
                  - 413            this=this,
                  - 414            to=to,
                  - 415        ),
                  - 416        TokenType.ARROW: lambda self, this, path: self.expression(
                  - 417            exp.JSONExtract,
                  - 418            this=this,
                  - 419            expression=path,
                  - 420        ),
                  - 421        TokenType.DARROW: lambda self, this, path: self.expression(
                  - 422            exp.JSONExtractScalar,
                  - 423            this=this,
                  - 424            expression=path,
                  - 425        ),
                  - 426        TokenType.HASH_ARROW: lambda self, this, path: self.expression(
                  - 427            exp.JSONBExtract,
                  - 428            this=this,
                  - 429            expression=path,
                  - 430        ),
                  - 431        TokenType.DHASH_ARROW: lambda self, this, path: self.expression(
                  - 432            exp.JSONBExtractScalar,
                  + 159        TokenType.INT4RANGE,
                  + 160        TokenType.INT4MULTIRANGE,
                  + 161        TokenType.INT8RANGE,
                  + 162        TokenType.INT8MULTIRANGE,
                  + 163        TokenType.NUMRANGE,
                  + 164        TokenType.NUMMULTIRANGE,
                  + 165        TokenType.TSRANGE,
                  + 166        TokenType.TSMULTIRANGE,
                  + 167        TokenType.TSTZRANGE,
                  + 168        TokenType.TSTZMULTIRANGE,
                  + 169        TokenType.DATERANGE,
                  + 170        TokenType.DATEMULTIRANGE,
                  + 171        TokenType.DECIMAL,
                  + 172        TokenType.BIGDECIMAL,
                  + 173        TokenType.UUID,
                  + 174        TokenType.GEOGRAPHY,
                  + 175        TokenType.GEOMETRY,
                  + 176        TokenType.HLLSKETCH,
                  + 177        TokenType.HSTORE,
                  + 178        TokenType.PSEUDO_TYPE,
                  + 179        TokenType.SUPER,
                  + 180        TokenType.SERIAL,
                  + 181        TokenType.SMALLSERIAL,
                  + 182        TokenType.BIGSERIAL,
                  + 183        TokenType.XML,
                  + 184        TokenType.UNIQUEIDENTIFIER,
                  + 185        TokenType.MONEY,
                  + 186        TokenType.SMALLMONEY,
                  + 187        TokenType.ROWVERSION,
                  + 188        TokenType.IMAGE,
                  + 189        TokenType.VARIANT,
                  + 190        TokenType.OBJECT,
                  + 191        TokenType.INET,
                  + 192        *NESTED_TYPE_TOKENS,
                  + 193    }
                  + 194
                  + 195    SUBQUERY_PREDICATES = {
                  + 196        TokenType.ANY: exp.Any,
                  + 197        TokenType.ALL: exp.All,
                  + 198        TokenType.EXISTS: exp.Exists,
                  + 199        TokenType.SOME: exp.Any,
                  + 200    }
                  + 201
                  + 202    RESERVED_KEYWORDS = {*Tokenizer.SINGLE_TOKENS.values(), TokenType.SELECT}
                  + 203
                  + 204    DB_CREATABLES = {
                  + 205        TokenType.DATABASE,
                  + 206        TokenType.SCHEMA,
                  + 207        TokenType.TABLE,
                  + 208        TokenType.VIEW,
                  + 209        TokenType.DICTIONARY,
                  + 210    }
                  + 211
                  + 212    CREATABLES = {
                  + 213        TokenType.COLUMN,
                  + 214        TokenType.FUNCTION,
                  + 215        TokenType.INDEX,
                  + 216        TokenType.PROCEDURE,
                  + 217        *DB_CREATABLES,
                  + 218    }
                  + 219
                  + 220    ID_VAR_TOKENS = {
                  + 221        TokenType.VAR,
                  + 222        TokenType.ANTI,
                  + 223        TokenType.APPLY,
                  + 224        TokenType.ASC,
                  + 225        TokenType.AUTO_INCREMENT,
                  + 226        TokenType.BEGIN,
                  + 227        TokenType.CACHE,
                  + 228        TokenType.COLLATE,
                  + 229        TokenType.COMMAND,
                  + 230        TokenType.COMMENT,
                  + 231        TokenType.COMMIT,
                  + 232        TokenType.CONSTRAINT,
                  + 233        TokenType.DEFAULT,
                  + 234        TokenType.DELETE,
                  + 235        TokenType.DESC,
                  + 236        TokenType.DESCRIBE,
                  + 237        TokenType.DICTIONARY,
                  + 238        TokenType.DIV,
                  + 239        TokenType.END,
                  + 240        TokenType.EXECUTE,
                  + 241        TokenType.ESCAPE,
                  + 242        TokenType.FALSE,
                  + 243        TokenType.FIRST,
                  + 244        TokenType.FILTER,
                  + 245        TokenType.FORMAT,
                  + 246        TokenType.FULL,
                  + 247        TokenType.IF,
                  + 248        TokenType.IS,
                  + 249        TokenType.ISNULL,
                  + 250        TokenType.INTERVAL,
                  + 251        TokenType.KEEP,
                  + 252        TokenType.LEFT,
                  + 253        TokenType.LOAD,
                  + 254        TokenType.MERGE,
                  + 255        TokenType.NATURAL,
                  + 256        TokenType.NEXT,
                  + 257        TokenType.OFFSET,
                  + 258        TokenType.ORDINALITY,
                  + 259        TokenType.OVERWRITE,
                  + 260        TokenType.PARTITION,
                  + 261        TokenType.PERCENT,
                  + 262        TokenType.PIVOT,
                  + 263        TokenType.PRAGMA,
                  + 264        TokenType.RANGE,
                  + 265        TokenType.REFERENCES,
                  + 266        TokenType.RIGHT,
                  + 267        TokenType.ROW,
                  + 268        TokenType.ROWS,
                  + 269        TokenType.SEMI,
                  + 270        TokenType.SET,
                  + 271        TokenType.SETTINGS,
                  + 272        TokenType.SHOW,
                  + 273        TokenType.TEMPORARY,
                  + 274        TokenType.TOP,
                  + 275        TokenType.TRUE,
                  + 276        TokenType.UNIQUE,
                  + 277        TokenType.UNPIVOT,
                  + 278        TokenType.VOLATILE,
                  + 279        TokenType.WINDOW,
                  + 280        *CREATABLES,
                  + 281        *SUBQUERY_PREDICATES,
                  + 282        *TYPE_TOKENS,
                  + 283        *NO_PAREN_FUNCTIONS,
                  + 284    }
                  + 285
                  + 286    INTERVAL_VARS = ID_VAR_TOKENS - {TokenType.END}
                  + 287
                  + 288    TABLE_ALIAS_TOKENS = ID_VAR_TOKENS - {
                  + 289        TokenType.APPLY,
                  + 290        TokenType.ASOF,
                  + 291        TokenType.FULL,
                  + 292        TokenType.LEFT,
                  + 293        TokenType.LOCK,
                  + 294        TokenType.NATURAL,
                  + 295        TokenType.OFFSET,
                  + 296        TokenType.RIGHT,
                  + 297        TokenType.WINDOW,
                  + 298    }
                  + 299
                  + 300    COMMENT_TABLE_ALIAS_TOKENS = TABLE_ALIAS_TOKENS - {TokenType.IS}
                  + 301
                  + 302    UPDATE_ALIAS_TOKENS = TABLE_ALIAS_TOKENS - {TokenType.SET}
                  + 303
                  + 304    TRIM_TYPES = {"LEADING", "TRAILING", "BOTH"}
                  + 305
                  + 306    FUNC_TOKENS = {
                  + 307        TokenType.COMMAND,
                  + 308        TokenType.CURRENT_DATE,
                  + 309        TokenType.CURRENT_DATETIME,
                  + 310        TokenType.CURRENT_TIMESTAMP,
                  + 311        TokenType.CURRENT_TIME,
                  + 312        TokenType.CURRENT_USER,
                  + 313        TokenType.FILTER,
                  + 314        TokenType.FIRST,
                  + 315        TokenType.FORMAT,
                  + 316        TokenType.GLOB,
                  + 317        TokenType.IDENTIFIER,
                  + 318        TokenType.INDEX,
                  + 319        TokenType.ISNULL,
                  + 320        TokenType.ILIKE,
                  + 321        TokenType.LIKE,
                  + 322        TokenType.MERGE,
                  + 323        TokenType.OFFSET,
                  + 324        TokenType.PRIMARY_KEY,
                  + 325        TokenType.RANGE,
                  + 326        TokenType.REPLACE,
                  + 327        TokenType.ROW,
                  + 328        TokenType.UNNEST,
                  + 329        TokenType.VAR,
                  + 330        TokenType.LEFT,
                  + 331        TokenType.RIGHT,
                  + 332        TokenType.DATE,
                  + 333        TokenType.DATETIME,
                  + 334        TokenType.TABLE,
                  + 335        TokenType.TIMESTAMP,
                  + 336        TokenType.TIMESTAMPTZ,
                  + 337        TokenType.WINDOW,
                  + 338        *TYPE_TOKENS,
                  + 339        *SUBQUERY_PREDICATES,
                  + 340    }
                  + 341
                  + 342    CONJUNCTION = {
                  + 343        TokenType.AND: exp.And,
                  + 344        TokenType.OR: exp.Or,
                  + 345    }
                  + 346
                  + 347    EQUALITY = {
                  + 348        TokenType.EQ: exp.EQ,
                  + 349        TokenType.NEQ: exp.NEQ,
                  + 350        TokenType.NULLSAFE_EQ: exp.NullSafeEQ,
                  + 351    }
                  + 352
                  + 353    COMPARISON = {
                  + 354        TokenType.GT: exp.GT,
                  + 355        TokenType.GTE: exp.GTE,
                  + 356        TokenType.LT: exp.LT,
                  + 357        TokenType.LTE: exp.LTE,
                  + 358    }
                  + 359
                  + 360    BITWISE = {
                  + 361        TokenType.AMP: exp.BitwiseAnd,
                  + 362        TokenType.CARET: exp.BitwiseXor,
                  + 363        TokenType.PIPE: exp.BitwiseOr,
                  + 364        TokenType.DPIPE: exp.DPipe,
                  + 365    }
                  + 366
                  + 367    TERM = {
                  + 368        TokenType.DASH: exp.Sub,
                  + 369        TokenType.PLUS: exp.Add,
                  + 370        TokenType.MOD: exp.Mod,
                  + 371        TokenType.COLLATE: exp.Collate,
                  + 372    }
                  + 373
                  + 374    FACTOR = {
                  + 375        TokenType.DIV: exp.IntDiv,
                  + 376        TokenType.LR_ARROW: exp.Distance,
                  + 377        TokenType.SLASH: exp.Div,
                  + 378        TokenType.STAR: exp.Mul,
                  + 379    }
                  + 380
                  + 381    TIMESTAMPS = {
                  + 382        TokenType.TIME,
                  + 383        TokenType.TIMESTAMP,
                  + 384        TokenType.TIMESTAMPTZ,
                  + 385        TokenType.TIMESTAMPLTZ,
                  + 386    }
                  + 387
                  + 388    SET_OPERATIONS = {
                  + 389        TokenType.UNION,
                  + 390        TokenType.INTERSECT,
                  + 391        TokenType.EXCEPT,
                  + 392    }
                  + 393
                  + 394    JOIN_METHODS = {
                  + 395        TokenType.NATURAL,
                  + 396        TokenType.ASOF,
                  + 397    }
                  + 398
                  + 399    JOIN_SIDES = {
                  + 400        TokenType.LEFT,
                  + 401        TokenType.RIGHT,
                  + 402        TokenType.FULL,
                  + 403    }
                  + 404
                  + 405    JOIN_KINDS = {
                  + 406        TokenType.INNER,
                  + 407        TokenType.OUTER,
                  + 408        TokenType.CROSS,
                  + 409        TokenType.SEMI,
                  + 410        TokenType.ANTI,
                  + 411    }
                  + 412
                  + 413    LAMBDAS = {
                  + 414        TokenType.ARROW: lambda self, expressions: self.expression(
                  + 415            exp.Lambda,
                  + 416            this=self._replace_lambda(
                  + 417                self._parse_conjunction(),
                  + 418                {node.name for node in expressions},
                  + 419            ),
                  + 420            expressions=expressions,
                  + 421        ),
                  + 422        TokenType.FARROW: lambda self, expressions: self.expression(
                  + 423            exp.Kwarg,
                  + 424            this=exp.Var(this=expressions[0].name),
                  + 425            expression=self._parse_conjunction(),
                  + 426        ),
                  + 427    }
                  + 428
                  + 429    COLUMN_OPERATORS = {
                  + 430        TokenType.DOT: None,
                  + 431        TokenType.DCOLON: lambda self, this, to: self.expression(
                  + 432            exp.Cast if self.STRICT_CAST else exp.TryCast,
                    433            this=this,
                  - 434            expression=path,
                  + 434            to=to,
                    435        ),
                  - 436        TokenType.PLACEHOLDER: lambda self, this, key: self.expression(
                  - 437            exp.JSONBContains,
                  + 436        TokenType.ARROW: lambda self, this, path: self.expression(
                  + 437            exp.JSONExtract,
                    438            this=this,
                  - 439            expression=key,
                  + 439            expression=path,
                    440        ),
                  - 441    }
                  - 442
                  - 443    EXPRESSION_PARSERS = {
                  - 444        exp.Column: lambda self: self._parse_column(),
                  - 445        exp.DataType: lambda self: self._parse_types(),
                  - 446        exp.From: lambda self: self._parse_from(),
                  - 447        exp.Group: lambda self: self._parse_group(),
                  - 448        exp.Identifier: lambda self: self._parse_id_var(),
                  - 449        exp.Lateral: lambda self: self._parse_lateral(),
                  - 450        exp.Join: lambda self: self._parse_join(),
                  - 451        exp.Order: lambda self: self._parse_order(),
                  - 452        exp.Cluster: lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"),
                  - 453        exp.Sort: lambda self: self._parse_sort(exp.Sort, "SORT", "BY"),
                  - 454        exp.Lambda: lambda self: self._parse_lambda(),
                  - 455        exp.Limit: lambda self: self._parse_limit(),
                  - 456        exp.Offset: lambda self: self._parse_offset(),
                  - 457        exp.TableAlias: lambda self: self._parse_table_alias(),
                  - 458        exp.Table: lambda self: self._parse_table_parts(),
                  - 459        exp.Condition: lambda self: self._parse_conjunction(),
                  - 460        exp.Expression: lambda self: self._parse_statement(),
                  - 461        exp.Properties: lambda self: self._parse_properties(),
                  - 462        exp.Where: lambda self: self._parse_where(),
                  - 463        exp.Ordered: lambda self: self._parse_ordered(),
                  - 464        exp.Having: lambda self: self._parse_having(),
                  - 465        exp.With: lambda self: self._parse_with(),
                  - 466        exp.Window: lambda self: self._parse_named_window(),
                  - 467        exp.Qualify: lambda self: self._parse_qualify(),
                  - 468        exp.Returning: lambda self: self._parse_returning(),
                  - 469        "JOIN_TYPE": lambda self: self._parse_join_side_and_kind(),
                  - 470    }
                  - 471
                  - 472    STATEMENT_PARSERS = {
                  - 473        TokenType.ALTER: lambda self: self._parse_alter(),
                  - 474        TokenType.BEGIN: lambda self: self._parse_transaction(),
                  - 475        TokenType.CACHE: lambda self: self._parse_cache(),
                  - 476        TokenType.COMMIT: lambda self: self._parse_commit_or_rollback(),
                  - 477        TokenType.COMMENT: lambda self: self._parse_comment(),
                  - 478        TokenType.CREATE: lambda self: self._parse_create(),
                  - 479        TokenType.DELETE: lambda self: self._parse_delete(),
                  - 480        TokenType.DESC: lambda self: self._parse_describe(),
                  - 481        TokenType.DESCRIBE: lambda self: self._parse_describe(),
                  - 482        TokenType.DROP: lambda self: self._parse_drop(),
                  - 483        TokenType.END: lambda self: self._parse_commit_or_rollback(),
                  - 484        TokenType.INSERT: lambda self: self._parse_insert(),
                  - 485        TokenType.LOAD: lambda self: self._parse_load(),
                  - 486        TokenType.MERGE: lambda self: self._parse_merge(),
                  - 487        TokenType.PRAGMA: lambda self: self.expression(exp.Pragma, this=self._parse_expression()),
                  - 488        TokenType.ROLLBACK: lambda self: self._parse_commit_or_rollback(),
                  - 489        TokenType.SET: lambda self: self._parse_set(),
                  - 490        TokenType.UNCACHE: lambda self: self._parse_uncache(),
                  - 491        TokenType.UPDATE: lambda self: self._parse_update(),
                  - 492        TokenType.USE: lambda self: self.expression(
                  - 493            exp.Use,
                  - 494            kind=self._match_texts(("ROLE", "WAREHOUSE", "DATABASE", "SCHEMA"))
                  - 495            and exp.Var(this=self._prev.text),
                  - 496            this=self._parse_table(schema=False),
                  - 497        ),
                  - 498    }
                  - 499
                  - 500    UNARY_PARSERS = {
                  - 501        TokenType.PLUS: lambda self: self._parse_unary(),  # Unary + is handled as a no-op
                  - 502        TokenType.NOT: lambda self: self.expression(exp.Not, this=self._parse_equality()),
                  - 503        TokenType.TILDA: lambda self: self.expression(exp.BitwiseNot, this=self._parse_unary()),
                  - 504        TokenType.DASH: lambda self: self.expression(exp.Neg, this=self._parse_unary()),
                  - 505    }
                  - 506
                  - 507    PRIMARY_PARSERS = {
                  - 508        TokenType.STRING: lambda self, token: self.expression(
                  - 509            exp.Literal, this=token.text, is_string=True
                  - 510        ),
                  - 511        TokenType.NUMBER: lambda self, token: self.expression(
                  - 512            exp.Literal, this=token.text, is_string=False
                  - 513        ),
                  - 514        TokenType.STAR: lambda self, _: self.expression(
                  - 515            exp.Star,
                  - 516            **{"except": self._parse_except(), "replace": self._parse_replace()},
                  - 517        ),
                  - 518        TokenType.NULL: lambda self, _: self.expression(exp.Null),
                  - 519        TokenType.TRUE: lambda self, _: self.expression(exp.Boolean, this=True),
                  - 520        TokenType.FALSE: lambda self, _: self.expression(exp.Boolean, this=False),
                  - 521        TokenType.BIT_STRING: lambda self, token: self.expression(exp.BitString, this=token.text),
                  - 522        TokenType.HEX_STRING: lambda self, token: self.expression(exp.HexString, this=token.text),
                  - 523        TokenType.BYTE_STRING: lambda self, token: self.expression(exp.ByteString, this=token.text),
                  - 524        TokenType.INTRODUCER: lambda self, token: self._parse_introducer(token),
                  - 525        TokenType.NATIONAL_STRING: lambda self, token: self.expression(
                  - 526            exp.National, this=token.text
                  - 527        ),
                  - 528        TokenType.RAW_STRING: lambda self, token: self.expression(exp.RawString, this=token.text),
                  - 529        TokenType.SESSION_PARAMETER: lambda self, _: self._parse_session_parameter(),
                  - 530    }
                  - 531
                  - 532    PLACEHOLDER_PARSERS = {
                  - 533        TokenType.PLACEHOLDER: lambda self: self.expression(exp.Placeholder),
                  - 534        TokenType.PARAMETER: lambda self: self._parse_parameter(),
                  - 535        TokenType.COLON: lambda self: self.expression(exp.Placeholder, this=self._prev.text)
                  - 536        if self._match_set((TokenType.NUMBER, TokenType.VAR))
                  - 537        else None,
                  - 538    }
                  - 539
                  - 540    RANGE_PARSERS = {
                  - 541        TokenType.BETWEEN: lambda self, this: self._parse_between(this),
                  - 542        TokenType.GLOB: binary_range_parser(exp.Glob),
                  - 543        TokenType.ILIKE: binary_range_parser(exp.ILike),
                  - 544        TokenType.IN: lambda self, this: self._parse_in(this),
                  - 545        TokenType.IRLIKE: binary_range_parser(exp.RegexpILike),
                  - 546        TokenType.IS: lambda self, this: self._parse_is(this),
                  - 547        TokenType.LIKE: binary_range_parser(exp.Like),
                  - 548        TokenType.OVERLAPS: binary_range_parser(exp.Overlaps),
                  - 549        TokenType.RLIKE: binary_range_parser(exp.RegexpLike),
                  - 550        TokenType.SIMILAR_TO: binary_range_parser(exp.SimilarTo),
                  - 551    }
                  - 552
                  - 553    PROPERTY_PARSERS: t.Dict[str, t.Callable] = {
                  - 554        "ALGORITHM": lambda self: self._parse_property_assignment(exp.AlgorithmProperty),
                  - 555        "AUTO_INCREMENT": lambda self: self._parse_property_assignment(exp.AutoIncrementProperty),
                  - 556        "BLOCKCOMPRESSION": lambda self: self._parse_blockcompression(),
                  - 557        "CHARACTER SET": lambda self: self._parse_character_set(),
                  - 558        "CHECKSUM": lambda self: self._parse_checksum(),
                  - 559        "CLUSTER": lambda self: self._parse_cluster(),
                  - 560        "COLLATE": lambda self: self._parse_property_assignment(exp.CollateProperty),
                  - 561        "COMMENT": lambda self: self._parse_property_assignment(exp.SchemaCommentProperty),
                  - 562        "DATABLOCKSIZE": lambda self, **kwargs: self._parse_datablocksize(**kwargs),
                  - 563        "DEFINER": lambda self: self._parse_definer(),
                  - 564        "DETERMINISTIC": lambda self: self.expression(
                  - 565            exp.StabilityProperty, this=exp.Literal.string("IMMUTABLE")
                  - 566        ),
                  - 567        "DISTKEY": lambda self: self._parse_distkey(),
                  - 568        "DISTSTYLE": lambda self: self._parse_property_assignment(exp.DistStyleProperty),
                  - 569        "ENGINE": lambda self: self._parse_property_assignment(exp.EngineProperty),
                  - 570        "EXECUTE": lambda self: self._parse_property_assignment(exp.ExecuteAsProperty),
                  - 571        "EXTERNAL": lambda self: self.expression(exp.ExternalProperty),
                  - 572        "FALLBACK": lambda self, **kwargs: self._parse_fallback(**kwargs),
                  - 573        "FORMAT": lambda self: self._parse_property_assignment(exp.FileFormatProperty),
                  - 574        "FREESPACE": lambda self: self._parse_freespace(),
                  - 575        "IMMUTABLE": lambda self: self.expression(
                  - 576            exp.StabilityProperty, this=exp.Literal.string("IMMUTABLE")
                  - 577        ),
                  - 578        "JOURNAL": lambda self, **kwargs: self._parse_journal(**kwargs),
                  - 579        "LANGUAGE": lambda self: self._parse_property_assignment(exp.LanguageProperty),
                  - 580        "LIKE": lambda self: self._parse_create_like(),
                  - 581        "LOCATION": lambda self: self._parse_property_assignment(exp.LocationProperty),
                  - 582        "LOCK": lambda self: self._parse_locking(),
                  - 583        "LOCKING": lambda self: self._parse_locking(),
                  - 584        "LOG": lambda self, **kwargs: self._parse_log(**kwargs),
                  - 585        "MATERIALIZED": lambda self: self.expression(exp.MaterializedProperty),
                  - 586        "MERGEBLOCKRATIO": lambda self, **kwargs: self._parse_mergeblockratio(**kwargs),
                  - 587        "MULTISET": lambda self: self.expression(exp.SetProperty, multi=True),
                  - 588        "NO": lambda self: self._parse_no_property(),
                  - 589        "ON": lambda self: self._parse_on_property(),
                  - 590        "ORDER BY": lambda self: self._parse_order(skip_order_token=True),
                  - 591        "PARTITION BY": lambda self: self._parse_partitioned_by(),
                  - 592        "PARTITIONED BY": lambda self: self._parse_partitioned_by(),
                  - 593        "PARTITIONED_BY": lambda self: self._parse_partitioned_by(),
                  - 594        "PRIMARY KEY": lambda self: self._parse_primary_key(),
                  - 595        "RETURNS": lambda self: self._parse_returns(),
                  - 596        "ROW": lambda self: self._parse_row(),
                  - 597        "ROW_FORMAT": lambda self: self._parse_property_assignment(exp.RowFormatProperty),
                  - 598        "SET": lambda self: self.expression(exp.SetProperty, multi=False),
                  - 599        "SETTINGS": lambda self: self.expression(
                  - 600            exp.SettingsProperty, expressions=self._parse_csv(self._parse_set_item)
                  + 441        TokenType.DARROW: lambda self, this, path: self.expression(
                  + 442            exp.JSONExtractScalar,
                  + 443            this=this,
                  + 444            expression=path,
                  + 445        ),
                  + 446        TokenType.HASH_ARROW: lambda self, this, path: self.expression(
                  + 447            exp.JSONBExtract,
                  + 448            this=this,
                  + 449            expression=path,
                  + 450        ),
                  + 451        TokenType.DHASH_ARROW: lambda self, this, path: self.expression(
                  + 452            exp.JSONBExtractScalar,
                  + 453            this=this,
                  + 454            expression=path,
                  + 455        ),
                  + 456        TokenType.PLACEHOLDER: lambda self, this, key: self.expression(
                  + 457            exp.JSONBContains,
                  + 458            this=this,
                  + 459            expression=key,
                  + 460        ),
                  + 461    }
                  + 462
                  + 463    EXPRESSION_PARSERS = {
                  + 464        exp.Cluster: lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"),
                  + 465        exp.Column: lambda self: self._parse_column(),
                  + 466        exp.Condition: lambda self: self._parse_conjunction(),
                  + 467        exp.DataType: lambda self: self._parse_types(),
                  + 468        exp.Expression: lambda self: self._parse_statement(),
                  + 469        exp.From: lambda self: self._parse_from(),
                  + 470        exp.Group: lambda self: self._parse_group(),
                  + 471        exp.Having: lambda self: self._parse_having(),
                  + 472        exp.Identifier: lambda self: self._parse_id_var(),
                  + 473        exp.Join: lambda self: self._parse_join(),
                  + 474        exp.Lambda: lambda self: self._parse_lambda(),
                  + 475        exp.Lateral: lambda self: self._parse_lateral(),
                  + 476        exp.Limit: lambda self: self._parse_limit(),
                  + 477        exp.Offset: lambda self: self._parse_offset(),
                  + 478        exp.Order: lambda self: self._parse_order(),
                  + 479        exp.Ordered: lambda self: self._parse_ordered(),
                  + 480        exp.Properties: lambda self: self._parse_properties(),
                  + 481        exp.Qualify: lambda self: self._parse_qualify(),
                  + 482        exp.Returning: lambda self: self._parse_returning(),
                  + 483        exp.Sort: lambda self: self._parse_sort(exp.Sort, "SORT", "BY"),
                  + 484        exp.Table: lambda self: self._parse_table_parts(),
                  + 485        exp.TableAlias: lambda self: self._parse_table_alias(),
                  + 486        exp.Where: lambda self: self._parse_where(),
                  + 487        exp.Window: lambda self: self._parse_named_window(),
                  + 488        exp.With: lambda self: self._parse_with(),
                  + 489        "JOIN_TYPE": lambda self: self._parse_join_parts(),
                  + 490    }
                  + 491
                  + 492    STATEMENT_PARSERS = {
                  + 493        TokenType.ALTER: lambda self: self._parse_alter(),
                  + 494        TokenType.BEGIN: lambda self: self._parse_transaction(),
                  + 495        TokenType.CACHE: lambda self: self._parse_cache(),
                  + 496        TokenType.COMMIT: lambda self: self._parse_commit_or_rollback(),
                  + 497        TokenType.COMMENT: lambda self: self._parse_comment(),
                  + 498        TokenType.CREATE: lambda self: self._parse_create(),
                  + 499        TokenType.DELETE: lambda self: self._parse_delete(),
                  + 500        TokenType.DESC: lambda self: self._parse_describe(),
                  + 501        TokenType.DESCRIBE: lambda self: self._parse_describe(),
                  + 502        TokenType.DROP: lambda self: self._parse_drop(),
                  + 503        TokenType.END: lambda self: self._parse_commit_or_rollback(),
                  + 504        TokenType.FROM: lambda self: exp.select("*").from_(
                  + 505            t.cast(exp.From, self._parse_from(skip_from_token=True))
                  + 506        ),
                  + 507        TokenType.INSERT: lambda self: self._parse_insert(),
                  + 508        TokenType.LOAD: lambda self: self._parse_load(),
                  + 509        TokenType.MERGE: lambda self: self._parse_merge(),
                  + 510        TokenType.PIVOT: lambda self: self._parse_simplified_pivot(),
                  + 511        TokenType.PRAGMA: lambda self: self.expression(exp.Pragma, this=self._parse_expression()),
                  + 512        TokenType.ROLLBACK: lambda self: self._parse_commit_or_rollback(),
                  + 513        TokenType.SET: lambda self: self._parse_set(),
                  + 514        TokenType.UNCACHE: lambda self: self._parse_uncache(),
                  + 515        TokenType.UPDATE: lambda self: self._parse_update(),
                  + 516        TokenType.USE: lambda self: self.expression(
                  + 517            exp.Use,
                  + 518            kind=self._match_texts(("ROLE", "WAREHOUSE", "DATABASE", "SCHEMA"))
                  + 519            and exp.Var(this=self._prev.text),
                  + 520            this=self._parse_table(schema=False),
                  + 521        ),
                  + 522    }
                  + 523
                  + 524    UNARY_PARSERS = {
                  + 525        TokenType.PLUS: lambda self: self._parse_unary(),  # Unary + is handled as a no-op
                  + 526        TokenType.NOT: lambda self: self.expression(exp.Not, this=self._parse_equality()),
                  + 527        TokenType.TILDA: lambda self: self.expression(exp.BitwiseNot, this=self._parse_unary()),
                  + 528        TokenType.DASH: lambda self: self.expression(exp.Neg, this=self._parse_unary()),
                  + 529    }
                  + 530
                  + 531    PRIMARY_PARSERS = {
                  + 532        TokenType.STRING: lambda self, token: self.expression(
                  + 533            exp.Literal, this=token.text, is_string=True
                  + 534        ),
                  + 535        TokenType.NUMBER: lambda self, token: self.expression(
                  + 536            exp.Literal, this=token.text, is_string=False
                  + 537        ),
                  + 538        TokenType.STAR: lambda self, _: self.expression(
                  + 539            exp.Star,
                  + 540            **{"except": self._parse_except(), "replace": self._parse_replace()},
                  + 541        ),
                  + 542        TokenType.NULL: lambda self, _: self.expression(exp.Null),
                  + 543        TokenType.TRUE: lambda self, _: self.expression(exp.Boolean, this=True),
                  + 544        TokenType.FALSE: lambda self, _: self.expression(exp.Boolean, this=False),
                  + 545        TokenType.BIT_STRING: lambda self, token: self.expression(exp.BitString, this=token.text),
                  + 546        TokenType.HEX_STRING: lambda self, token: self.expression(exp.HexString, this=token.text),
                  + 547        TokenType.BYTE_STRING: lambda self, token: self.expression(exp.ByteString, this=token.text),
                  + 548        TokenType.INTRODUCER: lambda self, token: self._parse_introducer(token),
                  + 549        TokenType.NATIONAL_STRING: lambda self, token: self.expression(
                  + 550            exp.National, this=token.text
                  + 551        ),
                  + 552        TokenType.RAW_STRING: lambda self, token: self.expression(exp.RawString, this=token.text),
                  + 553        TokenType.SESSION_PARAMETER: lambda self, _: self._parse_session_parameter(),
                  + 554    }
                  + 555
                  + 556    PLACEHOLDER_PARSERS = {
                  + 557        TokenType.PLACEHOLDER: lambda self: self.expression(exp.Placeholder),
                  + 558        TokenType.PARAMETER: lambda self: self._parse_parameter(),
                  + 559        TokenType.COLON: lambda self: self.expression(exp.Placeholder, this=self._prev.text)
                  + 560        if self._match_set((TokenType.NUMBER, TokenType.VAR))
                  + 561        else None,
                  + 562    }
                  + 563
                  + 564    RANGE_PARSERS = {
                  + 565        TokenType.BETWEEN: lambda self, this: self._parse_between(this),
                  + 566        TokenType.GLOB: binary_range_parser(exp.Glob),
                  + 567        TokenType.ILIKE: binary_range_parser(exp.ILike),
                  + 568        TokenType.IN: lambda self, this: self._parse_in(this),
                  + 569        TokenType.IRLIKE: binary_range_parser(exp.RegexpILike),
                  + 570        TokenType.IS: lambda self, this: self._parse_is(this),
                  + 571        TokenType.LIKE: binary_range_parser(exp.Like),
                  + 572        TokenType.OVERLAPS: binary_range_parser(exp.Overlaps),
                  + 573        TokenType.RLIKE: binary_range_parser(exp.RegexpLike),
                  + 574        TokenType.SIMILAR_TO: binary_range_parser(exp.SimilarTo),
                  + 575    }
                  + 576
                  + 577    PROPERTY_PARSERS: t.Dict[str, t.Callable] = {
                  + 578        "ALGORITHM": lambda self: self._parse_property_assignment(exp.AlgorithmProperty),
                  + 579        "AUTO_INCREMENT": lambda self: self._parse_property_assignment(exp.AutoIncrementProperty),
                  + 580        "BLOCKCOMPRESSION": lambda self: self._parse_blockcompression(),
                  + 581        "CHARACTER SET": lambda self: self._parse_character_set(),
                  + 582        "CHECKSUM": lambda self: self._parse_checksum(),
                  + 583        "CLUSTER": lambda self: self._parse_cluster(),
                  + 584        "COLLATE": lambda self: self._parse_property_assignment(exp.CollateProperty),
                  + 585        "COMMENT": lambda self: self._parse_property_assignment(exp.SchemaCommentProperty),
                  + 586        "DATABLOCKSIZE": lambda self, **kwargs: self._parse_datablocksize(**kwargs),
                  + 587        "DEFINER": lambda self: self._parse_definer(),
                  + 588        "DETERMINISTIC": lambda self: self.expression(
                  + 589            exp.StabilityProperty, this=exp.Literal.string("IMMUTABLE")
                  + 590        ),
                  + 591        "DISTKEY": lambda self: self._parse_distkey(),
                  + 592        "DISTSTYLE": lambda self: self._parse_property_assignment(exp.DistStyleProperty),
                  + 593        "ENGINE": lambda self: self._parse_property_assignment(exp.EngineProperty),
                  + 594        "EXECUTE": lambda self: self._parse_property_assignment(exp.ExecuteAsProperty),
                  + 595        "EXTERNAL": lambda self: self.expression(exp.ExternalProperty),
                  + 596        "FALLBACK": lambda self, **kwargs: self._parse_fallback(**kwargs),
                  + 597        "FORMAT": lambda self: self._parse_property_assignment(exp.FileFormatProperty),
                  + 598        "FREESPACE": lambda self: self._parse_freespace(),
                  + 599        "IMMUTABLE": lambda self: self.expression(
                  + 600            exp.StabilityProperty, this=exp.Literal.string("IMMUTABLE")
                    601        ),
                  - 602        "SORTKEY": lambda self: self._parse_sortkey(),
                  - 603        "STABLE": lambda self: self.expression(
                  - 604            exp.StabilityProperty, this=exp.Literal.string("STABLE")
                  - 605        ),
                  - 606        "STORED": lambda self: self._parse_stored(),
                  - 607        "TBLPROPERTIES": lambda self: self._parse_wrapped_csv(self._parse_property),
                  - 608        "TEMP": lambda self: self.expression(exp.TemporaryProperty),
                  - 609        "TEMPORARY": lambda self: self.expression(exp.TemporaryProperty),
                  - 610        "TRANSIENT": lambda self: self.expression(exp.TransientProperty),
                  - 611        "TTL": lambda self: self._parse_ttl(),
                  - 612        "USING": lambda self: self._parse_property_assignment(exp.FileFormatProperty),
                  - 613        "VOLATILE": lambda self: self._parse_volatile_property(),
                  - 614        "WITH": lambda self: self._parse_with_property(),
                  - 615    }
                  - 616
                  - 617    CONSTRAINT_PARSERS = {
                  - 618        "AUTOINCREMENT": lambda self: self._parse_auto_increment(),
                  - 619        "AUTO_INCREMENT": lambda self: self._parse_auto_increment(),
                  - 620        "CASESPECIFIC": lambda self: self.expression(exp.CaseSpecificColumnConstraint, not_=False),
                  - 621        "CHARACTER SET": lambda self: self.expression(
                  - 622            exp.CharacterSetColumnConstraint, this=self._parse_var_or_string()
                  - 623        ),
                  - 624        "CHECK": lambda self: self.expression(
                  - 625            exp.CheckColumnConstraint, this=self._parse_wrapped(self._parse_conjunction)
                  - 626        ),
                  - 627        "COLLATE": lambda self: self.expression(
                  - 628            exp.CollateColumnConstraint, this=self._parse_var()
                  - 629        ),
                  - 630        "COMMENT": lambda self: self.expression(
                  - 631            exp.CommentColumnConstraint, this=self._parse_string()
                  - 632        ),
                  - 633        "COMPRESS": lambda self: self._parse_compress(),
                  - 634        "DEFAULT": lambda self: self.expression(
                  - 635            exp.DefaultColumnConstraint, this=self._parse_bitwise()
                  - 636        ),
                  - 637        "ENCODE": lambda self: self.expression(exp.EncodeColumnConstraint, this=self._parse_var()),
                  - 638        "FOREIGN KEY": lambda self: self._parse_foreign_key(),
                  - 639        "FORMAT": lambda self: self.expression(
                  - 640            exp.DateFormatColumnConstraint, this=self._parse_var_or_string()
                  - 641        ),
                  - 642        "GENERATED": lambda self: self._parse_generated_as_identity(),
                  - 643        "IDENTITY": lambda self: self._parse_auto_increment(),
                  - 644        "INLINE": lambda self: self._parse_inline(),
                  - 645        "LIKE": lambda self: self._parse_create_like(),
                  - 646        "NOT": lambda self: self._parse_not_constraint(),
                  - 647        "NULL": lambda self: self.expression(exp.NotNullColumnConstraint, allow_null=True),
                  - 648        "ON": lambda self: self._match(TokenType.UPDATE)
                  - 649        and self.expression(exp.OnUpdateColumnConstraint, this=self._parse_function()),
                  - 650        "PATH": lambda self: self.expression(exp.PathColumnConstraint, this=self._parse_string()),
                  - 651        "PRIMARY KEY": lambda self: self._parse_primary_key(),
                  - 652        "REFERENCES": lambda self: self._parse_references(match=False),
                  - 653        "TITLE": lambda self: self.expression(
                  - 654            exp.TitleColumnConstraint, this=self._parse_var_or_string()
                  - 655        ),
                  - 656        "TTL": lambda self: self.expression(exp.MergeTreeTTL, expressions=[self._parse_bitwise()]),
                  - 657        "UNIQUE": lambda self: self._parse_unique(),
                  - 658        "UPPERCASE": lambda self: self.expression(exp.UppercaseColumnConstraint),
                  - 659    }
                  - 660
                  - 661    ALTER_PARSERS = {
                  - 662        "ADD": lambda self: self._parse_alter_table_add(),
                  - 663        "ALTER": lambda self: self._parse_alter_table_alter(),
                  - 664        "DELETE": lambda self: self.expression(exp.Delete, where=self._parse_where()),
                  - 665        "DROP": lambda self: self._parse_alter_table_drop(),
                  - 666        "RENAME": lambda self: self._parse_alter_table_rename(),
                  - 667    }
                  - 668
                  - 669    SCHEMA_UNNAMED_CONSTRAINTS = {"CHECK", "FOREIGN KEY", "LIKE", "PRIMARY KEY", "UNIQUE"}
                  - 670
                  - 671    NO_PAREN_FUNCTION_PARSERS = {
                  - 672        TokenType.ANY: lambda self: self.expression(exp.Any, this=self._parse_bitwise()),
                  - 673        TokenType.CASE: lambda self: self._parse_case(),
                  - 674        TokenType.IF: lambda self: self._parse_if(),
                  - 675        TokenType.NEXT_VALUE_FOR: lambda self: self.expression(
                  - 676            exp.NextValueFor,
                  - 677            this=self._parse_column(),
                  - 678            order=self._match(TokenType.OVER) and self._parse_wrapped(self._parse_order),
                  - 679        ),
                  - 680    }
                  - 681
                  - 682    FUNCTIONS_WITH_ALIASED_ARGS = {"STRUCT"}
                  - 683
                  - 684    FUNCTION_PARSERS: t.Dict[str, t.Callable] = {
                  - 685        "CAST": lambda self: self._parse_cast(self.STRICT_CAST),
                  - 686        "CONVERT": lambda self: self._parse_convert(self.STRICT_CAST),
                  - 687        "DECODE": lambda self: self._parse_decode(),
                  - 688        "EXTRACT": lambda self: self._parse_extract(),
                  - 689        "JSON_OBJECT": lambda self: self._parse_json_object(),
                  - 690        "LOG": lambda self: self._parse_logarithm(),
                  - 691        "MATCH": lambda self: self._parse_match_against(),
                  - 692        "OPENJSON": lambda self: self._parse_open_json(),
                  - 693        "POSITION": lambda self: self._parse_position(),
                  - 694        "SAFE_CAST": lambda self: self._parse_cast(False),
                  - 695        "STRING_AGG": lambda self: self._parse_string_agg(),
                  - 696        "SUBSTRING": lambda self: self._parse_substring(),
                  - 697        "TRIM": lambda self: self._parse_trim(),
                  - 698        "TRY_CAST": lambda self: self._parse_cast(False),
                  - 699        "TRY_CONVERT": lambda self: self._parse_convert(False),
                  - 700    }
                  - 701
                  - 702    QUERY_MODIFIER_PARSERS = {
                  - 703        "joins": lambda self: list(iter(self._parse_join, None)),
                  - 704        "laterals": lambda self: list(iter(self._parse_lateral, None)),
                  - 705        "match": lambda self: self._parse_match_recognize(),
                  - 706        "where": lambda self: self._parse_where(),
                  - 707        "group": lambda self: self._parse_group(),
                  - 708        "having": lambda self: self._parse_having(),
                  - 709        "qualify": lambda self: self._parse_qualify(),
                  - 710        "windows": lambda self: self._parse_window_clause(),
                  - 711        "order": lambda self: self._parse_order(),
                  - 712        "limit": lambda self: self._parse_limit(),
                  - 713        "offset": lambda self: self._parse_offset(),
                  - 714        "locks": lambda self: self._parse_locks(),
                  - 715        "sample": lambda self: self._parse_table_sample(as_modifier=True),
                  - 716    }
                  - 717
                  - 718    SET_PARSERS = {
                  - 719        "GLOBAL": lambda self: self._parse_set_item_assignment("GLOBAL"),
                  - 720        "LOCAL": lambda self: self._parse_set_item_assignment("LOCAL"),
                  - 721        "SESSION": lambda self: self._parse_set_item_assignment("SESSION"),
                  - 722        "TRANSACTION": lambda self: self._parse_set_transaction(),
                  - 723    }
                  - 724
                  - 725    SHOW_PARSERS: t.Dict[str, t.Callable] = {}
                  - 726
                  - 727    TYPE_LITERAL_PARSERS: t.Dict[exp.DataType.Type, t.Callable] = {}
                  - 728
                  - 729    MODIFIABLES = (exp.Subquery, exp.Subqueryable, exp.Table)
                  - 730
                  - 731    TRANSACTION_KIND = {"DEFERRED", "IMMEDIATE", "EXCLUSIVE"}
                  - 732
                  - 733    TRANSACTION_CHARACTERISTICS = {
                  - 734        "ISOLATION LEVEL REPEATABLE READ",
                  - 735        "ISOLATION LEVEL READ COMMITTED",
                  - 736        "ISOLATION LEVEL READ UNCOMMITTED",
                  - 737        "ISOLATION LEVEL SERIALIZABLE",
                  - 738        "READ WRITE",
                  - 739        "READ ONLY",
                  - 740    }
                  - 741
                  - 742    INSERT_ALTERNATIVES = {"ABORT", "FAIL", "IGNORE", "REPLACE", "ROLLBACK"}
                  - 743
                  - 744    CLONE_KINDS = {"TIMESTAMP", "OFFSET", "STATEMENT"}
                  + 602        "JOURNAL": lambda self, **kwargs: self._parse_journal(**kwargs),
                  + 603        "LANGUAGE": lambda self: self._parse_property_assignment(exp.LanguageProperty),
                  + 604        "LAYOUT": lambda self: self._parse_dict_property(this="LAYOUT"),
                  + 605        "LIFETIME": lambda self: self._parse_dict_range(this="LIFETIME"),
                  + 606        "LIKE": lambda self: self._parse_create_like(),
                  + 607        "LOCATION": lambda self: self._parse_property_assignment(exp.LocationProperty),
                  + 608        "LOCK": lambda self: self._parse_locking(),
                  + 609        "LOCKING": lambda self: self._parse_locking(),
                  + 610        "LOG": lambda self, **kwargs: self._parse_log(**kwargs),
                  + 611        "MATERIALIZED": lambda self: self.expression(exp.MaterializedProperty),
                  + 612        "MERGEBLOCKRATIO": lambda self, **kwargs: self._parse_mergeblockratio(**kwargs),
                  + 613        "MULTISET": lambda self: self.expression(exp.SetProperty, multi=True),
                  + 614        "NO": lambda self: self._parse_no_property(),
                  + 615        "ON": lambda self: self._parse_on_property(),
                  + 616        "ORDER BY": lambda self: self._parse_order(skip_order_token=True),
                  + 617        "PARTITION BY": lambda self: self._parse_partitioned_by(),
                  + 618        "PARTITIONED BY": lambda self: self._parse_partitioned_by(),
                  + 619        "PARTITIONED_BY": lambda self: self._parse_partitioned_by(),
                  + 620        "PRIMARY KEY": lambda self: self._parse_primary_key(in_props=True),
                  + 621        "RANGE": lambda self: self._parse_dict_range(this="RANGE"),
                  + 622        "RETURNS": lambda self: self._parse_returns(),
                  + 623        "ROW": lambda self: self._parse_row(),
                  + 624        "ROW_FORMAT": lambda self: self._parse_property_assignment(exp.RowFormatProperty),
                  + 625        "SET": lambda self: self.expression(exp.SetProperty, multi=False),
                  + 626        "SETTINGS": lambda self: self.expression(
                  + 627            exp.SettingsProperty, expressions=self._parse_csv(self._parse_set_item)
                  + 628        ),
                  + 629        "SORTKEY": lambda self: self._parse_sortkey(),
                  + 630        "SOURCE": lambda self: self._parse_dict_property(this="SOURCE"),
                  + 631        "STABLE": lambda self: self.expression(
                  + 632            exp.StabilityProperty, this=exp.Literal.string("STABLE")
                  + 633        ),
                  + 634        "STORED": lambda self: self._parse_stored(),
                  + 635        "TBLPROPERTIES": lambda self: self._parse_wrapped_csv(self._parse_property),
                  + 636        "TEMP": lambda self: self.expression(exp.TemporaryProperty),
                  + 637        "TEMPORARY": lambda self: self.expression(exp.TemporaryProperty),
                  + 638        "TRANSIENT": lambda self: self.expression(exp.TransientProperty),
                  + 639        "TTL": lambda self: self._parse_ttl(),
                  + 640        "USING": lambda self: self._parse_property_assignment(exp.FileFormatProperty),
                  + 641        "VOLATILE": lambda self: self._parse_volatile_property(),
                  + 642        "WITH": lambda self: self._parse_with_property(),
                  + 643    }
                  + 644
                  + 645    CONSTRAINT_PARSERS = {
                  + 646        "AUTOINCREMENT": lambda self: self._parse_auto_increment(),
                  + 647        "AUTO_INCREMENT": lambda self: self._parse_auto_increment(),
                  + 648        "CASESPECIFIC": lambda self: self.expression(exp.CaseSpecificColumnConstraint, not_=False),
                  + 649        "CHARACTER SET": lambda self: self.expression(
                  + 650            exp.CharacterSetColumnConstraint, this=self._parse_var_or_string()
                  + 651        ),
                  + 652        "CHECK": lambda self: self.expression(
                  + 653            exp.CheckColumnConstraint, this=self._parse_wrapped(self._parse_conjunction)
                  + 654        ),
                  + 655        "COLLATE": lambda self: self.expression(
                  + 656            exp.CollateColumnConstraint, this=self._parse_var()
                  + 657        ),
                  + 658        "COMMENT": lambda self: self.expression(
                  + 659            exp.CommentColumnConstraint, this=self._parse_string()
                  + 660        ),
                  + 661        "COMPRESS": lambda self: self._parse_compress(),
                  + 662        "DEFAULT": lambda self: self.expression(
                  + 663            exp.DefaultColumnConstraint, this=self._parse_bitwise()
                  + 664        ),
                  + 665        "ENCODE": lambda self: self.expression(exp.EncodeColumnConstraint, this=self._parse_var()),
                  + 666        "FOREIGN KEY": lambda self: self._parse_foreign_key(),
                  + 667        "FORMAT": lambda self: self.expression(
                  + 668            exp.DateFormatColumnConstraint, this=self._parse_var_or_string()
                  + 669        ),
                  + 670        "GENERATED": lambda self: self._parse_generated_as_identity(),
                  + 671        "IDENTITY": lambda self: self._parse_auto_increment(),
                  + 672        "INLINE": lambda self: self._parse_inline(),
                  + 673        "LIKE": lambda self: self._parse_create_like(),
                  + 674        "NOT": lambda self: self._parse_not_constraint(),
                  + 675        "NULL": lambda self: self.expression(exp.NotNullColumnConstraint, allow_null=True),
                  + 676        "ON": lambda self: self._match(TokenType.UPDATE)
                  + 677        and self.expression(exp.OnUpdateColumnConstraint, this=self._parse_function()),
                  + 678        "PATH": lambda self: self.expression(exp.PathColumnConstraint, this=self._parse_string()),
                  + 679        "PRIMARY KEY": lambda self: self._parse_primary_key(),
                  + 680        "REFERENCES": lambda self: self._parse_references(match=False),
                  + 681        "TITLE": lambda self: self.expression(
                  + 682            exp.TitleColumnConstraint, this=self._parse_var_or_string()
                  + 683        ),
                  + 684        "TTL": lambda self: self.expression(exp.MergeTreeTTL, expressions=[self._parse_bitwise()]),
                  + 685        "UNIQUE": lambda self: self._parse_unique(),
                  + 686        "UPPERCASE": lambda self: self.expression(exp.UppercaseColumnConstraint),
                  + 687    }
                  + 688
                  + 689    ALTER_PARSERS = {
                  + 690        "ADD": lambda self: self._parse_alter_table_add(),
                  + 691        "ALTER": lambda self: self._parse_alter_table_alter(),
                  + 692        "DELETE": lambda self: self.expression(exp.Delete, where=self._parse_where()),
                  + 693        "DROP": lambda self: self._parse_alter_table_drop(),
                  + 694        "RENAME": lambda self: self._parse_alter_table_rename(),
                  + 695    }
                  + 696
                  + 697    SCHEMA_UNNAMED_CONSTRAINTS = {"CHECK", "FOREIGN KEY", "LIKE", "PRIMARY KEY", "UNIQUE"}
                  + 698
                  + 699    NO_PAREN_FUNCTION_PARSERS = {
                  + 700        TokenType.ANY: lambda self: self.expression(exp.Any, this=self._parse_bitwise()),
                  + 701        TokenType.CASE: lambda self: self._parse_case(),
                  + 702        TokenType.IF: lambda self: self._parse_if(),
                  + 703        TokenType.NEXT_VALUE_FOR: lambda self: self.expression(
                  + 704            exp.NextValueFor,
                  + 705            this=self._parse_column(),
                  + 706            order=self._match(TokenType.OVER) and self._parse_wrapped(self._parse_order),
                  + 707        ),
                  + 708    }
                  + 709
                  + 710    FUNCTIONS_WITH_ALIASED_ARGS = {"STRUCT"}
                  + 711
                  + 712    FUNCTION_PARSERS: t.Dict[str, t.Callable] = {
                  + 713        "CAST": lambda self: self._parse_cast(self.STRICT_CAST),
                  + 714        "CONVERT": lambda self: self._parse_convert(self.STRICT_CAST),
                  + 715        "DECODE": lambda self: self._parse_decode(),
                  + 716        "EXTRACT": lambda self: self._parse_extract(),
                  + 717        "JSON_OBJECT": lambda self: self._parse_json_object(),
                  + 718        "LOG": lambda self: self._parse_logarithm(),
                  + 719        "MATCH": lambda self: self._parse_match_against(),
                  + 720        "OPENJSON": lambda self: self._parse_open_json(),
                  + 721        "POSITION": lambda self: self._parse_position(),
                  + 722        "SAFE_CAST": lambda self: self._parse_cast(False),
                  + 723        "STRING_AGG": lambda self: self._parse_string_agg(),
                  + 724        "SUBSTRING": lambda self: self._parse_substring(),
                  + 725        "TRIM": lambda self: self._parse_trim(),
                  + 726        "TRY_CAST": lambda self: self._parse_cast(False),
                  + 727        "TRY_CONVERT": lambda self: self._parse_convert(False),
                  + 728    }
                  + 729
                  + 730    QUERY_MODIFIER_PARSERS = {
                  + 731        "joins": lambda self: list(iter(self._parse_join, None)),
                  + 732        "laterals": lambda self: list(iter(self._parse_lateral, None)),
                  + 733        "match": lambda self: self._parse_match_recognize(),
                  + 734        "where": lambda self: self._parse_where(),
                  + 735        "group": lambda self: self._parse_group(),
                  + 736        "having": lambda self: self._parse_having(),
                  + 737        "qualify": lambda self: self._parse_qualify(),
                  + 738        "windows": lambda self: self._parse_window_clause(),
                  + 739        "order": lambda self: self._parse_order(),
                  + 740        "limit": lambda self: self._parse_limit(),
                  + 741        "offset": lambda self: self._parse_offset(),
                  + 742        "locks": lambda self: self._parse_locks(),
                  + 743        "sample": lambda self: self._parse_table_sample(as_modifier=True),
                  + 744    }
                    745
                  - 746    WINDOW_ALIAS_TOKENS = ID_VAR_TOKENS - {TokenType.ROWS}
                  - 747    WINDOW_BEFORE_PAREN_TOKENS = {TokenType.OVER}
                  - 748
                  - 749    ADD_CONSTRAINT_TOKENS = {TokenType.CONSTRAINT, TokenType.PRIMARY_KEY, TokenType.FOREIGN_KEY}
                  - 750
                  - 751    STRICT_CAST = True
                  + 746    SET_PARSERS = {
                  + 747        "GLOBAL": lambda self: self._parse_set_item_assignment("GLOBAL"),
                  + 748        "LOCAL": lambda self: self._parse_set_item_assignment("LOCAL"),
                  + 749        "SESSION": lambda self: self._parse_set_item_assignment("SESSION"),
                  + 750        "TRANSACTION": lambda self: self._parse_set_transaction(),
                  + 751    }
                    752
                  - 753    CONVERT_TYPE_FIRST = False
                  + 753    SHOW_PARSERS: t.Dict[str, t.Callable] = {}
                    754
                  - 755    PREFIXED_PIVOT_COLUMNS = False
                  - 756    IDENTIFY_PIVOT_STRINGS = False
                  - 757
                  - 758    LOG_BASE_FIRST = True
                  - 759    LOG_DEFAULTS_TO_LN = False
                  + 755    TYPE_LITERAL_PARSERS: t.Dict[exp.DataType.Type, t.Callable] = {}
                  + 756
                  + 757    MODIFIABLES = (exp.Subquery, exp.Subqueryable, exp.Table)
                  + 758
                  + 759    TRANSACTION_KIND = {"DEFERRED", "IMMEDIATE", "EXCLUSIVE"}
                    760
                  - 761    __slots__ = (
                  - 762        "error_level",
                  - 763        "error_message_context",
                  - 764        "sql",
                  - 765        "errors",
                  - 766        "index_offset",
                  - 767        "unnest_column_only",
                  - 768        "alias_post_tablesample",
                  - 769        "max_errors",
                  - 770        "null_ordering",
                  - 771        "_tokens",
                  - 772        "_index",
                  - 773        "_curr",
                  - 774        "_next",
                  - 775        "_prev",
                  - 776        "_prev_comments",
                  - 777        "_show_trie",
                  - 778        "_set_trie",
                  - 779    )
                  - 780
                  - 781    def __init__(
                  - 782        self,
                  - 783        error_level: t.Optional[ErrorLevel] = None,
                  - 784        error_message_context: int = 100,
                  - 785        index_offset: int = 0,
                  - 786        unnest_column_only: bool = False,
                  - 787        alias_post_tablesample: bool = False,
                  - 788        max_errors: int = 3,
                  - 789        null_ordering: t.Optional[str] = None,
                  - 790    ):
                  - 791        self.error_level = error_level or ErrorLevel.IMMEDIATE
                  - 792        self.error_message_context = error_message_context
                  - 793        self.index_offset = index_offset
                  - 794        self.unnest_column_only = unnest_column_only
                  - 795        self.alias_post_tablesample = alias_post_tablesample
                  - 796        self.max_errors = max_errors
                  - 797        self.null_ordering = null_ordering
                  - 798        self.reset()
                  - 799
                  - 800    def reset(self):
                  - 801        self.sql = ""
                  - 802        self.errors = []
                  - 803        self._tokens = []
                  - 804        self._index = 0
                  - 805        self._curr = None
                  - 806        self._next = None
                  - 807        self._prev = None
                  - 808        self._prev_comments = None
                  + 761    TRANSACTION_CHARACTERISTICS = {
                  + 762        "ISOLATION LEVEL REPEATABLE READ",
                  + 763        "ISOLATION LEVEL READ COMMITTED",
                  + 764        "ISOLATION LEVEL READ UNCOMMITTED",
                  + 765        "ISOLATION LEVEL SERIALIZABLE",
                  + 766        "READ WRITE",
                  + 767        "READ ONLY",
                  + 768    }
                  + 769
                  + 770    INSERT_ALTERNATIVES = {"ABORT", "FAIL", "IGNORE", "REPLACE", "ROLLBACK"}
                  + 771
                  + 772    CLONE_KINDS = {"TIMESTAMP", "OFFSET", "STATEMENT"}
                  + 773
                  + 774    WINDOW_ALIAS_TOKENS = ID_VAR_TOKENS - {TokenType.ROWS}
                  + 775    WINDOW_BEFORE_PAREN_TOKENS = {TokenType.OVER}
                  + 776    WINDOW_SIDES = {"FOLLOWING", "PRECEDING"}
                  + 777
                  + 778    ADD_CONSTRAINT_TOKENS = {TokenType.CONSTRAINT, TokenType.PRIMARY_KEY, TokenType.FOREIGN_KEY}
                  + 779
                  + 780    STRICT_CAST = True
                  + 781
                  + 782    CONVERT_TYPE_FIRST = False
                  + 783
                  + 784    PREFIXED_PIVOT_COLUMNS = False
                  + 785    IDENTIFY_PIVOT_STRINGS = False
                  + 786
                  + 787    LOG_BASE_FIRST = True
                  + 788    LOG_DEFAULTS_TO_LN = False
                  + 789
                  + 790    __slots__ = (
                  + 791        "error_level",
                  + 792        "error_message_context",
                  + 793        "sql",
                  + 794        "errors",
                  + 795        "index_offset",
                  + 796        "unnest_column_only",
                  + 797        "alias_post_tablesample",
                  + 798        "max_errors",
                  + 799        "null_ordering",
                  + 800        "_tokens",
                  + 801        "_index",
                  + 802        "_curr",
                  + 803        "_next",
                  + 804        "_prev",
                  + 805        "_prev_comments",
                  + 806        "_show_trie",
                  + 807        "_set_trie",
                  + 808    )
                    809
                  - 810    def parse(
                  - 811        self, raw_tokens: t.List[Token], sql: t.Optional[str] = None
                  - 812    ) -> t.List[t.Optional[exp.Expression]]:
                  - 813        """
                  - 814        Parses a list of tokens and returns a list of syntax trees, one tree
                  - 815        per parsed SQL statement.
                  - 816
                  - 817        Args:
                  - 818            raw_tokens: the list of tokens.
                  - 819            sql: the original SQL string, used to produce helpful debug messages.
                  - 820
                  - 821        Returns:
                  - 822            The list of syntax trees.
                  - 823        """
                  - 824        return self._parse(
                  - 825            parse_method=self.__class__._parse_statement, raw_tokens=raw_tokens, sql=sql
                  - 826        )
                  - 827
                  - 828    def parse_into(
                  - 829        self,
                  - 830        expression_types: exp.IntoType,
                  - 831        raw_tokens: t.List[Token],
                  - 832        sql: t.Optional[str] = None,
                  - 833    ) -> t.List[t.Optional[exp.Expression]]:
                  - 834        """
                  - 835        Parses a list of tokens into a given Expression type. If a collection of Expression
                  - 836        types is given instead, this method will try to parse the token list into each one
                  - 837        of them, stopping at the first for which the parsing succeeds.
                  + 810    def __init__(
                  + 811        self,
                  + 812        error_level: t.Optional[ErrorLevel] = None,
                  + 813        error_message_context: int = 100,
                  + 814        index_offset: int = 0,
                  + 815        unnest_column_only: bool = False,
                  + 816        alias_post_tablesample: bool = False,
                  + 817        max_errors: int = 3,
                  + 818        null_ordering: t.Optional[str] = None,
                  + 819    ):
                  + 820        self.error_level = error_level or ErrorLevel.IMMEDIATE
                  + 821        self.error_message_context = error_message_context
                  + 822        self.index_offset = index_offset
                  + 823        self.unnest_column_only = unnest_column_only
                  + 824        self.alias_post_tablesample = alias_post_tablesample
                  + 825        self.max_errors = max_errors
                  + 826        self.null_ordering = null_ordering
                  + 827        self.reset()
                  + 828
                  + 829    def reset(self):
                  + 830        self.sql = ""
                  + 831        self.errors = []
                  + 832        self._tokens = []
                  + 833        self._index = 0
                  + 834        self._curr = None
                  + 835        self._next = None
                  + 836        self._prev = None
                  + 837        self._prev_comments = None
                    838
                  - 839        Args:
                  - 840            expression_types: the expression type(s) to try and parse the token list into.
                  - 841            raw_tokens: the list of tokens.
                  - 842            sql: the original SQL string, used to produce helpful debug messages.
                  - 843
                  - 844        Returns:
                  - 845            The target Expression.
                  - 846        """
                  - 847        errors = []
                  - 848        for expression_type in ensure_collection(expression_types):
                  - 849            parser = self.EXPRESSION_PARSERS.get(expression_type)
                  - 850            if not parser:
                  - 851                raise TypeError(f"No parser registered for {expression_type}")
                  - 852            try:
                  - 853                return self._parse(parser, raw_tokens, sql)
                  - 854            except ParseError as e:
                  - 855                e.errors[0]["into_expression"] = expression_type
                  - 856                errors.append(e)
                  - 857        raise ParseError(
                  - 858            f"Failed to parse into {expression_types}",
                  - 859            errors=merge_errors(errors),
                  - 860        ) from errors[-1]
                  - 861
                  - 862    def _parse(
                  - 863        self,
                  - 864        parse_method: t.Callable[[Parser], t.Optional[exp.Expression]],
                  - 865        raw_tokens: t.List[Token],
                  - 866        sql: t.Optional[str] = None,
                  - 867    ) -> t.List[t.Optional[exp.Expression]]:
                  - 868        self.reset()
                  - 869        self.sql = sql or ""
                  - 870        total = len(raw_tokens)
                  - 871        chunks: t.List[t.List[Token]] = [[]]
                  + 839    def parse(
                  + 840        self, raw_tokens: t.List[Token], sql: t.Optional[str] = None
                  + 841    ) -> t.List[t.Optional[exp.Expression]]:
                  + 842        """
                  + 843        Parses a list of tokens and returns a list of syntax trees, one tree
                  + 844        per parsed SQL statement.
                  + 845
                  + 846        Args:
                  + 847            raw_tokens: the list of tokens.
                  + 848            sql: the original SQL string, used to produce helpful debug messages.
                  + 849
                  + 850        Returns:
                  + 851            The list of syntax trees.
                  + 852        """
                  + 853        return self._parse(
                  + 854            parse_method=self.__class__._parse_statement, raw_tokens=raw_tokens, sql=sql
                  + 855        )
                  + 856
                  + 857    def parse_into(
                  + 858        self,
                  + 859        expression_types: exp.IntoType,
                  + 860        raw_tokens: t.List[Token],
                  + 861        sql: t.Optional[str] = None,
                  + 862    ) -> t.List[t.Optional[exp.Expression]]:
                  + 863        """
                  + 864        Parses a list of tokens into a given Expression type. If a collection of Expression
                  + 865        types is given instead, this method will try to parse the token list into each one
                  + 866        of them, stopping at the first for which the parsing succeeds.
                  + 867
                  + 868        Args:
                  + 869            expression_types: the expression type(s) to try and parse the token list into.
                  + 870            raw_tokens: the list of tokens.
                  + 871            sql: the original SQL string, used to produce helpful debug messages.
                    872
                  - 873        for i, token in enumerate(raw_tokens):
                  - 874            if token.token_type == TokenType.SEMICOLON:
                  - 875                if i < total - 1:
                  - 876                    chunks.append([])
                  - 877            else:
                  - 878                chunks[-1].append(token)
                  - 879
                  - 880        expressions = []
                  - 881
                  - 882        for tokens in chunks:
                  - 883            self._index = -1
                  - 884            self._tokens = tokens
                  - 885            self._advance()
                  - 886
                  - 887            expressions.append(parse_method(self))
                  - 888
                  - 889            if self._index < len(self._tokens):
                  - 890                self.raise_error("Invalid expression / Unexpected token")
                  - 891
                  - 892            self.check_errors()
                  - 893
                  - 894        return expressions
                  - 895
                  - 896    def check_errors(self) -> None:
                  - 897        """
                  - 898        Logs or raises any found errors, depending on the chosen error level setting.
                  - 899        """
                  - 900        if self.error_level == ErrorLevel.WARN:
                  - 901            for error in self.errors:
                  - 902                logger.error(str(error))
                  - 903        elif self.error_level == ErrorLevel.RAISE and self.errors:
                  - 904            raise ParseError(
                  - 905                concat_messages(self.errors, self.max_errors),
                  - 906                errors=merge_errors(self.errors),
                  - 907            )
                  + 873        Returns:
                  + 874            The target Expression.
                  + 875        """
                  + 876        errors = []
                  + 877        for expression_type in ensure_collection(expression_types):
                  + 878            parser = self.EXPRESSION_PARSERS.get(expression_type)
                  + 879            if not parser:
                  + 880                raise TypeError(f"No parser registered for {expression_type}")
                  + 881            try:
                  + 882                return self._parse(parser, raw_tokens, sql)
                  + 883            except ParseError as e:
                  + 884                e.errors[0]["into_expression"] = expression_type
                  + 885                errors.append(e)
                  + 886        raise ParseError(
                  + 887            f"Failed to parse '{sql or raw_tokens}' into {expression_types}",
                  + 888            errors=merge_errors(errors),
                  + 889        ) from errors[-1]
                  + 890
                  + 891    def _parse(
                  + 892        self,
                  + 893        parse_method: t.Callable[[Parser], t.Optional[exp.Expression]],
                  + 894        raw_tokens: t.List[Token],
                  + 895        sql: t.Optional[str] = None,
                  + 896    ) -> t.List[t.Optional[exp.Expression]]:
                  + 897        self.reset()
                  + 898        self.sql = sql or ""
                  + 899        total = len(raw_tokens)
                  + 900        chunks: t.List[t.List[Token]] = [[]]
                  + 901
                  + 902        for i, token in enumerate(raw_tokens):
                  + 903            if token.token_type == TokenType.SEMICOLON:
                  + 904                if i < total - 1:
                  + 905                    chunks.append([])
                  + 906            else:
                  + 907                chunks[-1].append(token)
                    908
                  - 909    def raise_error(self, message: str, token: t.Optional[Token] = None) -> None:
                  - 910        """
                  - 911        Appends an error in the list of recorded errors or raises it, depending on the chosen
                  - 912        error level setting.
                  - 913        """
                  - 914        token = token or self._curr or self._prev or Token.string("")
                  - 915        start = token.start
                  - 916        end = token.end + 1
                  - 917        start_context = self.sql[max(start - self.error_message_context, 0) : start]
                  - 918        highlight = self.sql[start:end]
                  - 919        end_context = self.sql[end : end + self.error_message_context]
                  + 909        expressions = []
                  + 910
                  + 911        for tokens in chunks:
                  + 912            self._index = -1
                  + 913            self._tokens = tokens
                  + 914            self._advance()
                  + 915
                  + 916            expressions.append(parse_method(self))
                  + 917
                  + 918            if self._index < len(self._tokens):
                  + 919                self.raise_error("Invalid expression / Unexpected token")
                    920
                  - 921        error = ParseError.new(
                  - 922            f"{message}. Line {token.line}, Col: {token.col}.\n"
                  - 923            f"  {start_context}\033[4m{highlight}\033[0m{end_context}",
                  - 924            description=message,
                  - 925            line=token.line,
                  - 926            col=token.col,
                  - 927            start_context=start_context,
                  - 928            highlight=highlight,
                  - 929            end_context=end_context,
                  - 930        )
                  - 931
                  - 932        if self.error_level == ErrorLevel.IMMEDIATE:
                  - 933            raise error
                  - 934
                  - 935        self.errors.append(error)
                  - 936
                  - 937    def expression(
                  - 938        self, exp_class: t.Type[E], comments: t.Optional[t.List[str]] = None, **kwargs
                  - 939    ) -> E:
                  - 940        """
                  - 941        Creates a new, validated Expression.
                  - 942
                  - 943        Args:
                  - 944            exp_class: the expression class to instantiate.
                  - 945            comments: an optional list of comments to attach to the expression.
                  - 946            kwargs: the arguments to set for the expression along with their respective values.
                  - 947
                  - 948        Returns:
                  - 949            The target expression.
                  - 950        """
                  - 951        instance = exp_class(**kwargs)
                  - 952        instance.add_comments(comments) if comments else self._add_comments(instance)
                  - 953        self.validate_expression(instance)
                  - 954        return instance
                  - 955
                  - 956    def _add_comments(self, expression: t.Optional[exp.Expression]) -> None:
                  - 957        if expression and self._prev_comments:
                  - 958            expression.add_comments(self._prev_comments)
                  - 959            self._prev_comments = None
                  + 921            self.check_errors()
                  + 922
                  + 923        return expressions
                  + 924
                  + 925    def check_errors(self) -> None:
                  + 926        """
                  + 927        Logs or raises any found errors, depending on the chosen error level setting.
                  + 928        """
                  + 929        if self.error_level == ErrorLevel.WARN:
                  + 930            for error in self.errors:
                  + 931                logger.error(str(error))
                  + 932        elif self.error_level == ErrorLevel.RAISE and self.errors:
                  + 933            raise ParseError(
                  + 934                concat_messages(self.errors, self.max_errors),
                  + 935                errors=merge_errors(self.errors),
                  + 936            )
                  + 937
                  + 938    def raise_error(self, message: str, token: t.Optional[Token] = None) -> None:
                  + 939        """
                  + 940        Appends an error in the list of recorded errors or raises it, depending on the chosen
                  + 941        error level setting.
                  + 942        """
                  + 943        token = token or self._curr or self._prev or Token.string("")
                  + 944        start = token.start
                  + 945        end = token.end + 1
                  + 946        start_context = self.sql[max(start - self.error_message_context, 0) : start]
                  + 947        highlight = self.sql[start:end]
                  + 948        end_context = self.sql[end : end + self.error_message_context]
                  + 949
                  + 950        error = ParseError.new(
                  + 951            f"{message}. Line {token.line}, Col: {token.col}.\n"
                  + 952            f"  {start_context}\033[4m{highlight}\033[0m{end_context}",
                  + 953            description=message,
                  + 954            line=token.line,
                  + 955            col=token.col,
                  + 956            start_context=start_context,
                  + 957            highlight=highlight,
                  + 958            end_context=end_context,
                  + 959        )
                    960
                  - 961    def validate_expression(
                  - 962        self, expression: exp.Expression, args: t.Optional[t.List] = None
                  - 963    ) -> None:
                  - 964        """
                  - 965        Validates an already instantiated expression, making sure that all its mandatory arguments
                  - 966        are set.
                  - 967
                  - 968        Args:
                  - 969            expression: the expression to validate.
                  - 970            args: an optional list of items that was used to instantiate the expression, if it's a Func.
                  - 971        """
                  - 972        if self.error_level == ErrorLevel.IGNORE:
                  - 973            return
                  - 974
                  - 975        for error_message in expression.error_messages(args):
                  - 976            self.raise_error(error_message)
                  - 977
                  - 978    def _find_sql(self, start: Token, end: Token) -> str:
                  - 979        return self.sql[start.start : end.end + 1]
                  - 980
                  - 981    def _advance(self, times: int = 1) -> None:
                  - 982        self._index += times
                  - 983        self._curr = seq_get(self._tokens, self._index)
                  - 984        self._next = seq_get(self._tokens, self._index + 1)
                  - 985        if self._index > 0:
                  - 986            self._prev = self._tokens[self._index - 1]
                  - 987            self._prev_comments = self._prev.comments
                  - 988        else:
                  - 989            self._prev = None
                  - 990            self._prev_comments = None
                  - 991
                  - 992    def _retreat(self, index: int) -> None:
                  - 993        if index != self._index:
                  - 994            self._advance(index - self._index)
                  - 995
                  - 996    def _parse_command(self) -> exp.Command:
                  - 997        return self.expression(exp.Command, this=self._prev.text, expression=self._parse_string())
                  - 998
                  - 999    def _parse_comment(self, allow_exists: bool = True) -> exp.Expression:
                  -1000        start = self._prev
                  -1001        exists = self._parse_exists() if allow_exists else None
                  -1002
                  -1003        self._match(TokenType.ON)
                  -1004
                  -1005        kind = self._match_set(self.CREATABLES) and self._prev
                  + 961        if self.error_level == ErrorLevel.IMMEDIATE:
                  + 962            raise error
                  + 963
                  + 964        self.errors.append(error)
                  + 965
                  + 966    def expression(
                  + 967        self, exp_class: t.Type[E], comments: t.Optional[t.List[str]] = None, **kwargs
                  + 968    ) -> E:
                  + 969        """
                  + 970        Creates a new, validated Expression.
                  + 971
                  + 972        Args:
                  + 973            exp_class: the expression class to instantiate.
                  + 974            comments: an optional list of comments to attach to the expression.
                  + 975            kwargs: the arguments to set for the expression along with their respective values.
                  + 976
                  + 977        Returns:
                  + 978            The target expression.
                  + 979        """
                  + 980        instance = exp_class(**kwargs)
                  + 981        instance.add_comments(comments) if comments else self._add_comments(instance)
                  + 982        self.validate_expression(instance)
                  + 983        return instance
                  + 984
                  + 985    def _add_comments(self, expression: t.Optional[exp.Expression]) -> None:
                  + 986        if expression and self._prev_comments:
                  + 987            expression.add_comments(self._prev_comments)
                  + 988            self._prev_comments = None
                  + 989
                  + 990    def validate_expression(
                  + 991        self, expression: exp.Expression, args: t.Optional[t.List] = None
                  + 992    ) -> None:
                  + 993        """
                  + 994        Validates an already instantiated expression, making sure that all its mandatory arguments
                  + 995        are set.
                  + 996
                  + 997        Args:
                  + 998            expression: the expression to validate.
                  + 999            args: an optional list of items that was used to instantiate the expression, if it's a Func.
                  +1000        """
                  +1001        if self.error_level == ErrorLevel.IGNORE:
                  +1002            return
                  +1003
                  +1004        for error_message in expression.error_messages(args):
                  +1005            self.raise_error(error_message)
                   1006
                  -1007        if not kind:
                  -1008            return self._parse_as_command(start)
                  +1007    def _find_sql(self, start: Token, end: Token) -> str:
                  +1008        return self.sql[start.start : end.end + 1]
                   1009
                  -1010        if kind.token_type in (TokenType.FUNCTION, TokenType.PROCEDURE):
                  -1011            this = self._parse_user_defined_function(kind=kind.token_type)
                  -1012        elif kind.token_type == TokenType.TABLE:
                  -1013            this = self._parse_table(alias_tokens=self.COMMENT_TABLE_ALIAS_TOKENS)
                  -1014        elif kind.token_type == TokenType.COLUMN:
                  -1015            this = self._parse_column()
                  -1016        else:
                  -1017            this = self._parse_id_var()
                  -1018
                  -1019        self._match(TokenType.IS)
                  +1010    def _advance(self, times: int = 1) -> None:
                  +1011        self._index += times
                  +1012        self._curr = seq_get(self._tokens, self._index)
                  +1013        self._next = seq_get(self._tokens, self._index + 1)
                  +1014        if self._index > 0:
                  +1015            self._prev = self._tokens[self._index - 1]
                  +1016            self._prev_comments = self._prev.comments
                  +1017        else:
                  +1018            self._prev = None
                  +1019            self._prev_comments = None
                   1020
                  -1021        return self.expression(
                  -1022            exp.Comment, this=this, kind=kind.text, expression=self._parse_string(), exists=exists
                  -1023        )
                  +1021    def _retreat(self, index: int) -> None:
                  +1022        if index != self._index:
                  +1023            self._advance(index - self._index)
                   1024
                  -1025    # https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl
                  -1026    def _parse_ttl(self) -> exp.Expression:
                  -1027        def _parse_ttl_action() -> t.Optional[exp.Expression]:
                  -1028            this = self._parse_bitwise()
                  -1029
                  -1030            if self._match_text_seq("DELETE"):
                  -1031                return self.expression(exp.MergeTreeTTLAction, this=this, delete=True)
                  -1032            if self._match_text_seq("RECOMPRESS"):
                  -1033                return self.expression(
                  -1034                    exp.MergeTreeTTLAction, this=this, recompress=self._parse_bitwise()
                  -1035                )
                  -1036            if self._match_text_seq("TO", "DISK"):
                  -1037                return self.expression(
                  -1038                    exp.MergeTreeTTLAction, this=this, to_disk=self._parse_string()
                  -1039                )
                  -1040            if self._match_text_seq("TO", "VOLUME"):
                  -1041                return self.expression(
                  -1042                    exp.MergeTreeTTLAction, this=this, to_volume=self._parse_string()
                  -1043                )
                  -1044
                  -1045            return this
                  -1046
                  -1047        expressions = self._parse_csv(_parse_ttl_action)
                  -1048        where = self._parse_where()
                  -1049        group = self._parse_group()
                  -1050
                  -1051        aggregates = None
                  -1052        if group and self._match(TokenType.SET):
                  -1053            aggregates = self._parse_csv(self._parse_set_item)
                  -1054
                  -1055        return self.expression(
                  -1056            exp.MergeTreeTTL,
                  -1057            expressions=expressions,
                  -1058            where=where,
                  -1059            group=group,
                  -1060            aggregates=aggregates,
                  -1061        )
                  -1062
                  -1063    def _parse_statement(self) -> t.Optional[exp.Expression]:
                  -1064        if self._curr is None:
                  -1065            return None
                  -1066
                  -1067        if self._match_set(self.STATEMENT_PARSERS):
                  -1068            return self.STATEMENT_PARSERS[self._prev.token_type](self)
                  -1069
                  -1070        if self._match_set(Tokenizer.COMMANDS):
                  -1071            return self._parse_command()
                  -1072
                  -1073        expression = self._parse_expression()
                  -1074        expression = self._parse_set_operations(expression) if expression else self._parse_select()
                  -1075        return self._parse_query_modifiers(expression)
                  -1076
                  -1077    def _parse_drop(self) -> t.Optional[exp.Drop | exp.Command]:
                  -1078        start = self._prev
                  -1079        temporary = self._match(TokenType.TEMPORARY)
                  -1080        materialized = self._match_text_seq("MATERIALIZED")
                  -1081        kind = self._match_set(self.CREATABLES) and self._prev.text
                  -1082        if not kind:
                  -1083            return self._parse_as_command(start)
                  -1084
                  -1085        return self.expression(
                  -1086            exp.Drop,
                  -1087            exists=self._parse_exists(),
                  -1088            this=self._parse_table(schema=True),
                  -1089            kind=kind,
                  -1090            temporary=temporary,
                  -1091            materialized=materialized,
                  -1092            cascade=self._match_text_seq("CASCADE"),
                  -1093            constraints=self._match_text_seq("CONSTRAINTS"),
                  -1094            purge=self._match_text_seq("PURGE"),
                  -1095        )
                  -1096
                  -1097    def _parse_exists(self, not_: bool = False) -> t.Optional[bool]:
                  -1098        return (
                  -1099            self._match(TokenType.IF)
                  -1100            and (not not_ or self._match(TokenType.NOT))
                  -1101            and self._match(TokenType.EXISTS)
                  -1102        )
                  -1103
                  -1104    def _parse_create(self) -> t.Optional[exp.Expression]:
                  -1105        start = self._prev
                  -1106        replace = self._prev.text.upper() == "REPLACE" or self._match_pair(
                  -1107            TokenType.OR, TokenType.REPLACE
                  -1108        )
                  -1109        unique = self._match(TokenType.UNIQUE)
                  -1110
                  -1111        if self._match_pair(TokenType.TABLE, TokenType.FUNCTION, advance=False):
                  -1112            self._match(TokenType.TABLE)
                  +1025    def _parse_command(self) -> exp.Command:
                  +1026        return self.expression(exp.Command, this=self._prev.text, expression=self._parse_string())
                  +1027
                  +1028    def _parse_comment(self, allow_exists: bool = True) -> exp.Expression:
                  +1029        start = self._prev
                  +1030        exists = self._parse_exists() if allow_exists else None
                  +1031
                  +1032        self._match(TokenType.ON)
                  +1033
                  +1034        kind = self._match_set(self.CREATABLES) and self._prev
                  +1035
                  +1036        if not kind:
                  +1037            return self._parse_as_command(start)
                  +1038
                  +1039        if kind.token_type in (TokenType.FUNCTION, TokenType.PROCEDURE):
                  +1040            this = self._parse_user_defined_function(kind=kind.token_type)
                  +1041        elif kind.token_type == TokenType.TABLE:
                  +1042            this = self._parse_table(alias_tokens=self.COMMENT_TABLE_ALIAS_TOKENS)
                  +1043        elif kind.token_type == TokenType.COLUMN:
                  +1044            this = self._parse_column()
                  +1045        else:
                  +1046            this = self._parse_id_var()
                  +1047
                  +1048        self._match(TokenType.IS)
                  +1049
                  +1050        return self.expression(
                  +1051            exp.Comment, this=this, kind=kind.text, expression=self._parse_string(), exists=exists
                  +1052        )
                  +1053
                  +1054    # https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl
                  +1055    def _parse_ttl(self) -> exp.Expression:
                  +1056        def _parse_ttl_action() -> t.Optional[exp.Expression]:
                  +1057            this = self._parse_bitwise()
                  +1058
                  +1059            if self._match_text_seq("DELETE"):
                  +1060                return self.expression(exp.MergeTreeTTLAction, this=this, delete=True)
                  +1061            if self._match_text_seq("RECOMPRESS"):
                  +1062                return self.expression(
                  +1063                    exp.MergeTreeTTLAction, this=this, recompress=self._parse_bitwise()
                  +1064                )
                  +1065            if self._match_text_seq("TO", "DISK"):
                  +1066                return self.expression(
                  +1067                    exp.MergeTreeTTLAction, this=this, to_disk=self._parse_string()
                  +1068                )
                  +1069            if self._match_text_seq("TO", "VOLUME"):
                  +1070                return self.expression(
                  +1071                    exp.MergeTreeTTLAction, this=this, to_volume=self._parse_string()
                  +1072                )
                  +1073
                  +1074            return this
                  +1075
                  +1076        expressions = self._parse_csv(_parse_ttl_action)
                  +1077        where = self._parse_where()
                  +1078        group = self._parse_group()
                  +1079
                  +1080        aggregates = None
                  +1081        if group and self._match(TokenType.SET):
                  +1082            aggregates = self._parse_csv(self._parse_set_item)
                  +1083
                  +1084        return self.expression(
                  +1085            exp.MergeTreeTTL,
                  +1086            expressions=expressions,
                  +1087            where=where,
                  +1088            group=group,
                  +1089            aggregates=aggregates,
                  +1090        )
                  +1091
                  +1092    def _parse_statement(self) -> t.Optional[exp.Expression]:
                  +1093        if self._curr is None:
                  +1094            return None
                  +1095
                  +1096        if self._match_set(self.STATEMENT_PARSERS):
                  +1097            return self.STATEMENT_PARSERS[self._prev.token_type](self)
                  +1098
                  +1099        if self._match_set(Tokenizer.COMMANDS):
                  +1100            return self._parse_command()
                  +1101
                  +1102        expression = self._parse_expression()
                  +1103        expression = self._parse_set_operations(expression) if expression else self._parse_select()
                  +1104        return self._parse_query_modifiers(expression)
                  +1105
                  +1106    def _parse_drop(self) -> t.Optional[exp.Drop | exp.Command]:
                  +1107        start = self._prev
                  +1108        temporary = self._match(TokenType.TEMPORARY)
                  +1109        materialized = self._match_text_seq("MATERIALIZED")
                  +1110        kind = self._match_set(self.CREATABLES) and self._prev.text
                  +1111        if not kind:
                  +1112            return self._parse_as_command(start)
                   1113
                  -1114        properties = None
                  -1115        create_token = self._match_set(self.CREATABLES) and self._prev
                  -1116
                  -1117        if not create_token:
                  -1118            properties = self._parse_properties()  # exp.Properties.Location.POST_CREATE
                  -1119            create_token = self._match_set(self.CREATABLES) and self._prev
                  -1120
                  -1121            if not properties or not create_token:
                  -1122                return self._parse_as_command(start)
                  -1123
                  -1124        exists = self._parse_exists(not_=True)
                  -1125        this = None
                  -1126        expression = None
                  -1127        indexes = None
                  -1128        no_schema_binding = None
                  -1129        begin = None
                  -1130        clone = None
                  -1131
                  -1132        if create_token.token_type in (TokenType.FUNCTION, TokenType.PROCEDURE):
                  -1133            this = self._parse_user_defined_function(kind=create_token.token_type)
                  -1134            temp_properties = self._parse_properties()
                  -1135            if properties and temp_properties:
                  -1136                properties.expressions.extend(temp_properties.expressions)
                  -1137            elif temp_properties:
                  -1138                properties = temp_properties
                  +1114        return self.expression(
                  +1115            exp.Drop,
                  +1116            exists=self._parse_exists(),
                  +1117            this=self._parse_table(schema=True),
                  +1118            kind=kind,
                  +1119            temporary=temporary,
                  +1120            materialized=materialized,
                  +1121            cascade=self._match_text_seq("CASCADE"),
                  +1122            constraints=self._match_text_seq("CONSTRAINTS"),
                  +1123            purge=self._match_text_seq("PURGE"),
                  +1124        )
                  +1125
                  +1126    def _parse_exists(self, not_: bool = False) -> t.Optional[bool]:
                  +1127        return (
                  +1128            self._match(TokenType.IF)
                  +1129            and (not not_ or self._match(TokenType.NOT))
                  +1130            and self._match(TokenType.EXISTS)
                  +1131        )
                  +1132
                  +1133    def _parse_create(self) -> t.Optional[exp.Expression]:
                  +1134        start = self._prev
                  +1135        replace = self._prev.text.upper() == "REPLACE" or self._match_pair(
                  +1136            TokenType.OR, TokenType.REPLACE
                  +1137        )
                  +1138        unique = self._match(TokenType.UNIQUE)
                   1139
                  -1140            self._match(TokenType.ALIAS)
                  -1141            begin = self._match(TokenType.BEGIN)
                  -1142            return_ = self._match_text_seq("RETURN")
                  -1143            expression = self._parse_statement()
                  -1144
                  -1145            if return_:
                  -1146                expression = self.expression(exp.Return, this=expression)
                  -1147        elif create_token.token_type == TokenType.INDEX:
                  -1148            this = self._parse_index(index=self._parse_id_var())
                  -1149        elif create_token.token_type in self.DB_CREATABLES:
                  -1150            table_parts = self._parse_table_parts(schema=True)
                  -1151
                  -1152            # exp.Properties.Location.POST_NAME
                  -1153            if self._match(TokenType.COMMA):
                  -1154                temp_properties = self._parse_properties(before=True)
                  -1155                if properties and temp_properties:
                  -1156                    properties.expressions.extend(temp_properties.expressions)
                  -1157                elif temp_properties:
                  -1158                    properties = temp_properties
                  -1159
                  -1160            this = self._parse_schema(this=table_parts)
                  -1161
                  -1162            # exp.Properties.Location.POST_SCHEMA and POST_WITH
                  +1140        if self._match_pair(TokenType.TABLE, TokenType.FUNCTION, advance=False):
                  +1141            self._match(TokenType.TABLE)
                  +1142
                  +1143        properties = None
                  +1144        create_token = self._match_set(self.CREATABLES) and self._prev
                  +1145
                  +1146        if not create_token:
                  +1147            properties = self._parse_properties()  # exp.Properties.Location.POST_CREATE
                  +1148            create_token = self._match_set(self.CREATABLES) and self._prev
                  +1149
                  +1150            if not properties or not create_token:
                  +1151                return self._parse_as_command(start)
                  +1152
                  +1153        exists = self._parse_exists(not_=True)
                  +1154        this = None
                  +1155        expression = None
                  +1156        indexes = None
                  +1157        no_schema_binding = None
                  +1158        begin = None
                  +1159        clone = None
                  +1160
                  +1161        if create_token.token_type in (TokenType.FUNCTION, TokenType.PROCEDURE):
                  +1162            this = self._parse_user_defined_function(kind=create_token.token_type)
                   1163            temp_properties = self._parse_properties()
                   1164            if properties and temp_properties:
                   1165                properties.expressions.extend(temp_properties.expressions)
                  @@ -5846,3391 +5963,3508 @@
                   1167                properties = temp_properties
                   1168
                   1169            self._match(TokenType.ALIAS)
                  -1170
                  -1171            # exp.Properties.Location.POST_ALIAS
                  -1172            if not (
                  -1173                self._match(TokenType.SELECT, advance=False)
                  -1174                or self._match(TokenType.WITH, advance=False)
                  -1175                or self._match(TokenType.L_PAREN, advance=False)
                  -1176            ):
                  -1177                temp_properties = self._parse_properties()
                  -1178                if properties and temp_properties:
                  -1179                    properties.expressions.extend(temp_properties.expressions)
                  -1180                elif temp_properties:
                  -1181                    properties = temp_properties
                  -1182
                  -1183            expression = self._parse_ddl_select()
                  -1184
                  -1185            if create_token.token_type == TokenType.TABLE:
                  -1186                indexes = []
                  -1187                while True:
                  -1188                    index = self._parse_index()
                  -1189
                  -1190                    # exp.Properties.Location.POST_EXPRESSION or exp.Properties.Location.POST_INDEX
                  -1191                    temp_properties = self._parse_properties()
                  -1192                    if properties and temp_properties:
                  -1193                        properties.expressions.extend(temp_properties.expressions)
                  -1194                    elif temp_properties:
                  -1195                        properties = temp_properties
                  -1196
                  -1197                    if not index:
                  -1198                        break
                  -1199                    else:
                  -1200                        self._match(TokenType.COMMA)
                  -1201                        indexes.append(index)
                  -1202            elif create_token.token_type == TokenType.VIEW:
                  -1203                if self._match_text_seq("WITH", "NO", "SCHEMA", "BINDING"):
                  -1204                    no_schema_binding = True
                  -1205
                  -1206            if self._match_text_seq("CLONE"):
                  -1207                clone = self._parse_table(schema=True)
                  -1208                when = self._match_texts({"AT", "BEFORE"}) and self._prev.text.upper()
                  -1209                clone_kind = (
                  -1210                    self._match(TokenType.L_PAREN)
                  -1211                    and self._match_texts(self.CLONE_KINDS)
                  -1212                    and self._prev.text.upper()
                  -1213                )
                  -1214                clone_expression = self._match(TokenType.FARROW) and self._parse_bitwise()
                  -1215                self._match(TokenType.R_PAREN)
                  -1216                clone = self.expression(
                  -1217                    exp.Clone, this=clone, when=when, kind=clone_kind, expression=clone_expression
                  -1218                )
                  -1219
                  -1220        return self.expression(
                  -1221            exp.Create,
                  -1222            this=this,
                  -1223            kind=create_token.text,
                  -1224            replace=replace,
                  -1225            unique=unique,
                  -1226            expression=expression,
                  -1227            exists=exists,
                  -1228            properties=properties,
                  -1229            indexes=indexes,
                  -1230            no_schema_binding=no_schema_binding,
                  -1231            begin=begin,
                  -1232            clone=clone,
                  -1233        )
                  +1170            begin = self._match(TokenType.BEGIN)
                  +1171            return_ = self._match_text_seq("RETURN")
                  +1172            expression = self._parse_statement()
                  +1173
                  +1174            if return_:
                  +1175                expression = self.expression(exp.Return, this=expression)
                  +1176        elif create_token.token_type == TokenType.INDEX:
                  +1177            this = self._parse_index(index=self._parse_id_var())
                  +1178        elif create_token.token_type in self.DB_CREATABLES:
                  +1179            table_parts = self._parse_table_parts(schema=True)
                  +1180
                  +1181            # exp.Properties.Location.POST_NAME
                  +1182            if self._match(TokenType.COMMA):
                  +1183                temp_properties = self._parse_properties(before=True)
                  +1184                if properties and temp_properties:
                  +1185                    properties.expressions.extend(temp_properties.expressions)
                  +1186                elif temp_properties:
                  +1187                    properties = temp_properties
                  +1188
                  +1189            this = self._parse_schema(this=table_parts)
                  +1190
                  +1191            # exp.Properties.Location.POST_SCHEMA and POST_WITH
                  +1192            temp_properties = self._parse_properties()
                  +1193            if properties and temp_properties:
                  +1194                properties.expressions.extend(temp_properties.expressions)
                  +1195            elif temp_properties:
                  +1196                properties = temp_properties
                  +1197
                  +1198            self._match(TokenType.ALIAS)
                  +1199
                  +1200            # exp.Properties.Location.POST_ALIAS
                  +1201            if not (
                  +1202                self._match(TokenType.SELECT, advance=False)
                  +1203                or self._match(TokenType.WITH, advance=False)
                  +1204                or self._match(TokenType.L_PAREN, advance=False)
                  +1205            ):
                  +1206                temp_properties = self._parse_properties()
                  +1207                if properties and temp_properties:
                  +1208                    properties.expressions.extend(temp_properties.expressions)
                  +1209                elif temp_properties:
                  +1210                    properties = temp_properties
                  +1211
                  +1212            expression = self._parse_ddl_select()
                  +1213
                  +1214            if create_token.token_type == TokenType.TABLE:
                  +1215                indexes = []
                  +1216                while True:
                  +1217                    index = self._parse_index()
                  +1218
                  +1219                    # exp.Properties.Location.POST_EXPRESSION or exp.Properties.Location.POST_INDEX
                  +1220                    temp_properties = self._parse_properties()
                  +1221                    if properties and temp_properties:
                  +1222                        properties.expressions.extend(temp_properties.expressions)
                  +1223                    elif temp_properties:
                  +1224                        properties = temp_properties
                  +1225
                  +1226                    if not index:
                  +1227                        break
                  +1228                    else:
                  +1229                        self._match(TokenType.COMMA)
                  +1230                        indexes.append(index)
                  +1231            elif create_token.token_type == TokenType.VIEW:
                  +1232                if self._match_text_seq("WITH", "NO", "SCHEMA", "BINDING"):
                  +1233                    no_schema_binding = True
                   1234
                  -1235    def _parse_property_before(self) -> t.Optional[exp.Expression]:
                  -1236        # only used for teradata currently
                  -1237        self._match(TokenType.COMMA)
                  -1238
                  -1239        kwargs = {
                  -1240            "no": self._match_text_seq("NO"),
                  -1241            "dual": self._match_text_seq("DUAL"),
                  -1242            "before": self._match_text_seq("BEFORE"),
                  -1243            "default": self._match_text_seq("DEFAULT"),
                  -1244            "local": (self._match_text_seq("LOCAL") and "LOCAL")
                  -1245            or (self._match_text_seq("NOT", "LOCAL") and "NOT LOCAL"),
                  -1246            "after": self._match_text_seq("AFTER"),
                  -1247            "minimum": self._match_texts(("MIN", "MINIMUM")),
                  -1248            "maximum": self._match_texts(("MAX", "MAXIMUM")),
                  -1249        }
                  -1250
                  -1251        if self._match_texts(self.PROPERTY_PARSERS):
                  -1252            parser = self.PROPERTY_PARSERS[self._prev.text.upper()]
                  -1253            try:
                  -1254                return parser(self, **{k: v for k, v in kwargs.items() if v})
                  -1255            except TypeError:
                  -1256                self.raise_error(f"Cannot parse property '{self._prev.text}'")
                  -1257
                  -1258        return None
                  -1259
                  -1260    def _parse_property(self) -> t.Optional[exp.Expression]:
                  -1261        if self._match_texts(self.PROPERTY_PARSERS):
                  -1262            return self.PROPERTY_PARSERS[self._prev.text.upper()](self)
                  +1235            if self._match_text_seq("CLONE"):
                  +1236                clone = self._parse_table(schema=True)
                  +1237                when = self._match_texts({"AT", "BEFORE"}) and self._prev.text.upper()
                  +1238                clone_kind = (
                  +1239                    self._match(TokenType.L_PAREN)
                  +1240                    and self._match_texts(self.CLONE_KINDS)
                  +1241                    and self._prev.text.upper()
                  +1242                )
                  +1243                clone_expression = self._match(TokenType.FARROW) and self._parse_bitwise()
                  +1244                self._match(TokenType.R_PAREN)
                  +1245                clone = self.expression(
                  +1246                    exp.Clone, this=clone, when=when, kind=clone_kind, expression=clone_expression
                  +1247                )
                  +1248
                  +1249        return self.expression(
                  +1250            exp.Create,
                  +1251            this=this,
                  +1252            kind=create_token.text,
                  +1253            replace=replace,
                  +1254            unique=unique,
                  +1255            expression=expression,
                  +1256            exists=exists,
                  +1257            properties=properties,
                  +1258            indexes=indexes,
                  +1259            no_schema_binding=no_schema_binding,
                  +1260            begin=begin,
                  +1261            clone=clone,
                  +1262        )
                   1263
                  -1264        if self._match_pair(TokenType.DEFAULT, TokenType.CHARACTER_SET):
                  -1265            return self._parse_character_set(default=True)
                  -1266
                  -1267        if self._match_text_seq("COMPOUND", "SORTKEY"):
                  -1268            return self._parse_sortkey(compound=True)
                  -1269
                  -1270        if self._match_text_seq("SQL", "SECURITY"):
                  -1271            return self.expression(exp.SqlSecurityProperty, definer=self._match_text_seq("DEFINER"))
                  -1272
                  -1273        assignment = self._match_pair(
                  -1274            TokenType.VAR, TokenType.EQ, advance=False
                  -1275        ) or self._match_pair(TokenType.STRING, TokenType.EQ, advance=False)
                  -1276
                  -1277        if assignment:
                  -1278            key = self._parse_var_or_string()
                  -1279            self._match(TokenType.EQ)
                  -1280            return self.expression(exp.Property, this=key, value=self._parse_column())
                  -1281
                  -1282        return None
                  -1283
                  -1284    def _parse_stored(self) -> exp.Expression:
                  -1285        self._match(TokenType.ALIAS)
                  +1264    def _parse_property_before(self) -> t.Optional[exp.Expression]:
                  +1265        # only used for teradata currently
                  +1266        self._match(TokenType.COMMA)
                  +1267
                  +1268        kwargs = {
                  +1269            "no": self._match_text_seq("NO"),
                  +1270            "dual": self._match_text_seq("DUAL"),
                  +1271            "before": self._match_text_seq("BEFORE"),
                  +1272            "default": self._match_text_seq("DEFAULT"),
                  +1273            "local": (self._match_text_seq("LOCAL") and "LOCAL")
                  +1274            or (self._match_text_seq("NOT", "LOCAL") and "NOT LOCAL"),
                  +1275            "after": self._match_text_seq("AFTER"),
                  +1276            "minimum": self._match_texts(("MIN", "MINIMUM")),
                  +1277            "maximum": self._match_texts(("MAX", "MAXIMUM")),
                  +1278        }
                  +1279
                  +1280        if self._match_texts(self.PROPERTY_PARSERS):
                  +1281            parser = self.PROPERTY_PARSERS[self._prev.text.upper()]
                  +1282            try:
                  +1283                return parser(self, **{k: v for k, v in kwargs.items() if v})
                  +1284            except TypeError:
                  +1285                self.raise_error(f"Cannot parse property '{self._prev.text}'")
                   1286
                  -1287        input_format = self._parse_string() if self._match_text_seq("INPUTFORMAT") else None
                  -1288        output_format = self._parse_string() if self._match_text_seq("OUTPUTFORMAT") else None
                  -1289
                  -1290        return self.expression(
                  -1291            exp.FileFormatProperty,
                  -1292            this=self.expression(
                  -1293                exp.InputOutputFormat, input_format=input_format, output_format=output_format
                  -1294            )
                  -1295            if input_format or output_format
                  -1296            else self._parse_var_or_string() or self._parse_number() or self._parse_id_var(),
                  -1297        )
                  +1287        return None
                  +1288
                  +1289    def _parse_property(self) -> t.Optional[exp.Expression]:
                  +1290        if self._match_texts(self.PROPERTY_PARSERS):
                  +1291            return self.PROPERTY_PARSERS[self._prev.text.upper()](self)
                  +1292
                  +1293        if self._match_pair(TokenType.DEFAULT, TokenType.CHARACTER_SET):
                  +1294            return self._parse_character_set(default=True)
                  +1295
                  +1296        if self._match_text_seq("COMPOUND", "SORTKEY"):
                  +1297            return self._parse_sortkey(compound=True)
                   1298
                  -1299    def _parse_property_assignment(self, exp_class: t.Type[exp.Expression]) -> exp.Expression:
                  -1300        self._match(TokenType.EQ)
                  -1301        self._match(TokenType.ALIAS)
                  -1302        return self.expression(exp_class, this=self._parse_field())
                  -1303
                  -1304    def _parse_properties(self, before: t.Optional[bool] = None) -> t.Optional[exp.Expression]:
                  -1305        properties = []
                  -1306
                  -1307        while True:
                  -1308            if before:
                  -1309                prop = self._parse_property_before()
                  -1310            else:
                  -1311                prop = self._parse_property()
                  +1299        if self._match_text_seq("SQL", "SECURITY"):
                  +1300            return self.expression(exp.SqlSecurityProperty, definer=self._match_text_seq("DEFINER"))
                  +1301
                  +1302        assignment = self._match_pair(
                  +1303            TokenType.VAR, TokenType.EQ, advance=False
                  +1304        ) or self._match_pair(TokenType.STRING, TokenType.EQ, advance=False)
                  +1305
                  +1306        if assignment:
                  +1307            key = self._parse_var_or_string()
                  +1308            self._match(TokenType.EQ)
                  +1309            return self.expression(exp.Property, this=key, value=self._parse_column())
                  +1310
                  +1311        return None
                   1312
                  -1313            if not prop:
                  -1314                break
                  -1315            for p in ensure_list(prop):
                  -1316                properties.append(p)
                  -1317
                  -1318        if properties:
                  -1319            return self.expression(exp.Properties, expressions=properties)
                  -1320
                  -1321        return None
                  -1322
                  -1323    def _parse_fallback(self, no: bool = False) -> exp.Expression:
                  -1324        return self.expression(
                  -1325            exp.FallbackProperty, no=no, protection=self._match_text_seq("PROTECTION")
                  +1313    def _parse_stored(self) -> exp.Expression:
                  +1314        self._match(TokenType.ALIAS)
                  +1315
                  +1316        input_format = self._parse_string() if self._match_text_seq("INPUTFORMAT") else None
                  +1317        output_format = self._parse_string() if self._match_text_seq("OUTPUTFORMAT") else None
                  +1318
                  +1319        return self.expression(
                  +1320            exp.FileFormatProperty,
                  +1321            this=self.expression(
                  +1322                exp.InputOutputFormat, input_format=input_format, output_format=output_format
                  +1323            )
                  +1324            if input_format or output_format
                  +1325            else self._parse_var_or_string() or self._parse_number() or self._parse_id_var(),
                   1326        )
                   1327
                  -1328    def _parse_volatile_property(self) -> exp.Expression:
                  -1329        if self._index >= 2:
                  -1330            pre_volatile_token = self._tokens[self._index - 2]
                  -1331        else:
                  -1332            pre_volatile_token = None
                  -1333
                  -1334        if pre_volatile_token and pre_volatile_token.token_type in (
                  -1335            TokenType.CREATE,
                  -1336            TokenType.REPLACE,
                  -1337            TokenType.UNIQUE,
                  -1338        ):
                  -1339            return exp.VolatileProperty()
                  -1340
                  -1341        return self.expression(exp.StabilityProperty, this=exp.Literal.string("VOLATILE"))
                  -1342
                  -1343    def _parse_with_property(
                  -1344        self,
                  -1345    ) -> t.Union[t.Optional[exp.Expression], t.List[t.Optional[exp.Expression]]]:
                  -1346        self._match(TokenType.WITH)
                  -1347        if self._match(TokenType.L_PAREN, advance=False):
                  -1348            return self._parse_wrapped_csv(self._parse_property)
                  +1328    def _parse_property_assignment(self, exp_class: t.Type[exp.Expression]) -> exp.Expression:
                  +1329        self._match(TokenType.EQ)
                  +1330        self._match(TokenType.ALIAS)
                  +1331        return self.expression(exp_class, this=self._parse_field())
                  +1332
                  +1333    def _parse_properties(self, before: t.Optional[bool] = None) -> t.Optional[exp.Expression]:
                  +1334        properties = []
                  +1335
                  +1336        while True:
                  +1337            if before:
                  +1338                prop = self._parse_property_before()
                  +1339            else:
                  +1340                prop = self._parse_property()
                  +1341
                  +1342            if not prop:
                  +1343                break
                  +1344            for p in ensure_list(prop):
                  +1345                properties.append(p)
                  +1346
                  +1347        if properties:
                  +1348            return self.expression(exp.Properties, expressions=properties)
                   1349
                  -1350        if self._match_text_seq("JOURNAL"):
                  -1351            return self._parse_withjournaltable()
                  -1352
                  -1353        if self._match_text_seq("DATA"):
                  -1354            return self._parse_withdata(no=False)
                  -1355        elif self._match_text_seq("NO", "DATA"):
                  -1356            return self._parse_withdata(no=True)
                  -1357
                  -1358        if not self._next:
                  -1359            return None
                  -1360
                  -1361        return self._parse_withisolatedloading()
                  +1350        return None
                  +1351
                  +1352    def _parse_fallback(self, no: bool = False) -> exp.Expression:
                  +1353        return self.expression(
                  +1354            exp.FallbackProperty, no=no, protection=self._match_text_seq("PROTECTION")
                  +1355        )
                  +1356
                  +1357    def _parse_volatile_property(self) -> exp.Expression:
                  +1358        if self._index >= 2:
                  +1359            pre_volatile_token = self._tokens[self._index - 2]
                  +1360        else:
                  +1361            pre_volatile_token = None
                   1362
                  -1363    # https://dev.mysql.com/doc/refman/8.0/en/create-view.html
                  -1364    def _parse_definer(self) -> t.Optional[exp.Expression]:
                  -1365        self._match(TokenType.EQ)
                  -1366
                  -1367        user = self._parse_id_var()
                  -1368        self._match(TokenType.PARAMETER)
                  -1369        host = self._parse_id_var() or (self._match(TokenType.MOD) and self._prev.text)
                  -1370
                  -1371        if not user or not host:
                  -1372            return None
                  -1373
                  -1374        return exp.DefinerProperty(this=f"{user}@{host}")
                  -1375
                  -1376    def _parse_withjournaltable(self) -> exp.Expression:
                  -1377        self._match(TokenType.TABLE)
                  -1378        self._match(TokenType.EQ)
                  -1379        return self.expression(exp.WithJournalTableProperty, this=self._parse_table_parts())
                  -1380
                  -1381    def _parse_log(self, no: bool = False) -> exp.Expression:
                  -1382        return self.expression(exp.LogProperty, no=no)
                  -1383
                  -1384    def _parse_journal(self, **kwargs) -> exp.Expression:
                  -1385        return self.expression(exp.JournalProperty, **kwargs)
                  +1363        if pre_volatile_token and pre_volatile_token.token_type in (
                  +1364            TokenType.CREATE,
                  +1365            TokenType.REPLACE,
                  +1366            TokenType.UNIQUE,
                  +1367        ):
                  +1368            return exp.VolatileProperty()
                  +1369
                  +1370        return self.expression(exp.StabilityProperty, this=exp.Literal.string("VOLATILE"))
                  +1371
                  +1372    def _parse_with_property(
                  +1373        self,
                  +1374    ) -> t.Union[t.Optional[exp.Expression], t.List[t.Optional[exp.Expression]]]:
                  +1375        self._match(TokenType.WITH)
                  +1376        if self._match(TokenType.L_PAREN, advance=False):
                  +1377            return self._parse_wrapped_csv(self._parse_property)
                  +1378
                  +1379        if self._match_text_seq("JOURNAL"):
                  +1380            return self._parse_withjournaltable()
                  +1381
                  +1382        if self._match_text_seq("DATA"):
                  +1383            return self._parse_withdata(no=False)
                  +1384        elif self._match_text_seq("NO", "DATA"):
                  +1385            return self._parse_withdata(no=True)
                   1386
                  -1387    def _parse_checksum(self) -> exp.Expression:
                  -1388        self._match(TokenType.EQ)
                  +1387        if not self._next:
                  +1388            return None
                   1389
                  -1390        on = None
                  -1391        if self._match(TokenType.ON):
                  -1392            on = True
                  -1393        elif self._match_text_seq("OFF"):
                  -1394            on = False
                  -1395        default = self._match(TokenType.DEFAULT)
                  -1396
                  -1397        return self.expression(
                  -1398            exp.ChecksumProperty,
                  -1399            on=on,
                  -1400            default=default,
                  -1401        )
                  +1390        return self._parse_withisolatedloading()
                  +1391
                  +1392    # https://dev.mysql.com/doc/refman/8.0/en/create-view.html
                  +1393    def _parse_definer(self) -> t.Optional[exp.Expression]:
                  +1394        self._match(TokenType.EQ)
                  +1395
                  +1396        user = self._parse_id_var()
                  +1397        self._match(TokenType.PARAMETER)
                  +1398        host = self._parse_id_var() or (self._match(TokenType.MOD) and self._prev.text)
                  +1399
                  +1400        if not user or not host:
                  +1401            return None
                   1402
                  -1403    def _parse_cluster(self) -> t.Optional[exp.Expression]:
                  -1404        if not self._match_text_seq("BY"):
                  -1405            self._retreat(self._index - 1)
                  -1406            return None
                  -1407        return self.expression(
                  -1408            exp.Cluster,
                  -1409            expressions=self._parse_csv(self._parse_ordered),
                  -1410        )
                  -1411
                  -1412    def _parse_freespace(self) -> exp.Expression:
                  -1413        self._match(TokenType.EQ)
                  -1414        return self.expression(
                  -1415            exp.FreespaceProperty, this=self._parse_number(), percent=self._match(TokenType.PERCENT)
                  -1416        )
                  -1417
                  -1418    def _parse_mergeblockratio(self, no: bool = False, default: bool = False) -> exp.Expression:
                  -1419        if self._match(TokenType.EQ):
                  -1420            return self.expression(
                  -1421                exp.MergeBlockRatioProperty,
                  -1422                this=self._parse_number(),
                  -1423                percent=self._match(TokenType.PERCENT),
                  -1424            )
                  -1425        return self.expression(
                  -1426            exp.MergeBlockRatioProperty,
                  -1427            no=no,
                  -1428            default=default,
                  -1429        )
                  -1430
                  -1431    def _parse_datablocksize(
                  -1432        self,
                  -1433        default: t.Optional[bool] = None,
                  -1434        minimum: t.Optional[bool] = None,
                  -1435        maximum: t.Optional[bool] = None,
                  -1436    ) -> exp.Expression:
                  -1437        self._match(TokenType.EQ)
                  -1438        size = self._parse_number()
                  -1439        units = None
                  -1440        if self._match_texts(("BYTES", "KBYTES", "KILOBYTES")):
                  -1441            units = self._prev.text
                  -1442        return self.expression(
                  -1443            exp.DataBlocksizeProperty,
                  -1444            size=size,
                  -1445            units=units,
                  -1446            default=default,
                  -1447            minimum=minimum,
                  -1448            maximum=maximum,
                  -1449        )
                  -1450
                  -1451    def _parse_blockcompression(self) -> exp.Expression:
                  -1452        self._match(TokenType.EQ)
                  -1453        always = self._match_text_seq("ALWAYS")
                  -1454        manual = self._match_text_seq("MANUAL")
                  -1455        never = self._match_text_seq("NEVER")
                  -1456        default = self._match_text_seq("DEFAULT")
                  -1457        autotemp = None
                  -1458        if self._match_text_seq("AUTOTEMP"):
                  -1459            autotemp = self._parse_schema()
                  -1460
                  -1461        return self.expression(
                  -1462            exp.BlockCompressionProperty,
                  -1463            always=always,
                  -1464            manual=manual,
                  -1465            never=never,
                  -1466            default=default,
                  -1467            autotemp=autotemp,
                  -1468        )
                  -1469
                  -1470    def _parse_withisolatedloading(self) -> exp.Expression:
                  -1471        no = self._match_text_seq("NO")
                  -1472        concurrent = self._match_text_seq("CONCURRENT")
                  -1473        self._match_text_seq("ISOLATED", "LOADING")
                  -1474        for_all = self._match_text_seq("FOR", "ALL")
                  -1475        for_insert = self._match_text_seq("FOR", "INSERT")
                  -1476        for_none = self._match_text_seq("FOR", "NONE")
                  -1477        return self.expression(
                  -1478            exp.IsolatedLoadingProperty,
                  -1479            no=no,
                  -1480            concurrent=concurrent,
                  -1481            for_all=for_all,
                  -1482            for_insert=for_insert,
                  -1483            for_none=for_none,
                  -1484        )
                  -1485
                  -1486    def _parse_locking(self) -> exp.Expression:
                  -1487        if self._match(TokenType.TABLE):
                  -1488            kind = "TABLE"
                  -1489        elif self._match(TokenType.VIEW):
                  -1490            kind = "VIEW"
                  -1491        elif self._match(TokenType.ROW):
                  -1492            kind = "ROW"
                  -1493        elif self._match_text_seq("DATABASE"):
                  -1494            kind = "DATABASE"
                  -1495        else:
                  -1496            kind = None
                  -1497
                  -1498        if kind in ("DATABASE", "TABLE", "VIEW"):
                  -1499            this = self._parse_table_parts()
                  -1500        else:
                  -1501            this = None
                  -1502
                  -1503        if self._match(TokenType.FOR):
                  -1504            for_or_in = "FOR"
                  -1505        elif self._match(TokenType.IN):
                  -1506            for_or_in = "IN"
                  -1507        else:
                  -1508            for_or_in = None
                  -1509
                  -1510        if self._match_text_seq("ACCESS"):
                  -1511            lock_type = "ACCESS"
                  -1512        elif self._match_texts(("EXCL", "EXCLUSIVE")):
                  -1513            lock_type = "EXCLUSIVE"
                  -1514        elif self._match_text_seq("SHARE"):
                  -1515            lock_type = "SHARE"
                  -1516        elif self._match_text_seq("READ"):
                  -1517            lock_type = "READ"
                  -1518        elif self._match_text_seq("WRITE"):
                  -1519            lock_type = "WRITE"
                  -1520        elif self._match_text_seq("CHECKSUM"):
                  -1521            lock_type = "CHECKSUM"
                  -1522        else:
                  -1523            lock_type = None
                  -1524
                  -1525        override = self._match_text_seq("OVERRIDE")
                  +1403        return exp.DefinerProperty(this=f"{user}@{host}")
                  +1404
                  +1405    def _parse_withjournaltable(self) -> exp.Expression:
                  +1406        self._match(TokenType.TABLE)
                  +1407        self._match(TokenType.EQ)
                  +1408        return self.expression(exp.WithJournalTableProperty, this=self._parse_table_parts())
                  +1409
                  +1410    def _parse_log(self, no: bool = False) -> exp.Expression:
                  +1411        return self.expression(exp.LogProperty, no=no)
                  +1412
                  +1413    def _parse_journal(self, **kwargs) -> exp.Expression:
                  +1414        return self.expression(exp.JournalProperty, **kwargs)
                  +1415
                  +1416    def _parse_checksum(self) -> exp.Expression:
                  +1417        self._match(TokenType.EQ)
                  +1418
                  +1419        on = None
                  +1420        if self._match(TokenType.ON):
                  +1421            on = True
                  +1422        elif self._match_text_seq("OFF"):
                  +1423            on = False
                  +1424        default = self._match(TokenType.DEFAULT)
                  +1425
                  +1426        return self.expression(
                  +1427            exp.ChecksumProperty,
                  +1428            on=on,
                  +1429            default=default,
                  +1430        )
                  +1431
                  +1432    def _parse_cluster(self) -> t.Optional[exp.Expression]:
                  +1433        if not self._match_text_seq("BY"):
                  +1434            self._retreat(self._index - 1)
                  +1435            return None
                  +1436        return self.expression(
                  +1437            exp.Cluster,
                  +1438            expressions=self._parse_csv(self._parse_ordered),
                  +1439        )
                  +1440
                  +1441    def _parse_freespace(self) -> exp.Expression:
                  +1442        self._match(TokenType.EQ)
                  +1443        return self.expression(
                  +1444            exp.FreespaceProperty, this=self._parse_number(), percent=self._match(TokenType.PERCENT)
                  +1445        )
                  +1446
                  +1447    def _parse_mergeblockratio(self, no: bool = False, default: bool = False) -> exp.Expression:
                  +1448        if self._match(TokenType.EQ):
                  +1449            return self.expression(
                  +1450                exp.MergeBlockRatioProperty,
                  +1451                this=self._parse_number(),
                  +1452                percent=self._match(TokenType.PERCENT),
                  +1453            )
                  +1454        return self.expression(
                  +1455            exp.MergeBlockRatioProperty,
                  +1456            no=no,
                  +1457            default=default,
                  +1458        )
                  +1459
                  +1460    def _parse_datablocksize(
                  +1461        self,
                  +1462        default: t.Optional[bool] = None,
                  +1463        minimum: t.Optional[bool] = None,
                  +1464        maximum: t.Optional[bool] = None,
                  +1465    ) -> exp.Expression:
                  +1466        self._match(TokenType.EQ)
                  +1467        size = self._parse_number()
                  +1468        units = None
                  +1469        if self._match_texts(("BYTES", "KBYTES", "KILOBYTES")):
                  +1470            units = self._prev.text
                  +1471        return self.expression(
                  +1472            exp.DataBlocksizeProperty,
                  +1473            size=size,
                  +1474            units=units,
                  +1475            default=default,
                  +1476            minimum=minimum,
                  +1477            maximum=maximum,
                  +1478        )
                  +1479
                  +1480    def _parse_blockcompression(self) -> exp.Expression:
                  +1481        self._match(TokenType.EQ)
                  +1482        always = self._match_text_seq("ALWAYS")
                  +1483        manual = self._match_text_seq("MANUAL")
                  +1484        never = self._match_text_seq("NEVER")
                  +1485        default = self._match_text_seq("DEFAULT")
                  +1486        autotemp = None
                  +1487        if self._match_text_seq("AUTOTEMP"):
                  +1488            autotemp = self._parse_schema()
                  +1489
                  +1490        return self.expression(
                  +1491            exp.BlockCompressionProperty,
                  +1492            always=always,
                  +1493            manual=manual,
                  +1494            never=never,
                  +1495            default=default,
                  +1496            autotemp=autotemp,
                  +1497        )
                  +1498
                  +1499    def _parse_withisolatedloading(self) -> exp.Expression:
                  +1500        no = self._match_text_seq("NO")
                  +1501        concurrent = self._match_text_seq("CONCURRENT")
                  +1502        self._match_text_seq("ISOLATED", "LOADING")
                  +1503        for_all = self._match_text_seq("FOR", "ALL")
                  +1504        for_insert = self._match_text_seq("FOR", "INSERT")
                  +1505        for_none = self._match_text_seq("FOR", "NONE")
                  +1506        return self.expression(
                  +1507            exp.IsolatedLoadingProperty,
                  +1508            no=no,
                  +1509            concurrent=concurrent,
                  +1510            for_all=for_all,
                  +1511            for_insert=for_insert,
                  +1512            for_none=for_none,
                  +1513        )
                  +1514
                  +1515    def _parse_locking(self) -> exp.Expression:
                  +1516        if self._match(TokenType.TABLE):
                  +1517            kind = "TABLE"
                  +1518        elif self._match(TokenType.VIEW):
                  +1519            kind = "VIEW"
                  +1520        elif self._match(TokenType.ROW):
                  +1521            kind = "ROW"
                  +1522        elif self._match_text_seq("DATABASE"):
                  +1523            kind = "DATABASE"
                  +1524        else:
                  +1525            kind = None
                   1526
                  -1527        return self.expression(
                  -1528            exp.LockingProperty,
                  -1529            this=this,
                  -1530            kind=kind,
                  -1531            for_or_in=for_or_in,
                  -1532            lock_type=lock_type,
                  -1533            override=override,
                  -1534        )
                  -1535
                  -1536    def _parse_partition_by(self) -> t.List[t.Optional[exp.Expression]]:
                  -1537        if self._match(TokenType.PARTITION_BY):
                  -1538            return self._parse_csv(self._parse_conjunction)
                  -1539        return []
                  -1540
                  -1541    def _parse_partitioned_by(self) -> exp.Expression:
                  -1542        self._match(TokenType.EQ)
                  -1543        return self.expression(
                  -1544            exp.PartitionedByProperty,
                  -1545            this=self._parse_schema() or self._parse_bracket(self._parse_field()),
                  -1546        )
                  -1547
                  -1548    def _parse_withdata(self, no: bool = False) -> exp.Expression:
                  -1549        if self._match_text_seq("AND", "STATISTICS"):
                  -1550            statistics = True
                  -1551        elif self._match_text_seq("AND", "NO", "STATISTICS"):
                  -1552            statistics = False
                  -1553        else:
                  -1554            statistics = None
                  +1527        if kind in ("DATABASE", "TABLE", "VIEW"):
                  +1528            this = self._parse_table_parts()
                  +1529        else:
                  +1530            this = None
                  +1531
                  +1532        if self._match(TokenType.FOR):
                  +1533            for_or_in = "FOR"
                  +1534        elif self._match(TokenType.IN):
                  +1535            for_or_in = "IN"
                  +1536        else:
                  +1537            for_or_in = None
                  +1538
                  +1539        if self._match_text_seq("ACCESS"):
                  +1540            lock_type = "ACCESS"
                  +1541        elif self._match_texts(("EXCL", "EXCLUSIVE")):
                  +1542            lock_type = "EXCLUSIVE"
                  +1543        elif self._match_text_seq("SHARE"):
                  +1544            lock_type = "SHARE"
                  +1545        elif self._match_text_seq("READ"):
                  +1546            lock_type = "READ"
                  +1547        elif self._match_text_seq("WRITE"):
                  +1548            lock_type = "WRITE"
                  +1549        elif self._match_text_seq("CHECKSUM"):
                  +1550            lock_type = "CHECKSUM"
                  +1551        else:
                  +1552            lock_type = None
                  +1553
                  +1554        override = self._match_text_seq("OVERRIDE")
                   1555
                  -1556        return self.expression(exp.WithDataProperty, no=no, statistics=statistics)
                  -1557
                  -1558    def _parse_no_property(self) -> t.Optional[exp.Property]:
                  -1559        if self._match_text_seq("PRIMARY", "INDEX"):
                  -1560            return exp.NoPrimaryIndexProperty()
                  -1561        return None
                  -1562
                  -1563    def _parse_on_property(self) -> t.Optional[exp.Property]:
                  -1564        if self._match_text_seq("COMMIT", "PRESERVE", "ROWS"):
                  -1565            return exp.OnCommitProperty()
                  -1566        elif self._match_text_seq("COMMIT", "DELETE", "ROWS"):
                  -1567            return exp.OnCommitProperty(delete=True)
                  -1568        return None
                  +1556        return self.expression(
                  +1557            exp.LockingProperty,
                  +1558            this=this,
                  +1559            kind=kind,
                  +1560            for_or_in=for_or_in,
                  +1561            lock_type=lock_type,
                  +1562            override=override,
                  +1563        )
                  +1564
                  +1565    def _parse_partition_by(self) -> t.List[t.Optional[exp.Expression]]:
                  +1566        if self._match(TokenType.PARTITION_BY):
                  +1567            return self._parse_csv(self._parse_conjunction)
                  +1568        return []
                   1569
                  -1570    def _parse_distkey(self) -> exp.Expression:
                  -1571        return self.expression(exp.DistKeyProperty, this=self._parse_wrapped(self._parse_id_var))
                  -1572
                  -1573    def _parse_create_like(self) -> t.Optional[exp.Expression]:
                  -1574        table = self._parse_table(schema=True)
                  -1575        options = []
                  -1576        while self._match_texts(("INCLUDING", "EXCLUDING")):
                  -1577            this = self._prev.text.upper()
                  -1578            id_var = self._parse_id_var()
                  -1579
                  -1580            if not id_var:
                  -1581                return None
                  -1582
                  -1583            options.append(
                  -1584                self.expression(
                  -1585                    exp.Property,
                  -1586                    this=this,
                  -1587                    value=exp.Var(this=id_var.this.upper()),
                  -1588                )
                  -1589            )
                  -1590        return self.expression(exp.LikeProperty, this=table, expressions=options)
                  +1570    def _parse_partitioned_by(self) -> exp.Expression:
                  +1571        self._match(TokenType.EQ)
                  +1572        return self.expression(
                  +1573            exp.PartitionedByProperty,
                  +1574            this=self._parse_schema() or self._parse_bracket(self._parse_field()),
                  +1575        )
                  +1576
                  +1577    def _parse_withdata(self, no: bool = False) -> exp.Expression:
                  +1578        if self._match_text_seq("AND", "STATISTICS"):
                  +1579            statistics = True
                  +1580        elif self._match_text_seq("AND", "NO", "STATISTICS"):
                  +1581            statistics = False
                  +1582        else:
                  +1583            statistics = None
                  +1584
                  +1585        return self.expression(exp.WithDataProperty, no=no, statistics=statistics)
                  +1586
                  +1587    def _parse_no_property(self) -> t.Optional[exp.Property]:
                  +1588        if self._match_text_seq("PRIMARY", "INDEX"):
                  +1589            return exp.NoPrimaryIndexProperty()
                  +1590        return None
                   1591
                  -1592    def _parse_sortkey(self, compound: bool = False) -> exp.Expression:
                  -1593        return self.expression(
                  -1594            exp.SortKeyProperty, this=self._parse_wrapped_csv(self._parse_id_var), compound=compound
                  -1595        )
                  -1596
                  -1597    def _parse_character_set(self, default: bool = False) -> exp.Expression:
                  -1598        self._match(TokenType.EQ)
                  -1599        return self.expression(
                  -1600            exp.CharacterSetProperty, this=self._parse_var_or_string(), default=default
                  -1601        )
                  -1602
                  -1603    def _parse_returns(self) -> exp.Expression:
                  -1604        value: t.Optional[exp.Expression]
                  -1605        is_table = self._match(TokenType.TABLE)
                  -1606
                  -1607        if is_table:
                  -1608            if self._match(TokenType.LT):
                  -1609                value = self.expression(
                  -1610                    exp.Schema,
                  -1611                    this="TABLE",
                  -1612                    expressions=self._parse_csv(self._parse_struct_types),
                  -1613                )
                  -1614                if not self._match(TokenType.GT):
                  -1615                    self.raise_error("Expecting >")
                  -1616            else:
                  -1617                value = self._parse_schema(exp.Var(this="TABLE"))
                  -1618        else:
                  -1619            value = self._parse_types()
                  +1592    def _parse_on_property(self) -> t.Optional[exp.Property]:
                  +1593        if self._match_text_seq("COMMIT", "PRESERVE", "ROWS"):
                  +1594            return exp.OnCommitProperty()
                  +1595        elif self._match_text_seq("COMMIT", "DELETE", "ROWS"):
                  +1596            return exp.OnCommitProperty(delete=True)
                  +1597        return None
                  +1598
                  +1599    def _parse_distkey(self) -> exp.Expression:
                  +1600        return self.expression(exp.DistKeyProperty, this=self._parse_wrapped(self._parse_id_var))
                  +1601
                  +1602    def _parse_create_like(self) -> t.Optional[exp.Expression]:
                  +1603        table = self._parse_table(schema=True)
                  +1604        options = []
                  +1605        while self._match_texts(("INCLUDING", "EXCLUDING")):
                  +1606            this = self._prev.text.upper()
                  +1607            id_var = self._parse_id_var()
                  +1608
                  +1609            if not id_var:
                  +1610                return None
                  +1611
                  +1612            options.append(
                  +1613                self.expression(
                  +1614                    exp.Property,
                  +1615                    this=this,
                  +1616                    value=exp.Var(this=id_var.this.upper()),
                  +1617                )
                  +1618            )
                  +1619        return self.expression(exp.LikeProperty, this=table, expressions=options)
                   1620
                  -1621        return self.expression(exp.ReturnsProperty, this=value, is_table=is_table)
                  -1622
                  -1623    def _parse_describe(self) -> exp.Expression:
                  -1624        kind = self._match_set(self.CREATABLES) and self._prev.text
                  -1625        this = self._parse_table()
                  -1626
                  -1627        return self.expression(exp.Describe, this=this, kind=kind)
                  -1628
                  -1629    def _parse_insert(self) -> exp.Expression:
                  -1630        overwrite = self._match(TokenType.OVERWRITE)
                  -1631        local = self._match_text_seq("LOCAL")
                  -1632        alternative = None
                  -1633
                  -1634        if self._match_text_seq("DIRECTORY"):
                  -1635            this: t.Optional[exp.Expression] = self.expression(
                  -1636                exp.Directory,
                  -1637                this=self._parse_var_or_string(),
                  -1638                local=local,
                  -1639                row_format=self._parse_row_format(match_row=True),
                  -1640            )
                  -1641        else:
                  -1642            if self._match(TokenType.OR):
                  -1643                alternative = self._match_texts(self.INSERT_ALTERNATIVES) and self._prev.text
                  -1644
                  -1645            self._match(TokenType.INTO)
                  -1646            self._match(TokenType.TABLE)
                  -1647            this = self._parse_table(schema=True)
                  -1648
                  -1649        return self.expression(
                  -1650            exp.Insert,
                  -1651            this=this,
                  -1652            exists=self._parse_exists(),
                  -1653            partition=self._parse_partition(),
                  -1654            expression=self._parse_ddl_select(),
                  -1655            conflict=self._parse_on_conflict(),
                  -1656            returning=self._parse_returning(),
                  -1657            overwrite=overwrite,
                  -1658            alternative=alternative,
                  -1659        )
                  -1660
                  -1661    def _parse_on_conflict(self) -> t.Optional[exp.Expression]:
                  -1662        conflict = self._match_text_seq("ON", "CONFLICT")
                  -1663        duplicate = self._match_text_seq("ON", "DUPLICATE", "KEY")
                  -1664
                  -1665        if not (conflict or duplicate):
                  -1666            return None
                  -1667
                  -1668        nothing = None
                  -1669        expressions = None
                  -1670        key = None
                  -1671        constraint = None
                  -1672
                  -1673        if conflict:
                  -1674            if self._match_text_seq("ON", "CONSTRAINT"):
                  -1675                constraint = self._parse_id_var()
                  -1676            else:
                  -1677                key = self._parse_csv(self._parse_value)
                  -1678
                  -1679        self._match_text_seq("DO")
                  -1680        if self._match_text_seq("NOTHING"):
                  -1681            nothing = True
                  -1682        else:
                  -1683            self._match(TokenType.UPDATE)
                  -1684            expressions = self._match(TokenType.SET) and self._parse_csv(self._parse_equality)
                  -1685
                  -1686        return self.expression(
                  -1687            exp.OnConflict,
                  -1688            duplicate=duplicate,
                  -1689            expressions=expressions,
                  -1690            nothing=nothing,
                  -1691            key=key,
                  -1692            constraint=constraint,
                  -1693        )
                  -1694
                  -1695    def _parse_returning(self) -> t.Optional[exp.Expression]:
                  -1696        if not self._match(TokenType.RETURNING):
                  -1697            return None
                  -1698
                  -1699        return self.expression(exp.Returning, expressions=self._parse_csv(self._parse_column))
                  -1700
                  -1701    def _parse_row(self) -> t.Optional[exp.Expression]:
                  -1702        if not self._match(TokenType.FORMAT):
                  -1703            return None
                  -1704        return self._parse_row_format()
                  -1705
                  -1706    def _parse_row_format(self, match_row: bool = False) -> t.Optional[exp.Expression]:
                  -1707        if match_row and not self._match_pair(TokenType.ROW, TokenType.FORMAT):
                  -1708            return None
                  -1709
                  -1710        if self._match_text_seq("SERDE"):
                  -1711            return self.expression(exp.RowFormatSerdeProperty, this=self._parse_string())
                  -1712
                  -1713        self._match_text_seq("DELIMITED")
                  +1621    def _parse_sortkey(self, compound: bool = False) -> exp.Expression:
                  +1622        return self.expression(
                  +1623            exp.SortKeyProperty, this=self._parse_wrapped_csv(self._parse_id_var), compound=compound
                  +1624        )
                  +1625
                  +1626    def _parse_character_set(self, default: bool = False) -> exp.Expression:
                  +1627        self._match(TokenType.EQ)
                  +1628        return self.expression(
                  +1629            exp.CharacterSetProperty, this=self._parse_var_or_string(), default=default
                  +1630        )
                  +1631
                  +1632    def _parse_returns(self) -> exp.Expression:
                  +1633        value: t.Optional[exp.Expression]
                  +1634        is_table = self._match(TokenType.TABLE)
                  +1635
                  +1636        if is_table:
                  +1637            if self._match(TokenType.LT):
                  +1638                value = self.expression(
                  +1639                    exp.Schema,
                  +1640                    this="TABLE",
                  +1641                    expressions=self._parse_csv(self._parse_struct_types),
                  +1642                )
                  +1643                if not self._match(TokenType.GT):
                  +1644                    self.raise_error("Expecting >")
                  +1645            else:
                  +1646                value = self._parse_schema(exp.Var(this="TABLE"))
                  +1647        else:
                  +1648            value = self._parse_types()
                  +1649
                  +1650        return self.expression(exp.ReturnsProperty, this=value, is_table=is_table)
                  +1651
                  +1652    def _parse_describe(self) -> exp.Expression:
                  +1653        kind = self._match_set(self.CREATABLES) and self._prev.text
                  +1654        this = self._parse_table()
                  +1655
                  +1656        return self.expression(exp.Describe, this=this, kind=kind)
                  +1657
                  +1658    def _parse_insert(self) -> exp.Expression:
                  +1659        overwrite = self._match(TokenType.OVERWRITE)
                  +1660        local = self._match_text_seq("LOCAL")
                  +1661        alternative = None
                  +1662
                  +1663        if self._match_text_seq("DIRECTORY"):
                  +1664            this: t.Optional[exp.Expression] = self.expression(
                  +1665                exp.Directory,
                  +1666                this=self._parse_var_or_string(),
                  +1667                local=local,
                  +1668                row_format=self._parse_row_format(match_row=True),
                  +1669            )
                  +1670        else:
                  +1671            if self._match(TokenType.OR):
                  +1672                alternative = self._match_texts(self.INSERT_ALTERNATIVES) and self._prev.text
                  +1673
                  +1674            self._match(TokenType.INTO)
                  +1675            self._match(TokenType.TABLE)
                  +1676            this = self._parse_table(schema=True)
                  +1677
                  +1678        return self.expression(
                  +1679            exp.Insert,
                  +1680            this=this,
                  +1681            exists=self._parse_exists(),
                  +1682            partition=self._parse_partition(),
                  +1683            expression=self._parse_ddl_select(),
                  +1684            conflict=self._parse_on_conflict(),
                  +1685            returning=self._parse_returning(),
                  +1686            overwrite=overwrite,
                  +1687            alternative=alternative,
                  +1688        )
                  +1689
                  +1690    def _parse_on_conflict(self) -> t.Optional[exp.Expression]:
                  +1691        conflict = self._match_text_seq("ON", "CONFLICT")
                  +1692        duplicate = self._match_text_seq("ON", "DUPLICATE", "KEY")
                  +1693
                  +1694        if not (conflict or duplicate):
                  +1695            return None
                  +1696
                  +1697        nothing = None
                  +1698        expressions = None
                  +1699        key = None
                  +1700        constraint = None
                  +1701
                  +1702        if conflict:
                  +1703            if self._match_text_seq("ON", "CONSTRAINT"):
                  +1704                constraint = self._parse_id_var()
                  +1705            else:
                  +1706                key = self._parse_csv(self._parse_value)
                  +1707
                  +1708        self._match_text_seq("DO")
                  +1709        if self._match_text_seq("NOTHING"):
                  +1710            nothing = True
                  +1711        else:
                  +1712            self._match(TokenType.UPDATE)
                  +1713            expressions = self._match(TokenType.SET) and self._parse_csv(self._parse_equality)
                   1714
                  -1715        kwargs = {}
                  -1716
                  -1717        if self._match_text_seq("FIELDS", "TERMINATED", "BY"):
                  -1718            kwargs["fields"] = self._parse_string()
                  -1719            if self._match_text_seq("ESCAPED", "BY"):
                  -1720                kwargs["escaped"] = self._parse_string()
                  -1721        if self._match_text_seq("COLLECTION", "ITEMS", "TERMINATED", "BY"):
                  -1722            kwargs["collection_items"] = self._parse_string()
                  -1723        if self._match_text_seq("MAP", "KEYS", "TERMINATED", "BY"):
                  -1724            kwargs["map_keys"] = self._parse_string()
                  -1725        if self._match_text_seq("LINES", "TERMINATED", "BY"):
                  -1726            kwargs["lines"] = self._parse_string()
                  -1727        if self._match_text_seq("NULL", "DEFINED", "AS"):
                  -1728            kwargs["null"] = self._parse_string()
                  +1715        return self.expression(
                  +1716            exp.OnConflict,
                  +1717            duplicate=duplicate,
                  +1718            expressions=expressions,
                  +1719            nothing=nothing,
                  +1720            key=key,
                  +1721            constraint=constraint,
                  +1722        )
                  +1723
                  +1724    def _parse_returning(self) -> t.Optional[exp.Expression]:
                  +1725        if not self._match(TokenType.RETURNING):
                  +1726            return None
                  +1727
                  +1728        return self.expression(exp.Returning, expressions=self._parse_csv(self._parse_column))
                   1729
                  -1730        return self.expression(exp.RowFormatDelimitedProperty, **kwargs)  # type: ignore
                  -1731
                  -1732    def _parse_load(self) -> exp.Expression:
                  -1733        if self._match_text_seq("DATA"):
                  -1734            local = self._match_text_seq("LOCAL")
                  -1735            self._match_text_seq("INPATH")
                  -1736            inpath = self._parse_string()
                  -1737            overwrite = self._match(TokenType.OVERWRITE)
                  -1738            self._match_pair(TokenType.INTO, TokenType.TABLE)
                  -1739
                  -1740            return self.expression(
                  -1741                exp.LoadData,
                  -1742                this=self._parse_table(schema=True),
                  -1743                local=local,
                  -1744                overwrite=overwrite,
                  -1745                inpath=inpath,
                  -1746                partition=self._parse_partition(),
                  -1747                input_format=self._match_text_seq("INPUTFORMAT") and self._parse_string(),
                  -1748                serde=self._match_text_seq("SERDE") and self._parse_string(),
                  -1749            )
                  -1750        return self._parse_as_command(self._prev)
                  -1751
                  -1752    def _parse_delete(self) -> exp.Expression:
                  -1753        self._match(TokenType.FROM)
                  -1754
                  -1755        return self.expression(
                  -1756            exp.Delete,
                  -1757            this=self._parse_table(),
                  -1758            using=self._parse_csv(lambda: self._match(TokenType.USING) and self._parse_table()),
                  -1759            where=self._parse_where(),
                  -1760            returning=self._parse_returning(),
                  -1761        )
                  -1762
                  -1763    def _parse_update(self) -> exp.Expression:
                  -1764        return self.expression(
                  -1765            exp.Update,
                  -1766            **{  # type: ignore
                  -1767                "this": self._parse_table(alias_tokens=self.UPDATE_ALIAS_TOKENS),
                  -1768                "expressions": self._match(TokenType.SET) and self._parse_csv(self._parse_equality),
                  -1769                "from": self._parse_from(modifiers=True),
                  -1770                "where": self._parse_where(),
                  -1771                "returning": self._parse_returning(),
                  -1772            },
                  -1773        )
                  -1774
                  -1775    def _parse_uncache(self) -> exp.Expression:
                  -1776        if not self._match(TokenType.TABLE):
                  -1777            self.raise_error("Expecting TABLE after UNCACHE")
                  -1778
                  -1779        return self.expression(
                  -1780            exp.Uncache,
                  -1781            exists=self._parse_exists(),
                  -1782            this=self._parse_table(schema=True),
                  -1783        )
                  -1784
                  -1785    def _parse_cache(self) -> exp.Expression:
                  -1786        lazy = self._match_text_seq("LAZY")
                  -1787        self._match(TokenType.TABLE)
                  -1788        table = self._parse_table(schema=True)
                  -1789        options = []
                  -1790
                  -1791        if self._match_text_seq("OPTIONS"):
                  -1792            self._match_l_paren()
                  -1793            k = self._parse_string()
                  -1794            self._match(TokenType.EQ)
                  -1795            v = self._parse_string()
                  -1796            options = [k, v]
                  -1797            self._match_r_paren()
                  -1798
                  -1799        self._match(TokenType.ALIAS)
                  -1800        return self.expression(
                  -1801            exp.Cache,
                  -1802            this=table,
                  -1803            lazy=lazy,
                  -1804            options=options,
                  -1805            expression=self._parse_select(nested=True),
                  -1806        )
                  +1730    def _parse_row(self) -> t.Optional[exp.Expression]:
                  +1731        if not self._match(TokenType.FORMAT):
                  +1732            return None
                  +1733        return self._parse_row_format()
                  +1734
                  +1735    def _parse_row_format(self, match_row: bool = False) -> t.Optional[exp.Expression]:
                  +1736        if match_row and not self._match_pair(TokenType.ROW, TokenType.FORMAT):
                  +1737            return None
                  +1738
                  +1739        if self._match_text_seq("SERDE"):
                  +1740            return self.expression(exp.RowFormatSerdeProperty, this=self._parse_string())
                  +1741
                  +1742        self._match_text_seq("DELIMITED")
                  +1743
                  +1744        kwargs = {}
                  +1745
                  +1746        if self._match_text_seq("FIELDS", "TERMINATED", "BY"):
                  +1747            kwargs["fields"] = self._parse_string()
                  +1748            if self._match_text_seq("ESCAPED", "BY"):
                  +1749                kwargs["escaped"] = self._parse_string()
                  +1750        if self._match_text_seq("COLLECTION", "ITEMS", "TERMINATED", "BY"):
                  +1751            kwargs["collection_items"] = self._parse_string()
                  +1752        if self._match_text_seq("MAP", "KEYS", "TERMINATED", "BY"):
                  +1753            kwargs["map_keys"] = self._parse_string()
                  +1754        if self._match_text_seq("LINES", "TERMINATED", "BY"):
                  +1755            kwargs["lines"] = self._parse_string()
                  +1756        if self._match_text_seq("NULL", "DEFINED", "AS"):
                  +1757            kwargs["null"] = self._parse_string()
                  +1758
                  +1759        return self.expression(exp.RowFormatDelimitedProperty, **kwargs)  # type: ignore
                  +1760
                  +1761    def _parse_load(self) -> exp.Expression:
                  +1762        if self._match_text_seq("DATA"):
                  +1763            local = self._match_text_seq("LOCAL")
                  +1764            self._match_text_seq("INPATH")
                  +1765            inpath = self._parse_string()
                  +1766            overwrite = self._match(TokenType.OVERWRITE)
                  +1767            self._match_pair(TokenType.INTO, TokenType.TABLE)
                  +1768
                  +1769            return self.expression(
                  +1770                exp.LoadData,
                  +1771                this=self._parse_table(schema=True),
                  +1772                local=local,
                  +1773                overwrite=overwrite,
                  +1774                inpath=inpath,
                  +1775                partition=self._parse_partition(),
                  +1776                input_format=self._match_text_seq("INPUTFORMAT") and self._parse_string(),
                  +1777                serde=self._match_text_seq("SERDE") and self._parse_string(),
                  +1778            )
                  +1779        return self._parse_as_command(self._prev)
                  +1780
                  +1781    def _parse_delete(self) -> exp.Expression:
                  +1782        self._match(TokenType.FROM)
                  +1783
                  +1784        return self.expression(
                  +1785            exp.Delete,
                  +1786            this=self._parse_table(),
                  +1787            using=self._parse_csv(lambda: self._match(TokenType.USING) and self._parse_table()),
                  +1788            where=self._parse_where(),
                  +1789            returning=self._parse_returning(),
                  +1790        )
                  +1791
                  +1792    def _parse_update(self) -> exp.Expression:
                  +1793        return self.expression(
                  +1794            exp.Update,
                  +1795            **{  # type: ignore
                  +1796                "this": self._parse_table(alias_tokens=self.UPDATE_ALIAS_TOKENS),
                  +1797                "expressions": self._match(TokenType.SET) and self._parse_csv(self._parse_equality),
                  +1798                "from": self._parse_from(modifiers=True),
                  +1799                "where": self._parse_where(),
                  +1800                "returning": self._parse_returning(),
                  +1801            },
                  +1802        )
                  +1803
                  +1804    def _parse_uncache(self) -> exp.Expression:
                  +1805        if not self._match(TokenType.TABLE):
                  +1806            self.raise_error("Expecting TABLE after UNCACHE")
                   1807
                  -1808    def _parse_partition(self) -> t.Optional[exp.Expression]:
                  -1809        if not self._match(TokenType.PARTITION):
                  -1810            return None
                  -1811
                  -1812        return self.expression(
                  -1813            exp.Partition, expressions=self._parse_wrapped_csv(self._parse_conjunction)
                  -1814        )
                  -1815
                  -1816    def _parse_value(self) -> exp.Expression:
                  -1817        if self._match(TokenType.L_PAREN):
                  -1818            expressions = self._parse_csv(self._parse_conjunction)
                  -1819            self._match_r_paren()
                  -1820            return self.expression(exp.Tuple, expressions=expressions)
                  -1821
                  -1822        # In presto we can have VALUES 1, 2 which results in 1 column & 2 rows.
                  -1823        # Source: https://prestodb.io/docs/current/sql/values.html
                  -1824        return self.expression(exp.Tuple, expressions=[self._parse_conjunction()])
                  -1825
                  -1826    def _parse_select(
                  -1827        self, nested: bool = False, table: bool = False, parse_subquery_alias: bool = True
                  -1828    ) -> t.Optional[exp.Expression]:
                  -1829        cte = self._parse_with()
                  -1830        if cte:
                  -1831            this = self._parse_statement()
                  -1832
                  -1833            if not this:
                  -1834                self.raise_error("Failed to parse any statement following CTE")
                  -1835                return cte
                  +1808        return self.expression(
                  +1809            exp.Uncache,
                  +1810            exists=self._parse_exists(),
                  +1811            this=self._parse_table(schema=True),
                  +1812        )
                  +1813
                  +1814    def _parse_cache(self) -> exp.Expression:
                  +1815        lazy = self._match_text_seq("LAZY")
                  +1816        self._match(TokenType.TABLE)
                  +1817        table = self._parse_table(schema=True)
                  +1818        options = []
                  +1819
                  +1820        if self._match_text_seq("OPTIONS"):
                  +1821            self._match_l_paren()
                  +1822            k = self._parse_string()
                  +1823            self._match(TokenType.EQ)
                  +1824            v = self._parse_string()
                  +1825            options = [k, v]
                  +1826            self._match_r_paren()
                  +1827
                  +1828        self._match(TokenType.ALIAS)
                  +1829        return self.expression(
                  +1830            exp.Cache,
                  +1831            this=table,
                  +1832            lazy=lazy,
                  +1833            options=options,
                  +1834            expression=self._parse_select(nested=True),
                  +1835        )
                   1836
                  -1837            if "with" in this.arg_types:
                  -1838                this.set("with", cte)
                  -1839            else:
                  -1840                self.raise_error(f"{this.key} does not support CTE")
                  -1841                this = cte
                  -1842        elif self._match(TokenType.SELECT):
                  -1843            comments = self._prev_comments
                  +1837    def _parse_partition(self) -> t.Optional[exp.Expression]:
                  +1838        if not self._match(TokenType.PARTITION):
                  +1839            return None
                  +1840
                  +1841        return self.expression(
                  +1842            exp.Partition, expressions=self._parse_wrapped_csv(self._parse_conjunction)
                  +1843        )
                   1844
                  -1845            hint = self._parse_hint()
                  -1846            all_ = self._match(TokenType.ALL)
                  -1847            distinct = self._match(TokenType.DISTINCT)
                  -1848
                  -1849            kind = (
                  -1850                self._match(TokenType.ALIAS)
                  -1851                and self._match_texts(("STRUCT", "VALUE"))
                  -1852                and self._prev.text
                  -1853            )
                  +1845    def _parse_value(self) -> exp.Expression:
                  +1846        if self._match(TokenType.L_PAREN):
                  +1847            expressions = self._parse_csv(self._parse_conjunction)
                  +1848            self._match_r_paren()
                  +1849            return self.expression(exp.Tuple, expressions=expressions)
                  +1850
                  +1851        # In presto we can have VALUES 1, 2 which results in 1 column & 2 rows.
                  +1852        # Source: https://prestodb.io/docs/current/sql/values.html
                  +1853        return self.expression(exp.Tuple, expressions=[self._parse_conjunction()])
                   1854
                  -1855            if distinct:
                  -1856                distinct = self.expression(
                  -1857                    exp.Distinct,
                  -1858                    on=self._parse_value() if self._match(TokenType.ON) else None,
                  -1859                )
                  -1860
                  -1861            if all_ and distinct:
                  -1862                self.raise_error("Cannot specify both ALL and DISTINCT after SELECT")
                  -1863
                  -1864            limit = self._parse_limit(top=True)
                  -1865            expressions = self._parse_csv(self._parse_expression)
                  -1866
                  -1867            this = self.expression(
                  -1868                exp.Select,
                  -1869                kind=kind,
                  -1870                hint=hint,
                  -1871                distinct=distinct,
                  -1872                expressions=expressions,
                  -1873                limit=limit,
                  -1874            )
                  -1875            this.comments = comments
                  -1876
                  -1877            into = self._parse_into()
                  -1878            if into:
                  -1879                this.set("into", into)
                  -1880
                  -1881            from_ = self._parse_from()
                  -1882            if from_:
                  -1883                this.set("from", from_)
                  -1884
                  -1885            this = self._parse_query_modifiers(this)
                  -1886        elif (table or nested) and self._match(TokenType.L_PAREN):
                  -1887            this = self._parse_table() if table else self._parse_select(nested=True)
                  -1888            this = self._parse_set_operations(self._parse_query_modifiers(this))
                  -1889            self._match_r_paren()
                  -1890
                  -1891            # early return so that subquery unions aren't parsed again
                  -1892            # SELECT * FROM (SELECT 1) UNION ALL SELECT 1
                  -1893            # Union ALL should be a property of the top select node, not the subquery
                  -1894            return self._parse_subquery(this, parse_alias=parse_subquery_alias)
                  -1895        elif self._match(TokenType.VALUES):
                  +1855    def _parse_select(
                  +1856        self, nested: bool = False, table: bool = False, parse_subquery_alias: bool = True
                  +1857    ) -> t.Optional[exp.Expression]:
                  +1858        cte = self._parse_with()
                  +1859        if cte:
                  +1860            this = self._parse_statement()
                  +1861
                  +1862            if not this:
                  +1863                self.raise_error("Failed to parse any statement following CTE")
                  +1864                return cte
                  +1865
                  +1866            if "with" in this.arg_types:
                  +1867                this.set("with", cte)
                  +1868            else:
                  +1869                self.raise_error(f"{this.key} does not support CTE")
                  +1870                this = cte
                  +1871        elif self._match(TokenType.SELECT):
                  +1872            comments = self._prev_comments
                  +1873
                  +1874            hint = self._parse_hint()
                  +1875            all_ = self._match(TokenType.ALL)
                  +1876            distinct = self._match(TokenType.DISTINCT)
                  +1877
                  +1878            kind = (
                  +1879                self._match(TokenType.ALIAS)
                  +1880                and self._match_texts(("STRUCT", "VALUE"))
                  +1881                and self._prev.text
                  +1882            )
                  +1883
                  +1884            if distinct:
                  +1885                distinct = self.expression(
                  +1886                    exp.Distinct,
                  +1887                    on=self._parse_value() if self._match(TokenType.ON) else None,
                  +1888                )
                  +1889
                  +1890            if all_ and distinct:
                  +1891                self.raise_error("Cannot specify both ALL and DISTINCT after SELECT")
                  +1892
                  +1893            limit = self._parse_limit(top=True)
                  +1894            expressions = self._parse_csv(self._parse_expression)
                  +1895
                   1896            this = self.expression(
                  -1897                exp.Values,
                  -1898                expressions=self._parse_csv(self._parse_value),
                  -1899                alias=self._parse_table_alias(),
                  -1900            )
                  -1901        else:
                  -1902            this = None
                  -1903
                  -1904        return self._parse_set_operations(this)
                  +1897                exp.Select,
                  +1898                kind=kind,
                  +1899                hint=hint,
                  +1900                distinct=distinct,
                  +1901                expressions=expressions,
                  +1902                limit=limit,
                  +1903            )
                  +1904            this.comments = comments
                   1905
                  -1906    def _parse_with(self, skip_with_token: bool = False) -> t.Optional[exp.Expression]:
                  -1907        if not skip_with_token and not self._match(TokenType.WITH):
                  -1908            return None
                  +1906            into = self._parse_into()
                  +1907            if into:
                  +1908                this.set("into", into)
                   1909
                  -1910        comments = self._prev_comments
                  -1911        recursive = self._match(TokenType.RECURSIVE)
                  -1912
                  -1913        expressions = []
                  -1914        while True:
                  -1915            expressions.append(self._parse_cte())
                  -1916
                  -1917            if not self._match(TokenType.COMMA) and not self._match(TokenType.WITH):
                  -1918                break
                  -1919            else:
                  -1920                self._match(TokenType.WITH)
                  -1921
                  -1922        return self.expression(
                  -1923            exp.With, comments=comments, expressions=expressions, recursive=recursive
                  -1924        )
                  +1910            from_ = self._parse_from()
                  +1911            if from_:
                  +1912                this.set("from", from_)
                  +1913
                  +1914            this = self._parse_query_modifiers(this)
                  +1915        elif (table or nested) and self._match(TokenType.L_PAREN):
                  +1916            if self._match(TokenType.PIVOT):
                  +1917                this = self._parse_simplified_pivot()
                  +1918            elif self._match(TokenType.FROM):
                  +1919                this = exp.select("*").from_(
                  +1920                    t.cast(exp.From, self._parse_from(skip_from_token=True))
                  +1921                )
                  +1922            else:
                  +1923                this = self._parse_table() if table else self._parse_select(nested=True)
                  +1924                this = self._parse_set_operations(self._parse_query_modifiers(this))
                   1925
                  -1926    def _parse_cte(self) -> exp.Expression:
                  -1927        alias = self._parse_table_alias()
                  -1928        if not alias or not alias.this:
                  -1929            self.raise_error("Expected CTE to have alias")
                  -1930
                  -1931        self._match(TokenType.ALIAS)
                  -1932
                  -1933        return self.expression(
                  -1934            exp.CTE,
                  -1935            this=self._parse_wrapped(self._parse_statement),
                  -1936            alias=alias,
                  -1937        )
                  -1938
                  -1939    def _parse_table_alias(
                  -1940        self, alias_tokens: t.Optional[t.Collection[TokenType]] = None
                  -1941    ) -> t.Optional[exp.Expression]:
                  -1942        any_token = self._match(TokenType.ALIAS)
                  -1943        alias = (
                  -1944            self._parse_id_var(any_token=any_token, tokens=alias_tokens or self.TABLE_ALIAS_TOKENS)
                  -1945            or self._parse_string_as_identifier()
                  -1946        )
                  -1947
                  -1948        index = self._index
                  -1949        if self._match(TokenType.L_PAREN):
                  -1950            columns = self._parse_csv(self._parse_function_parameter)
                  -1951            self._match_r_paren() if columns else self._retreat(index)
                  -1952        else:
                  -1953            columns = None
                  -1954
                  -1955        if not alias and not columns:
                  -1956            return None
                  -1957
                  -1958        return self.expression(exp.TableAlias, this=alias, columns=columns)
                  -1959
                  -1960    def _parse_subquery(
                  -1961        self, this: t.Optional[exp.Expression], parse_alias: bool = True
                  -1962    ) -> exp.Expression:
                  -1963        return self.expression(
                  -1964            exp.Subquery,
                  -1965            this=this,
                  -1966            pivots=self._parse_pivots(),
                  -1967            alias=self._parse_table_alias() if parse_alias else None,
                  -1968        )
                  +1926            self._match_r_paren()
                  +1927
                  +1928            # early return so that subquery unions aren't parsed again
                  +1929            # SELECT * FROM (SELECT 1) UNION ALL SELECT 1
                  +1930            # Union ALL should be a property of the top select node, not the subquery
                  +1931            return self._parse_subquery(this, parse_alias=parse_subquery_alias)
                  +1932        elif self._match(TokenType.VALUES):
                  +1933            this = self.expression(
                  +1934                exp.Values,
                  +1935                expressions=self._parse_csv(self._parse_value),
                  +1936                alias=self._parse_table_alias(),
                  +1937            )
                  +1938        else:
                  +1939            this = None
                  +1940
                  +1941        return self._parse_set_operations(this)
                  +1942
                  +1943    def _parse_with(self, skip_with_token: bool = False) -> t.Optional[exp.Expression]:
                  +1944        if not skip_with_token and not self._match(TokenType.WITH):
                  +1945            return None
                  +1946
                  +1947        comments = self._prev_comments
                  +1948        recursive = self._match(TokenType.RECURSIVE)
                  +1949
                  +1950        expressions = []
                  +1951        while True:
                  +1952            expressions.append(self._parse_cte())
                  +1953
                  +1954            if not self._match(TokenType.COMMA) and not self._match(TokenType.WITH):
                  +1955                break
                  +1956            else:
                  +1957                self._match(TokenType.WITH)
                  +1958
                  +1959        return self.expression(
                  +1960            exp.With, comments=comments, expressions=expressions, recursive=recursive
                  +1961        )
                  +1962
                  +1963    def _parse_cte(self) -> exp.Expression:
                  +1964        alias = self._parse_table_alias()
                  +1965        if not alias or not alias.this:
                  +1966            self.raise_error("Expected CTE to have alias")
                  +1967
                  +1968        self._match(TokenType.ALIAS)
                   1969
                  -1970    def _parse_query_modifiers(
                  -1971        self, this: t.Optional[exp.Expression]
                  -1972    ) -> t.Optional[exp.Expression]:
                  -1973        if isinstance(this, self.MODIFIABLES):
                  -1974            for key, parser in self.QUERY_MODIFIER_PARSERS.items():
                  -1975                expression = parser(self)
                  -1976
                  -1977                if expression:
                  -1978                    this.set(key, expression)
                  -1979        return this
                  -1980
                  -1981    def _parse_hint(self) -> t.Optional[exp.Expression]:
                  -1982        if self._match(TokenType.HINT):
                  -1983            hints = self._parse_csv(self._parse_function)
                  -1984            if not self._match_pair(TokenType.STAR, TokenType.SLASH):
                  -1985                self.raise_error("Expected */ after HINT")
                  -1986            return self.expression(exp.Hint, expressions=hints)
                  -1987
                  -1988        return None
                  -1989
                  -1990    def _parse_into(self) -> t.Optional[exp.Expression]:
                  -1991        if not self._match(TokenType.INTO):
                  -1992            return None
                  -1993
                  -1994        temp = self._match(TokenType.TEMPORARY)
                  -1995        unlogged = self._match_text_seq("UNLOGGED")
                  -1996        self._match(TokenType.TABLE)
                  -1997
                  -1998        return self.expression(
                  -1999            exp.Into, this=self._parse_table(schema=True), temporary=temp, unlogged=unlogged
                  -2000        )
                  -2001
                  -2002    def _parse_from(self, modifiers: bool = False) -> t.Optional[exp.Expression]:
                  -2003        if not self._match(TokenType.FROM):
                  -2004            return None
                  -2005
                  -2006        comments = self._prev_comments
                  -2007        this = self._parse_table()
                  +1970        return self.expression(
                  +1971            exp.CTE,
                  +1972            this=self._parse_wrapped(self._parse_statement),
                  +1973            alias=alias,
                  +1974        )
                  +1975
                  +1976    def _parse_table_alias(
                  +1977        self, alias_tokens: t.Optional[t.Collection[TokenType]] = None
                  +1978    ) -> t.Optional[exp.Expression]:
                  +1979        any_token = self._match(TokenType.ALIAS)
                  +1980        alias = (
                  +1981            self._parse_id_var(any_token=any_token, tokens=alias_tokens or self.TABLE_ALIAS_TOKENS)
                  +1982            or self._parse_string_as_identifier()
                  +1983        )
                  +1984
                  +1985        index = self._index
                  +1986        if self._match(TokenType.L_PAREN):
                  +1987            columns = self._parse_csv(self._parse_function_parameter)
                  +1988            self._match_r_paren() if columns else self._retreat(index)
                  +1989        else:
                  +1990            columns = None
                  +1991
                  +1992        if not alias and not columns:
                  +1993            return None
                  +1994
                  +1995        return self.expression(exp.TableAlias, this=alias, columns=columns)
                  +1996
                  +1997    def _parse_subquery(
                  +1998        self, this: t.Optional[exp.Expression], parse_alias: bool = True
                  +1999    ) -> t.Optional[exp.Expression]:
                  +2000        if not this:
                  +2001            return None
                  +2002        return self.expression(
                  +2003            exp.Subquery,
                  +2004            this=this,
                  +2005            pivots=self._parse_pivots(),
                  +2006            alias=self._parse_table_alias() if parse_alias else None,
                  +2007        )
                   2008
                  -2009        return self.expression(
                  -2010            exp.From,
                  -2011            comments=comments,
                  -2012            this=self._parse_query_modifiers(this) if modifiers else this,
                  -2013        )
                  -2014
                  -2015    def _parse_match_recognize(self) -> t.Optional[exp.Expression]:
                  -2016        if not self._match(TokenType.MATCH_RECOGNIZE):
                  -2017            return None
                  -2018
                  -2019        self._match_l_paren()
                  -2020
                  -2021        partition = self._parse_partition_by()
                  -2022        order = self._parse_order()
                  -2023        measures = (
                  -2024            self._parse_csv(self._parse_expression) if self._match_text_seq("MEASURES") else None
                  -2025        )
                  +2009    def _parse_query_modifiers(
                  +2010        self, this: t.Optional[exp.Expression]
                  +2011    ) -> t.Optional[exp.Expression]:
                  +2012        if isinstance(this, self.MODIFIABLES):
                  +2013            for key, parser in self.QUERY_MODIFIER_PARSERS.items():
                  +2014                expression = parser(self)
                  +2015
                  +2016                if expression:
                  +2017                    this.set(key, expression)
                  +2018        return this
                  +2019
                  +2020    def _parse_hint(self) -> t.Optional[exp.Expression]:
                  +2021        if self._match(TokenType.HINT):
                  +2022            hints = self._parse_csv(self._parse_function)
                  +2023            if not self._match_pair(TokenType.STAR, TokenType.SLASH):
                  +2024                self.raise_error("Expected */ after HINT")
                  +2025            return self.expression(exp.Hint, expressions=hints)
                   2026
                  -2027        if self._match_text_seq("ONE", "ROW", "PER", "MATCH"):
                  -2028            rows = exp.Var(this="ONE ROW PER MATCH")
                  -2029        elif self._match_text_seq("ALL", "ROWS", "PER", "MATCH"):
                  -2030            text = "ALL ROWS PER MATCH"
                  -2031            if self._match_text_seq("SHOW", "EMPTY", "MATCHES"):
                  -2032                text += f" SHOW EMPTY MATCHES"
                  -2033            elif self._match_text_seq("OMIT", "EMPTY", "MATCHES"):
                  -2034                text += f" OMIT EMPTY MATCHES"
                  -2035            elif self._match_text_seq("WITH", "UNMATCHED", "ROWS"):
                  -2036                text += f" WITH UNMATCHED ROWS"
                  -2037            rows = exp.Var(this=text)
                  -2038        else:
                  -2039            rows = None
                  +2027        return None
                  +2028
                  +2029    def _parse_into(self) -> t.Optional[exp.Expression]:
                  +2030        if not self._match(TokenType.INTO):
                  +2031            return None
                  +2032
                  +2033        temp = self._match(TokenType.TEMPORARY)
                  +2034        unlogged = self._match_text_seq("UNLOGGED")
                  +2035        self._match(TokenType.TABLE)
                  +2036
                  +2037        return self.expression(
                  +2038            exp.Into, this=self._parse_table(schema=True), temporary=temp, unlogged=unlogged
                  +2039        )
                   2040
                  -2041        if self._match_text_seq("AFTER", "MATCH", "SKIP"):
                  -2042            text = "AFTER MATCH SKIP"
                  -2043            if self._match_text_seq("PAST", "LAST", "ROW"):
                  -2044                text += f" PAST LAST ROW"
                  -2045            elif self._match_text_seq("TO", "NEXT", "ROW"):
                  -2046                text += f" TO NEXT ROW"
                  -2047            elif self._match_text_seq("TO", "FIRST"):
                  -2048                text += f" TO FIRST {self._advance_any().text}"  # type: ignore
                  -2049            elif self._match_text_seq("TO", "LAST"):
                  -2050                text += f" TO LAST {self._advance_any().text}"  # type: ignore
                  -2051            after = exp.Var(this=text)
                  -2052        else:
                  -2053            after = None
                  -2054
                  -2055        if self._match_text_seq("PATTERN"):
                  -2056            self._match_l_paren()
                  -2057
                  -2058            if not self._curr:
                  -2059                self.raise_error("Expecting )", self._curr)
                  -2060
                  -2061            paren = 1
                  -2062            start = self._curr
                  -2063
                  -2064            while self._curr and paren > 0:
                  -2065                if self._curr.token_type == TokenType.L_PAREN:
                  -2066                    paren += 1
                  -2067                if self._curr.token_type == TokenType.R_PAREN:
                  -2068                    paren -= 1
                  -2069                end = self._prev
                  -2070                self._advance()
                  -2071            if paren > 0:
                  -2072                self.raise_error("Expecting )", self._curr)
                  -2073            pattern = exp.Var(this=self._find_sql(start, end))
                  -2074        else:
                  -2075            pattern = None
                  -2076
                  -2077        define = (
                  -2078            self._parse_csv(
                  -2079                lambda: self.expression(
                  -2080                    exp.Alias,
                  -2081                    alias=self._parse_id_var(any_token=True),
                  -2082                    this=self._match(TokenType.ALIAS) and self._parse_conjunction(),
                  -2083                )
                  -2084            )
                  -2085            if self._match_text_seq("DEFINE")
                  -2086            else None
                  -2087        )
                  -2088
                  -2089        self._match_r_paren()
                  -2090
                  -2091        return self.expression(
                  -2092            exp.MatchRecognize,
                  -2093            partition_by=partition,
                  -2094            order=order,
                  -2095            measures=measures,
                  -2096            rows=rows,
                  -2097            after=after,
                  -2098            pattern=pattern,
                  -2099            define=define,
                  -2100            alias=self._parse_table_alias(),
                  -2101        )
                  -2102
                  -2103    def _parse_lateral(self) -> t.Optional[exp.Expression]:
                  -2104        outer_apply = self._match_pair(TokenType.OUTER, TokenType.APPLY)
                  -2105        cross_apply = self._match_pair(TokenType.CROSS, TokenType.APPLY)
                  -2106
                  -2107        if outer_apply or cross_apply:
                  -2108            this = self._parse_select(table=True)
                  -2109            view = None
                  -2110            outer = not cross_apply
                  -2111        elif self._match(TokenType.LATERAL):
                  -2112            this = self._parse_select(table=True)
                  -2113            view = self._match(TokenType.VIEW)
                  -2114            outer = self._match(TokenType.OUTER)
                  +2041    def _parse_from(
                  +2042        self, modifiers: bool = False, skip_from_token: bool = False
                  +2043    ) -> t.Optional[exp.From]:
                  +2044        if not skip_from_token and not self._match(TokenType.FROM):
                  +2045            return None
                  +2046
                  +2047        comments = self._prev_comments
                  +2048        this = self._parse_table()
                  +2049
                  +2050        return self.expression(
                  +2051            exp.From,
                  +2052            comments=comments,
                  +2053            this=self._parse_query_modifiers(this) if modifiers else this,
                  +2054        )
                  +2055
                  +2056    def _parse_match_recognize(self) -> t.Optional[exp.Expression]:
                  +2057        if not self._match(TokenType.MATCH_RECOGNIZE):
                  +2058            return None
                  +2059
                  +2060        self._match_l_paren()
                  +2061
                  +2062        partition = self._parse_partition_by()
                  +2063        order = self._parse_order()
                  +2064        measures = (
                  +2065            self._parse_csv(self._parse_expression) if self._match_text_seq("MEASURES") else None
                  +2066        )
                  +2067
                  +2068        if self._match_text_seq("ONE", "ROW", "PER", "MATCH"):
                  +2069            rows = exp.Var(this="ONE ROW PER MATCH")
                  +2070        elif self._match_text_seq("ALL", "ROWS", "PER", "MATCH"):
                  +2071            text = "ALL ROWS PER MATCH"
                  +2072            if self._match_text_seq("SHOW", "EMPTY", "MATCHES"):
                  +2073                text += f" SHOW EMPTY MATCHES"
                  +2074            elif self._match_text_seq("OMIT", "EMPTY", "MATCHES"):
                  +2075                text += f" OMIT EMPTY MATCHES"
                  +2076            elif self._match_text_seq("WITH", "UNMATCHED", "ROWS"):
                  +2077                text += f" WITH UNMATCHED ROWS"
                  +2078            rows = exp.Var(this=text)
                  +2079        else:
                  +2080            rows = None
                  +2081
                  +2082        if self._match_text_seq("AFTER", "MATCH", "SKIP"):
                  +2083            text = "AFTER MATCH SKIP"
                  +2084            if self._match_text_seq("PAST", "LAST", "ROW"):
                  +2085                text += f" PAST LAST ROW"
                  +2086            elif self._match_text_seq("TO", "NEXT", "ROW"):
                  +2087                text += f" TO NEXT ROW"
                  +2088            elif self._match_text_seq("TO", "FIRST"):
                  +2089                text += f" TO FIRST {self._advance_any().text}"  # type: ignore
                  +2090            elif self._match_text_seq("TO", "LAST"):
                  +2091                text += f" TO LAST {self._advance_any().text}"  # type: ignore
                  +2092            after = exp.Var(this=text)
                  +2093        else:
                  +2094            after = None
                  +2095
                  +2096        if self._match_text_seq("PATTERN"):
                  +2097            self._match_l_paren()
                  +2098
                  +2099            if not self._curr:
                  +2100                self.raise_error("Expecting )", self._curr)
                  +2101
                  +2102            paren = 1
                  +2103            start = self._curr
                  +2104
                  +2105            while self._curr and paren > 0:
                  +2106                if self._curr.token_type == TokenType.L_PAREN:
                  +2107                    paren += 1
                  +2108                if self._curr.token_type == TokenType.R_PAREN:
                  +2109                    paren -= 1
                  +2110                end = self._prev
                  +2111                self._advance()
                  +2112            if paren > 0:
                  +2113                self.raise_error("Expecting )", self._curr)
                  +2114            pattern = exp.Var(this=self._find_sql(start, end))
                   2115        else:
                  -2116            return None
                  +2116            pattern = None
                   2117
                  -2118        if not this:
                  -2119            this = self._parse_function() or self._parse_id_var(any_token=False)
                  -2120            while self._match(TokenType.DOT):
                  -2121                this = exp.Dot(
                  -2122                    this=this,
                  -2123                    expression=self._parse_function() or self._parse_id_var(any_token=False),
                  +2118        define = (
                  +2119            self._parse_csv(
                  +2120                lambda: self.expression(
                  +2121                    exp.Alias,
                  +2122                    alias=self._parse_id_var(any_token=True),
                  +2123                    this=self._match(TokenType.ALIAS) and self._parse_conjunction(),
                   2124                )
                  -2125
                  -2126        table_alias: t.Optional[exp.Expression]
                  -2127
                  -2128        if view:
                  -2129            table = self._parse_id_var(any_token=False)
                  -2130            columns = self._parse_csv(self._parse_id_var) if self._match(TokenType.ALIAS) else []
                  -2131            table_alias = self.expression(exp.TableAlias, this=table, columns=columns)
                  -2132        else:
                  -2133            table_alias = self._parse_table_alias()
                  -2134
                  -2135        expression = self.expression(
                  -2136            exp.Lateral,
                  -2137            this=this,
                  -2138            view=view,
                  -2139            outer=outer,
                  -2140            alias=table_alias,
                  -2141        )
                  -2142
                  -2143        return expression
                  -2144
                  -2145    def _parse_join_side_and_kind(
                  -2146        self,
                  -2147    ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]:
                  -2148        return (
                  -2149            self._match(TokenType.NATURAL) and self._prev,
                  -2150            self._match_set(self.JOIN_SIDES) and self._prev,
                  -2151            self._match_set(self.JOIN_KINDS) and self._prev,
                  -2152        )
                  -2153
                  -2154    def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]:
                  -2155        if self._match(TokenType.COMMA):
                  -2156            return self.expression(exp.Join, this=self._parse_table())
                  -2157
                  -2158        index = self._index
                  -2159        natural, side, kind = self._parse_join_side_and_kind()
                  -2160        hint = self._prev.text if self._match_texts(self.JOIN_HINTS) else None
                  -2161        join = self._match(TokenType.JOIN)
                  -2162
                  -2163        if not skip_join_token and not join:
                  -2164            self._retreat(index)
                  -2165            kind = None
                  -2166            natural = None
                  -2167            side = None
                  +2125            )
                  +2126            if self._match_text_seq("DEFINE")
                  +2127            else None
                  +2128        )
                  +2129
                  +2130        self._match_r_paren()
                  +2131
                  +2132        return self.expression(
                  +2133            exp.MatchRecognize,
                  +2134            partition_by=partition,
                  +2135            order=order,
                  +2136            measures=measures,
                  +2137            rows=rows,
                  +2138            after=after,
                  +2139            pattern=pattern,
                  +2140            define=define,
                  +2141            alias=self._parse_table_alias(),
                  +2142        )
                  +2143
                  +2144    def _parse_lateral(self) -> t.Optional[exp.Expression]:
                  +2145        outer_apply = self._match_pair(TokenType.OUTER, TokenType.APPLY)
                  +2146        cross_apply = self._match_pair(TokenType.CROSS, TokenType.APPLY)
                  +2147
                  +2148        if outer_apply or cross_apply:
                  +2149            this = self._parse_select(table=True)
                  +2150            view = None
                  +2151            outer = not cross_apply
                  +2152        elif self._match(TokenType.LATERAL):
                  +2153            this = self._parse_select(table=True)
                  +2154            view = self._match(TokenType.VIEW)
                  +2155            outer = self._match(TokenType.OUTER)
                  +2156        else:
                  +2157            return None
                  +2158
                  +2159        if not this:
                  +2160            this = self._parse_function() or self._parse_id_var(any_token=False)
                  +2161            while self._match(TokenType.DOT):
                  +2162                this = exp.Dot(
                  +2163                    this=this,
                  +2164                    expression=self._parse_function() or self._parse_id_var(any_token=False),
                  +2165                )
                  +2166
                  +2167        table_alias: t.Optional[exp.Expression]
                   2168
                  -2169        outer_apply = self._match_pair(TokenType.OUTER, TokenType.APPLY, False)
                  -2170        cross_apply = self._match_pair(TokenType.CROSS, TokenType.APPLY, False)
                  -2171
                  -2172        if not skip_join_token and not join and not outer_apply and not cross_apply:
                  -2173            return None
                  -2174
                  -2175        if outer_apply:
                  -2176            side = Token(TokenType.LEFT, "LEFT")
                  -2177
                  -2178        kwargs: t.Dict[
                  -2179            str, t.Optional[exp.Expression] | bool | str | t.List[t.Optional[exp.Expression]]
                  -2180        ] = {"this": self._parse_table()}
                  -2181
                  -2182        if natural:
                  -2183            kwargs["natural"] = True
                  -2184        if side:
                  -2185            kwargs["side"] = side.text
                  -2186        if kind:
                  -2187            kwargs["kind"] = kind.text
                  -2188        if hint:
                  -2189            kwargs["hint"] = hint
                  -2190
                  -2191        if self._match(TokenType.ON):
                  -2192            kwargs["on"] = self._parse_conjunction()
                  -2193        elif self._match(TokenType.USING):
                  -2194            kwargs["using"] = self._parse_wrapped_id_vars()
                  -2195
                  -2196        return self.expression(exp.Join, **kwargs)  # type: ignore
                  -2197
                  -2198    def _parse_index(
                  -2199        self,
                  -2200        index: t.Optional[exp.Expression] = None,
                  -2201    ) -> t.Optional[exp.Expression]:
                  -2202        if index:
                  -2203            unique = None
                  -2204            primary = None
                  -2205            amp = None
                  -2206
                  -2207            self._match(TokenType.ON)
                  -2208            self._match(TokenType.TABLE)  # hive
                  -2209            table = self._parse_table_parts(schema=True)
                  -2210        else:
                  -2211            unique = self._match(TokenType.UNIQUE)
                  -2212            primary = self._match_text_seq("PRIMARY")
                  -2213            amp = self._match_text_seq("AMP")
                  -2214            if not self._match(TokenType.INDEX):
                  -2215                return None
                  -2216            index = self._parse_id_var()
                  -2217            table = None
                  +2169        if view:
                  +2170            table = self._parse_id_var(any_token=False)
                  +2171            columns = self._parse_csv(self._parse_id_var) if self._match(TokenType.ALIAS) else []
                  +2172            table_alias = self.expression(exp.TableAlias, this=table, columns=columns)
                  +2173        else:
                  +2174            table_alias = self._parse_table_alias()
                  +2175
                  +2176        expression = self.expression(
                  +2177            exp.Lateral,
                  +2178            this=this,
                  +2179            view=view,
                  +2180            outer=outer,
                  +2181            alias=table_alias,
                  +2182        )
                  +2183
                  +2184        return expression
                  +2185
                  +2186    def _parse_join_parts(
                  +2187        self,
                  +2188    ) -> t.Tuple[t.Optional[Token], t.Optional[Token], t.Optional[Token]]:
                  +2189        return (
                  +2190            self._match_set(self.JOIN_METHODS) and self._prev,
                  +2191            self._match_set(self.JOIN_SIDES) and self._prev,
                  +2192            self._match_set(self.JOIN_KINDS) and self._prev,
                  +2193        )
                  +2194
                  +2195    def _parse_join(self, skip_join_token: bool = False) -> t.Optional[exp.Expression]:
                  +2196        if self._match(TokenType.COMMA):
                  +2197            return self.expression(exp.Join, this=self._parse_table())
                  +2198
                  +2199        index = self._index
                  +2200        method, side, kind = self._parse_join_parts()
                  +2201        hint = self._prev.text if self._match_texts(self.JOIN_HINTS) else None
                  +2202        join = self._match(TokenType.JOIN)
                  +2203
                  +2204        if not skip_join_token and not join:
                  +2205            self._retreat(index)
                  +2206            kind = None
                  +2207            method = None
                  +2208            side = None
                  +2209
                  +2210        outer_apply = self._match_pair(TokenType.OUTER, TokenType.APPLY, False)
                  +2211        cross_apply = self._match_pair(TokenType.CROSS, TokenType.APPLY, False)
                  +2212
                  +2213        if not skip_join_token and not join and not outer_apply and not cross_apply:
                  +2214            return None
                  +2215
                  +2216        if outer_apply:
                  +2217            side = Token(TokenType.LEFT, "LEFT")
                   2218
                  -2219        if self._match(TokenType.L_PAREN, advance=False):
                  -2220            columns = self._parse_wrapped_csv(self._parse_ordered)
                  -2221        else:
                  -2222            columns = None
                  -2223
                  -2224        return self.expression(
                  -2225            exp.Index,
                  -2226            this=index,
                  -2227            table=table,
                  -2228            columns=columns,
                  -2229            unique=unique,
                  -2230            primary=primary,
                  -2231            amp=amp,
                  -2232        )
                  -2233
                  -2234    def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]:
                  -2235        return (
                  -2236            (not schema and self._parse_function())
                  -2237            or self._parse_id_var(any_token=False)
                  -2238            or self._parse_string_as_identifier()
                  -2239            or self._parse_placeholder()
                  -2240        )
                  -2241
                  -2242    def _parse_table_parts(self, schema: bool = False) -> exp.Table:
                  -2243        catalog = None
                  -2244        db = None
                  -2245        table = self._parse_table_part(schema=schema)
                  -2246
                  -2247        while self._match(TokenType.DOT):
                  -2248            if catalog:
                  -2249                # This allows nesting the table in arbitrarily many dot expressions if needed
                  -2250                table = self.expression(
                  -2251                    exp.Dot, this=table, expression=self._parse_table_part(schema=schema)
                  -2252                )
                  -2253            else:
                  -2254                catalog = db
                  -2255                db = table
                  -2256                table = self._parse_table_part(schema=schema)
                  +2219        kwargs: t.Dict[str, t.Any] = {"this": self._parse_table()}
                  +2220
                  +2221        if method:
                  +2222            kwargs["method"] = method.text
                  +2223        if side:
                  +2224            kwargs["side"] = side.text
                  +2225        if kind:
                  +2226            kwargs["kind"] = kind.text
                  +2227        if hint:
                  +2228            kwargs["hint"] = hint
                  +2229
                  +2230        if self._match(TokenType.ON):
                  +2231            kwargs["on"] = self._parse_conjunction()
                  +2232        elif self._match(TokenType.USING):
                  +2233            kwargs["using"] = self._parse_wrapped_id_vars()
                  +2234
                  +2235        return self.expression(exp.Join, **kwargs)
                  +2236
                  +2237    def _parse_index(
                  +2238        self,
                  +2239        index: t.Optional[exp.Expression] = None,
                  +2240    ) -> t.Optional[exp.Expression]:
                  +2241        if index:
                  +2242            unique = None
                  +2243            primary = None
                  +2244            amp = None
                  +2245
                  +2246            self._match(TokenType.ON)
                  +2247            self._match(TokenType.TABLE)  # hive
                  +2248            table = self._parse_table_parts(schema=True)
                  +2249        else:
                  +2250            unique = self._match(TokenType.UNIQUE)
                  +2251            primary = self._match_text_seq("PRIMARY")
                  +2252            amp = self._match_text_seq("AMP")
                  +2253            if not self._match(TokenType.INDEX):
                  +2254                return None
                  +2255            index = self._parse_id_var()
                  +2256            table = None
                   2257
                  -2258        if not table:
                  -2259            self.raise_error(f"Expected table name but got {self._curr}")
                  -2260
                  -2261        return self.expression(
                  -2262            exp.Table, this=table, db=db, catalog=catalog, pivots=self._parse_pivots()
                  -2263        )
                  -2264
                  -2265    def _parse_table(
                  -2266        self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None
                  -2267    ) -> t.Optional[exp.Expression]:
                  -2268        lateral = self._parse_lateral()
                  -2269        if lateral:
                  -2270            return lateral
                  -2271
                  -2272        unnest = self._parse_unnest()
                  -2273        if unnest:
                  -2274            return unnest
                  -2275
                  -2276        values = self._parse_derived_table_values()
                  -2277        if values:
                  -2278            return values
                  -2279
                  -2280        subquery = self._parse_select(table=True)
                  -2281        if subquery:
                  -2282            if not subquery.args.get("pivots"):
                  -2283                subquery.set("pivots", self._parse_pivots())
                  -2284            return subquery
                  -2285
                  -2286        this: exp.Expression = self._parse_table_parts(schema=schema)
                  -2287
                  -2288        if schema:
                  -2289            return self._parse_schema(this=this)
                  -2290
                  -2291        if self.alias_post_tablesample:
                  -2292            table_sample = self._parse_table_sample()
                  -2293
                  -2294        alias = self._parse_table_alias(alias_tokens=alias_tokens or self.TABLE_ALIAS_TOKENS)
                  -2295        if alias:
                  -2296            this.set("alias", alias)
                  +2258        if self._match(TokenType.L_PAREN, advance=False):
                  +2259            columns = self._parse_wrapped_csv(self._parse_ordered)
                  +2260        else:
                  +2261            columns = None
                  +2262
                  +2263        return self.expression(
                  +2264            exp.Index,
                  +2265            this=index,
                  +2266            table=table,
                  +2267            columns=columns,
                  +2268            unique=unique,
                  +2269            primary=primary,
                  +2270            amp=amp,
                  +2271            partition_by=self._parse_partition_by(),
                  +2272        )
                  +2273
                  +2274    def _parse_table_part(self, schema: bool = False) -> t.Optional[exp.Expression]:
                  +2275        return (
                  +2276            (not schema and self._parse_function())
                  +2277            or self._parse_id_var(any_token=False)
                  +2278            or self._parse_string_as_identifier()
                  +2279            or self._parse_placeholder()
                  +2280        )
                  +2281
                  +2282    def _parse_table_parts(self, schema: bool = False) -> exp.Table:
                  +2283        catalog = None
                  +2284        db = None
                  +2285        table = self._parse_table_part(schema=schema)
                  +2286
                  +2287        while self._match(TokenType.DOT):
                  +2288            if catalog:
                  +2289                # This allows nesting the table in arbitrarily many dot expressions if needed
                  +2290                table = self.expression(
                  +2291                    exp.Dot, this=table, expression=self._parse_table_part(schema=schema)
                  +2292                )
                  +2293            else:
                  +2294                catalog = db
                  +2295                db = table
                  +2296                table = self._parse_table_part(schema=schema)
                   2297
                  -2298        if not this.args.get("pivots"):
                  -2299            this.set("pivots", self._parse_pivots())
                  +2298        if not table:
                  +2299            self.raise_error(f"Expected table name but got {self._curr}")
                   2300
                  -2301        if self._match_pair(TokenType.WITH, TokenType.L_PAREN):
                  -2302            this.set(
                  -2303                "hints",
                  -2304                self._parse_csv(lambda: self._parse_function() or self._parse_var(any_token=True)),
                  -2305            )
                  -2306            self._match_r_paren()
                  -2307
                  -2308        if not self.alias_post_tablesample:
                  -2309            table_sample = self._parse_table_sample()
                  -2310
                  -2311        if table_sample:
                  -2312            table_sample.set("this", this)
                  -2313            this = table_sample
                  -2314
                  -2315        return this
                  -2316
                  -2317    def _parse_unnest(self) -> t.Optional[exp.Expression]:
                  -2318        if not self._match(TokenType.UNNEST):
                  -2319            return None
                  -2320
                  -2321        expressions = self._parse_wrapped_csv(self._parse_type)
                  -2322        ordinality = self._match_pair(TokenType.WITH, TokenType.ORDINALITY)
                  -2323        alias = self._parse_table_alias()
                  -2324
                  -2325        if alias and self.unnest_column_only:
                  -2326            if alias.args.get("columns"):
                  -2327                self.raise_error("Unexpected extra column alias in unnest.")
                  -2328            alias.set("columns", [alias.this])
                  -2329            alias.set("this", None)
                  +2301        return self.expression(
                  +2302            exp.Table, this=table, db=db, catalog=catalog, pivots=self._parse_pivots()
                  +2303        )
                  +2304
                  +2305    def _parse_table(
                  +2306        self, schema: bool = False, alias_tokens: t.Optional[t.Collection[TokenType]] = None
                  +2307    ) -> t.Optional[exp.Expression]:
                  +2308        lateral = self._parse_lateral()
                  +2309        if lateral:
                  +2310            return lateral
                  +2311
                  +2312        unnest = self._parse_unnest()
                  +2313        if unnest:
                  +2314            return unnest
                  +2315
                  +2316        values = self._parse_derived_table_values()
                  +2317        if values:
                  +2318            return values
                  +2319
                  +2320        subquery = self._parse_select(table=True)
                  +2321        if subquery:
                  +2322            if not subquery.args.get("pivots"):
                  +2323                subquery.set("pivots", self._parse_pivots())
                  +2324            return subquery
                  +2325
                  +2326        this: exp.Expression = self._parse_table_parts(schema=schema)
                  +2327
                  +2328        if schema:
                  +2329            return self._parse_schema(this=this)
                   2330
                  -2331        offset = None
                  -2332        if self._match_pair(TokenType.WITH, TokenType.OFFSET):
                  -2333            self._match(TokenType.ALIAS)
                  -2334            offset = self._parse_id_var() or exp.Identifier(this="offset")
                  -2335
                  -2336        return self.expression(
                  -2337            exp.Unnest,
                  -2338            expressions=expressions,
                  -2339            ordinality=ordinality,
                  -2340            alias=alias,
                  -2341            offset=offset,
                  -2342        )
                  -2343
                  -2344    def _parse_derived_table_values(self) -> t.Optional[exp.Expression]:
                  -2345        is_derived = self._match_pair(TokenType.L_PAREN, TokenType.VALUES)
                  -2346        if not is_derived and not self._match(TokenType.VALUES):
                  -2347            return None
                  -2348
                  -2349        expressions = self._parse_csv(self._parse_value)
                  +2331        if self.alias_post_tablesample:
                  +2332            table_sample = self._parse_table_sample()
                  +2333
                  +2334        alias = self._parse_table_alias(alias_tokens=alias_tokens or self.TABLE_ALIAS_TOKENS)
                  +2335        if alias:
                  +2336            this.set("alias", alias)
                  +2337
                  +2338        if not this.args.get("pivots"):
                  +2339            this.set("pivots", self._parse_pivots())
                  +2340
                  +2341        if self._match_pair(TokenType.WITH, TokenType.L_PAREN):
                  +2342            this.set(
                  +2343                "hints",
                  +2344                self._parse_csv(lambda: self._parse_function() or self._parse_var(any_token=True)),
                  +2345            )
                  +2346            self._match_r_paren()
                  +2347
                  +2348        if not self.alias_post_tablesample:
                  +2349            table_sample = self._parse_table_sample()
                   2350
                  -2351        if is_derived:
                  -2352            self._match_r_paren()
                  -2353
                  -2354        return self.expression(exp.Values, expressions=expressions, alias=self._parse_table_alias())
                  -2355
                  -2356    def _parse_table_sample(self, as_modifier: bool = False) -> t.Optional[exp.Expression]:
                  -2357        if not self._match(TokenType.TABLE_SAMPLE) and not (
                  -2358            as_modifier and self._match_text_seq("USING", "SAMPLE")
                  -2359        ):
                  -2360            return None
                  -2361
                  -2362        bucket_numerator = None
                  -2363        bucket_denominator = None
                  -2364        bucket_field = None
                  -2365        percent = None
                  -2366        rows = None
                  -2367        size = None
                  -2368        seed = None
                  -2369
                  -2370        kind = (
                  -2371            self._prev.text if self._prev.token_type == TokenType.TABLE_SAMPLE else "USING SAMPLE"
                  -2372        )
                  -2373        method = self._parse_var(tokens=(TokenType.ROW,))
                  -2374
                  -2375        self._match(TokenType.L_PAREN)
                  -2376
                  -2377        num = self._parse_number()
                  -2378
                  -2379        if self._match_text_seq("BUCKET"):
                  -2380            bucket_numerator = self._parse_number()
                  -2381            self._match_text_seq("OUT", "OF")
                  -2382            bucket_denominator = bucket_denominator = self._parse_number()
                  -2383            self._match(TokenType.ON)
                  -2384            bucket_field = self._parse_field()
                  -2385        elif self._match_set((TokenType.PERCENT, TokenType.MOD)):
                  -2386            percent = num
                  -2387        elif self._match(TokenType.ROWS):
                  -2388            rows = num
                  -2389        else:
                  -2390            size = num
                  -2391
                  -2392        self._match(TokenType.R_PAREN)
                  +2351        if table_sample:
                  +2352            table_sample.set("this", this)
                  +2353            this = table_sample
                  +2354
                  +2355        return this
                  +2356
                  +2357    def _parse_unnest(self) -> t.Optional[exp.Expression]:
                  +2358        if not self._match(TokenType.UNNEST):
                  +2359            return None
                  +2360
                  +2361        expressions = self._parse_wrapped_csv(self._parse_type)
                  +2362        ordinality = self._match_pair(TokenType.WITH, TokenType.ORDINALITY)
                  +2363        alias = self._parse_table_alias()
                  +2364
                  +2365        if alias and self.unnest_column_only:
                  +2366            if alias.args.get("columns"):
                  +2367                self.raise_error("Unexpected extra column alias in unnest.")
                  +2368            alias.set("columns", [alias.this])
                  +2369            alias.set("this", None)
                  +2370
                  +2371        offset = None
                  +2372        if self._match_pair(TokenType.WITH, TokenType.OFFSET):
                  +2373            self._match(TokenType.ALIAS)
                  +2374            offset = self._parse_id_var() or exp.Identifier(this="offset")
                  +2375
                  +2376        return self.expression(
                  +2377            exp.Unnest,
                  +2378            expressions=expressions,
                  +2379            ordinality=ordinality,
                  +2380            alias=alias,
                  +2381            offset=offset,
                  +2382        )
                  +2383
                  +2384    def _parse_derived_table_values(self) -> t.Optional[exp.Expression]:
                  +2385        is_derived = self._match_pair(TokenType.L_PAREN, TokenType.VALUES)
                  +2386        if not is_derived and not self._match(TokenType.VALUES):
                  +2387            return None
                  +2388
                  +2389        expressions = self._parse_csv(self._parse_value)
                  +2390
                  +2391        if is_derived:
                  +2392            self._match_r_paren()
                   2393
                  -2394        if self._match(TokenType.L_PAREN):
                  -2395            method = self._parse_var()
                  -2396            seed = self._match(TokenType.COMMA) and self._parse_number()
                  -2397            self._match_r_paren()
                  -2398        elif self._match_texts(("SEED", "REPEATABLE")):
                  -2399            seed = self._parse_wrapped(self._parse_number)
                  -2400
                  -2401        return self.expression(
                  -2402            exp.TableSample,
                  -2403            method=method,
                  -2404            bucket_numerator=bucket_numerator,
                  -2405            bucket_denominator=bucket_denominator,
                  -2406            bucket_field=bucket_field,
                  -2407            percent=percent,
                  -2408            rows=rows,
                  -2409            size=size,
                  -2410            seed=seed,
                  -2411            kind=kind,
                  +2394        return self.expression(exp.Values, expressions=expressions, alias=self._parse_table_alias())
                  +2395
                  +2396    def _parse_table_sample(self, as_modifier: bool = False) -> t.Optional[exp.Expression]:
                  +2397        if not self._match(TokenType.TABLE_SAMPLE) and not (
                  +2398            as_modifier and self._match_text_seq("USING", "SAMPLE")
                  +2399        ):
                  +2400            return None
                  +2401
                  +2402        bucket_numerator = None
                  +2403        bucket_denominator = None
                  +2404        bucket_field = None
                  +2405        percent = None
                  +2406        rows = None
                  +2407        size = None
                  +2408        seed = None
                  +2409
                  +2410        kind = (
                  +2411            self._prev.text if self._prev.token_type == TokenType.TABLE_SAMPLE else "USING SAMPLE"
                   2412        )
                  -2413
                  -2414    def _parse_pivots(self) -> t.List[t.Optional[exp.Expression]]:
                  -2415        return list(iter(self._parse_pivot, None))
                  +2413        method = self._parse_var(tokens=(TokenType.ROW,))
                  +2414
                  +2415        self._match(TokenType.L_PAREN)
                   2416
                  -2417    def _parse_pivot(self) -> t.Optional[exp.Expression]:
                  -2418        index = self._index
                  -2419
                  -2420        if self._match(TokenType.PIVOT):
                  -2421            unpivot = False
                  -2422        elif self._match(TokenType.UNPIVOT):
                  -2423            unpivot = True
                  -2424        else:
                  -2425            return None
                  -2426
                  -2427        expressions = []
                  -2428        field = None
                  -2429
                  -2430        if not self._match(TokenType.L_PAREN):
                  -2431            self._retreat(index)
                  -2432            return None
                  +2417        num = self._parse_number()
                  +2418
                  +2419        if self._match_text_seq("BUCKET"):
                  +2420            bucket_numerator = self._parse_number()
                  +2421            self._match_text_seq("OUT", "OF")
                  +2422            bucket_denominator = bucket_denominator = self._parse_number()
                  +2423            self._match(TokenType.ON)
                  +2424            bucket_field = self._parse_field()
                  +2425        elif self._match_set((TokenType.PERCENT, TokenType.MOD)):
                  +2426            percent = num
                  +2427        elif self._match(TokenType.ROWS):
                  +2428            rows = num
                  +2429        else:
                  +2430            size = num
                  +2431
                  +2432        self._match(TokenType.R_PAREN)
                   2433
                  -2434        if unpivot:
                  -2435            expressions = self._parse_csv(self._parse_column)
                  -2436        else:
                  -2437            expressions = self._parse_csv(lambda: self._parse_alias(self._parse_function()))
                  -2438
                  -2439        if not expressions:
                  -2440            self.raise_error("Failed to parse PIVOT's aggregation list")
                  -2441
                  -2442        if not self._match(TokenType.FOR):
                  -2443            self.raise_error("Expecting FOR")
                  -2444
                  -2445        value = self._parse_column()
                  -2446
                  -2447        if not self._match(TokenType.IN):
                  -2448            self.raise_error("Expecting IN")
                  -2449
                  -2450        field = self._parse_in(value, alias=True)
                  -2451
                  -2452        self._match_r_paren()
                  +2434        if self._match(TokenType.L_PAREN):
                  +2435            method = self._parse_var()
                  +2436            seed = self._match(TokenType.COMMA) and self._parse_number()
                  +2437            self._match_r_paren()
                  +2438        elif self._match_texts(("SEED", "REPEATABLE")):
                  +2439            seed = self._parse_wrapped(self._parse_number)
                  +2440
                  +2441        return self.expression(
                  +2442            exp.TableSample,
                  +2443            method=method,
                  +2444            bucket_numerator=bucket_numerator,
                  +2445            bucket_denominator=bucket_denominator,
                  +2446            bucket_field=bucket_field,
                  +2447            percent=percent,
                  +2448            rows=rows,
                  +2449            size=size,
                  +2450            seed=seed,
                  +2451            kind=kind,
                  +2452        )
                   2453
                  -2454        pivot = self.expression(exp.Pivot, expressions=expressions, field=field, unpivot=unpivot)
                  -2455
                  -2456        if not self._match_set((TokenType.PIVOT, TokenType.UNPIVOT), advance=False):
                  -2457            pivot.set("alias", self._parse_table_alias())
                  -2458
                  -2459        if not unpivot:
                  -2460            names = self._pivot_column_names(t.cast(t.List[exp.Expression], expressions))
                  -2461
                  -2462            columns: t.List[exp.Expression] = []
                  -2463            for fld in pivot.args["field"].expressions:
                  -2464                field_name = fld.sql() if self.IDENTIFY_PIVOT_STRINGS else fld.alias_or_name
                  -2465                for name in names:
                  -2466                    if self.PREFIXED_PIVOT_COLUMNS:
                  -2467                        name = f"{name}_{field_name}" if name else field_name
                  -2468                    else:
                  -2469                        name = f"{field_name}_{name}" if name else field_name
                  -2470
                  -2471                    columns.append(exp.to_identifier(name))
                  +2454    def _parse_pivots(self) -> t.List[t.Optional[exp.Expression]]:
                  +2455        return list(iter(self._parse_pivot, None))
                  +2456
                  +2457    # https://duckdb.org/docs/sql/statements/pivot
                  +2458    def _parse_simplified_pivot(self) -> exp.Pivot:
                  +2459        def _parse_on() -> t.Optional[exp.Expression]:
                  +2460            this = self._parse_bitwise()
                  +2461            return self._parse_in(this) if self._match(TokenType.IN) else this
                  +2462
                  +2463        this = self._parse_table()
                  +2464        expressions = self._match(TokenType.ON) and self._parse_csv(_parse_on)
                  +2465        using = self._match(TokenType.USING) and self._parse_csv(
                  +2466            lambda: self._parse_alias(self._parse_function())
                  +2467        )
                  +2468        group = self._parse_group()
                  +2469        return self.expression(
                  +2470            exp.Pivot, this=this, expressions=expressions, using=using, group=group
                  +2471        )
                   2472
                  -2473            pivot.set("columns", columns)
                  -2474
                  -2475        return pivot
                  -2476
                  -2477    def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]:
                  -2478        return [agg.alias for agg in aggregations]
                  -2479
                  -2480    def _parse_where(self, skip_where_token: bool = False) -> t.Optional[exp.Expression]:
                  -2481        if not skip_where_token and not self._match(TokenType.WHERE):
                  -2482            return None
                  -2483
                  -2484        return self.expression(
                  -2485            exp.Where, comments=self._prev_comments, this=self._parse_conjunction()
                  -2486        )
                  -2487
                  -2488    def _parse_group(self, skip_group_by_token: bool = False) -> t.Optional[exp.Expression]:
                  -2489        if not skip_group_by_token and not self._match(TokenType.GROUP_BY):
                  -2490            return None
                  -2491
                  -2492        elements = defaultdict(list)
                  -2493
                  -2494        while True:
                  -2495            expressions = self._parse_csv(self._parse_conjunction)
                  -2496            if expressions:
                  -2497                elements["expressions"].extend(expressions)
                  -2498
                  -2499            grouping_sets = self._parse_grouping_sets()
                  -2500            if grouping_sets:
                  -2501                elements["grouping_sets"].extend(grouping_sets)
                  +2473    def _parse_pivot(self) -> t.Optional[exp.Expression]:
                  +2474        index = self._index
                  +2475
                  +2476        if self._match(TokenType.PIVOT):
                  +2477            unpivot = False
                  +2478        elif self._match(TokenType.UNPIVOT):
                  +2479            unpivot = True
                  +2480        else:
                  +2481            return None
                  +2482
                  +2483        expressions = []
                  +2484        field = None
                  +2485
                  +2486        if not self._match(TokenType.L_PAREN):
                  +2487            self._retreat(index)
                  +2488            return None
                  +2489
                  +2490        if unpivot:
                  +2491            expressions = self._parse_csv(self._parse_column)
                  +2492        else:
                  +2493            expressions = self._parse_csv(lambda: self._parse_alias(self._parse_function()))
                  +2494
                  +2495        if not expressions:
                  +2496            self.raise_error("Failed to parse PIVOT's aggregation list")
                  +2497
                  +2498        if not self._match(TokenType.FOR):
                  +2499            self.raise_error("Expecting FOR")
                  +2500
                  +2501        value = self._parse_column()
                   2502
                  -2503            rollup = None
                  -2504            cube = None
                  -2505            totals = None
                  -2506
                  -2507            with_ = self._match(TokenType.WITH)
                  -2508            if self._match(TokenType.ROLLUP):
                  -2509                rollup = with_ or self._parse_wrapped_csv(self._parse_column)
                  -2510                elements["rollup"].extend(ensure_list(rollup))
                  +2503        if not self._match(TokenType.IN):
                  +2504            self.raise_error("Expecting IN")
                  +2505
                  +2506        field = self._parse_in(value, alias=True)
                  +2507
                  +2508        self._match_r_paren()
                  +2509
                  +2510        pivot = self.expression(exp.Pivot, expressions=expressions, field=field, unpivot=unpivot)
                   2511
                  -2512            if self._match(TokenType.CUBE):
                  -2513                cube = with_ or self._parse_wrapped_csv(self._parse_column)
                  -2514                elements["cube"].extend(ensure_list(cube))
                  -2515
                  -2516            if self._match_text_seq("TOTALS"):
                  -2517                totals = True
                  -2518                elements["totals"] = True  # type: ignore
                  -2519
                  -2520            if not (grouping_sets or rollup or cube or totals):
                  -2521                break
                  -2522
                  -2523        return self.expression(exp.Group, **elements)  # type: ignore
                  -2524
                  -2525    def _parse_grouping_sets(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
                  -2526        if not self._match(TokenType.GROUPING_SETS):
                  -2527            return None
                  +2512        if not self._match_set((TokenType.PIVOT, TokenType.UNPIVOT), advance=False):
                  +2513            pivot.set("alias", self._parse_table_alias())
                  +2514
                  +2515        if not unpivot:
                  +2516            names = self._pivot_column_names(t.cast(t.List[exp.Expression], expressions))
                  +2517
                  +2518            columns: t.List[exp.Expression] = []
                  +2519            for fld in pivot.args["field"].expressions:
                  +2520                field_name = fld.sql() if self.IDENTIFY_PIVOT_STRINGS else fld.alias_or_name
                  +2521                for name in names:
                  +2522                    if self.PREFIXED_PIVOT_COLUMNS:
                  +2523                        name = f"{name}_{field_name}" if name else field_name
                  +2524                    else:
                  +2525                        name = f"{field_name}_{name}" if name else field_name
                  +2526
                  +2527                    columns.append(exp.to_identifier(name))
                   2528
                  -2529        return self._parse_wrapped_csv(self._parse_grouping_set)
                  +2529            pivot.set("columns", columns)
                   2530
                  -2531    def _parse_grouping_set(self) -> t.Optional[exp.Expression]:
                  -2532        if self._match(TokenType.L_PAREN):
                  -2533            grouping_set = self._parse_csv(self._parse_column)
                  -2534            self._match_r_paren()
                  -2535            return self.expression(exp.Tuple, expressions=grouping_set)
                  -2536
                  -2537        return self._parse_column()
                  -2538
                  -2539    def _parse_having(self, skip_having_token: bool = False) -> t.Optional[exp.Expression]:
                  -2540        if not skip_having_token and not self._match(TokenType.HAVING):
                  -2541            return None
                  -2542        return self.expression(exp.Having, this=self._parse_conjunction())
                  +2531        return pivot
                  +2532
                  +2533    def _pivot_column_names(self, aggregations: t.List[exp.Expression]) -> t.List[str]:
                  +2534        return [agg.alias for agg in aggregations]
                  +2535
                  +2536    def _parse_where(self, skip_where_token: bool = False) -> t.Optional[exp.Expression]:
                  +2537        if not skip_where_token and not self._match(TokenType.WHERE):
                  +2538            return None
                  +2539
                  +2540        return self.expression(
                  +2541            exp.Where, comments=self._prev_comments, this=self._parse_conjunction()
                  +2542        )
                   2543
                  -2544    def _parse_qualify(self) -> t.Optional[exp.Expression]:
                  -2545        if not self._match(TokenType.QUALIFY):
                  +2544    def _parse_group(self, skip_group_by_token: bool = False) -> t.Optional[exp.Expression]:
                  +2545        if not skip_group_by_token and not self._match(TokenType.GROUP_BY):
                   2546            return None
                  -2547        return self.expression(exp.Qualify, this=self._parse_conjunction())
                  -2548
                  -2549    def _parse_order(
                  -2550        self, this: t.Optional[exp.Expression] = None, skip_order_token: bool = False
                  -2551    ) -> t.Optional[exp.Expression]:
                  -2552        if not skip_order_token and not self._match(TokenType.ORDER_BY):
                  -2553            return this
                  +2547
                  +2548        elements = defaultdict(list)
                  +2549
                  +2550        while True:
                  +2551            expressions = self._parse_csv(self._parse_conjunction)
                  +2552            if expressions:
                  +2553                elements["expressions"].extend(expressions)
                   2554
                  -2555        return self.expression(
                  -2556            exp.Order, this=this, expressions=self._parse_csv(self._parse_ordered)
                  -2557        )
                  +2555            grouping_sets = self._parse_grouping_sets()
                  +2556            if grouping_sets:
                  +2557                elements["grouping_sets"].extend(grouping_sets)
                   2558
                  -2559    def _parse_sort(
                  -2560        self, exp_class: t.Type[exp.Expression], *texts: str
                  -2561    ) -> t.Optional[exp.Expression]:
                  -2562        if not self._match_text_seq(*texts):
                  -2563            return None
                  -2564        return self.expression(exp_class, expressions=self._parse_csv(self._parse_ordered))
                  -2565
                  -2566    def _parse_ordered(self) -> exp.Expression:
                  -2567        this = self._parse_conjunction()
                  -2568        self._match(TokenType.ASC)
                  -2569        is_desc = self._match(TokenType.DESC)
                  -2570        is_nulls_first = self._match_text_seq("NULLS", "FIRST")
                  -2571        is_nulls_last = self._match_text_seq("NULLS", "LAST")
                  -2572        desc = is_desc or False
                  -2573        asc = not desc
                  -2574        nulls_first = is_nulls_first or False
                  -2575        explicitly_null_ordered = is_nulls_first or is_nulls_last
                  -2576        if (
                  -2577            not explicitly_null_ordered
                  -2578            and (
                  -2579                (asc and self.null_ordering == "nulls_are_small")
                  -2580                or (desc and self.null_ordering != "nulls_are_small")
                  -2581            )
                  -2582            and self.null_ordering != "nulls_are_last"
                  -2583        ):
                  -2584            nulls_first = True
                  -2585
                  -2586        return self.expression(exp.Ordered, this=this, desc=desc, nulls_first=nulls_first)
                  -2587
                  -2588    def _parse_limit(
                  -2589        self, this: t.Optional[exp.Expression] = None, top: bool = False
                  -2590    ) -> t.Optional[exp.Expression]:
                  -2591        if self._match(TokenType.TOP if top else TokenType.LIMIT):
                  -2592            limit_paren = self._match(TokenType.L_PAREN)
                  -2593            limit_exp = self.expression(
                  -2594                exp.Limit, this=this, expression=self._parse_number() if top else self._parse_term()
                  -2595            )
                  -2596
                  -2597            if limit_paren:
                  -2598                self._match_r_paren()
                  +2559            rollup = None
                  +2560            cube = None
                  +2561            totals = None
                  +2562
                  +2563            with_ = self._match(TokenType.WITH)
                  +2564            if self._match(TokenType.ROLLUP):
                  +2565                rollup = with_ or self._parse_wrapped_csv(self._parse_column)
                  +2566                elements["rollup"].extend(ensure_list(rollup))
                  +2567
                  +2568            if self._match(TokenType.CUBE):
                  +2569                cube = with_ or self._parse_wrapped_csv(self._parse_column)
                  +2570                elements["cube"].extend(ensure_list(cube))
                  +2571
                  +2572            if self._match_text_seq("TOTALS"):
                  +2573                totals = True
                  +2574                elements["totals"] = True  # type: ignore
                  +2575
                  +2576            if not (grouping_sets or rollup or cube or totals):
                  +2577                break
                  +2578
                  +2579        return self.expression(exp.Group, **elements)  # type: ignore
                  +2580
                  +2581    def _parse_grouping_sets(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
                  +2582        if not self._match(TokenType.GROUPING_SETS):
                  +2583            return None
                  +2584
                  +2585        return self._parse_wrapped_csv(self._parse_grouping_set)
                  +2586
                  +2587    def _parse_grouping_set(self) -> t.Optional[exp.Expression]:
                  +2588        if self._match(TokenType.L_PAREN):
                  +2589            grouping_set = self._parse_csv(self._parse_column)
                  +2590            self._match_r_paren()
                  +2591            return self.expression(exp.Tuple, expressions=grouping_set)
                  +2592
                  +2593        return self._parse_column()
                  +2594
                  +2595    def _parse_having(self, skip_having_token: bool = False) -> t.Optional[exp.Expression]:
                  +2596        if not skip_having_token and not self._match(TokenType.HAVING):
                  +2597            return None
                  +2598        return self.expression(exp.Having, this=self._parse_conjunction())
                   2599
                  -2600            return limit_exp
                  -2601
                  -2602        if self._match(TokenType.FETCH):
                  -2603            direction = self._match_set((TokenType.FIRST, TokenType.NEXT))
                  -2604            direction = self._prev.text if direction else "FIRST"
                  -2605
                  -2606            count = self._parse_number()
                  -2607            percent = self._match(TokenType.PERCENT)
                  -2608
                  -2609            self._match_set((TokenType.ROW, TokenType.ROWS))
                  +2600    def _parse_qualify(self) -> t.Optional[exp.Expression]:
                  +2601        if not self._match(TokenType.QUALIFY):
                  +2602            return None
                  +2603        return self.expression(exp.Qualify, this=self._parse_conjunction())
                  +2604
                  +2605    def _parse_order(
                  +2606        self, this: t.Optional[exp.Expression] = None, skip_order_token: bool = False
                  +2607    ) -> t.Optional[exp.Expression]:
                  +2608        if not skip_order_token and not self._match(TokenType.ORDER_BY):
                  +2609            return this
                   2610
                  -2611            only = self._match_text_seq("ONLY")
                  -2612            with_ties = self._match_text_seq("WITH", "TIES")
                  -2613
                  -2614            if only and with_ties:
                  -2615                self.raise_error("Cannot specify both ONLY and WITH TIES in FETCH clause")
                  -2616
                  -2617            return self.expression(
                  -2618                exp.Fetch,
                  -2619                direction=direction,
                  -2620                count=count,
                  -2621                percent=percent,
                  -2622                with_ties=with_ties,
                  -2623            )
                  -2624
                  -2625        return this
                  -2626
                  -2627    def _parse_offset(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]:
                  -2628        if not self._match_set((TokenType.OFFSET, TokenType.COMMA)):
                  -2629            return this
                  -2630
                  -2631        count = self._parse_number()
                  -2632        self._match_set((TokenType.ROW, TokenType.ROWS))
                  -2633        return self.expression(exp.Offset, this=this, expression=count)
                  -2634
                  -2635    def _parse_locks(self) -> t.List[exp.Expression]:
                  -2636        # Lists are invariant, so we need to use a type hint here
                  -2637        locks: t.List[exp.Expression] = []
                  -2638
                  -2639        while True:
                  -2640            if self._match_text_seq("FOR", "UPDATE"):
                  -2641                update = True
                  -2642            elif self._match_text_seq("FOR", "SHARE") or self._match_text_seq(
                  -2643                "LOCK", "IN", "SHARE", "MODE"
                  -2644            ):
                  -2645                update = False
                  -2646            else:
                  -2647                break
                  -2648
                  -2649            expressions = None
                  -2650            if self._match_text_seq("OF"):
                  -2651                expressions = self._parse_csv(lambda: self._parse_table(schema=True))
                  +2611        return self.expression(
                  +2612            exp.Order, this=this, expressions=self._parse_csv(self._parse_ordered)
                  +2613        )
                  +2614
                  +2615    def _parse_sort(
                  +2616        self, exp_class: t.Type[exp.Expression], *texts: str
                  +2617    ) -> t.Optional[exp.Expression]:
                  +2618        if not self._match_text_seq(*texts):
                  +2619            return None
                  +2620        return self.expression(exp_class, expressions=self._parse_csv(self._parse_ordered))
                  +2621
                  +2622    def _parse_ordered(self) -> exp.Expression:
                  +2623        this = self._parse_conjunction()
                  +2624        self._match(TokenType.ASC)
                  +2625        is_desc = self._match(TokenType.DESC)
                  +2626        is_nulls_first = self._match_text_seq("NULLS", "FIRST")
                  +2627        is_nulls_last = self._match_text_seq("NULLS", "LAST")
                  +2628        desc = is_desc or False
                  +2629        asc = not desc
                  +2630        nulls_first = is_nulls_first or False
                  +2631        explicitly_null_ordered = is_nulls_first or is_nulls_last
                  +2632        if (
                  +2633            not explicitly_null_ordered
                  +2634            and (
                  +2635                (asc and self.null_ordering == "nulls_are_small")
                  +2636                or (desc and self.null_ordering != "nulls_are_small")
                  +2637            )
                  +2638            and self.null_ordering != "nulls_are_last"
                  +2639        ):
                  +2640            nulls_first = True
                  +2641
                  +2642        return self.expression(exp.Ordered, this=this, desc=desc, nulls_first=nulls_first)
                  +2643
                  +2644    def _parse_limit(
                  +2645        self, this: t.Optional[exp.Expression] = None, top: bool = False
                  +2646    ) -> t.Optional[exp.Expression]:
                  +2647        if self._match(TokenType.TOP if top else TokenType.LIMIT):
                  +2648            limit_paren = self._match(TokenType.L_PAREN)
                  +2649            limit_exp = self.expression(
                  +2650                exp.Limit, this=this, expression=self._parse_number() if top else self._parse_term()
                  +2651            )
                   2652
                  -2653            wait: t.Optional[bool | exp.Expression] = None
                  -2654            if self._match_text_seq("NOWAIT"):
                  -2655                wait = True
                  -2656            elif self._match_text_seq("WAIT"):
                  -2657                wait = self._parse_primary()
                  -2658            elif self._match_text_seq("SKIP", "LOCKED"):
                  -2659                wait = False
                  -2660
                  -2661            locks.append(
                  -2662                self.expression(exp.Lock, update=update, expressions=expressions, wait=wait)
                  -2663            )
                  +2653            if limit_paren:
                  +2654                self._match_r_paren()
                  +2655
                  +2656            return limit_exp
                  +2657
                  +2658        if self._match(TokenType.FETCH):
                  +2659            direction = self._match_set((TokenType.FIRST, TokenType.NEXT))
                  +2660            direction = self._prev.text if direction else "FIRST"
                  +2661
                  +2662            count = self._parse_number()
                  +2663            percent = self._match(TokenType.PERCENT)
                   2664
                  -2665        return locks
                  +2665            self._match_set((TokenType.ROW, TokenType.ROWS))
                   2666
                  -2667    def _parse_set_operations(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  -2668        if not self._match_set(self.SET_OPERATIONS):
                  -2669            return this
                  -2670
                  -2671        token_type = self._prev.token_type
                  +2667            only = self._match_text_seq("ONLY")
                  +2668            with_ties = self._match_text_seq("WITH", "TIES")
                  +2669
                  +2670            if only and with_ties:
                  +2671                self.raise_error("Cannot specify both ONLY and WITH TIES in FETCH clause")
                   2672
                  -2673        if token_type == TokenType.UNION:
                  -2674            expression = exp.Union
                  -2675        elif token_type == TokenType.EXCEPT:
                  -2676            expression = exp.Except
                  -2677        else:
                  -2678            expression = exp.Intersect
                  -2679
                  -2680        return self.expression(
                  -2681            expression,
                  -2682            this=this,
                  -2683            distinct=self._match(TokenType.DISTINCT) or not self._match(TokenType.ALL),
                  -2684            expression=self._parse_set_operations(self._parse_select(nested=True)),
                  -2685        )
                  +2673            return self.expression(
                  +2674                exp.Fetch,
                  +2675                direction=direction,
                  +2676                count=count,
                  +2677                percent=percent,
                  +2678                with_ties=with_ties,
                  +2679            )
                  +2680
                  +2681        return this
                  +2682
                  +2683    def _parse_offset(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]:
                  +2684        if not self._match_set((TokenType.OFFSET, TokenType.COMMA)):
                  +2685            return this
                   2686
                  -2687    def _parse_expression(self) -> t.Optional[exp.Expression]:
                  -2688        return self._parse_alias(self._parse_conjunction())
                  -2689
                  -2690    def _parse_conjunction(self) -> t.Optional[exp.Expression]:
                  -2691        return self._parse_tokens(self._parse_equality, self.CONJUNCTION)
                  -2692
                  -2693    def _parse_equality(self) -> t.Optional[exp.Expression]:
                  -2694        return self._parse_tokens(self._parse_comparison, self.EQUALITY)
                  -2695
                  -2696    def _parse_comparison(self) -> t.Optional[exp.Expression]:
                  -2697        return self._parse_tokens(self._parse_range, self.COMPARISON)
                  -2698
                  -2699    def _parse_range(self) -> t.Optional[exp.Expression]:
                  -2700        this = self._parse_bitwise()
                  -2701        negate = self._match(TokenType.NOT)
                  -2702
                  -2703        if self._match_set(self.RANGE_PARSERS):
                  -2704            expression = self.RANGE_PARSERS[self._prev.token_type](self, this)
                  -2705            if not expression:
                  -2706                return this
                  -2707
                  -2708            this = expression
                  -2709        elif self._match(TokenType.ISNULL):
                  -2710            this = self.expression(exp.Is, this=this, expression=exp.Null())
                  -2711
                  -2712        # Postgres supports ISNULL and NOTNULL for conditions.
                  -2713        # https://blog.andreiavram.ro/postgresql-null-composite-type/
                  -2714        if self._match(TokenType.NOTNULL):
                  -2715            this = self.expression(exp.Is, this=this, expression=exp.Null())
                  -2716            this = self.expression(exp.Not, this=this)
                  -2717
                  -2718        if negate:
                  -2719            this = self.expression(exp.Not, this=this)
                  +2687        count = self._parse_number()
                  +2688        self._match_set((TokenType.ROW, TokenType.ROWS))
                  +2689        return self.expression(exp.Offset, this=this, expression=count)
                  +2690
                  +2691    def _parse_locks(self) -> t.List[exp.Expression]:
                  +2692        # Lists are invariant, so we need to use a type hint here
                  +2693        locks: t.List[exp.Expression] = []
                  +2694
                  +2695        while True:
                  +2696            if self._match_text_seq("FOR", "UPDATE"):
                  +2697                update = True
                  +2698            elif self._match_text_seq("FOR", "SHARE") or self._match_text_seq(
                  +2699                "LOCK", "IN", "SHARE", "MODE"
                  +2700            ):
                  +2701                update = False
                  +2702            else:
                  +2703                break
                  +2704
                  +2705            expressions = None
                  +2706            if self._match_text_seq("OF"):
                  +2707                expressions = self._parse_csv(lambda: self._parse_table(schema=True))
                  +2708
                  +2709            wait: t.Optional[bool | exp.Expression] = None
                  +2710            if self._match_text_seq("NOWAIT"):
                  +2711                wait = True
                  +2712            elif self._match_text_seq("WAIT"):
                  +2713                wait = self._parse_primary()
                  +2714            elif self._match_text_seq("SKIP", "LOCKED"):
                  +2715                wait = False
                  +2716
                  +2717            locks.append(
                  +2718                self.expression(exp.Lock, update=update, expressions=expressions, wait=wait)
                  +2719            )
                   2720
                  -2721        if self._match(TokenType.IS):
                  -2722            this = self._parse_is(this)
                  -2723
                  -2724        return this
                  -2725
                  -2726    def _parse_is(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  -2727        index = self._index - 1
                  -2728        negate = self._match(TokenType.NOT)
                  -2729        if self._match_text_seq("DISTINCT", "FROM"):
                  -2730            klass = exp.NullSafeEQ if negate else exp.NullSafeNEQ
                  -2731            return self.expression(klass, this=this, expression=self._parse_expression())
                  -2732
                  -2733        expression = self._parse_null() or self._parse_boolean()
                  -2734        if not expression:
                  -2735            self._retreat(index)
                  -2736            return None
                  -2737
                  -2738        this = self.expression(exp.Is, this=this, expression=expression)
                  -2739        return self.expression(exp.Not, this=this) if negate else this
                  -2740
                  -2741    def _parse_in(self, this: t.Optional[exp.Expression], alias: bool = False) -> exp.Expression:
                  -2742        unnest = self._parse_unnest()
                  -2743        if unnest:
                  -2744            this = self.expression(exp.In, this=this, unnest=unnest)
                  -2745        elif self._match(TokenType.L_PAREN):
                  -2746            expressions = self._parse_csv(lambda: self._parse_select_or_expression(alias=alias))
                  -2747
                  -2748            if len(expressions) == 1 and isinstance(expressions[0], exp.Subqueryable):
                  -2749                this = self.expression(exp.In, this=this, query=expressions[0])
                  -2750            else:
                  -2751                this = self.expression(exp.In, this=this, expressions=expressions)
                  -2752
                  -2753            self._match_r_paren(this)
                  -2754        else:
                  -2755            this = self.expression(exp.In, this=this, field=self._parse_field())
                  -2756
                  -2757        return this
                  +2721        return locks
                  +2722
                  +2723    def _parse_set_operations(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  +2724        if not self._match_set(self.SET_OPERATIONS):
                  +2725            return this
                  +2726
                  +2727        token_type = self._prev.token_type
                  +2728
                  +2729        if token_type == TokenType.UNION:
                  +2730            expression = exp.Union
                  +2731        elif token_type == TokenType.EXCEPT:
                  +2732            expression = exp.Except
                  +2733        else:
                  +2734            expression = exp.Intersect
                  +2735
                  +2736        return self.expression(
                  +2737            expression,
                  +2738            this=this,
                  +2739            distinct=self._match(TokenType.DISTINCT) or not self._match(TokenType.ALL),
                  +2740            expression=self._parse_set_operations(self._parse_select(nested=True)),
                  +2741        )
                  +2742
                  +2743    def _parse_expression(self) -> t.Optional[exp.Expression]:
                  +2744        return self._parse_alias(self._parse_conjunction())
                  +2745
                  +2746    def _parse_conjunction(self) -> t.Optional[exp.Expression]:
                  +2747        return self._parse_tokens(self._parse_equality, self.CONJUNCTION)
                  +2748
                  +2749    def _parse_equality(self) -> t.Optional[exp.Expression]:
                  +2750        return self._parse_tokens(self._parse_comparison, self.EQUALITY)
                  +2751
                  +2752    def _parse_comparison(self) -> t.Optional[exp.Expression]:
                  +2753        return self._parse_tokens(self._parse_range, self.COMPARISON)
                  +2754
                  +2755    def _parse_range(self) -> t.Optional[exp.Expression]:
                  +2756        this = self._parse_bitwise()
                  +2757        negate = self._match(TokenType.NOT)
                   2758
                  -2759    def _parse_between(self, this: exp.Expression) -> exp.Expression:
                  -2760        low = self._parse_bitwise()
                  -2761        self._match(TokenType.AND)
                  -2762        high = self._parse_bitwise()
                  -2763        return self.expression(exp.Between, this=this, low=low, high=high)
                  -2764
                  -2765    def _parse_escape(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  -2766        if not self._match(TokenType.ESCAPE):
                  -2767            return this
                  -2768        return self.expression(exp.Escape, this=this, expression=self._parse_string())
                  -2769
                  -2770    def _parse_interval(self) -> t.Optional[exp.Expression]:
                  -2771        if not self._match(TokenType.INTERVAL):
                  -2772            return None
                  +2759        if self._match_set(self.RANGE_PARSERS):
                  +2760            expression = self.RANGE_PARSERS[self._prev.token_type](self, this)
                  +2761            if not expression:
                  +2762                return this
                  +2763
                  +2764            this = expression
                  +2765        elif self._match(TokenType.ISNULL):
                  +2766            this = self.expression(exp.Is, this=this, expression=exp.Null())
                  +2767
                  +2768        # Postgres supports ISNULL and NOTNULL for conditions.
                  +2769        # https://blog.andreiavram.ro/postgresql-null-composite-type/
                  +2770        if self._match(TokenType.NOTNULL):
                  +2771            this = self.expression(exp.Is, this=this, expression=exp.Null())
                  +2772            this = self.expression(exp.Not, this=this)
                   2773
                  -2774        this = self._parse_primary() or self._parse_term()
                  -2775        unit = self._parse_function() or self._parse_var()
                  +2774        if negate:
                  +2775            this = self.expression(exp.Not, this=this)
                   2776
                  -2777        # Most dialects support, e.g., the form INTERVAL '5' day, thus we try to parse
                  -2778        # each INTERVAL expression into this canonical form so it's easy to transpile
                  -2779        if this and isinstance(this, exp.Literal):
                  -2780            if this.is_number:
                  -2781                this = exp.Literal.string(this.name)
                  -2782
                  -2783            # Try to not clutter Snowflake's multi-part intervals like INTERVAL '1 day, 1 year'
                  -2784            parts = this.name.split()
                  -2785            if not unit and len(parts) <= 2:
                  -2786                this = exp.Literal.string(seq_get(parts, 0))
                  -2787                unit = self.expression(exp.Var, this=seq_get(parts, 1))
                  +2777        if self._match(TokenType.IS):
                  +2778            this = self._parse_is(this)
                  +2779
                  +2780        return this
                  +2781
                  +2782    def _parse_is(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  +2783        index = self._index - 1
                  +2784        negate = self._match(TokenType.NOT)
                  +2785        if self._match_text_seq("DISTINCT", "FROM"):
                  +2786            klass = exp.NullSafeEQ if negate else exp.NullSafeNEQ
                  +2787            return self.expression(klass, this=this, expression=self._parse_expression())
                   2788
                  -2789        return self.expression(exp.Interval, this=this, unit=unit)
                  -2790
                  -2791    def _parse_bitwise(self) -> t.Optional[exp.Expression]:
                  -2792        this = self._parse_term()
                  +2789        expression = self._parse_null() or self._parse_boolean()
                  +2790        if not expression:
                  +2791            self._retreat(index)
                  +2792            return None
                   2793
                  -2794        while True:
                  -2795            if self._match_set(self.BITWISE):
                  -2796                this = self.expression(
                  -2797                    self.BITWISE[self._prev.token_type],
                  -2798                    this=this,
                  -2799                    expression=self._parse_term(),
                  -2800                )
                  -2801            elif self._match_pair(TokenType.LT, TokenType.LT):
                  -2802                this = self.expression(
                  -2803                    exp.BitwiseLeftShift, this=this, expression=self._parse_term()
                  -2804                )
                  -2805            elif self._match_pair(TokenType.GT, TokenType.GT):
                  -2806                this = self.expression(
                  -2807                    exp.BitwiseRightShift, this=this, expression=self._parse_term()
                  -2808                )
                  -2809            else:
                  -2810                break
                  -2811
                  -2812        return this
                  -2813
                  -2814    def _parse_term(self) -> t.Optional[exp.Expression]:
                  -2815        return self._parse_tokens(self._parse_factor, self.TERM)
                  -2816
                  -2817    def _parse_factor(self) -> t.Optional[exp.Expression]:
                  -2818        return self._parse_tokens(self._parse_unary, self.FACTOR)
                  -2819
                  -2820    def _parse_unary(self) -> t.Optional[exp.Expression]:
                  -2821        if self._match_set(self.UNARY_PARSERS):
                  -2822            return self.UNARY_PARSERS[self._prev.token_type](self)
                  -2823        return self._parse_at_time_zone(self._parse_type())
                  -2824
                  -2825    def _parse_type(self) -> t.Optional[exp.Expression]:
                  -2826        interval = self._parse_interval()
                  -2827        if interval:
                  -2828            return interval
                  +2794        this = self.expression(exp.Is, this=this, expression=expression)
                  +2795        return self.expression(exp.Not, this=this) if negate else this
                  +2796
                  +2797    def _parse_in(self, this: t.Optional[exp.Expression], alias: bool = False) -> exp.In:
                  +2798        unnest = self._parse_unnest()
                  +2799        if unnest:
                  +2800            this = self.expression(exp.In, this=this, unnest=unnest)
                  +2801        elif self._match(TokenType.L_PAREN):
                  +2802            expressions = self._parse_csv(lambda: self._parse_select_or_expression(alias=alias))
                  +2803
                  +2804            if len(expressions) == 1 and isinstance(expressions[0], exp.Subqueryable):
                  +2805                this = self.expression(exp.In, this=this, query=expressions[0])
                  +2806            else:
                  +2807                this = self.expression(exp.In, this=this, expressions=expressions)
                  +2808
                  +2809            self._match_r_paren(this)
                  +2810        else:
                  +2811            this = self.expression(exp.In, this=this, field=self._parse_field())
                  +2812
                  +2813        return this
                  +2814
                  +2815    def _parse_between(self, this: exp.Expression) -> exp.Expression:
                  +2816        low = self._parse_bitwise()
                  +2817        self._match(TokenType.AND)
                  +2818        high = self._parse_bitwise()
                  +2819        return self.expression(exp.Between, this=this, low=low, high=high)
                  +2820
                  +2821    def _parse_escape(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  +2822        if not self._match(TokenType.ESCAPE):
                  +2823            return this
                  +2824        return self.expression(exp.Escape, this=this, expression=self._parse_string())
                  +2825
                  +2826    def _parse_interval(self) -> t.Optional[exp.Expression]:
                  +2827        if not self._match(TokenType.INTERVAL):
                  +2828            return None
                   2829
                  -2830        index = self._index
                  -2831        data_type = self._parse_types(check_func=True)
                  -2832        this = self._parse_column()
                  -2833
                  -2834        if data_type:
                  -2835            if isinstance(this, exp.Literal):
                  -2836                parser = self.TYPE_LITERAL_PARSERS.get(data_type.this)
                  -2837                if parser:
                  -2838                    return parser(self, this, data_type)
                  -2839                return self.expression(exp.Cast, this=this, to=data_type)
                  -2840            if not data_type.expressions:
                  -2841                self._retreat(index)
                  -2842                return self._parse_column()
                  -2843            return data_type
                  -2844
                  -2845        return this
                  -2846
                  -2847    def _parse_type_size(self) -> t.Optional[exp.Expression]:
                  -2848        this = self._parse_type()
                  -2849        if not this:
                  -2850            return None
                  -2851
                  -2852        return self.expression(
                  -2853            exp.DataTypeSize, this=this, expression=self._parse_var(any_token=True)
                  -2854        )
                  -2855
                  -2856    def _parse_types(self, check_func: bool = False) -> t.Optional[exp.Expression]:
                  -2857        index = self._index
                  -2858
                  -2859        prefix = self._match_text_seq("SYSUDTLIB", ".")
                  -2860
                  -2861        if not self._match_set(self.TYPE_TOKENS):
                  -2862            return None
                  -2863
                  -2864        type_token = self._prev.token_type
                  -2865
                  -2866        if type_token == TokenType.PSEUDO_TYPE:
                  -2867            return self.expression(exp.PseudoType, this=self._prev.text)
                  -2868
                  -2869        nested = type_token in self.NESTED_TYPE_TOKENS
                  -2870        is_struct = type_token == TokenType.STRUCT
                  -2871        expressions = None
                  -2872        maybe_func = False
                  +2830        this = self._parse_primary() or self._parse_term()
                  +2831        unit = self._parse_function() or self._parse_var()
                  +2832
                  +2833        # Most dialects support, e.g., the form INTERVAL '5' day, thus we try to parse
                  +2834        # each INTERVAL expression into this canonical form so it's easy to transpile
                  +2835        if this and this.is_number:
                  +2836            this = exp.Literal.string(this.name)
                  +2837        elif this and this.is_string:
                  +2838            parts = this.name.split()
                  +2839
                  +2840            if len(parts) == 2:
                  +2841                if unit:
                  +2842                    # this is not actually a unit, it's something else
                  +2843                    unit = None
                  +2844                    self._retreat(self._index - 1)
                  +2845                else:
                  +2846                    this = exp.Literal.string(parts[0])
                  +2847                    unit = self.expression(exp.Var, this=parts[1])
                  +2848
                  +2849        return self.expression(exp.Interval, this=this, unit=unit)
                  +2850
                  +2851    def _parse_bitwise(self) -> t.Optional[exp.Expression]:
                  +2852        this = self._parse_term()
                  +2853
                  +2854        while True:
                  +2855            if self._match_set(self.BITWISE):
                  +2856                this = self.expression(
                  +2857                    self.BITWISE[self._prev.token_type],
                  +2858                    this=this,
                  +2859                    expression=self._parse_term(),
                  +2860                )
                  +2861            elif self._match_pair(TokenType.LT, TokenType.LT):
                  +2862                this = self.expression(
                  +2863                    exp.BitwiseLeftShift, this=this, expression=self._parse_term()
                  +2864                )
                  +2865            elif self._match_pair(TokenType.GT, TokenType.GT):
                  +2866                this = self.expression(
                  +2867                    exp.BitwiseRightShift, this=this, expression=self._parse_term()
                  +2868                )
                  +2869            else:
                  +2870                break
                  +2871
                  +2872        return this
                   2873
                  -2874        if self._match(TokenType.L_PAREN):
                  -2875            if is_struct:
                  -2876                expressions = self._parse_csv(self._parse_struct_types)
                  -2877            elif nested:
                  -2878                expressions = self._parse_csv(self._parse_types)
                  -2879            else:
                  -2880                expressions = self._parse_csv(self._parse_type_size)
                  -2881
                  -2882            if not expressions or not self._match(TokenType.R_PAREN):
                  -2883                self._retreat(index)
                  -2884                return None
                  -2885
                  -2886            maybe_func = True
                  -2887
                  -2888        if self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET):
                  -2889            this = exp.DataType(
                  -2890                this=exp.DataType.Type.ARRAY,
                  -2891                expressions=[exp.DataType.build(type_token.value, expressions=expressions)],
                  -2892                nested=True,
                  -2893            )
                  -2894
                  -2895            while self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET):
                  -2896                this = exp.DataType(
                  -2897                    this=exp.DataType.Type.ARRAY,
                  -2898                    expressions=[this],
                  -2899                    nested=True,
                  -2900                )
                  -2901
                  -2902            return this
                  -2903
                  -2904        if self._match(TokenType.L_BRACKET):
                  -2905            self._retreat(index)
                  -2906            return None
                  -2907
                  -2908        values: t.Optional[t.List[t.Optional[exp.Expression]]] = None
                  -2909        if nested and self._match(TokenType.LT):
                  -2910            if is_struct:
                  -2911                expressions = self._parse_csv(self._parse_struct_types)
                  -2912            else:
                  -2913                expressions = self._parse_csv(self._parse_types)
                  -2914
                  -2915            if not self._match(TokenType.GT):
                  -2916                self.raise_error("Expecting >")
                  -2917
                  -2918            if self._match_set((TokenType.L_BRACKET, TokenType.L_PAREN)):
                  -2919                values = self._parse_csv(self._parse_conjunction)
                  -2920                self._match_set((TokenType.R_BRACKET, TokenType.R_PAREN))
                  -2921
                  -2922        value: t.Optional[exp.Expression] = None
                  -2923        if type_token in self.TIMESTAMPS:
                  -2924            if self._match_text_seq("WITH", "TIME", "ZONE") or type_token == TokenType.TIMESTAMPTZ:
                  -2925                value = exp.DataType(this=exp.DataType.Type.TIMESTAMPTZ, expressions=expressions)
                  -2926            elif (
                  -2927                self._match_text_seq("WITH", "LOCAL", "TIME", "ZONE")
                  -2928                or type_token == TokenType.TIMESTAMPLTZ
                  -2929            ):
                  -2930                value = exp.DataType(this=exp.DataType.Type.TIMESTAMPLTZ, expressions=expressions)
                  -2931            elif self._match_text_seq("WITHOUT", "TIME", "ZONE"):
                  -2932                if type_token == TokenType.TIME:
                  -2933                    value = exp.DataType(this=exp.DataType.Type.TIME, expressions=expressions)
                  -2934                else:
                  -2935                    value = exp.DataType(this=exp.DataType.Type.TIMESTAMP, expressions=expressions)
                  -2936
                  -2937            maybe_func = maybe_func and value is None
                  -2938
                  -2939            if value is None:
                  -2940                value = exp.DataType(this=exp.DataType.Type.TIMESTAMP, expressions=expressions)
                  -2941        elif type_token == TokenType.INTERVAL:
                  -2942            unit = self._parse_var()
                  -2943
                  -2944            if not unit:
                  -2945                value = self.expression(exp.DataType, this=exp.DataType.Type.INTERVAL)
                  -2946            else:
                  -2947                value = self.expression(exp.Interval, unit=unit)
                  -2948
                  -2949        if maybe_func and check_func:
                  -2950            index2 = self._index
                  -2951            peek = self._parse_string()
                  -2952
                  -2953            if not peek:
                  -2954                self._retreat(index)
                  -2955                return None
                  -2956
                  -2957            self._retreat(index2)
                  +2874    def _parse_term(self) -> t.Optional[exp.Expression]:
                  +2875        return self._parse_tokens(self._parse_factor, self.TERM)
                  +2876
                  +2877    def _parse_factor(self) -> t.Optional[exp.Expression]:
                  +2878        return self._parse_tokens(self._parse_unary, self.FACTOR)
                  +2879
                  +2880    def _parse_unary(self) -> t.Optional[exp.Expression]:
                  +2881        if self._match_set(self.UNARY_PARSERS):
                  +2882            return self.UNARY_PARSERS[self._prev.token_type](self)
                  +2883        return self._parse_at_time_zone(self._parse_type())
                  +2884
                  +2885    def _parse_type(self) -> t.Optional[exp.Expression]:
                  +2886        interval = self._parse_interval()
                  +2887        if interval:
                  +2888            return interval
                  +2889
                  +2890        index = self._index
                  +2891        data_type = self._parse_types(check_func=True)
                  +2892        this = self._parse_column()
                  +2893
                  +2894        if data_type:
                  +2895            if isinstance(this, exp.Literal):
                  +2896                parser = self.TYPE_LITERAL_PARSERS.get(data_type.this)
                  +2897                if parser:
                  +2898                    return parser(self, this, data_type)
                  +2899                return self.expression(exp.Cast, this=this, to=data_type)
                  +2900            if not data_type.expressions:
                  +2901                self._retreat(index)
                  +2902                return self._parse_column()
                  +2903            return self._parse_column_ops(data_type)
                  +2904
                  +2905        return this
                  +2906
                  +2907    def _parse_type_size(self) -> t.Optional[exp.Expression]:
                  +2908        this = self._parse_type()
                  +2909        if not this:
                  +2910            return None
                  +2911
                  +2912        return self.expression(
                  +2913            exp.DataTypeSize, this=this, expression=self._parse_var(any_token=True)
                  +2914        )
                  +2915
                  +2916    def _parse_types(
                  +2917        self, check_func: bool = False, schema: bool = False
                  +2918    ) -> t.Optional[exp.Expression]:
                  +2919        index = self._index
                  +2920
                  +2921        prefix = self._match_text_seq("SYSUDTLIB", ".")
                  +2922
                  +2923        if not self._match_set(self.TYPE_TOKENS):
                  +2924            return None
                  +2925
                  +2926        type_token = self._prev.token_type
                  +2927
                  +2928        if type_token == TokenType.PSEUDO_TYPE:
                  +2929            return self.expression(exp.PseudoType, this=self._prev.text)
                  +2930
                  +2931        nested = type_token in self.NESTED_TYPE_TOKENS
                  +2932        is_struct = type_token == TokenType.STRUCT
                  +2933        expressions = None
                  +2934        maybe_func = False
                  +2935
                  +2936        if self._match(TokenType.L_PAREN):
                  +2937            if is_struct:
                  +2938                expressions = self._parse_csv(self._parse_struct_types)
                  +2939            elif nested:
                  +2940                expressions = self._parse_csv(
                  +2941                    lambda: self._parse_types(check_func=check_func, schema=schema)
                  +2942                )
                  +2943            else:
                  +2944                expressions = self._parse_csv(self._parse_type_size)
                  +2945
                  +2946            if not expressions or not self._match(TokenType.R_PAREN):
                  +2947                self._retreat(index)
                  +2948                return None
                  +2949
                  +2950            maybe_func = True
                  +2951
                  +2952        if self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET):
                  +2953            this = exp.DataType(
                  +2954                this=exp.DataType.Type.ARRAY,
                  +2955                expressions=[exp.DataType.build(type_token.value, expressions=expressions)],
                  +2956                nested=True,
                  +2957            )
                   2958
                  -2959        if value:
                  -2960            return value
                  -2961
                  -2962        return exp.DataType(
                  -2963            this=exp.DataType.Type[type_token.value.upper()],
                  -2964            expressions=expressions,
                  -2965            nested=nested,
                  -2966            values=values,
                  -2967            prefix=prefix,
                  -2968        )
                  -2969
                  -2970    def _parse_struct_types(self) -> t.Optional[exp.Expression]:
                  -2971        this = self._parse_type() or self._parse_id_var()
                  -2972        self._match(TokenType.COLON)
                  -2973        return self._parse_column_def(this)
                  -2974
                  -2975    def _parse_at_time_zone(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  -2976        if not self._match_text_seq("AT", "TIME", "ZONE"):
                  -2977            return this
                  -2978        return self.expression(exp.AtTimeZone, this=this, zone=self._parse_unary())
                  -2979
                  -2980    def _parse_column(self) -> t.Optional[exp.Expression]:
                  -2981        this = self._parse_field()
                  -2982        if isinstance(this, exp.Identifier):
                  -2983            this = self.expression(exp.Column, this=this)
                  -2984        elif not this:
                  -2985            return self._parse_bracket(this)
                  -2986        this = self._parse_bracket(this)
                  +2959            while self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET):
                  +2960                this = exp.DataType(
                  +2961                    this=exp.DataType.Type.ARRAY,
                  +2962                    expressions=[this],
                  +2963                    nested=True,
                  +2964                )
                  +2965
                  +2966            return this
                  +2967
                  +2968        if self._match(TokenType.L_BRACKET):
                  +2969            self._retreat(index)
                  +2970            return None
                  +2971
                  +2972        values: t.Optional[t.List[t.Optional[exp.Expression]]] = None
                  +2973        if nested and self._match(TokenType.LT):
                  +2974            if is_struct:
                  +2975                expressions = self._parse_csv(self._parse_struct_types)
                  +2976            else:
                  +2977                expressions = self._parse_csv(
                  +2978                    lambda: self._parse_types(check_func=check_func, schema=schema)
                  +2979                )
                  +2980
                  +2981            if not self._match(TokenType.GT):
                  +2982                self.raise_error("Expecting >")
                  +2983
                  +2984            if self._match_set((TokenType.L_BRACKET, TokenType.L_PAREN)):
                  +2985                values = self._parse_csv(self._parse_conjunction)
                  +2986                self._match_set((TokenType.R_BRACKET, TokenType.R_PAREN))
                   2987
                  -2988        while self._match_set(self.COLUMN_OPERATORS):
                  -2989            op_token = self._prev.token_type
                  -2990            op = self.COLUMN_OPERATORS.get(op_token)
                  -2991
                  -2992            if op_token == TokenType.DCOLON:
                  -2993                field = self._parse_types()
                  -2994                if not field:
                  -2995                    self.raise_error("Expected type")
                  -2996            elif op and self._curr:
                  -2997                self._advance()
                  -2998                value = self._prev.text
                  -2999                field = (
                  -3000                    exp.Literal.number(value)
                  -3001                    if self._prev.token_type == TokenType.NUMBER
                  -3002                    else exp.Literal.string(value)
                  -3003                )
                  -3004            else:
                  -3005                field = (
                  -3006                    self._parse_star()
                  -3007                    or self._parse_function(anonymous=True)
                  -3008                    or self._parse_id_var()
                  -3009                )
                  -3010
                  -3011            if isinstance(field, exp.Func):
                  -3012                # bigquery allows function calls like x.y.count(...)
                  -3013                # SAFE.SUBSTR(...)
                  -3014                # https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-reference#function_call_rules
                  -3015                this = self._replace_columns_with_dots(this)
                  -3016
                  -3017            if op:
                  -3018                this = op(self, this, field)
                  -3019            elif isinstance(this, exp.Column) and not this.args.get("catalog"):
                  -3020                this = self.expression(
                  -3021                    exp.Column,
                  -3022                    this=field,
                  -3023                    table=this.this,
                  -3024                    db=this.args.get("table"),
                  -3025                    catalog=this.args.get("db"),
                  -3026                )
                  -3027            else:
                  -3028                this = self.expression(exp.Dot, this=this, expression=field)
                  -3029            this = self._parse_bracket(this)
                  -3030
                  -3031        return this
                  -3032
                  -3033    def _parse_primary(self) -> t.Optional[exp.Expression]:
                  -3034        if self._match_set(self.PRIMARY_PARSERS):
                  -3035            token_type = self._prev.token_type
                  -3036            primary = self.PRIMARY_PARSERS[token_type](self, self._prev)
                  -3037
                  -3038            if token_type == TokenType.STRING:
                  -3039                expressions = [primary]
                  -3040                while self._match(TokenType.STRING):
                  -3041                    expressions.append(exp.Literal.string(self._prev.text))
                  -3042                if len(expressions) > 1:
                  -3043                    return self.expression(exp.Concat, expressions=expressions)
                  -3044            return primary
                  +2988        value: t.Optional[exp.Expression] = None
                  +2989        if type_token in self.TIMESTAMPS:
                  +2990            if self._match_text_seq("WITH", "TIME", "ZONE") or type_token == TokenType.TIMESTAMPTZ:
                  +2991                value = exp.DataType(this=exp.DataType.Type.TIMESTAMPTZ, expressions=expressions)
                  +2992            elif (
                  +2993                self._match_text_seq("WITH", "LOCAL", "TIME", "ZONE")
                  +2994                or type_token == TokenType.TIMESTAMPLTZ
                  +2995            ):
                  +2996                value = exp.DataType(this=exp.DataType.Type.TIMESTAMPLTZ, expressions=expressions)
                  +2997            elif self._match_text_seq("WITHOUT", "TIME", "ZONE"):
                  +2998                if type_token == TokenType.TIME:
                  +2999                    value = exp.DataType(this=exp.DataType.Type.TIME, expressions=expressions)
                  +3000                else:
                  +3001                    value = exp.DataType(this=exp.DataType.Type.TIMESTAMP, expressions=expressions)
                  +3002
                  +3003            maybe_func = maybe_func and value is None
                  +3004
                  +3005            if value is None:
                  +3006                value = exp.DataType(this=exp.DataType.Type.TIMESTAMP, expressions=expressions)
                  +3007        elif type_token == TokenType.INTERVAL:
                  +3008            unit = self._parse_var()
                  +3009
                  +3010            if not unit:
                  +3011                value = self.expression(exp.DataType, this=exp.DataType.Type.INTERVAL)
                  +3012            else:
                  +3013                value = self.expression(exp.Interval, unit=unit)
                  +3014
                  +3015        if maybe_func and check_func:
                  +3016            index2 = self._index
                  +3017            peek = self._parse_string()
                  +3018
                  +3019            if not peek:
                  +3020                self._retreat(index)
                  +3021                return None
                  +3022
                  +3023            self._retreat(index2)
                  +3024
                  +3025        if value:
                  +3026            return value
                  +3027
                  +3028        return exp.DataType(
                  +3029            this=exp.DataType.Type[type_token.value.upper()],
                  +3030            expressions=expressions,
                  +3031            nested=nested,
                  +3032            values=values,
                  +3033            prefix=prefix,
                  +3034        )
                  +3035
                  +3036    def _parse_struct_types(self) -> t.Optional[exp.Expression]:
                  +3037        this = self._parse_type() or self._parse_id_var()
                  +3038        self._match(TokenType.COLON)
                  +3039        return self._parse_column_def(this)
                  +3040
                  +3041    def _parse_at_time_zone(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  +3042        if not self._match_text_seq("AT", "TIME", "ZONE"):
                  +3043            return this
                  +3044        return self.expression(exp.AtTimeZone, this=this, zone=self._parse_unary())
                   3045
                  -3046        if self._match_pair(TokenType.DOT, TokenType.NUMBER):
                  -3047            return exp.Literal.number(f"0.{self._prev.text}")
                  -3048
                  -3049        if self._match(TokenType.L_PAREN):
                  -3050            comments = self._prev_comments
                  -3051            query = self._parse_select()
                  -3052
                  -3053            if query:
                  -3054                expressions = [query]
                  -3055            else:
                  -3056                expressions = self._parse_csv(self._parse_expression)
                  -3057
                  -3058            this = self._parse_query_modifiers(seq_get(expressions, 0))
                  -3059
                  -3060            if isinstance(this, exp.Subqueryable):
                  -3061                this = self._parse_set_operations(
                  -3062                    self._parse_subquery(this=this, parse_alias=False)
                  -3063                )
                  -3064            elif len(expressions) > 1:
                  -3065                this = self.expression(exp.Tuple, expressions=expressions)
                  -3066            else:
                  -3067                this = self.expression(exp.Paren, this=self._parse_set_operations(this))
                  -3068
                  -3069            if this:
                  -3070                this.add_comments(comments)
                  -3071            self._match_r_paren(expression=this)
                  -3072
                  -3073            return this
                  -3074
                  -3075        return None
                  -3076
                  -3077    def _parse_field(
                  -3078        self,
                  -3079        any_token: bool = False,
                  -3080        tokens: t.Optional[t.Collection[TokenType]] = None,
                  -3081    ) -> t.Optional[exp.Expression]:
                  -3082        return (
                  -3083            self._parse_primary()
                  -3084            or self._parse_function()
                  -3085            or self._parse_id_var(any_token=any_token, tokens=tokens)
                  -3086        )
                  -3087
                  -3088    def _parse_function(
                  -3089        self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False
                  -3090    ) -> t.Optional[exp.Expression]:
                  -3091        if not self._curr:
                  -3092            return None
                  -3093
                  -3094        token_type = self._curr.token_type
                  -3095
                  -3096        if self._match_set(self.NO_PAREN_FUNCTION_PARSERS):
                  -3097            return self.NO_PAREN_FUNCTION_PARSERS[token_type](self)
                  -3098
                  -3099        if not self._next or self._next.token_type != TokenType.L_PAREN:
                  -3100            if token_type in self.NO_PAREN_FUNCTIONS:
                  -3101                self._advance()
                  -3102                return self.expression(self.NO_PAREN_FUNCTIONS[token_type])
                  -3103
                  -3104            return None
                  -3105
                  -3106        if token_type not in self.FUNC_TOKENS:
                  -3107            return None
                  -3108
                  -3109        this = self._curr.text
                  -3110        upper = this.upper()
                  -3111        self._advance(2)
                  +3046    def _parse_column(self) -> t.Optional[exp.Expression]:
                  +3047        this = self._parse_field()
                  +3048        if isinstance(this, exp.Identifier):
                  +3049            this = self.expression(exp.Column, this=this)
                  +3050        elif not this:
                  +3051            return self._parse_bracket(this)
                  +3052        return self._parse_column_ops(this)
                  +3053
                  +3054    def _parse_column_ops(self, this: exp.Expression) -> exp.Expression:
                  +3055        this = self._parse_bracket(this)
                  +3056
                  +3057        while self._match_set(self.COLUMN_OPERATORS):
                  +3058            op_token = self._prev.token_type
                  +3059            op = self.COLUMN_OPERATORS.get(op_token)
                  +3060
                  +3061            if op_token == TokenType.DCOLON:
                  +3062                field = self._parse_types()
                  +3063                if not field:
                  +3064                    self.raise_error("Expected type")
                  +3065            elif op and self._curr:
                  +3066                self._advance()
                  +3067                value = self._prev.text
                  +3068                field = (
                  +3069                    exp.Literal.number(value)
                  +3070                    if self._prev.token_type == TokenType.NUMBER
                  +3071                    else exp.Literal.string(value)
                  +3072                )
                  +3073            else:
                  +3074                field = self._parse_field(anonymous_func=True)
                  +3075
                  +3076            if isinstance(field, exp.Func):
                  +3077                # bigquery allows function calls like x.y.count(...)
                  +3078                # SAFE.SUBSTR(...)
                  +3079                # https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-reference#function_call_rules
                  +3080                this = self._replace_columns_with_dots(this)
                  +3081
                  +3082            if op:
                  +3083                this = op(self, this, field)
                  +3084            elif isinstance(this, exp.Column) and not this.args.get("catalog"):
                  +3085                this = self.expression(
                  +3086                    exp.Column,
                  +3087                    this=field,
                  +3088                    table=this.this,
                  +3089                    db=this.args.get("table"),
                  +3090                    catalog=this.args.get("db"),
                  +3091                )
                  +3092            else:
                  +3093                this = self.expression(exp.Dot, this=this, expression=field)
                  +3094            this = self._parse_bracket(this)
                  +3095        return this
                  +3096
                  +3097    def _parse_primary(self) -> t.Optional[exp.Expression]:
                  +3098        if self._match_set(self.PRIMARY_PARSERS):
                  +3099            token_type = self._prev.token_type
                  +3100            primary = self.PRIMARY_PARSERS[token_type](self, self._prev)
                  +3101
                  +3102            if token_type == TokenType.STRING:
                  +3103                expressions = [primary]
                  +3104                while self._match(TokenType.STRING):
                  +3105                    expressions.append(exp.Literal.string(self._prev.text))
                  +3106                if len(expressions) > 1:
                  +3107                    return self.expression(exp.Concat, expressions=expressions)
                  +3108            return primary
                  +3109
                  +3110        if self._match_pair(TokenType.DOT, TokenType.NUMBER):
                  +3111            return exp.Literal.number(f"0.{self._prev.text}")
                   3112
                  -3113        parser = self.FUNCTION_PARSERS.get(upper)
                  -3114
                  -3115        if parser and not anonymous:
                  -3116            this = parser(self)
                  -3117        else:
                  -3118            subquery_predicate = self.SUBQUERY_PREDICATES.get(token_type)
                  -3119
                  -3120            if subquery_predicate and self._curr.token_type in (TokenType.SELECT, TokenType.WITH):
                  -3121                this = self.expression(subquery_predicate, this=self._parse_select())
                  -3122                self._match_r_paren()
                  -3123                return this
                  -3124
                  -3125            if functions is None:
                  -3126                functions = self.FUNCTIONS
                  -3127
                  -3128            function = functions.get(upper)
                  -3129
                  -3130            alias = upper in self.FUNCTIONS_WITH_ALIASED_ARGS
                  -3131            args = self._parse_csv(lambda: self._parse_lambda(alias=alias))
                  +3113        if self._match(TokenType.L_PAREN):
                  +3114            comments = self._prev_comments
                  +3115            query = self._parse_select()
                  +3116
                  +3117            if query:
                  +3118                expressions = [query]
                  +3119            else:
                  +3120                expressions = self._parse_csv(self._parse_expression)
                  +3121
                  +3122            this = self._parse_query_modifiers(seq_get(expressions, 0))
                  +3123
                  +3124            if isinstance(this, exp.Subqueryable):
                  +3125                this = self._parse_set_operations(
                  +3126                    self._parse_subquery(this=this, parse_alias=False)
                  +3127                )
                  +3128            elif len(expressions) > 1:
                  +3129                this = self.expression(exp.Tuple, expressions=expressions)
                  +3130            else:
                  +3131                this = self.expression(exp.Paren, this=self._parse_set_operations(this))
                   3132
                  -3133            if function and not anonymous:
                  -3134                this = function(args)
                  -3135                self.validate_expression(this, args)
                  -3136            else:
                  -3137                this = self.expression(exp.Anonymous, this=this, expressions=args)
                  +3133            if this:
                  +3134                this.add_comments(comments)
                  +3135            self._match_r_paren(expression=this)
                  +3136
                  +3137            return this
                   3138
                  -3139        self._match_r_paren(this)
                  -3140        return self._parse_window(this)
                  -3141
                  -3142    def _parse_function_parameter(self) -> t.Optional[exp.Expression]:
                  -3143        return self._parse_column_def(self._parse_id_var())
                  -3144
                  -3145    def _parse_user_defined_function(
                  -3146        self, kind: t.Optional[TokenType] = None
                  -3147    ) -> t.Optional[exp.Expression]:
                  -3148        this = self._parse_id_var()
                  -3149
                  -3150        while self._match(TokenType.DOT):
                  -3151            this = self.expression(exp.Dot, this=this, expression=self._parse_id_var())
                  +3139        return None
                  +3140
                  +3141    def _parse_field(
                  +3142        self,
                  +3143        any_token: bool = False,
                  +3144        tokens: t.Optional[t.Collection[TokenType]] = None,
                  +3145        anonymous_func: bool = False,
                  +3146    ) -> t.Optional[exp.Expression]:
                  +3147        return (
                  +3148            self._parse_primary()
                  +3149            or self._parse_function(anonymous=anonymous_func)
                  +3150            or self._parse_id_var(any_token=any_token, tokens=tokens)
                  +3151        )
                   3152
                  -3153        if not self._match(TokenType.L_PAREN):
                  -3154            return this
                  -3155
                  -3156        expressions = self._parse_csv(self._parse_function_parameter)
                  -3157        self._match_r_paren()
                  -3158        return self.expression(
                  -3159            exp.UserDefinedFunction, this=this, expressions=expressions, wrapped=True
                  -3160        )
                  -3161
                  -3162    def _parse_introducer(self, token: Token) -> t.Optional[exp.Expression]:
                  -3163        literal = self._parse_primary()
                  -3164        if literal:
                  -3165            return self.expression(exp.Introducer, this=token.text, expression=literal)
                  -3166
                  -3167        return self.expression(exp.Identifier, this=token.text)
                  +3153    def _parse_function(
                  +3154        self, functions: t.Optional[t.Dict[str, t.Callable]] = None, anonymous: bool = False
                  +3155    ) -> t.Optional[exp.Expression]:
                  +3156        if not self._curr:
                  +3157            return None
                  +3158
                  +3159        token_type = self._curr.token_type
                  +3160
                  +3161        if self._match_set(self.NO_PAREN_FUNCTION_PARSERS):
                  +3162            return self.NO_PAREN_FUNCTION_PARSERS[token_type](self)
                  +3163
                  +3164        if not self._next or self._next.token_type != TokenType.L_PAREN:
                  +3165            if token_type in self.NO_PAREN_FUNCTIONS:
                  +3166                self._advance()
                  +3167                return self.expression(self.NO_PAREN_FUNCTIONS[token_type])
                   3168
                  -3169    def _parse_session_parameter(self) -> exp.Expression:
                  -3170        kind = None
                  -3171        this = self._parse_id_var() or self._parse_primary()
                  -3172
                  -3173        if this and self._match(TokenType.DOT):
                  -3174            kind = this.name
                  -3175            this = self._parse_var() or self._parse_primary()
                  -3176
                  -3177        return self.expression(exp.SessionParameter, this=this, kind=kind)
                  -3178
                  -3179    def _parse_lambda(self, alias: bool = False) -> t.Optional[exp.Expression]:
                  -3180        index = self._index
                  -3181
                  -3182        if self._match(TokenType.L_PAREN):
                  -3183            expressions = self._parse_csv(self._parse_id_var)
                  +3169            return None
                  +3170
                  +3171        if token_type not in self.FUNC_TOKENS:
                  +3172            return None
                  +3173
                  +3174        this = self._curr.text
                  +3175        upper = this.upper()
                  +3176        self._advance(2)
                  +3177
                  +3178        parser = self.FUNCTION_PARSERS.get(upper)
                  +3179
                  +3180        if parser and not anonymous:
                  +3181            this = parser(self)
                  +3182        else:
                  +3183            subquery_predicate = self.SUBQUERY_PREDICATES.get(token_type)
                   3184
                  -3185            if not self._match(TokenType.R_PAREN):
                  -3186                self._retreat(index)
                  -3187        else:
                  -3188            expressions = [self._parse_id_var()]
                  +3185            if subquery_predicate and self._curr.token_type in (TokenType.SELECT, TokenType.WITH):
                  +3186                this = self.expression(subquery_predicate, this=self._parse_select())
                  +3187                self._match_r_paren()
                  +3188                return this
                   3189
                  -3190        if self._match_set(self.LAMBDAS):
                  -3191            return self.LAMBDAS[self._prev.token_type](self, expressions)
                  +3190            if functions is None:
                  +3191                functions = self.FUNCTIONS
                   3192
                  -3193        self._retreat(index)
                  +3193            function = functions.get(upper)
                   3194
                  -3195        this: t.Optional[exp.Expression]
                  -3196
                  -3197        if self._match(TokenType.DISTINCT):
                  -3198            this = self.expression(
                  -3199                exp.Distinct, expressions=self._parse_csv(self._parse_conjunction)
                  -3200            )
                  -3201        else:
                  -3202            this = self._parse_select_or_expression(alias=alias)
                  +3195            alias = upper in self.FUNCTIONS_WITH_ALIASED_ARGS
                  +3196            args = self._parse_csv(lambda: self._parse_lambda(alias=alias))
                  +3197
                  +3198            if function and not anonymous:
                  +3199                this = function(args)
                  +3200                self.validate_expression(this, args)
                  +3201            else:
                  +3202                this = self.expression(exp.Anonymous, this=this, expressions=args)
                   3203
                  -3204            if isinstance(this, exp.EQ):
                  -3205                left = this.this
                  -3206                if isinstance(left, exp.Column):
                  -3207                    left.replace(exp.Var(this=left.text("this")))
                  -3208
                  -3209        return self._parse_limit(self._parse_order(self._parse_respect_or_ignore_nulls(this)))
                  -3210
                  -3211    def _parse_schema(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]:
                  -3212        index = self._index
                  -3213
                  -3214        try:
                  -3215            if self._parse_select(nested=True):
                  -3216                return this
                  -3217        except Exception:
                  -3218            pass
                  -3219        finally:
                  -3220            self._retreat(index)
                  -3221
                  -3222        if not self._match(TokenType.L_PAREN):
                  -3223            return this
                  -3224
                  -3225        args = self._parse_csv(
                  -3226            lambda: self._parse_constraint()
                  -3227            or self._parse_column_def(self._parse_field(any_token=True))
                  -3228        )
                  -3229        self._match_r_paren()
                  -3230        return self.expression(exp.Schema, this=this, expressions=args)
                  +3204        self._match_r_paren(this)
                  +3205        return self._parse_window(this)
                  +3206
                  +3207    def _parse_function_parameter(self) -> t.Optional[exp.Expression]:
                  +3208        return self._parse_column_def(self._parse_id_var())
                  +3209
                  +3210    def _parse_user_defined_function(
                  +3211        self, kind: t.Optional[TokenType] = None
                  +3212    ) -> t.Optional[exp.Expression]:
                  +3213        this = self._parse_id_var()
                  +3214
                  +3215        while self._match(TokenType.DOT):
                  +3216            this = self.expression(exp.Dot, this=this, expression=self._parse_id_var())
                  +3217
                  +3218        if not self._match(TokenType.L_PAREN):
                  +3219            return this
                  +3220
                  +3221        expressions = self._parse_csv(self._parse_function_parameter)
                  +3222        self._match_r_paren()
                  +3223        return self.expression(
                  +3224            exp.UserDefinedFunction, this=this, expressions=expressions, wrapped=True
                  +3225        )
                  +3226
                  +3227    def _parse_introducer(self, token: Token) -> t.Optional[exp.Expression]:
                  +3228        literal = self._parse_primary()
                  +3229        if literal:
                  +3230            return self.expression(exp.Introducer, this=token.text, expression=literal)
                   3231
                  -3232    def _parse_column_def(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  -3233        # column defs are not really columns, they're identifiers
                  -3234        if isinstance(this, exp.Column):
                  -3235            this = this.this
                  -3236        kind = self._parse_types()
                  +3232        return self.expression(exp.Identifier, this=token.text)
                  +3233
                  +3234    def _parse_session_parameter(self) -> exp.Expression:
                  +3235        kind = None
                  +3236        this = self._parse_id_var() or self._parse_primary()
                   3237
                  -3238        if self._match_text_seq("FOR", "ORDINALITY"):
                  -3239            return self.expression(exp.ColumnDef, this=this, ordinality=True)
                  -3240
                  -3241        constraints = []
                  -3242        while True:
                  -3243            constraint = self._parse_column_constraint()
                  -3244            if not constraint:
                  -3245                break
                  -3246            constraints.append(constraint)
                  -3247
                  -3248        if not kind and not constraints:
                  -3249            return this
                  -3250
                  -3251        return self.expression(exp.ColumnDef, this=this, kind=kind, constraints=constraints)
                  -3252
                  -3253    def _parse_auto_increment(self) -> exp.Expression:
                  -3254        start = None
                  -3255        increment = None
                  -3256
                  -3257        if self._match(TokenType.L_PAREN, advance=False):
                  -3258            args = self._parse_wrapped_csv(self._parse_bitwise)
                  -3259            start = seq_get(args, 0)
                  -3260            increment = seq_get(args, 1)
                  -3261        elif self._match_text_seq("START"):
                  -3262            start = self._parse_bitwise()
                  -3263            self._match_text_seq("INCREMENT")
                  -3264            increment = self._parse_bitwise()
                  -3265
                  -3266        if start and increment:
                  -3267            return exp.GeneratedAsIdentityColumnConstraint(start=start, increment=increment)
                  +3238        if this and self._match(TokenType.DOT):
                  +3239            kind = this.name
                  +3240            this = self._parse_var() or self._parse_primary()
                  +3241
                  +3242        return self.expression(exp.SessionParameter, this=this, kind=kind)
                  +3243
                  +3244    def _parse_lambda(self, alias: bool = False) -> t.Optional[exp.Expression]:
                  +3245        index = self._index
                  +3246
                  +3247        if self._match(TokenType.L_PAREN):
                  +3248            expressions = self._parse_csv(self._parse_id_var)
                  +3249
                  +3250            if not self._match(TokenType.R_PAREN):
                  +3251                self._retreat(index)
                  +3252        else:
                  +3253            expressions = [self._parse_id_var()]
                  +3254
                  +3255        if self._match_set(self.LAMBDAS):
                  +3256            return self.LAMBDAS[self._prev.token_type](self, expressions)
                  +3257
                  +3258        self._retreat(index)
                  +3259
                  +3260        this: t.Optional[exp.Expression]
                  +3261
                  +3262        if self._match(TokenType.DISTINCT):
                  +3263            this = self.expression(
                  +3264                exp.Distinct, expressions=self._parse_csv(self._parse_conjunction)
                  +3265            )
                  +3266        else:
                  +3267            this = self._parse_select_or_expression(alias=alias)
                   3268
                  -3269        return exp.AutoIncrementColumnConstraint()
                  -3270
                  -3271    def _parse_compress(self) -> exp.Expression:
                  -3272        if self._match(TokenType.L_PAREN, advance=False):
                  -3273            return self.expression(
                  -3274                exp.CompressColumnConstraint, this=self._parse_wrapped_csv(self._parse_bitwise)
                  -3275            )
                  -3276
                  -3277        return self.expression(exp.CompressColumnConstraint, this=self._parse_bitwise())
                  +3269            if isinstance(this, exp.EQ):
                  +3270                left = this.this
                  +3271                if isinstance(left, exp.Column):
                  +3272                    left.replace(exp.Var(this=left.text("this")))
                  +3273
                  +3274        return self._parse_limit(self._parse_order(self._parse_respect_or_ignore_nulls(this)))
                  +3275
                  +3276    def _parse_schema(self, this: t.Optional[exp.Expression] = None) -> t.Optional[exp.Expression]:
                  +3277        index = self._index
                   3278
                  -3279    def _parse_generated_as_identity(self) -> exp.Expression:
                  -3280        if self._match_text_seq("BY", "DEFAULT"):
                  -3281            on_null = self._match_pair(TokenType.ON, TokenType.NULL)
                  -3282            this = self.expression(
                  -3283                exp.GeneratedAsIdentityColumnConstraint, this=False, on_null=on_null
                  -3284            )
                  -3285        else:
                  -3286            self._match_text_seq("ALWAYS")
                  -3287            this = self.expression(exp.GeneratedAsIdentityColumnConstraint, this=True)
                  +3279        if not self.errors:
                  +3280            try:
                  +3281                if self._parse_select(nested=True):
                  +3282                    return this
                  +3283            except ParseError:
                  +3284                pass
                  +3285            finally:
                  +3286                self.errors.clear()
                  +3287                self._retreat(index)
                   3288
                  -3289        self._match(TokenType.ALIAS)
                  -3290        identity = self._match_text_seq("IDENTITY")
                  +3289        if not self._match(TokenType.L_PAREN):
                  +3290            return this
                   3291
                  -3292        if self._match(TokenType.L_PAREN):
                  -3293            if self._match_text_seq("START", "WITH"):
                  -3294                this.set("start", self._parse_bitwise())
                  -3295            if self._match_text_seq("INCREMENT", "BY"):
                  -3296                this.set("increment", self._parse_bitwise())
                  -3297            if self._match_text_seq("MINVALUE"):
                  -3298                this.set("minvalue", self._parse_bitwise())
                  -3299            if self._match_text_seq("MAXVALUE"):
                  -3300                this.set("maxvalue", self._parse_bitwise())
                  -3301
                  -3302            if self._match_text_seq("CYCLE"):
                  -3303                this.set("cycle", True)
                  -3304            elif self._match_text_seq("NO", "CYCLE"):
                  -3305                this.set("cycle", False)
                  -3306
                  -3307            if not identity:
                  -3308                this.set("expression", self._parse_bitwise())
                  -3309
                  -3310            self._match_r_paren()
                  -3311
                  -3312        return this
                  -3313
                  -3314    def _parse_inline(self) -> t.Optional[exp.Expression]:
                  -3315        self._match_text_seq("LENGTH")
                  -3316        return self.expression(exp.InlineLengthColumnConstraint, this=self._parse_bitwise())
                  +3292        args = self._parse_csv(
                  +3293            lambda: self._parse_constraint()
                  +3294            or self._parse_column_def(self._parse_field(any_token=True))
                  +3295        )
                  +3296        self._match_r_paren()
                  +3297        return self.expression(exp.Schema, this=this, expressions=args)
                  +3298
                  +3299    def _parse_column_def(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  +3300        # column defs are not really columns, they're identifiers
                  +3301        if isinstance(this, exp.Column):
                  +3302            this = this.this
                  +3303        kind = self._parse_types(schema=True)
                  +3304
                  +3305        if self._match_text_seq("FOR", "ORDINALITY"):
                  +3306            return self.expression(exp.ColumnDef, this=this, ordinality=True)
                  +3307
                  +3308        constraints = []
                  +3309        while True:
                  +3310            constraint = self._parse_column_constraint()
                  +3311            if not constraint:
                  +3312                break
                  +3313            constraints.append(constraint)
                  +3314
                  +3315        if not kind and not constraints:
                  +3316            return this
                   3317
                  -3318    def _parse_not_constraint(self) -> t.Optional[exp.Expression]:
                  -3319        if self._match_text_seq("NULL"):
                  -3320            return self.expression(exp.NotNullColumnConstraint)
                  -3321        if self._match_text_seq("CASESPECIFIC"):
                  -3322            return self.expression(exp.CaseSpecificColumnConstraint, not_=True)
                  -3323        return None
                  -3324
                  -3325    def _parse_column_constraint(self) -> t.Optional[exp.Expression]:
                  -3326        if self._match(TokenType.CONSTRAINT):
                  -3327            this = self._parse_id_var()
                  -3328        else:
                  -3329            this = None
                  -3330
                  -3331        if self._match_texts(self.CONSTRAINT_PARSERS):
                  -3332            return self.expression(
                  -3333                exp.ColumnConstraint,
                  -3334                this=this,
                  -3335                kind=self.CONSTRAINT_PARSERS[self._prev.text.upper()](self),
                  -3336            )
                  +3318        return self.expression(exp.ColumnDef, this=this, kind=kind, constraints=constraints)
                  +3319
                  +3320    def _parse_auto_increment(self) -> exp.Expression:
                  +3321        start = None
                  +3322        increment = None
                  +3323
                  +3324        if self._match(TokenType.L_PAREN, advance=False):
                  +3325            args = self._parse_wrapped_csv(self._parse_bitwise)
                  +3326            start = seq_get(args, 0)
                  +3327            increment = seq_get(args, 1)
                  +3328        elif self._match_text_seq("START"):
                  +3329            start = self._parse_bitwise()
                  +3330            self._match_text_seq("INCREMENT")
                  +3331            increment = self._parse_bitwise()
                  +3332
                  +3333        if start and increment:
                  +3334            return exp.GeneratedAsIdentityColumnConstraint(start=start, increment=increment)
                  +3335
                  +3336        return exp.AutoIncrementColumnConstraint()
                   3337
                  -3338        return this
                  -3339
                  -3340    def _parse_constraint(self) -> t.Optional[exp.Expression]:
                  -3341        if not self._match(TokenType.CONSTRAINT):
                  -3342            return self._parse_unnamed_constraint(constraints=self.SCHEMA_UNNAMED_CONSTRAINTS)
                  +3338    def _parse_compress(self) -> exp.Expression:
                  +3339        if self._match(TokenType.L_PAREN, advance=False):
                  +3340            return self.expression(
                  +3341                exp.CompressColumnConstraint, this=self._parse_wrapped_csv(self._parse_bitwise)
                  +3342            )
                   3343
                  -3344        this = self._parse_id_var()
                  -3345        expressions = []
                  -3346
                  -3347        while True:
                  -3348            constraint = self._parse_unnamed_constraint() or self._parse_function()
                  -3349            if not constraint:
                  -3350                break
                  -3351            expressions.append(constraint)
                  -3352
                  -3353        return self.expression(exp.Constraint, this=this, expressions=expressions)
                  -3354
                  -3355    def _parse_unnamed_constraint(
                  -3356        self, constraints: t.Optional[t.Collection[str]] = None
                  -3357    ) -> t.Optional[exp.Expression]:
                  -3358        if not self._match_texts(constraints or self.CONSTRAINT_PARSERS):
                  -3359            return None
                  -3360
                  -3361        constraint = self._prev.text.upper()
                  -3362        if constraint not in self.CONSTRAINT_PARSERS:
                  -3363            self.raise_error(f"No parser found for schema constraint {constraint}.")
                  -3364
                  -3365        return self.CONSTRAINT_PARSERS[constraint](self)
                  -3366
                  -3367    def _parse_unique(self) -> exp.Expression:
                  -3368        if not self._match(TokenType.L_PAREN, advance=False):
                  -3369            return self.expression(exp.UniqueColumnConstraint)
                  -3370        return self.expression(exp.Unique, expressions=self._parse_wrapped_id_vars())
                  -3371
                  -3372    def _parse_key_constraint_options(self) -> t.List[str]:
                  -3373        options = []
                  -3374        while True:
                  -3375            if not self._curr:
                  -3376                break
                  -3377
                  -3378            if self._match(TokenType.ON):
                  -3379                action = None
                  -3380                on = self._advance_any() and self._prev.text
                  -3381
                  -3382                if self._match_text_seq("NO", "ACTION"):
                  -3383                    action = "NO ACTION"
                  -3384                elif self._match_text_seq("CASCADE"):
                  -3385                    action = "CASCADE"
                  -3386                elif self._match_pair(TokenType.SET, TokenType.NULL):
                  -3387                    action = "SET NULL"
                  -3388                elif self._match_pair(TokenType.SET, TokenType.DEFAULT):
                  -3389                    action = "SET DEFAULT"
                  -3390                else:
                  -3391                    self.raise_error("Invalid key constraint")
                  -3392
                  -3393                options.append(f"ON {on} {action}")
                  -3394            elif self._match_text_seq("NOT", "ENFORCED"):
                  -3395                options.append("NOT ENFORCED")
                  -3396            elif self._match_text_seq("DEFERRABLE"):
                  -3397                options.append("DEFERRABLE")
                  -3398            elif self._match_text_seq("INITIALLY", "DEFERRED"):
                  -3399                options.append("INITIALLY DEFERRED")
                  -3400            elif self._match_text_seq("NORELY"):
                  -3401                options.append("NORELY")
                  -3402            elif self._match_text_seq("MATCH", "FULL"):
                  -3403                options.append("MATCH FULL")
                  -3404            else:
                  -3405                break
                  +3344        return self.expression(exp.CompressColumnConstraint, this=self._parse_bitwise())
                  +3345
                  +3346    def _parse_generated_as_identity(self) -> exp.Expression:
                  +3347        if self._match_text_seq("BY", "DEFAULT"):
                  +3348            on_null = self._match_pair(TokenType.ON, TokenType.NULL)
                  +3349            this = self.expression(
                  +3350                exp.GeneratedAsIdentityColumnConstraint, this=False, on_null=on_null
                  +3351            )
                  +3352        else:
                  +3353            self._match_text_seq("ALWAYS")
                  +3354            this = self.expression(exp.GeneratedAsIdentityColumnConstraint, this=True)
                  +3355
                  +3356        self._match(TokenType.ALIAS)
                  +3357        identity = self._match_text_seq("IDENTITY")
                  +3358
                  +3359        if self._match(TokenType.L_PAREN):
                  +3360            if self._match_text_seq("START", "WITH"):
                  +3361                this.set("start", self._parse_bitwise())
                  +3362            if self._match_text_seq("INCREMENT", "BY"):
                  +3363                this.set("increment", self._parse_bitwise())
                  +3364            if self._match_text_seq("MINVALUE"):
                  +3365                this.set("minvalue", self._parse_bitwise())
                  +3366            if self._match_text_seq("MAXVALUE"):
                  +3367                this.set("maxvalue", self._parse_bitwise())
                  +3368
                  +3369            if self._match_text_seq("CYCLE"):
                  +3370                this.set("cycle", True)
                  +3371            elif self._match_text_seq("NO", "CYCLE"):
                  +3372                this.set("cycle", False)
                  +3373
                  +3374            if not identity:
                  +3375                this.set("expression", self._parse_bitwise())
                  +3376
                  +3377            self._match_r_paren()
                  +3378
                  +3379        return this
                  +3380
                  +3381    def _parse_inline(self) -> t.Optional[exp.Expression]:
                  +3382        self._match_text_seq("LENGTH")
                  +3383        return self.expression(exp.InlineLengthColumnConstraint, this=self._parse_bitwise())
                  +3384
                  +3385    def _parse_not_constraint(self) -> t.Optional[exp.Expression]:
                  +3386        if self._match_text_seq("NULL"):
                  +3387            return self.expression(exp.NotNullColumnConstraint)
                  +3388        if self._match_text_seq("CASESPECIFIC"):
                  +3389            return self.expression(exp.CaseSpecificColumnConstraint, not_=True)
                  +3390        return None
                  +3391
                  +3392    def _parse_column_constraint(self) -> t.Optional[exp.Expression]:
                  +3393        if self._match(TokenType.CONSTRAINT):
                  +3394            this = self._parse_id_var()
                  +3395        else:
                  +3396            this = None
                  +3397
                  +3398        if self._match_texts(self.CONSTRAINT_PARSERS):
                  +3399            return self.expression(
                  +3400                exp.ColumnConstraint,
                  +3401                this=this,
                  +3402                kind=self.CONSTRAINT_PARSERS[self._prev.text.upper()](self),
                  +3403            )
                  +3404
                  +3405        return this
                   3406
                  -3407        return options
                  -3408
                  -3409    def _parse_references(self, match: bool = True) -> t.Optional[exp.Expression]:
                  -3410        if match and not self._match(TokenType.REFERENCES):
                  -3411            return None
                  -3412
                  -3413        expressions = None
                  -3414        this = self._parse_id_var()
                  -3415
                  -3416        if self._match(TokenType.L_PAREN, advance=False):
                  -3417            expressions = self._parse_wrapped_id_vars()
                  -3418
                  -3419        options = self._parse_key_constraint_options()
                  -3420        return self.expression(exp.Reference, this=this, expressions=expressions, options=options)
                  +3407    def _parse_constraint(self) -> t.Optional[exp.Expression]:
                  +3408        if not self._match(TokenType.CONSTRAINT):
                  +3409            return self._parse_unnamed_constraint(constraints=self.SCHEMA_UNNAMED_CONSTRAINTS)
                  +3410
                  +3411        this = self._parse_id_var()
                  +3412        expressions = []
                  +3413
                  +3414        while True:
                  +3415            constraint = self._parse_unnamed_constraint() or self._parse_function()
                  +3416            if not constraint:
                  +3417                break
                  +3418            expressions.append(constraint)
                  +3419
                  +3420        return self.expression(exp.Constraint, this=this, expressions=expressions)
                   3421
                  -3422    def _parse_foreign_key(self) -> exp.Expression:
                  -3423        expressions = self._parse_wrapped_id_vars()
                  -3424        reference = self._parse_references()
                  -3425        options = {}
                  -3426
                  -3427        while self._match(TokenType.ON):
                  -3428            if not self._match_set((TokenType.DELETE, TokenType.UPDATE)):
                  -3429                self.raise_error("Expected DELETE or UPDATE")
                  -3430
                  -3431            kind = self._prev.text.lower()
                  -3432
                  -3433            if self._match_text_seq("NO", "ACTION"):
                  -3434                action = "NO ACTION"
                  -3435            elif self._match(TokenType.SET):
                  -3436                self._match_set((TokenType.NULL, TokenType.DEFAULT))
                  -3437                action = "SET " + self._prev.text.upper()
                  -3438            else:
                  -3439                self._advance()
                  -3440                action = self._prev.text.upper()
                  -3441
                  -3442            options[kind] = action
                  -3443
                  -3444        return self.expression(
                  -3445            exp.ForeignKey, expressions=expressions, reference=reference, **options  # type: ignore
                  -3446        )
                  -3447
                  -3448    def _parse_primary_key(self) -> exp.Expression:
                  -3449        desc = (
                  -3450            self._match_set((TokenType.ASC, TokenType.DESC))
                  -3451            and self._prev.token_type == TokenType.DESC
                  -3452        )
                  -3453
                  -3454        if not self._match(TokenType.L_PAREN, advance=False):
                  -3455            return self.expression(exp.PrimaryKeyColumnConstraint, desc=desc)
                  -3456
                  -3457        expressions = self._parse_wrapped_csv(self._parse_field)
                  -3458        options = self._parse_key_constraint_options()
                  -3459        return self.expression(exp.PrimaryKey, expressions=expressions, options=options)
                  +3422    def _parse_unnamed_constraint(
                  +3423        self, constraints: t.Optional[t.Collection[str]] = None
                  +3424    ) -> t.Optional[exp.Expression]:
                  +3425        if not self._match_texts(constraints or self.CONSTRAINT_PARSERS):
                  +3426            return None
                  +3427
                  +3428        constraint = self._prev.text.upper()
                  +3429        if constraint not in self.CONSTRAINT_PARSERS:
                  +3430            self.raise_error(f"No parser found for schema constraint {constraint}.")
                  +3431
                  +3432        return self.CONSTRAINT_PARSERS[constraint](self)
                  +3433
                  +3434    def _parse_unique(self) -> exp.Expression:
                  +3435        self._match_text_seq("KEY")
                  +3436        return self.expression(
                  +3437            exp.UniqueColumnConstraint, this=self._parse_schema(self._parse_id_var(any_token=False))
                  +3438        )
                  +3439
                  +3440    def _parse_key_constraint_options(self) -> t.List[str]:
                  +3441        options = []
                  +3442        while True:
                  +3443            if not self._curr:
                  +3444                break
                  +3445
                  +3446            if self._match(TokenType.ON):
                  +3447                action = None
                  +3448                on = self._advance_any() and self._prev.text
                  +3449
                  +3450                if self._match_text_seq("NO", "ACTION"):
                  +3451                    action = "NO ACTION"
                  +3452                elif self._match_text_seq("CASCADE"):
                  +3453                    action = "CASCADE"
                  +3454                elif self._match_pair(TokenType.SET, TokenType.NULL):
                  +3455                    action = "SET NULL"
                  +3456                elif self._match_pair(TokenType.SET, TokenType.DEFAULT):
                  +3457                    action = "SET DEFAULT"
                  +3458                else:
                  +3459                    self.raise_error("Invalid key constraint")
                   3460
                  -3461    def _parse_bracket(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  -3462        if not self._match_set((TokenType.L_BRACKET, TokenType.L_BRACE)):
                  -3463            return this
                  -3464
                  -3465        bracket_kind = self._prev.token_type
                  -3466        expressions: t.List[t.Optional[exp.Expression]]
                  -3467
                  -3468        if self._match(TokenType.COLON):
                  -3469            expressions = [self.expression(exp.Slice, expression=self._parse_conjunction())]
                  -3470        else:
                  -3471            expressions = self._parse_csv(lambda: self._parse_slice(self._parse_conjunction()))
                  -3472
                  -3473        # https://duckdb.org/docs/sql/data_types/struct.html#creating-structs
                  -3474        if bracket_kind == TokenType.L_BRACE:
                  -3475            this = self.expression(exp.Struct, expressions=expressions)
                  -3476        elif not this or this.name.upper() == "ARRAY":
                  -3477            this = self.expression(exp.Array, expressions=expressions)
                  -3478        else:
                  -3479            expressions = apply_index_offset(this, expressions, -self.index_offset)
                  -3480            this = self.expression(exp.Bracket, this=this, expressions=expressions)
                  -3481
                  -3482        if not self._match(TokenType.R_BRACKET) and bracket_kind == TokenType.L_BRACKET:
                  -3483            self.raise_error("Expected ]")
                  -3484        elif not self._match(TokenType.R_BRACE) and bracket_kind == TokenType.L_BRACE:
                  -3485            self.raise_error("Expected }")
                  +3461                options.append(f"ON {on} {action}")
                  +3462            elif self._match_text_seq("NOT", "ENFORCED"):
                  +3463                options.append("NOT ENFORCED")
                  +3464            elif self._match_text_seq("DEFERRABLE"):
                  +3465                options.append("DEFERRABLE")
                  +3466            elif self._match_text_seq("INITIALLY", "DEFERRED"):
                  +3467                options.append("INITIALLY DEFERRED")
                  +3468            elif self._match_text_seq("NORELY"):
                  +3469                options.append("NORELY")
                  +3470            elif self._match_text_seq("MATCH", "FULL"):
                  +3471                options.append("MATCH FULL")
                  +3472            else:
                  +3473                break
                  +3474
                  +3475        return options
                  +3476
                  +3477    def _parse_references(self, match: bool = True) -> t.Optional[exp.Expression]:
                  +3478        if match and not self._match(TokenType.REFERENCES):
                  +3479            return None
                  +3480
                  +3481        expressions = None
                  +3482        this = self._parse_id_var()
                  +3483
                  +3484        if self._match(TokenType.L_PAREN, advance=False):
                  +3485            expressions = self._parse_wrapped_id_vars()
                   3486
                  -3487        self._add_comments(this)
                  -3488        return self._parse_bracket(this)
                  +3487        options = self._parse_key_constraint_options()
                  +3488        return self.expression(exp.Reference, this=this, expressions=expressions, options=options)
                   3489
                  -3490    def _parse_slice(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  -3491        if self._match(TokenType.COLON):
                  -3492            return self.expression(exp.Slice, this=this, expression=self._parse_conjunction())
                  -3493        return this
                  +3490    def _parse_foreign_key(self) -> exp.Expression:
                  +3491        expressions = self._parse_wrapped_id_vars()
                  +3492        reference = self._parse_references()
                  +3493        options = {}
                   3494
                  -3495    def _parse_case(self) -> t.Optional[exp.Expression]:
                  -3496        ifs = []
                  -3497        default = None
                  +3495        while self._match(TokenType.ON):
                  +3496            if not self._match_set((TokenType.DELETE, TokenType.UPDATE)):
                  +3497                self.raise_error("Expected DELETE or UPDATE")
                   3498
                  -3499        expression = self._parse_conjunction()
                  +3499            kind = self._prev.text.lower()
                   3500
                  -3501        while self._match(TokenType.WHEN):
                  -3502            this = self._parse_conjunction()
                  -3503            self._match(TokenType.THEN)
                  -3504            then = self._parse_conjunction()
                  -3505            ifs.append(self.expression(exp.If, this=this, true=then))
                  -3506
                  -3507        if self._match(TokenType.ELSE):
                  -3508            default = self._parse_conjunction()
                  +3501            if self._match_text_seq("NO", "ACTION"):
                  +3502                action = "NO ACTION"
                  +3503            elif self._match(TokenType.SET):
                  +3504                self._match_set((TokenType.NULL, TokenType.DEFAULT))
                  +3505                action = "SET " + self._prev.text.upper()
                  +3506            else:
                  +3507                self._advance()
                  +3508                action = self._prev.text.upper()
                   3509
                  -3510        if not self._match(TokenType.END):
                  -3511            self.raise_error("Expected END after CASE", self._prev)
                  -3512
                  -3513        return self._parse_window(
                  -3514            self.expression(exp.Case, this=expression, ifs=ifs, default=default)
                  -3515        )
                  -3516
                  -3517    def _parse_if(self) -> t.Optional[exp.Expression]:
                  -3518        if self._match(TokenType.L_PAREN):
                  -3519            args = self._parse_csv(self._parse_conjunction)
                  -3520            this = exp.If.from_arg_list(args)
                  -3521            self.validate_expression(this, args)
                  -3522            self._match_r_paren()
                  -3523        else:
                  -3524            index = self._index - 1
                  -3525            condition = self._parse_conjunction()
                  +3510            options[kind] = action
                  +3511
                  +3512        return self.expression(
                  +3513            exp.ForeignKey, expressions=expressions, reference=reference, **options  # type: ignore
                  +3514        )
                  +3515
                  +3516    def _parse_primary_key(
                  +3517        self, wrapped_optional: bool = False, in_props: bool = False
                  +3518    ) -> exp.Expression:
                  +3519        desc = (
                  +3520            self._match_set((TokenType.ASC, TokenType.DESC))
                  +3521            and self._prev.token_type == TokenType.DESC
                  +3522        )
                  +3523
                  +3524        if not in_props and not self._match(TokenType.L_PAREN, advance=False):
                  +3525            return self.expression(exp.PrimaryKeyColumnConstraint, desc=desc)
                   3526
                  -3527            if not condition:
                  -3528                self._retreat(index)
                  -3529                return None
                  +3527        expressions = self._parse_wrapped_csv(self._parse_field, optional=wrapped_optional)
                  +3528        options = self._parse_key_constraint_options()
                  +3529        return self.expression(exp.PrimaryKey, expressions=expressions, options=options)
                   3530
                  -3531            self._match(TokenType.THEN)
                  -3532            true = self._parse_conjunction()
                  -3533            false = self._parse_conjunction() if self._match(TokenType.ELSE) else None
                  -3534            self._match(TokenType.END)
                  -3535            this = self.expression(exp.If, this=condition, true=true, false=false)
                  -3536
                  -3537        return self._parse_window(this)
                  +3531    @t.overload
                  +3532    def _parse_bracket(self, this: exp.Expression) -> exp.Expression:
                  +3533        ...
                  +3534
                  +3535    @t.overload
                  +3536    def _parse_bracket(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  +3537        ...
                   3538
                  -3539    def _parse_extract(self) -> exp.Expression:
                  -3540        this = self._parse_function() or self._parse_var() or self._parse_type()
                  -3541
                  -3542        if self._match(TokenType.FROM):
                  -3543            return self.expression(exp.Extract, this=this, expression=self._parse_bitwise())
                  -3544
                  -3545        if not self._match(TokenType.COMMA):
                  -3546            self.raise_error("Expected FROM or comma after EXTRACT", self._prev)
                  -3547
                  -3548        return self.expression(exp.Extract, this=this, expression=self._parse_bitwise())
                  -3549
                  -3550    def _parse_cast(self, strict: bool) -> exp.Expression:
                  -3551        this = self._parse_conjunction()
                  -3552
                  -3553        if not self._match(TokenType.ALIAS):
                  -3554            if self._match(TokenType.COMMA):
                  -3555                return self.expression(
                  -3556                    exp.CastToStrType, this=this, expression=self._parse_string()
                  -3557                )
                  -3558            else:
                  -3559                self.raise_error("Expected AS after CAST")
                  -3560
                  -3561        to = self._parse_types()
                  -3562
                  -3563        if not to:
                  -3564            self.raise_error("Expected TYPE after CAST")
                  -3565        elif to.this == exp.DataType.Type.CHAR:
                  -3566            if self._match(TokenType.CHARACTER_SET):
                  -3567                to = self.expression(exp.CharacterSet, this=self._parse_var_or_string())
                  -3568
                  -3569        return self.expression(exp.Cast if strict else exp.TryCast, this=this, to=to)
                  -3570
                  -3571    def _parse_string_agg(self) -> exp.Expression:
                  -3572        expression: t.Optional[exp.Expression]
                  -3573
                  -3574        if self._match(TokenType.DISTINCT):
                  -3575            args = self._parse_csv(self._parse_conjunction)
                  -3576            expression = self.expression(exp.Distinct, expressions=[seq_get(args, 0)])
                  -3577        else:
                  -3578            args = self._parse_csv(self._parse_conjunction)
                  -3579            expression = seq_get(args, 0)
                  -3580
                  -3581        index = self._index
                  -3582        if not self._match(TokenType.R_PAREN):
                  -3583            # postgres: STRING_AGG([DISTINCT] expression, separator [ORDER BY expression1 {ASC | DESC} [, ...]])
                  -3584            order = self._parse_order(this=expression)
                  -3585            return self.expression(exp.GroupConcat, this=order, separator=seq_get(args, 1))
                  -3586
                  -3587        # Checks if we can parse an order clause: WITHIN GROUP (ORDER BY <order_by_expression_list> [ASC | DESC]).
                  -3588        # This is done "manually", instead of letting _parse_window parse it into an exp.WithinGroup node, so that
                  -3589        # the STRING_AGG call is parsed like in MySQL / SQLite and can thus be transpiled more easily to them.
                  -3590        if not self._match_text_seq("WITHIN", "GROUP"):
                  -3591            self._retreat(index)
                  -3592            this = exp.GroupConcat.from_arg_list(args)
                  -3593            self.validate_expression(this, args)
                  -3594            return this
                  -3595
                  -3596        self._match_l_paren()  # The corresponding match_r_paren will be called in parse_function (caller)
                  -3597        order = self._parse_order(this=expression)
                  -3598        return self.expression(exp.GroupConcat, this=order, separator=seq_get(args, 1))
                  -3599
                  -3600    def _parse_convert(self, strict: bool) -> t.Optional[exp.Expression]:
                  -3601        to: t.Optional[exp.Expression]
                  -3602        this = self._parse_bitwise()
                  -3603
                  -3604        if self._match(TokenType.USING):
                  -3605            to = self.expression(exp.CharacterSet, this=self._parse_var())
                  -3606        elif self._match(TokenType.COMMA):
                  -3607            to = self._parse_bitwise()
                  -3608        else:
                  -3609            to = None
                  -3610
                  -3611        # Swap the argument order if needed to produce the correct AST
                  -3612        if self.CONVERT_TYPE_FIRST:
                  -3613            this, to = to, this
                  +3539    def _parse_bracket(self, this):
                  +3540        if not self._match_set((TokenType.L_BRACKET, TokenType.L_BRACE)):
                  +3541            return this
                  +3542
                  +3543        bracket_kind = self._prev.token_type
                  +3544        expressions: t.List[t.Optional[exp.Expression]]
                  +3545
                  +3546        if self._match(TokenType.COLON):
                  +3547            expressions = [self.expression(exp.Slice, expression=self._parse_conjunction())]
                  +3548        else:
                  +3549            expressions = self._parse_csv(lambda: self._parse_slice(self._parse_conjunction()))
                  +3550
                  +3551        # https://duckdb.org/docs/sql/data_types/struct.html#creating-structs
                  +3552        if bracket_kind == TokenType.L_BRACE:
                  +3553            this = self.expression(exp.Struct, expressions=expressions)
                  +3554        elif not this or this.name.upper() == "ARRAY":
                  +3555            this = self.expression(exp.Array, expressions=expressions)
                  +3556        else:
                  +3557            expressions = apply_index_offset(this, expressions, -self.index_offset)
                  +3558            this = self.expression(exp.Bracket, this=this, expressions=expressions)
                  +3559
                  +3560        if not self._match(TokenType.R_BRACKET) and bracket_kind == TokenType.L_BRACKET:
                  +3561            self.raise_error("Expected ]")
                  +3562        elif not self._match(TokenType.R_BRACE) and bracket_kind == TokenType.L_BRACE:
                  +3563            self.raise_error("Expected }")
                  +3564
                  +3565        self._add_comments(this)
                  +3566        return self._parse_bracket(this)
                  +3567
                  +3568    def _parse_slice(self, this: t.Optional[exp.Expression]) -> t.Optional[exp.Expression]:
                  +3569        if self._match(TokenType.COLON):
                  +3570            return self.expression(exp.Slice, this=this, expression=self._parse_conjunction())
                  +3571        return this
                  +3572
                  +3573    def _parse_case(self) -> t.Optional[exp.Expression]:
                  +3574        ifs = []
                  +3575        default = None
                  +3576
                  +3577        expression = self._parse_conjunction()
                  +3578
                  +3579        while self._match(TokenType.WHEN):
                  +3580            this = self._parse_conjunction()
                  +3581            self._match(TokenType.THEN)
                  +3582            then = self._parse_conjunction()
                  +3583            ifs.append(self.expression(exp.If, this=this, true=then))
                  +3584
                  +3585        if self._match(TokenType.ELSE):
                  +3586            default = self._parse_conjunction()
                  +3587
                  +3588        if not self._match(TokenType.END):
                  +3589            self.raise_error("Expected END after CASE", self._prev)
                  +3590
                  +3591        return self._parse_window(
                  +3592            self.expression(exp.Case, this=expression, ifs=ifs, default=default)
                  +3593        )
                  +3594
                  +3595    def _parse_if(self) -> t.Optional[exp.Expression]:
                  +3596        if self._match(TokenType.L_PAREN):
                  +3597            args = self._parse_csv(self._parse_conjunction)
                  +3598            this = exp.If.from_arg_list(args)
                  +3599            self.validate_expression(this, args)
                  +3600            self._match_r_paren()
                  +3601        else:
                  +3602            index = self._index - 1
                  +3603            condition = self._parse_conjunction()
                  +3604
                  +3605            if not condition:
                  +3606                self._retreat(index)
                  +3607                return None
                  +3608
                  +3609            self._match(TokenType.THEN)
                  +3610            true = self._parse_conjunction()
                  +3611            false = self._parse_conjunction() if self._match(TokenType.ELSE) else None
                  +3612            self._match(TokenType.END)
                  +3613            this = self.expression(exp.If, this=condition, true=true, false=false)
                   3614
                  -3615        return self.expression(exp.Cast if strict else exp.TryCast, this=this, to=to)
                  +3615        return self._parse_window(this)
                   3616
                  -3617    def _parse_decode(self) -> t.Optional[exp.Expression]:
                  -3618        """
                  -3619        There are generally two variants of the DECODE function:
                  -3620
                  -3621        - DECODE(bin, charset)
                  -3622        - DECODE(expression, search, result [, search, result] ... [, default])
                  -3623
                  -3624        The second variant will always be parsed into a CASE expression. Note that NULL
                  -3625        needs special treatment, since we need to explicitly check for it with `IS NULL`,
                  -3626        instead of relying on pattern matching.
                  -3627        """
                  -3628        args = self._parse_csv(self._parse_conjunction)
                  -3629
                  -3630        if len(args) < 3:
                  -3631            return self.expression(exp.Decode, this=seq_get(args, 0), charset=seq_get(args, 1))
                  -3632
                  -3633        expression, *expressions = args
                  -3634        if not expression:
                  -3635            return None
                  -3636
                  -3637        ifs = []
                  -3638        for search, result in zip(expressions[::2], expressions[1::2]):
                  -3639            if not search or not result:
                  -3640                return None
                  -3641
                  -3642            if isinstance(search, exp.Literal):
                  -3643                ifs.append(
                  -3644                    exp.If(this=exp.EQ(this=expression.copy(), expression=search), true=result)
                  -3645                )
                  -3646            elif isinstance(search, exp.Null):
                  -3647                ifs.append(
                  -3648                    exp.If(this=exp.Is(this=expression.copy(), expression=exp.Null()), true=result)
                  -3649                )
                  -3650            else:
                  -3651                cond = exp.or_(
                  -3652                    exp.EQ(this=expression.copy(), expression=search),
                  -3653                    exp.and_(
                  -3654                        exp.Is(this=expression.copy(), expression=exp.Null()),
                  -3655                        exp.Is(this=search.copy(), expression=exp.Null()),
                  -3656                        copy=False,
                  -3657                    ),
                  -3658                    copy=False,
                  -3659                )
                  -3660                ifs.append(exp.If(this=cond, true=result))
                  -3661
                  -3662        return exp.Case(ifs=ifs, default=expressions[-1] if len(expressions) % 2 == 1 else None)
                  -3663
                  -3664    def _parse_json_key_value(self) -> t.Optional[exp.Expression]:
                  -3665        self._match_text_seq("KEY")
                  -3666        key = self._parse_field()
                  -3667        self._match(TokenType.COLON)
                  -3668        self._match_text_seq("VALUE")
                  -3669        value = self._parse_field()
                  -3670        if not key and not value:
                  -3671            return None
                  -3672        return self.expression(exp.JSONKeyValue, this=key, expression=value)
                  +3617    def _parse_extract(self) -> exp.Expression:
                  +3618        this = self._parse_function() or self._parse_var() or self._parse_type()
                  +3619
                  +3620        if self._match(TokenType.FROM):
                  +3621            return self.expression(exp.Extract, this=this, expression=self._parse_bitwise())
                  +3622
                  +3623        if not self._match(TokenType.COMMA):
                  +3624            self.raise_error("Expected FROM or comma after EXTRACT", self._prev)
                  +3625
                  +3626        return self.expression(exp.Extract, this=this, expression=self._parse_bitwise())
                  +3627
                  +3628    def _parse_cast(self, strict: bool) -> exp.Expression:
                  +3629        this = self._parse_conjunction()
                  +3630
                  +3631        if not self._match(TokenType.ALIAS):
                  +3632            if self._match(TokenType.COMMA):
                  +3633                return self.expression(
                  +3634                    exp.CastToStrType, this=this, expression=self._parse_string()
                  +3635                )
                  +3636            else:
                  +3637                self.raise_error("Expected AS after CAST")
                  +3638
                  +3639        to = self._parse_types()
                  +3640
                  +3641        if not to:
                  +3642            self.raise_error("Expected TYPE after CAST")
                  +3643        elif to.this == exp.DataType.Type.CHAR:
                  +3644            if self._match(TokenType.CHARACTER_SET):
                  +3645                to = self.expression(exp.CharacterSet, this=self._parse_var_or_string())
                  +3646
                  +3647        return self.expression(exp.Cast if strict else exp.TryCast, this=this, to=to)
                  +3648
                  +3649    def _parse_string_agg(self) -> exp.Expression:
                  +3650        expression: t.Optional[exp.Expression]
                  +3651
                  +3652        if self._match(TokenType.DISTINCT):
                  +3653            args = self._parse_csv(self._parse_conjunction)
                  +3654            expression = self.expression(exp.Distinct, expressions=[seq_get(args, 0)])
                  +3655        else:
                  +3656            args = self._parse_csv(self._parse_conjunction)
                  +3657            expression = seq_get(args, 0)
                  +3658
                  +3659        index = self._index
                  +3660        if not self._match(TokenType.R_PAREN):
                  +3661            # postgres: STRING_AGG([DISTINCT] expression, separator [ORDER BY expression1 {ASC | DESC} [, ...]])
                  +3662            order = self._parse_order(this=expression)
                  +3663            return self.expression(exp.GroupConcat, this=order, separator=seq_get(args, 1))
                  +3664
                  +3665        # Checks if we can parse an order clause: WITHIN GROUP (ORDER BY <order_by_expression_list> [ASC | DESC]).
                  +3666        # This is done "manually", instead of letting _parse_window parse it into an exp.WithinGroup node, so that
                  +3667        # the STRING_AGG call is parsed like in MySQL / SQLite and can thus be transpiled more easily to them.
                  +3668        if not self._match_text_seq("WITHIN", "GROUP"):
                  +3669            self._retreat(index)
                  +3670            this = exp.GroupConcat.from_arg_list(args)
                  +3671            self.validate_expression(this, args)
                  +3672            return this
                   3673
                  -3674    def _parse_json_object(self) -> exp.Expression:
                  -3675        expressions = self._parse_csv(self._parse_json_key_value)
                  -3676
                  -3677        null_handling = None
                  -3678        if self._match_text_seq("NULL", "ON", "NULL"):
                  -3679            null_handling = "NULL ON NULL"
                  -3680        elif self._match_text_seq("ABSENT", "ON", "NULL"):
                  -3681            null_handling = "ABSENT ON NULL"
                  -3682
                  -3683        unique_keys = None
                  -3684        if self._match_text_seq("WITH", "UNIQUE"):
                  -3685            unique_keys = True
                  -3686        elif self._match_text_seq("WITHOUT", "UNIQUE"):
                  -3687            unique_keys = False
                  +3674        self._match_l_paren()  # The corresponding match_r_paren will be called in parse_function (caller)
                  +3675        order = self._parse_order(this=expression)
                  +3676        return self.expression(exp.GroupConcat, this=order, separator=seq_get(args, 1))
                  +3677
                  +3678    def _parse_convert(self, strict: bool) -> t.Optional[exp.Expression]:
                  +3679        to: t.Optional[exp.Expression]
                  +3680        this = self._parse_bitwise()
                  +3681
                  +3682        if self._match(TokenType.USING):
                  +3683            to = self.expression(exp.CharacterSet, this=self._parse_var())
                  +3684        elif self._match(TokenType.COMMA):
                  +3685            to = self._parse_bitwise()
                  +3686        else:
                  +3687            to = None
                   3688
                  -3689        self._match_text_seq("KEYS")
                  -3690
                  -3691        return_type = self._match_text_seq("RETURNING") and self._parse_type()
                  -3692        format_json = self._match_text_seq("FORMAT", "JSON")
                  -3693        encoding = self._match_text_seq("ENCODING") and self._parse_var()
                  +3689        # Swap the argument order if needed to produce the correct AST
                  +3690        if self.CONVERT_TYPE_FIRST:
                  +3691            this, to = to, this
                  +3692
                  +3693        return self.expression(exp.Cast if strict else exp.TryCast, this=this, to=to)
                   3694
                  -3695        return self.expression(
                  -3696            exp.JSONObject,
                  -3697            expressions=expressions,
                  -3698            null_handling=null_handling,
                  -3699            unique_keys=unique_keys,
                  -3700            return_type=return_type,
                  -3701            format_json=format_json,
                  -3702            encoding=encoding,
                  -3703        )
                  -3704
                  -3705    def _parse_logarithm(self) -> exp.Expression:
                  -3706        # Default argument order is base, expression
                  -3707        args = self._parse_csv(self._parse_range)
                  -3708
                  -3709        if len(args) > 1:
                  -3710            if not self.LOG_BASE_FIRST:
                  -3711                args.reverse()
                  -3712            return exp.Log.from_arg_list(args)
                  -3713
                  -3714        return self.expression(
                  -3715            exp.Ln if self.LOG_DEFAULTS_TO_LN else exp.Log, this=seq_get(args, 0)
                  -3716        )
                  -3717
                  -3718    def _parse_match_against(self) -> exp.Expression:
                  -3719        expressions = self._parse_csv(self._parse_column)
                  -3720
                  -3721        self._match_text_seq(")", "AGAINST", "(")
                  -3722
                  -3723        this = self._parse_string()
                  -3724
                  -3725        if self._match_text_seq("IN", "NATURAL", "LANGUAGE", "MODE"):
                  -3726            modifier = "IN NATURAL LANGUAGE MODE"
                  -3727            if self._match_text_seq("WITH", "QUERY", "EXPANSION"):
                  -3728                modifier = f"{modifier} WITH QUERY EXPANSION"
                  -3729        elif self._match_text_seq("IN", "BOOLEAN", "MODE"):
                  -3730            modifier = "IN BOOLEAN MODE"
                  -3731        elif self._match_text_seq("WITH", "QUERY", "EXPANSION"):
                  -3732            modifier = "WITH QUERY EXPANSION"
                  -3733        else:
                  -3734            modifier = None
                  -3735
                  -3736        return self.expression(
                  -3737            exp.MatchAgainst, this=this, expressions=expressions, modifier=modifier
                  -3738        )
                  +3695    def _parse_decode(self) -> t.Optional[exp.Expression]:
                  +3696        """
                  +3697        There are generally two variants of the DECODE function:
                  +3698
                  +3699        - DECODE(bin, charset)
                  +3700        - DECODE(expression, search, result [, search, result] ... [, default])
                  +3701
                  +3702        The second variant will always be parsed into a CASE expression. Note that NULL
                  +3703        needs special treatment, since we need to explicitly check for it with `IS NULL`,
                  +3704        instead of relying on pattern matching.
                  +3705        """
                  +3706        args = self._parse_csv(self._parse_conjunction)
                  +3707
                  +3708        if len(args) < 3:
                  +3709            return self.expression(exp.Decode, this=seq_get(args, 0), charset=seq_get(args, 1))
                  +3710
                  +3711        expression, *expressions = args
                  +3712        if not expression:
                  +3713            return None
                  +3714
                  +3715        ifs = []
                  +3716        for search, result in zip(expressions[::2], expressions[1::2]):
                  +3717            if not search or not result:
                  +3718                return None
                  +3719
                  +3720            if isinstance(search, exp.Literal):
                  +3721                ifs.append(
                  +3722                    exp.If(this=exp.EQ(this=expression.copy(), expression=search), true=result)
                  +3723                )
                  +3724            elif isinstance(search, exp.Null):
                  +3725                ifs.append(
                  +3726                    exp.If(this=exp.Is(this=expression.copy(), expression=exp.Null()), true=result)
                  +3727                )
                  +3728            else:
                  +3729                cond = exp.or_(
                  +3730                    exp.EQ(this=expression.copy(), expression=search),
                  +3731                    exp.and_(
                  +3732                        exp.Is(this=expression.copy(), expression=exp.Null()),
                  +3733                        exp.Is(this=search.copy(), expression=exp.Null()),
                  +3734                        copy=False,
                  +3735                    ),
                  +3736                    copy=False,
                  +3737                )
                  +3738                ifs.append(exp.If(this=cond, true=result))
                   3739
                  -3740    # https://learn.microsoft.com/en-us/sql/t-sql/functions/openjson-transact-sql?view=sql-server-ver16
                  -3741    def _parse_open_json(self) -> exp.Expression:
                  -3742        this = self._parse_bitwise()
                  -3743        path = self._match(TokenType.COMMA) and self._parse_string()
                  -3744
                  -3745        def _parse_open_json_column_def() -> exp.Expression:
                  -3746            this = self._parse_field(any_token=True)
                  -3747            kind = self._parse_types()
                  -3748            path = self._parse_string()
                  -3749            as_json = self._match_pair(TokenType.ALIAS, TokenType.JSON)
                  -3750            return self.expression(
                  -3751                exp.OpenJSONColumnDef, this=this, kind=kind, path=path, as_json=as_json
                  -3752            )
                  -3753
                  -3754        expressions = None
                  -3755        if self._match_pair(TokenType.R_PAREN, TokenType.WITH):
                  -3756            self._match_l_paren()
                  -3757            expressions = self._parse_csv(_parse_open_json_column_def)
                  -3758
                  -3759        return self.expression(exp.OpenJSON, this=this, path=path, expressions=expressions)
                  +3740        return exp.Case(ifs=ifs, default=expressions[-1] if len(expressions) % 2 == 1 else None)
                  +3741
                  +3742    def _parse_json_key_value(self) -> t.Optional[exp.Expression]:
                  +3743        self._match_text_seq("KEY")
                  +3744        key = self._parse_field()
                  +3745        self._match(TokenType.COLON)
                  +3746        self._match_text_seq("VALUE")
                  +3747        value = self._parse_field()
                  +3748        if not key and not value:
                  +3749            return None
                  +3750        return self.expression(exp.JSONKeyValue, this=key, expression=value)
                  +3751
                  +3752    def _parse_json_object(self) -> exp.Expression:
                  +3753        expressions = self._parse_csv(self._parse_json_key_value)
                  +3754
                  +3755        null_handling = None
                  +3756        if self._match_text_seq("NULL", "ON", "NULL"):
                  +3757            null_handling = "NULL ON NULL"
                  +3758        elif self._match_text_seq("ABSENT", "ON", "NULL"):
                  +3759            null_handling = "ABSENT ON NULL"
                   3760
                  -3761    def _parse_position(self, haystack_first: bool = False) -> exp.Expression:
                  -3762        args = self._parse_csv(self._parse_bitwise)
                  -3763
                  -3764        if self._match(TokenType.IN):
                  -3765            return self.expression(
                  -3766                exp.StrPosition, this=self._parse_bitwise(), substr=seq_get(args, 0)
                  -3767            )
                  +3761        unique_keys = None
                  +3762        if self._match_text_seq("WITH", "UNIQUE"):
                  +3763            unique_keys = True
                  +3764        elif self._match_text_seq("WITHOUT", "UNIQUE"):
                  +3765            unique_keys = False
                  +3766
                  +3767        self._match_text_seq("KEYS")
                   3768
                  -3769        if haystack_first:
                  -3770            haystack = seq_get(args, 0)
                  -3771            needle = seq_get(args, 1)
                  -3772        else:
                  -3773            needle = seq_get(args, 0)
                  -3774            haystack = seq_get(args, 1)
                  -3775
                  -3776        this = exp.StrPosition(this=haystack, substr=needle, position=seq_get(args, 2))
                  -3777
                  -3778        self.validate_expression(this, args)
                  -3779
                  -3780        return this
                  -3781
                  -3782    def _parse_join_hint(self, func_name: str) -> exp.Expression:
                  -3783        args = self._parse_csv(self._parse_table)
                  -3784        return exp.JoinHint(this=func_name.upper(), expressions=args)
                  -3785
                  -3786    def _parse_substring(self) -> exp.Expression:
                  -3787        # Postgres supports the form: substring(string [from int] [for int])
                  -3788        # https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6
                  -3789
                  -3790        args = self._parse_csv(self._parse_bitwise)
                  +3769        return_type = self._match_text_seq("RETURNING") and self._parse_type()
                  +3770        format_json = self._match_text_seq("FORMAT", "JSON")
                  +3771        encoding = self._match_text_seq("ENCODING") and self._parse_var()
                  +3772
                  +3773        return self.expression(
                  +3774            exp.JSONObject,
                  +3775            expressions=expressions,
                  +3776            null_handling=null_handling,
                  +3777            unique_keys=unique_keys,
                  +3778            return_type=return_type,
                  +3779            format_json=format_json,
                  +3780            encoding=encoding,
                  +3781        )
                  +3782
                  +3783    def _parse_logarithm(self) -> exp.Expression:
                  +3784        # Default argument order is base, expression
                  +3785        args = self._parse_csv(self._parse_range)
                  +3786
                  +3787        if len(args) > 1:
                  +3788            if not self.LOG_BASE_FIRST:
                  +3789                args.reverse()
                  +3790            return exp.Log.from_arg_list(args)
                   3791
                  -3792        if self._match(TokenType.FROM):
                  -3793            args.append(self._parse_bitwise())
                  -3794            if self._match(TokenType.FOR):
                  -3795                args.append(self._parse_bitwise())
                  -3796
                  -3797        this = exp.Substring.from_arg_list(args)
                  -3798        self.validate_expression(this, args)
                  -3799
                  -3800        return this
                  -3801
                  -3802    def _parse_trim(self) -> exp.Expression:
                  -3803        # https://www.w3resource.com/sql/character-functions/trim.php
                  -3804        # https://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html
                  -3805
                  -3806        position = None
                  -3807        collation = None
                  -3808
                  -3809        if self._match_texts(self.TRIM_TYPES):
                  -3810            position = self._prev.text.upper()
                  -3811
                  -3812        expression = self._parse_bitwise()
                  -3813        if self._match_set((TokenType.FROM, TokenType.COMMA)):
                  -3814            this = self._parse_bitwise()
                  -3815        else:
                  -3816            this = expression
                  -3817            expression = None
                  -3818
                  -3819        if self._match(TokenType.COLLATE):
                  -3820            collation = self._parse_bitwise()
                  -3821
                  -3822        return self.expression(
                  -3823            exp.Trim,
                  -3824            this=this,
                  -3825            position=position,
                  -3826            expression=expression,
                  -3827            collation=collation,
                  -3828        )
                  -3829
                  -3830    def _parse_window_clause(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
                  -3831        return self._match(TokenType.WINDOW) and self._parse_csv(self._parse_named_window)
                  -3832
                  -3833    def _parse_named_window(self) -> t.Optional[exp.Expression]:
                  -3834        return self._parse_window(self._parse_id_var(), alias=True)
                  -3835
                  -3836    def _parse_respect_or_ignore_nulls(
                  -3837        self, this: t.Optional[exp.Expression]
                  -3838    ) -> t.Optional[exp.Expression]:
                  -3839        if self._match_text_seq("IGNORE", "NULLS"):
                  -3840            return self.expression(exp.IgnoreNulls, this=this)
                  -3841        if self._match_text_seq("RESPECT", "NULLS"):
                  -3842            return self.expression(exp.RespectNulls, this=this)
                  -3843        return this
                  -3844
                  -3845    def _parse_window(
                  -3846        self, this: t.Optional[exp.Expression], alias: bool = False
                  -3847    ) -> t.Optional[exp.Expression]:
                  -3848        if self._match_pair(TokenType.FILTER, TokenType.L_PAREN):
                  -3849            this = self.expression(exp.Filter, this=this, expression=self._parse_where())
                  -3850            self._match_r_paren()
                  -3851
                  -3852        # T-SQL allows the OVER (...) syntax after WITHIN GROUP.
                  -3853        # https://learn.microsoft.com/en-us/sql/t-sql/functions/percentile-disc-transact-sql?view=sql-server-ver16
                  -3854        if self._match_text_seq("WITHIN", "GROUP"):
                  -3855            order = self._parse_wrapped(self._parse_order)
                  -3856            this = self.expression(exp.WithinGroup, this=this, expression=order)
                  +3792        return self.expression(
                  +3793            exp.Ln if self.LOG_DEFAULTS_TO_LN else exp.Log, this=seq_get(args, 0)
                  +3794        )
                  +3795
                  +3796    def _parse_match_against(self) -> exp.Expression:
                  +3797        expressions = self._parse_csv(self._parse_column)
                  +3798
                  +3799        self._match_text_seq(")", "AGAINST", "(")
                  +3800
                  +3801        this = self._parse_string()
                  +3802
                  +3803        if self._match_text_seq("IN", "NATURAL", "LANGUAGE", "MODE"):
                  +3804            modifier = "IN NATURAL LANGUAGE MODE"
                  +3805            if self._match_text_seq("WITH", "QUERY", "EXPANSION"):
                  +3806                modifier = f"{modifier} WITH QUERY EXPANSION"
                  +3807        elif self._match_text_seq("IN", "BOOLEAN", "MODE"):
                  +3808            modifier = "IN BOOLEAN MODE"
                  +3809        elif self._match_text_seq("WITH", "QUERY", "EXPANSION"):
                  +3810            modifier = "WITH QUERY EXPANSION"
                  +3811        else:
                  +3812            modifier = None
                  +3813
                  +3814        return self.expression(
                  +3815            exp.MatchAgainst, this=this, expressions=expressions, modifier=modifier
                  +3816        )
                  +3817
                  +3818    # https://learn.microsoft.com/en-us/sql/t-sql/functions/openjson-transact-sql?view=sql-server-ver16
                  +3819    def _parse_open_json(self) -> exp.Expression:
                  +3820        this = self._parse_bitwise()
                  +3821        path = self._match(TokenType.COMMA) and self._parse_string()
                  +3822
                  +3823        def _parse_open_json_column_def() -> exp.Expression:
                  +3824            this = self._parse_field(any_token=True)
                  +3825            kind = self._parse_types()
                  +3826            path = self._parse_string()
                  +3827            as_json = self._match_pair(TokenType.ALIAS, TokenType.JSON)
                  +3828            return self.expression(
                  +3829                exp.OpenJSONColumnDef, this=this, kind=kind, path=path, as_json=as_json
                  +3830            )
                  +3831
                  +3832        expressions = None
                  +3833        if self._match_pair(TokenType.R_PAREN, TokenType.WITH):
                  +3834            self._match_l_paren()
                  +3835            expressions = self._parse_csv(_parse_open_json_column_def)
                  +3836
                  +3837        return self.expression(exp.OpenJSON, this=this, path=path, expressions=expressions)
                  +3838
                  +3839    def _parse_position(self, haystack_first: bool = False) -> exp.Expression:
                  +3840        args = self._parse_csv(self._parse_bitwise)
                  +3841
                  +3842        if self._match(TokenType.IN):
                  +3843            return self.expression(
                  +3844                exp.StrPosition, this=self._parse_bitwise(), substr=seq_get(args, 0)
                  +3845            )
                  +3846
                  +3847        if haystack_first:
                  +3848            haystack = seq_get(args, 0)
                  +3849            needle = seq_get(args, 1)
                  +3850        else:
                  +3851            needle = seq_get(args, 0)
                  +3852            haystack = seq_get(args, 1)
                  +3853
                  +3854        this = exp.StrPosition(this=haystack, substr=needle, position=seq_get(args, 2))
                  +3855
                  +3856        self.validate_expression(this, args)
                   3857
                  -3858        # SQL spec defines an optional [ { IGNORE | RESPECT } NULLS ] OVER
                  -3859        # Some dialects choose to implement and some do not.
                  -3860        # https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html
                  -3861
                  -3862        # There is some code above in _parse_lambda that handles
                  -3863        #   SELECT FIRST_VALUE(TABLE.COLUMN IGNORE|RESPECT NULLS) OVER ...
                  -3864
                  -3865        # The below changes handle
                  -3866        #   SELECT FIRST_VALUE(TABLE.COLUMN) IGNORE|RESPECT NULLS OVER ...
                  +3858        return this
                  +3859
                  +3860    def _parse_join_hint(self, func_name: str) -> exp.Expression:
                  +3861        args = self._parse_csv(self._parse_table)
                  +3862        return exp.JoinHint(this=func_name.upper(), expressions=args)
                  +3863
                  +3864    def _parse_substring(self) -> exp.Expression:
                  +3865        # Postgres supports the form: substring(string [from int] [for int])
                  +3866        # https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6
                   3867
                  -3868        # Oracle allows both formats
                  -3869        #   (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/img_text/first_value.html)
                  -3870        #   and Snowflake chose to do the same for familiarity
                  -3871        #   https://docs.snowflake.com/en/sql-reference/functions/first_value.html#usage-notes
                  -3872        this = self._parse_respect_or_ignore_nulls(this)
                  -3873
                  -3874        # bigquery select from window x AS (partition by ...)
                  -3875        if alias:
                  -3876            over = None
                  -3877            self._match(TokenType.ALIAS)
                  -3878        elif not self._match_set(self.WINDOW_BEFORE_PAREN_TOKENS):
                  -3879            return this
                  -3880        else:
                  -3881            over = self._prev.text.upper()
                  -3882
                  -3883        if not self._match(TokenType.L_PAREN):
                  -3884            return self.expression(
                  -3885                exp.Window, this=this, alias=self._parse_id_var(False), over=over
                  -3886            )
                  -3887
                  -3888        window_alias = self._parse_id_var(any_token=False, tokens=self.WINDOW_ALIAS_TOKENS)
                  +3868        args = self._parse_csv(self._parse_bitwise)
                  +3869
                  +3870        if self._match(TokenType.FROM):
                  +3871            args.append(self._parse_bitwise())
                  +3872            if self._match(TokenType.FOR):
                  +3873                args.append(self._parse_bitwise())
                  +3874
                  +3875        this = exp.Substring.from_arg_list(args)
                  +3876        self.validate_expression(this, args)
                  +3877
                  +3878        return this
                  +3879
                  +3880    def _parse_trim(self) -> exp.Expression:
                  +3881        # https://www.w3resource.com/sql/character-functions/trim.php
                  +3882        # https://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html
                  +3883
                  +3884        position = None
                  +3885        collation = None
                  +3886
                  +3887        if self._match_texts(self.TRIM_TYPES):
                  +3888            position = self._prev.text.upper()
                   3889
                  -3890        first = self._match(TokenType.FIRST)
                  -3891        if self._match_text_seq("LAST"):
                  -3892            first = False
                  -3893
                  -3894        partition = self._parse_partition_by()
                  -3895        order = self._parse_order()
                  -3896        kind = self._match_set((TokenType.ROWS, TokenType.RANGE)) and self._prev.text
                  -3897
                  -3898        if kind:
                  -3899            self._match(TokenType.BETWEEN)
                  -3900            start = self._parse_window_spec()
                  -3901            self._match(TokenType.AND)
                  -3902            end = self._parse_window_spec()
                  -3903
                  -3904            spec = self.expression(
                  -3905                exp.WindowSpec,
                  -3906                kind=kind,
                  -3907                start=start["value"],
                  -3908                start_side=start["side"],
                  -3909                end=end["value"],
                  -3910                end_side=end["side"],
                  -3911            )
                  -3912        else:
                  -3913            spec = None
                  -3914
                  -3915        self._match_r_paren()
                  -3916
                  -3917        return self.expression(
                  -3918            exp.Window,
                  -3919            this=this,
                  -3920            partition_by=partition,
                  -3921            order=order,
                  -3922            spec=spec,
                  -3923            alias=window_alias,
                  -3924            over=over,
                  -3925            first=first,
                  -3926        )
                  -3927
                  -3928    def _parse_window_spec(self) -> t.Dict[str, t.Optional[str | exp.Expression]]:
                  -3929        self._match(TokenType.BETWEEN)
                  -3930
                  -3931        return {
                  -3932            "value": (
                  -3933                (self._match_text_seq("UNBOUNDED") and "UNBOUNDED")
                  -3934                or (self._match_text_seq("CURRENT", "ROW") and "CURRENT ROW")
                  -3935                or self._parse_bitwise()
                  -3936            ),
                  -3937            "side": self._match_texts(("PRECEDING", "FOLLOWING")) and self._prev.text,
                  -3938        }
                  +3890        expression = self._parse_bitwise()
                  +3891        if self._match_set((TokenType.FROM, TokenType.COMMA)):
                  +3892            this = self._parse_bitwise()
                  +3893        else:
                  +3894            this = expression
                  +3895            expression = None
                  +3896
                  +3897        if self._match(TokenType.COLLATE):
                  +3898            collation = self._parse_bitwise()
                  +3899
                  +3900        return self.expression(
                  +3901            exp.Trim,
                  +3902            this=this,
                  +3903            position=position,
                  +3904            expression=expression,
                  +3905            collation=collation,
                  +3906        )
                  +3907
                  +3908    def _parse_window_clause(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
                  +3909        return self._match(TokenType.WINDOW) and self._parse_csv(self._parse_named_window)
                  +3910
                  +3911    def _parse_named_window(self) -> t.Optional[exp.Expression]:
                  +3912        return self._parse_window(self._parse_id_var(), alias=True)
                  +3913
                  +3914    def _parse_respect_or_ignore_nulls(
                  +3915        self, this: t.Optional[exp.Expression]
                  +3916    ) -> t.Optional[exp.Expression]:
                  +3917        if self._match_text_seq("IGNORE", "NULLS"):
                  +3918            return self.expression(exp.IgnoreNulls, this=this)
                  +3919        if self._match_text_seq("RESPECT", "NULLS"):
                  +3920            return self.expression(exp.RespectNulls, this=this)
                  +3921        return this
                  +3922
                  +3923    def _parse_window(
                  +3924        self, this: t.Optional[exp.Expression], alias: bool = False
                  +3925    ) -> t.Optional[exp.Expression]:
                  +3926        if self._match_pair(TokenType.FILTER, TokenType.L_PAREN):
                  +3927            this = self.expression(exp.Filter, this=this, expression=self._parse_where())
                  +3928            self._match_r_paren()
                  +3929
                  +3930        # T-SQL allows the OVER (...) syntax after WITHIN GROUP.
                  +3931        # https://learn.microsoft.com/en-us/sql/t-sql/functions/percentile-disc-transact-sql?view=sql-server-ver16
                  +3932        if self._match_text_seq("WITHIN", "GROUP"):
                  +3933            order = self._parse_wrapped(self._parse_order)
                  +3934            this = self.expression(exp.WithinGroup, this=this, expression=order)
                  +3935
                  +3936        # SQL spec defines an optional [ { IGNORE | RESPECT } NULLS ] OVER
                  +3937        # Some dialects choose to implement and some do not.
                  +3938        # https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html
                   3939
                  -3940    def _parse_alias(
                  -3941        self, this: t.Optional[exp.Expression], explicit: bool = False
                  -3942    ) -> t.Optional[exp.Expression]:
                  -3943        any_token = self._match(TokenType.ALIAS)
                  -3944
                  -3945        if explicit and not any_token:
                  -3946            return this
                  -3947
                  -3948        if self._match(TokenType.L_PAREN):
                  -3949            aliases = self.expression(
                  -3950                exp.Aliases,
                  -3951                this=this,
                  -3952                expressions=self._parse_csv(lambda: self._parse_id_var(any_token)),
                  -3953            )
                  -3954            self._match_r_paren(aliases)
                  -3955            return aliases
                  -3956
                  -3957        alias = self._parse_id_var(any_token)
                  -3958
                  -3959        if alias:
                  -3960            return self.expression(exp.Alias, this=this, alias=alias)
                  -3961
                  -3962        return this
                  -3963
                  -3964    def _parse_id_var(
                  -3965        self,
                  -3966        any_token: bool = True,
                  -3967        tokens: t.Optional[t.Collection[TokenType]] = None,
                  -3968        prefix_tokens: t.Optional[t.Collection[TokenType]] = None,
                  -3969    ) -> t.Optional[exp.Expression]:
                  -3970        identifier = self._parse_identifier()
                  +3940        # There is some code above in _parse_lambda that handles
                  +3941        #   SELECT FIRST_VALUE(TABLE.COLUMN IGNORE|RESPECT NULLS) OVER ...
                  +3942
                  +3943        # The below changes handle
                  +3944        #   SELECT FIRST_VALUE(TABLE.COLUMN) IGNORE|RESPECT NULLS OVER ...
                  +3945
                  +3946        # Oracle allows both formats
                  +3947        #   (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/img_text/first_value.html)
                  +3948        #   and Snowflake chose to do the same for familiarity
                  +3949        #   https://docs.snowflake.com/en/sql-reference/functions/first_value.html#usage-notes
                  +3950        this = self._parse_respect_or_ignore_nulls(this)
                  +3951
                  +3952        # bigquery select from window x AS (partition by ...)
                  +3953        if alias:
                  +3954            over = None
                  +3955            self._match(TokenType.ALIAS)
                  +3956        elif not self._match_set(self.WINDOW_BEFORE_PAREN_TOKENS):
                  +3957            return this
                  +3958        else:
                  +3959            over = self._prev.text.upper()
                  +3960
                  +3961        if not self._match(TokenType.L_PAREN):
                  +3962            return self.expression(
                  +3963                exp.Window, this=this, alias=self._parse_id_var(False), over=over
                  +3964            )
                  +3965
                  +3966        window_alias = self._parse_id_var(any_token=False, tokens=self.WINDOW_ALIAS_TOKENS)
                  +3967
                  +3968        first = self._match(TokenType.FIRST)
                  +3969        if self._match_text_seq("LAST"):
                  +3970            first = False
                   3971
                  -3972        if identifier:
                  -3973            return identifier
                  -3974
                  -3975        prefix = ""
                  -3976
                  -3977        if prefix_tokens:
                  -3978            while self._match_set(prefix_tokens):
                  -3979                prefix += self._prev.text
                  -3980
                  -3981        if (any_token and self._advance_any()) or self._match_set(tokens or self.ID_VAR_TOKENS):
                  -3982            quoted = self._prev.token_type == TokenType.STRING
                  -3983            return exp.Identifier(this=prefix + self._prev.text, quoted=quoted)
                  -3984
                  -3985        return None
                  -3986
                  -3987    def _parse_string(self) -> t.Optional[exp.Expression]:
                  -3988        if self._match(TokenType.STRING):
                  -3989            return self.PRIMARY_PARSERS[TokenType.STRING](self, self._prev)
                  -3990        return self._parse_placeholder()
                  -3991
                  -3992    def _parse_string_as_identifier(self) -> t.Optional[exp.Expression]:
                  -3993        return exp.to_identifier(self._match(TokenType.STRING) and self._prev.text, quoted=True)
                  +3972        partition = self._parse_partition_by()
                  +3973        order = self._parse_order()
                  +3974        kind = self._match_set((TokenType.ROWS, TokenType.RANGE)) and self._prev.text
                  +3975
                  +3976        if kind:
                  +3977            self._match(TokenType.BETWEEN)
                  +3978            start = self._parse_window_spec()
                  +3979            self._match(TokenType.AND)
                  +3980            end = self._parse_window_spec()
                  +3981
                  +3982            spec = self.expression(
                  +3983                exp.WindowSpec,
                  +3984                kind=kind,
                  +3985                start=start["value"],
                  +3986                start_side=start["side"],
                  +3987                end=end["value"],
                  +3988                end_side=end["side"],
                  +3989            )
                  +3990        else:
                  +3991            spec = None
                  +3992
                  +3993        self._match_r_paren()
                   3994
                  -3995    def _parse_number(self) -> t.Optional[exp.Expression]:
                  -3996        if self._match(TokenType.NUMBER):
                  -3997            return self.PRIMARY_PARSERS[TokenType.NUMBER](self, self._prev)
                  -3998        return self._parse_placeholder()
                  -3999
                  -4000    def _parse_identifier(self) -> t.Optional[exp.Expression]:
                  -4001        if self._match(TokenType.IDENTIFIER):
                  -4002            return self.expression(exp.Identifier, this=self._prev.text, quoted=True)
                  -4003        return self._parse_placeholder()
                  -4004
                  -4005    def _parse_var(
                  -4006        self, any_token: bool = False, tokens: t.Optional[t.Collection[TokenType]] = None
                  -4007    ) -> t.Optional[exp.Expression]:
                  -4008        if (
                  -4009            (any_token and self._advance_any())
                  -4010            or self._match(TokenType.VAR)
                  -4011            or (self._match_set(tokens) if tokens else False)
                  -4012        ):
                  -4013            return self.expression(exp.Var, this=self._prev.text)
                  -4014        return self._parse_placeholder()
                  -4015
                  -4016    def _advance_any(self) -> t.Optional[Token]:
                  -4017        if self._curr and self._curr.token_type not in self.RESERVED_KEYWORDS:
                  -4018            self._advance()
                  -4019            return self._prev
                  -4020        return None
                  -4021
                  -4022    def _parse_var_or_string(self) -> t.Optional[exp.Expression]:
                  -4023        return self._parse_var() or self._parse_string()
                  -4024
                  -4025    def _parse_null(self) -> t.Optional[exp.Expression]:
                  -4026        if self._match(TokenType.NULL):
                  -4027            return self.PRIMARY_PARSERS[TokenType.NULL](self, self._prev)
                  -4028        return None
                  -4029
                  -4030    def _parse_boolean(self) -> t.Optional[exp.Expression]:
                  -4031        if self._match(TokenType.TRUE):
                  -4032            return self.PRIMARY_PARSERS[TokenType.TRUE](self, self._prev)
                  -4033        if self._match(TokenType.FALSE):
                  -4034            return self.PRIMARY_PARSERS[TokenType.FALSE](self, self._prev)
                  -4035        return None
                  +3995        return self.expression(
                  +3996            exp.Window,
                  +3997            this=this,
                  +3998            partition_by=partition,
                  +3999            order=order,
                  +4000            spec=spec,
                  +4001            alias=window_alias,
                  +4002            over=over,
                  +4003            first=first,
                  +4004        )
                  +4005
                  +4006    def _parse_window_spec(self) -> t.Dict[str, t.Optional[str | exp.Expression]]:
                  +4007        self._match(TokenType.BETWEEN)
                  +4008
                  +4009        return {
                  +4010            "value": (
                  +4011                (self._match_text_seq("UNBOUNDED") and "UNBOUNDED")
                  +4012                or (self._match_text_seq("CURRENT", "ROW") and "CURRENT ROW")
                  +4013                or self._parse_bitwise()
                  +4014            ),
                  +4015            "side": self._match_texts(self.WINDOW_SIDES) and self._prev.text,
                  +4016        }
                  +4017
                  +4018    def _parse_alias(
                  +4019        self, this: t.Optional[exp.Expression], explicit: bool = False
                  +4020    ) -> t.Optional[exp.Expression]:
                  +4021        any_token = self._match(TokenType.ALIAS)
                  +4022
                  +4023        if explicit and not any_token:
                  +4024            return this
                  +4025
                  +4026        if self._match(TokenType.L_PAREN):
                  +4027            aliases = self.expression(
                  +4028                exp.Aliases,
                  +4029                this=this,
                  +4030                expressions=self._parse_csv(lambda: self._parse_id_var(any_token)),
                  +4031            )
                  +4032            self._match_r_paren(aliases)
                  +4033            return aliases
                  +4034
                  +4035        alias = self._parse_id_var(any_token)
                   4036
                  -4037    def _parse_star(self) -> t.Optional[exp.Expression]:
                  -4038        if self._match(TokenType.STAR):
                  -4039            return self.PRIMARY_PARSERS[TokenType.STAR](self, self._prev)
                  -4040        return None
                  +4037        if alias:
                  +4038            return self.expression(exp.Alias, this=this, alias=alias)
                  +4039
                  +4040        return this
                   4041
                  -4042    def _parse_parameter(self) -> exp.Expression:
                  -4043        wrapped = self._match(TokenType.L_BRACE)
                  -4044        this = self._parse_var() or self._parse_identifier() or self._parse_primary()
                  -4045        self._match(TokenType.R_BRACE)
                  -4046        return self.expression(exp.Parameter, this=this, wrapped=wrapped)
                  -4047
                  -4048    def _parse_placeholder(self) -> t.Optional[exp.Expression]:
                  -4049        if self._match_set(self.PLACEHOLDER_PARSERS):
                  -4050            placeholder = self.PLACEHOLDER_PARSERS[self._prev.token_type](self)
                  -4051            if placeholder:
                  -4052                return placeholder
                  -4053            self._advance(-1)
                  -4054        return None
                  +4042    def _parse_id_var(
                  +4043        self,
                  +4044        any_token: bool = True,
                  +4045        tokens: t.Optional[t.Collection[TokenType]] = None,
                  +4046    ) -> t.Optional[exp.Expression]:
                  +4047        identifier = self._parse_identifier()
                  +4048
                  +4049        if identifier:
                  +4050            return identifier
                  +4051
                  +4052        if (any_token and self._advance_any()) or self._match_set(tokens or self.ID_VAR_TOKENS):
                  +4053            quoted = self._prev.token_type == TokenType.STRING
                  +4054            return exp.Identifier(this=self._prev.text, quoted=quoted)
                   4055
                  -4056    def _parse_except(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
                  -4057        if not self._match(TokenType.EXCEPT):
                  -4058            return None
                  -4059        if self._match(TokenType.L_PAREN, advance=False):
                  -4060            return self._parse_wrapped_csv(self._parse_column)
                  -4061        return self._parse_csv(self._parse_column)
                  +4056        return None
                  +4057
                  +4058    def _parse_string(self) -> t.Optional[exp.Expression]:
                  +4059        if self._match(TokenType.STRING):
                  +4060            return self.PRIMARY_PARSERS[TokenType.STRING](self, self._prev)
                  +4061        return self._parse_placeholder()
                   4062
                  -4063    def _parse_replace(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
                  -4064        if not self._match(TokenType.REPLACE):
                  -4065            return None
                  -4066        if self._match(TokenType.L_PAREN, advance=False):
                  -4067            return self._parse_wrapped_csv(self._parse_expression)
                  -4068        return self._parse_csv(self._parse_expression)
                  -4069
                  -4070    def _parse_csv(
                  -4071        self, parse_method: t.Callable, sep: TokenType = TokenType.COMMA
                  -4072    ) -> t.List[t.Optional[exp.Expression]]:
                  -4073        parse_result = parse_method()
                  -4074        items = [parse_result] if parse_result is not None else []
                  +4063    def _parse_string_as_identifier(self) -> t.Optional[exp.Expression]:
                  +4064        return exp.to_identifier(self._match(TokenType.STRING) and self._prev.text, quoted=True)
                  +4065
                  +4066    def _parse_number(self) -> t.Optional[exp.Expression]:
                  +4067        if self._match(TokenType.NUMBER):
                  +4068            return self.PRIMARY_PARSERS[TokenType.NUMBER](self, self._prev)
                  +4069        return self._parse_placeholder()
                  +4070
                  +4071    def _parse_identifier(self) -> t.Optional[exp.Expression]:
                  +4072        if self._match(TokenType.IDENTIFIER):
                  +4073            return self.expression(exp.Identifier, this=self._prev.text, quoted=True)
                  +4074        return self._parse_placeholder()
                   4075
                  -4076        while self._match(sep):
                  -4077            self._add_comments(parse_result)
                  -4078            parse_result = parse_method()
                  -4079            if parse_result is not None:
                  -4080                items.append(parse_result)
                  -4081
                  -4082        return items
                  -4083
                  -4084    def _parse_tokens(
                  -4085        self, parse_method: t.Callable, expressions: t.Dict
                  -4086    ) -> t.Optional[exp.Expression]:
                  -4087        this = parse_method()
                  -4088
                  -4089        while self._match_set(expressions):
                  -4090            this = self.expression(
                  -4091                expressions[self._prev.token_type],
                  -4092                this=this,
                  -4093                comments=self._prev_comments,
                  -4094                expression=parse_method(),
                  -4095            )
                  -4096
                  -4097        return this
                  -4098
                  -4099    def _parse_wrapped_id_vars(self, optional: bool = False) -> t.List[t.Optional[exp.Expression]]:
                  -4100        return self._parse_wrapped_csv(self._parse_id_var, optional=optional)
                  -4101
                  -4102    def _parse_wrapped_csv(
                  -4103        self, parse_method: t.Callable, sep: TokenType = TokenType.COMMA, optional: bool = False
                  -4104    ) -> t.List[t.Optional[exp.Expression]]:
                  -4105        return self._parse_wrapped(
                  -4106            lambda: self._parse_csv(parse_method, sep=sep), optional=optional
                  -4107        )
                  -4108
                  -4109    def _parse_wrapped(self, parse_method: t.Callable, optional: bool = False) -> t.Any:
                  -4110        wrapped = self._match(TokenType.L_PAREN)
                  -4111        if not wrapped and not optional:
                  -4112            self.raise_error("Expecting (")
                  -4113        parse_result = parse_method()
                  -4114        if wrapped:
                  -4115            self._match_r_paren()
                  -4116        return parse_result
                  -4117
                  -4118    def _parse_select_or_expression(self, alias: bool = False) -> t.Optional[exp.Expression]:
                  -4119        return self._parse_select() or self._parse_set_operations(
                  -4120            self._parse_expression() if alias else self._parse_conjunction()
                  -4121        )
                  -4122
                  -4123    def _parse_ddl_select(self) -> t.Optional[exp.Expression]:
                  -4124        return self._parse_set_operations(
                  -4125            self._parse_select(nested=True, parse_subquery_alias=False)
                  -4126        )
                  -4127
                  -4128    def _parse_transaction(self) -> exp.Expression:
                  -4129        this = None
                  -4130        if self._match_texts(self.TRANSACTION_KIND):
                  -4131            this = self._prev.text
                  -4132
                  -4133        self._match_texts({"TRANSACTION", "WORK"})
                  -4134
                  -4135        modes = []
                  -4136        while True:
                  -4137            mode = []
                  -4138            while self._match(TokenType.VAR):
                  -4139                mode.append(self._prev.text)
                  +4076    def _parse_var(
                  +4077        self, any_token: bool = False, tokens: t.Optional[t.Collection[TokenType]] = None
                  +4078    ) -> t.Optional[exp.Expression]:
                  +4079        if (
                  +4080            (any_token and self._advance_any())
                  +4081            or self._match(TokenType.VAR)
                  +4082            or (self._match_set(tokens) if tokens else False)
                  +4083        ):
                  +4084            return self.expression(exp.Var, this=self._prev.text)
                  +4085        return self._parse_placeholder()
                  +4086
                  +4087    def _advance_any(self) -> t.Optional[Token]:
                  +4088        if self._curr and self._curr.token_type not in self.RESERVED_KEYWORDS:
                  +4089            self._advance()
                  +4090            return self._prev
                  +4091        return None
                  +4092
                  +4093    def _parse_var_or_string(self) -> t.Optional[exp.Expression]:
                  +4094        return self._parse_var() or self._parse_string()
                  +4095
                  +4096    def _parse_null(self) -> t.Optional[exp.Expression]:
                  +4097        if self._match(TokenType.NULL):
                  +4098            return self.PRIMARY_PARSERS[TokenType.NULL](self, self._prev)
                  +4099        return None
                  +4100
                  +4101    def _parse_boolean(self) -> t.Optional[exp.Expression]:
                  +4102        if self._match(TokenType.TRUE):
                  +4103            return self.PRIMARY_PARSERS[TokenType.TRUE](self, self._prev)
                  +4104        if self._match(TokenType.FALSE):
                  +4105            return self.PRIMARY_PARSERS[TokenType.FALSE](self, self._prev)
                  +4106        return None
                  +4107
                  +4108    def _parse_star(self) -> t.Optional[exp.Expression]:
                  +4109        if self._match(TokenType.STAR):
                  +4110            return self.PRIMARY_PARSERS[TokenType.STAR](self, self._prev)
                  +4111        return None
                  +4112
                  +4113    def _parse_parameter(self) -> exp.Expression:
                  +4114        wrapped = self._match(TokenType.L_BRACE)
                  +4115        this = self._parse_var() or self._parse_identifier() or self._parse_primary()
                  +4116        self._match(TokenType.R_BRACE)
                  +4117        return self.expression(exp.Parameter, this=this, wrapped=wrapped)
                  +4118
                  +4119    def _parse_placeholder(self) -> t.Optional[exp.Expression]:
                  +4120        if self._match_set(self.PLACEHOLDER_PARSERS):
                  +4121            placeholder = self.PLACEHOLDER_PARSERS[self._prev.token_type](self)
                  +4122            if placeholder:
                  +4123                return placeholder
                  +4124            self._advance(-1)
                  +4125        return None
                  +4126
                  +4127    def _parse_except(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
                  +4128        if not self._match(TokenType.EXCEPT):
                  +4129            return None
                  +4130        if self._match(TokenType.L_PAREN, advance=False):
                  +4131            return self._parse_wrapped_csv(self._parse_column)
                  +4132        return self._parse_csv(self._parse_column)
                  +4133
                  +4134    def _parse_replace(self) -> t.Optional[t.List[t.Optional[exp.Expression]]]:
                  +4135        if not self._match(TokenType.REPLACE):
                  +4136            return None
                  +4137        if self._match(TokenType.L_PAREN, advance=False):
                  +4138            return self._parse_wrapped_csv(self._parse_expression)
                  +4139        return self._parse_csv(self._parse_expression)
                   4140
                  -4141            if mode:
                  -4142                modes.append(" ".join(mode))
                  -4143            if not self._match(TokenType.COMMA):
                  -4144                break
                  -4145
                  -4146        return self.expression(exp.Transaction, this=this, modes=modes)
                  -4147
                  -4148    def _parse_commit_or_rollback(self) -> exp.Expression:
                  -4149        chain = None
                  -4150        savepoint = None
                  -4151        is_rollback = self._prev.token_type == TokenType.ROLLBACK
                  +4141    def _parse_csv(
                  +4142        self, parse_method: t.Callable, sep: TokenType = TokenType.COMMA
                  +4143    ) -> t.List[t.Optional[exp.Expression]]:
                  +4144        parse_result = parse_method()
                  +4145        items = [parse_result] if parse_result is not None else []
                  +4146
                  +4147        while self._match(sep):
                  +4148            self._add_comments(parse_result)
                  +4149            parse_result = parse_method()
                  +4150            if parse_result is not None:
                  +4151                items.append(parse_result)
                   4152
                  -4153        self._match_texts({"TRANSACTION", "WORK"})
                  +4153        return items
                   4154
                  -4155        if self._match_text_seq("TO"):
                  -4156            self._match_text_seq("SAVEPOINT")
                  -4157            savepoint = self._parse_id_var()
                  -4158
                  -4159        if self._match(TokenType.AND):
                  -4160            chain = not self._match_text_seq("NO")
                  -4161            self._match_text_seq("CHAIN")
                  -4162
                  -4163        if is_rollback:
                  -4164            return self.expression(exp.Rollback, savepoint=savepoint)
                  -4165        return self.expression(exp.Commit, chain=chain)
                  -4166
                  -4167    def _parse_add_column(self) -> t.Optional[exp.Expression]:
                  -4168        if not self._match_text_seq("ADD"):
                  -4169            return None
                  -4170
                  -4171        self._match(TokenType.COLUMN)
                  -4172        exists_column = self._parse_exists(not_=True)
                  -4173        expression = self._parse_column_def(self._parse_field(any_token=True))
                  -4174
                  -4175        if expression:
                  -4176            expression.set("exists", exists_column)
                  -4177
                  -4178            # https://docs.databricks.com/delta/update-schema.html#explicitly-update-schema-to-add-columns
                  -4179            if self._match_texts(("FIRST", "AFTER")):
                  -4180                position = self._prev.text
                  -4181                column_position = self.expression(
                  -4182                    exp.ColumnPosition, this=self._parse_column(), position=position
                  -4183                )
                  -4184                expression.set("position", column_position)
                  -4185
                  -4186        return expression
                  -4187
                  -4188    def _parse_drop_column(self) -> t.Optional[exp.Expression]:
                  -4189        drop = self._match(TokenType.DROP) and self._parse_drop()
                  -4190        if drop and not isinstance(drop, exp.Command):
                  -4191            drop.set("kind", drop.args.get("kind", "COLUMN"))
                  -4192        return drop
                  +4155    def _parse_tokens(
                  +4156        self, parse_method: t.Callable, expressions: t.Dict
                  +4157    ) -> t.Optional[exp.Expression]:
                  +4158        this = parse_method()
                  +4159
                  +4160        while self._match_set(expressions):
                  +4161            this = self.expression(
                  +4162                expressions[self._prev.token_type],
                  +4163                this=this,
                  +4164                comments=self._prev_comments,
                  +4165                expression=parse_method(),
                  +4166            )
                  +4167
                  +4168        return this
                  +4169
                  +4170    def _parse_wrapped_id_vars(self, optional: bool = False) -> t.List[t.Optional[exp.Expression]]:
                  +4171        return self._parse_wrapped_csv(self._parse_id_var, optional=optional)
                  +4172
                  +4173    def _parse_wrapped_csv(
                  +4174        self, parse_method: t.Callable, sep: TokenType = TokenType.COMMA, optional: bool = False
                  +4175    ) -> t.List[t.Optional[exp.Expression]]:
                  +4176        return self._parse_wrapped(
                  +4177            lambda: self._parse_csv(parse_method, sep=sep), optional=optional
                  +4178        )
                  +4179
                  +4180    def _parse_wrapped(self, parse_method: t.Callable, optional: bool = False) -> t.Any:
                  +4181        wrapped = self._match(TokenType.L_PAREN)
                  +4182        if not wrapped and not optional:
                  +4183            self.raise_error("Expecting (")
                  +4184        parse_result = parse_method()
                  +4185        if wrapped:
                  +4186            self._match_r_paren()
                  +4187        return parse_result
                  +4188
                  +4189    def _parse_select_or_expression(self, alias: bool = False) -> t.Optional[exp.Expression]:
                  +4190        return self._parse_select() or self._parse_set_operations(
                  +4191            self._parse_expression() if alias else self._parse_conjunction()
                  +4192        )
                   4193
                  -4194    # https://docs.aws.amazon.com/athena/latest/ug/alter-table-drop-partition.html
                  -4195    def _parse_drop_partition(self, exists: t.Optional[bool] = None) -> exp.Expression:
                  -4196        return self.expression(
                  -4197            exp.DropPartition, expressions=self._parse_csv(self._parse_partition), exists=exists
                  -4198        )
                  -4199
                  -4200    def _parse_add_constraint(self) -> t.Optional[exp.Expression]:
                  -4201        this = None
                  -4202        kind = self._prev.token_type
                  +4194    def _parse_ddl_select(self) -> t.Optional[exp.Expression]:
                  +4195        return self._parse_query_modifiers(
                  +4196            self._parse_set_operations(self._parse_select(nested=True, parse_subquery_alias=False))
                  +4197        )
                  +4198
                  +4199    def _parse_transaction(self) -> exp.Expression:
                  +4200        this = None
                  +4201        if self._match_texts(self.TRANSACTION_KIND):
                  +4202            this = self._prev.text
                   4203
                  -4204        if kind == TokenType.CONSTRAINT:
                  -4205            this = self._parse_id_var()
                  -4206
                  -4207            if self._match_text_seq("CHECK"):
                  -4208                expression = self._parse_wrapped(self._parse_conjunction)
                  -4209                enforced = self._match_text_seq("ENFORCED")
                  -4210
                  -4211                return self.expression(
                  -4212                    exp.AddConstraint, this=this, expression=expression, enforced=enforced
                  -4213                )
                  -4214
                  -4215        if kind == TokenType.FOREIGN_KEY or self._match(TokenType.FOREIGN_KEY):
                  -4216            expression = self._parse_foreign_key()
                  -4217        elif kind == TokenType.PRIMARY_KEY or self._match(TokenType.PRIMARY_KEY):
                  -4218            expression = self._parse_primary_key()
                  -4219        else:
                  -4220            expression = None
                  -4221
                  -4222        return self.expression(exp.AddConstraint, this=this, expression=expression)
                  +4204        self._match_texts({"TRANSACTION", "WORK"})
                  +4205
                  +4206        modes = []
                  +4207        while True:
                  +4208            mode = []
                  +4209            while self._match(TokenType.VAR):
                  +4210                mode.append(self._prev.text)
                  +4211
                  +4212            if mode:
                  +4213                modes.append(" ".join(mode))
                  +4214            if not self._match(TokenType.COMMA):
                  +4215                break
                  +4216
                  +4217        return self.expression(exp.Transaction, this=this, modes=modes)
                  +4218
                  +4219    def _parse_commit_or_rollback(self) -> exp.Expression:
                  +4220        chain = None
                  +4221        savepoint = None
                  +4222        is_rollback = self._prev.token_type == TokenType.ROLLBACK
                   4223
                  -4224    def _parse_alter_table_add(self) -> t.List[t.Optional[exp.Expression]]:
                  -4225        index = self._index - 1
                  -4226
                  -4227        if self._match_set(self.ADD_CONSTRAINT_TOKENS):
                  -4228            return self._parse_csv(self._parse_add_constraint)
                  +4224        self._match_texts({"TRANSACTION", "WORK"})
                  +4225
                  +4226        if self._match_text_seq("TO"):
                  +4227            self._match_text_seq("SAVEPOINT")
                  +4228            savepoint = self._parse_id_var()
                   4229
                  -4230        self._retreat(index)
                  -4231        return self._parse_csv(self._parse_add_column)
                  -4232
                  -4233    def _parse_alter_table_alter(self) -> exp.Expression:
                  -4234        self._match(TokenType.COLUMN)
                  -4235        column = self._parse_field(any_token=True)
                  -4236
                  -4237        if self._match_pair(TokenType.DROP, TokenType.DEFAULT):
                  -4238            return self.expression(exp.AlterColumn, this=column, drop=True)
                  -4239        if self._match_pair(TokenType.SET, TokenType.DEFAULT):
                  -4240            return self.expression(exp.AlterColumn, this=column, default=self._parse_conjunction())
                  +4230        if self._match(TokenType.AND):
                  +4231            chain = not self._match_text_seq("NO")
                  +4232            self._match_text_seq("CHAIN")
                  +4233
                  +4234        if is_rollback:
                  +4235            return self.expression(exp.Rollback, savepoint=savepoint)
                  +4236        return self.expression(exp.Commit, chain=chain)
                  +4237
                  +4238    def _parse_add_column(self) -> t.Optional[exp.Expression]:
                  +4239        if not self._match_text_seq("ADD"):
                  +4240            return None
                   4241
                  -4242        self._match_text_seq("SET", "DATA")
                  -4243        return self.expression(
                  -4244            exp.AlterColumn,
                  -4245            this=column,
                  -4246            dtype=self._match_text_seq("TYPE") and self._parse_types(),
                  -4247            collate=self._match(TokenType.COLLATE) and self._parse_term(),
                  -4248            using=self._match(TokenType.USING) and self._parse_conjunction(),
                  -4249        )
                  -4250
                  -4251    def _parse_alter_table_drop(self) -> t.List[t.Optional[exp.Expression]]:
                  -4252        index = self._index - 1
                  -4253
                  -4254        partition_exists = self._parse_exists()
                  -4255        if self._match(TokenType.PARTITION, advance=False):
                  -4256            return self._parse_csv(lambda: self._parse_drop_partition(exists=partition_exists))
                  -4257
                  -4258        self._retreat(index)
                  -4259        return self._parse_csv(self._parse_drop_column)
                  -4260
                  -4261    def _parse_alter_table_rename(self) -> exp.Expression:
                  -4262        self._match_text_seq("TO")
                  -4263        return self.expression(exp.RenameTable, this=self._parse_table(schema=True))
                  +4242        self._match(TokenType.COLUMN)
                  +4243        exists_column = self._parse_exists(not_=True)
                  +4244        expression = self._parse_column_def(self._parse_field(any_token=True))
                  +4245
                  +4246        if expression:
                  +4247            expression.set("exists", exists_column)
                  +4248
                  +4249            # https://docs.databricks.com/delta/update-schema.html#explicitly-update-schema-to-add-columns
                  +4250            if self._match_texts(("FIRST", "AFTER")):
                  +4251                position = self._prev.text
                  +4252                column_position = self.expression(
                  +4253                    exp.ColumnPosition, this=self._parse_column(), position=position
                  +4254                )
                  +4255                expression.set("position", column_position)
                  +4256
                  +4257        return expression
                  +4258
                  +4259    def _parse_drop_column(self) -> t.Optional[exp.Expression]:
                  +4260        drop = self._match(TokenType.DROP) and self._parse_drop()
                  +4261        if drop and not isinstance(drop, exp.Command):
                  +4262            drop.set("kind", drop.args.get("kind", "COLUMN"))
                  +4263        return drop
                   4264
                  -4265    def _parse_alter(self) -> t.Optional[exp.Expression]:
                  -4266        start = self._prev
                  -4267
                  -4268        if not self._match(TokenType.TABLE):
                  -4269            return self._parse_as_command(start)
                  +4265    # https://docs.aws.amazon.com/athena/latest/ug/alter-table-drop-partition.html
                  +4266    def _parse_drop_partition(self, exists: t.Optional[bool] = None) -> exp.Expression:
                  +4267        return self.expression(
                  +4268            exp.DropPartition, expressions=self._parse_csv(self._parse_partition), exists=exists
                  +4269        )
                   4270
                  -4271        exists = self._parse_exists()
                  -4272        this = self._parse_table(schema=True)
                  -4273
                  -4274        if self._next:
                  -4275            self._advance()
                  -4276        parser = self.ALTER_PARSERS.get(self._prev.text.upper()) if self._prev else None
                  +4271    def _parse_add_constraint(self) -> t.Optional[exp.Expression]:
                  +4272        this = None
                  +4273        kind = self._prev.token_type
                  +4274
                  +4275        if kind == TokenType.CONSTRAINT:
                  +4276            this = self._parse_id_var()
                   4277
                  -4278        if parser:
                  -4279            actions = ensure_list(parser(self))
                  -4280
                  -4281            if not self._curr:
                  +4278            if self._match_text_seq("CHECK"):
                  +4279                expression = self._parse_wrapped(self._parse_conjunction)
                  +4280                enforced = self._match_text_seq("ENFORCED")
                  +4281
                   4282                return self.expression(
                  -4283                    exp.AlterTable,
                  -4284                    this=this,
                  -4285                    exists=exists,
                  -4286                    actions=actions,
                  -4287                )
                  -4288        return self._parse_as_command(start)
                  -4289
                  -4290    def _parse_merge(self) -> exp.Expression:
                  -4291        self._match(TokenType.INTO)
                  -4292        target = self._parse_table()
                  -4293
                  -4294        self._match(TokenType.USING)
                  -4295        using = self._parse_table()
                  -4296
                  -4297        self._match(TokenType.ON)
                  -4298        on = self._parse_conjunction()
                  -4299
                  -4300        whens = []
                  -4301        while self._match(TokenType.WHEN):
                  -4302            matched = not self._match(TokenType.NOT)
                  -4303            self._match_text_seq("MATCHED")
                  -4304            source = (
                  -4305                False
                  -4306                if self._match_text_seq("BY", "TARGET")
                  -4307                else self._match_text_seq("BY", "SOURCE")
                  -4308            )
                  -4309            condition = self._parse_conjunction() if self._match(TokenType.AND) else None
                  -4310
                  -4311            self._match(TokenType.THEN)
                  +4283                    exp.AddConstraint, this=this, expression=expression, enforced=enforced
                  +4284                )
                  +4285
                  +4286        if kind == TokenType.FOREIGN_KEY or self._match(TokenType.FOREIGN_KEY):
                  +4287            expression = self._parse_foreign_key()
                  +4288        elif kind == TokenType.PRIMARY_KEY or self._match(TokenType.PRIMARY_KEY):
                  +4289            expression = self._parse_primary_key()
                  +4290        else:
                  +4291            expression = None
                  +4292
                  +4293        return self.expression(exp.AddConstraint, this=this, expression=expression)
                  +4294
                  +4295    def _parse_alter_table_add(self) -> t.List[t.Optional[exp.Expression]]:
                  +4296        index = self._index - 1
                  +4297
                  +4298        if self._match_set(self.ADD_CONSTRAINT_TOKENS):
                  +4299            return self._parse_csv(self._parse_add_constraint)
                  +4300
                  +4301        self._retreat(index)
                  +4302        return self._parse_csv(self._parse_add_column)
                  +4303
                  +4304    def _parse_alter_table_alter(self) -> exp.Expression:
                  +4305        self._match(TokenType.COLUMN)
                  +4306        column = self._parse_field(any_token=True)
                  +4307
                  +4308        if self._match_pair(TokenType.DROP, TokenType.DEFAULT):
                  +4309            return self.expression(exp.AlterColumn, this=column, drop=True)
                  +4310        if self._match_pair(TokenType.SET, TokenType.DEFAULT):
                  +4311            return self.expression(exp.AlterColumn, this=column, default=self._parse_conjunction())
                   4312
                  -4313            if self._match(TokenType.INSERT):
                  -4314                _this = self._parse_star()
                  -4315                if _this:
                  -4316                    then: t.Optional[exp.Expression] = self.expression(exp.Insert, this=_this)
                  -4317                else:
                  -4318                    then = self.expression(
                  -4319                        exp.Insert,
                  -4320                        this=self._parse_value(),
                  -4321                        expression=self._match(TokenType.VALUES) and self._parse_value(),
                  -4322                    )
                  -4323            elif self._match(TokenType.UPDATE):
                  -4324                expressions = self._parse_star()
                  -4325                if expressions:
                  -4326                    then = self.expression(exp.Update, expressions=expressions)
                  -4327                else:
                  -4328                    then = self.expression(
                  -4329                        exp.Update,
                  -4330                        expressions=self._match(TokenType.SET)
                  -4331                        and self._parse_csv(self._parse_equality),
                  -4332                    )
                  -4333            elif self._match(TokenType.DELETE):
                  -4334                then = self.expression(exp.Var, this=self._prev.text)
                  -4335            else:
                  -4336                then = None
                  -4337
                  -4338            whens.append(
                  -4339                self.expression(
                  -4340                    exp.When,
                  -4341                    matched=matched,
                  -4342                    source=source,
                  -4343                    condition=condition,
                  -4344                    then=then,
                  -4345                )
                  -4346            )
                  -4347
                  -4348        return self.expression(
                  -4349            exp.Merge,
                  -4350            this=target,
                  -4351            using=using,
                  -4352            on=on,
                  -4353            expressions=whens,
                  -4354        )
                  -4355
                  -4356    def _parse_show(self) -> t.Optional[exp.Expression]:
                  -4357        parser = self._find_parser(self.SHOW_PARSERS, self._show_trie)  # type: ignore
                  -4358        if parser:
                  -4359            return parser(self)
                  -4360        self._advance()
                  -4361        return self.expression(exp.Show, this=self._prev.text.upper())
                  -4362
                  -4363    def _parse_set_item_assignment(
                  -4364        self, kind: t.Optional[str] = None
                  -4365    ) -> t.Optional[exp.Expression]:
                  -4366        index = self._index
                  +4313        self._match_text_seq("SET", "DATA")
                  +4314        return self.expression(
                  +4315            exp.AlterColumn,
                  +4316            this=column,
                  +4317            dtype=self._match_text_seq("TYPE") and self._parse_types(),
                  +4318            collate=self._match(TokenType.COLLATE) and self._parse_term(),
                  +4319            using=self._match(TokenType.USING) and self._parse_conjunction(),
                  +4320        )
                  +4321
                  +4322    def _parse_alter_table_drop(self) -> t.List[t.Optional[exp.Expression]]:
                  +4323        index = self._index - 1
                  +4324
                  +4325        partition_exists = self._parse_exists()
                  +4326        if self._match(TokenType.PARTITION, advance=False):
                  +4327            return self._parse_csv(lambda: self._parse_drop_partition(exists=partition_exists))
                  +4328
                  +4329        self._retreat(index)
                  +4330        return self._parse_csv(self._parse_drop_column)
                  +4331
                  +4332    def _parse_alter_table_rename(self) -> exp.Expression:
                  +4333        self._match_text_seq("TO")
                  +4334        return self.expression(exp.RenameTable, this=self._parse_table(schema=True))
                  +4335
                  +4336    def _parse_alter(self) -> t.Optional[exp.Expression]:
                  +4337        start = self._prev
                  +4338
                  +4339        if not self._match(TokenType.TABLE):
                  +4340            return self._parse_as_command(start)
                  +4341
                  +4342        exists = self._parse_exists()
                  +4343        this = self._parse_table(schema=True)
                  +4344
                  +4345        if self._next:
                  +4346            self._advance()
                  +4347        parser = self.ALTER_PARSERS.get(self._prev.text.upper()) if self._prev else None
                  +4348
                  +4349        if parser:
                  +4350            actions = ensure_list(parser(self))
                  +4351
                  +4352            if not self._curr:
                  +4353                return self.expression(
                  +4354                    exp.AlterTable,
                  +4355                    this=this,
                  +4356                    exists=exists,
                  +4357                    actions=actions,
                  +4358                )
                  +4359        return self._parse_as_command(start)
                  +4360
                  +4361    def _parse_merge(self) -> exp.Expression:
                  +4362        self._match(TokenType.INTO)
                  +4363        target = self._parse_table()
                  +4364
                  +4365        self._match(TokenType.USING)
                  +4366        using = self._parse_table()
                   4367
                  -4368        if kind in {"GLOBAL", "SESSION"} and self._match_text_seq("TRANSACTION"):
                  -4369            return self._parse_set_transaction(global_=kind == "GLOBAL")
                  +4368        self._match(TokenType.ON)
                  +4369        on = self._parse_conjunction()
                   4370
                  -4371        left = self._parse_primary() or self._parse_id_var()
                  -4372
                  -4373        if not self._match_texts(("=", "TO")):
                  -4374            self._retreat(index)
                  -4375            return None
                  -4376
                  -4377        right = self._parse_statement() or self._parse_id_var()
                  -4378        this = self.expression(
                  -4379            exp.EQ,
                  -4380            this=left,
                  -4381            expression=right,
                  -4382        )
                  +4371        whens = []
                  +4372        while self._match(TokenType.WHEN):
                  +4373            matched = not self._match(TokenType.NOT)
                  +4374            self._match_text_seq("MATCHED")
                  +4375            source = (
                  +4376                False
                  +4377                if self._match_text_seq("BY", "TARGET")
                  +4378                else self._match_text_seq("BY", "SOURCE")
                  +4379            )
                  +4380            condition = self._parse_conjunction() if self._match(TokenType.AND) else None
                  +4381
                  +4382            self._match(TokenType.THEN)
                   4383
                  -4384        return self.expression(
                  -4385            exp.SetItem,
                  -4386            this=this,
                  -4387            kind=kind,
                  -4388        )
                  -4389
                  -4390    def _parse_set_transaction(self, global_: bool = False) -> exp.Expression:
                  -4391        self._match_text_seq("TRANSACTION")
                  -4392        characteristics = self._parse_csv(
                  -4393            lambda: self._parse_var_from_options(self.TRANSACTION_CHARACTERISTICS)
                  -4394        )
                  -4395        return self.expression(
                  -4396            exp.SetItem,
                  -4397            expressions=characteristics,
                  -4398            kind="TRANSACTION",
                  -4399            **{"global": global_},  # type: ignore
                  -4400        )
                  -4401
                  -4402    def _parse_set_item(self) -> t.Optional[exp.Expression]:
                  -4403        parser = self._find_parser(self.SET_PARSERS, self._set_trie)  # type: ignore
                  -4404        return parser(self) if parser else self._parse_set_item_assignment(kind=None)
                  -4405
                  -4406    def _parse_set(self) -> exp.Expression:
                  -4407        index = self._index
                  -4408        set_ = self.expression(exp.Set, expressions=self._parse_csv(self._parse_set_item))
                  -4409
                  -4410        if self._curr:
                  -4411            self._retreat(index)
                  -4412            return self._parse_as_command(self._prev)
                  -4413
                  -4414        return set_
                  -4415
                  -4416    def _parse_var_from_options(self, options: t.Collection[str]) -> t.Optional[exp.Expression]:
                  -4417        for option in options:
                  -4418            if self._match_text_seq(*option.split(" ")):
                  -4419                return exp.Var(this=option)
                  -4420        return None
                  -4421
                  -4422    def _parse_as_command(self, start: Token) -> exp.Command:
                  -4423        while self._curr:
                  -4424            self._advance()
                  -4425        text = self._find_sql(start, self._prev)
                  -4426        size = len(start.text)
                  -4427        return exp.Command(this=text[:size], expression=text[size:])
                  -4428
                  -4429    def _find_parser(
                  -4430        self, parsers: t.Dict[str, t.Callable], trie: t.Dict
                  -4431    ) -> t.Optional[t.Callable]:
                  -4432        if not self._curr:
                  -4433            return None
                  -4434
                  -4435        index = self._index
                  -4436        this = []
                  -4437        while True:
                  -4438            # The current token might be multiple words
                  -4439            curr = self._curr.text.upper()
                  -4440            key = curr.split(" ")
                  -4441            this.append(curr)
                  -4442            self._advance()
                  -4443            result, trie = in_trie(trie, key)
                  -4444            if result == 0:
                  -4445                break
                  -4446            if result == 2:
                  -4447                subparser = parsers[" ".join(this)]
                  -4448                return subparser
                  -4449        self._retreat(index)
                  -4450        return None
                  -4451
                  -4452    def _match(self, token_type, advance=True, expression=None):
                  -4453        if not self._curr:
                  -4454            return None
                  -4455
                  -4456        if self._curr.token_type == token_type:
                  -4457            if advance:
                  -4458                self._advance()
                  -4459            self._add_comments(expression)
                  -4460            return True
                  -4461
                  -4462        return None
                  -4463
                  -4464    def _match_set(self, types, advance=True):
                  -4465        if not self._curr:
                  -4466            return None
                  -4467
                  -4468        if self._curr.token_type in types:
                  -4469            if advance:
                  -4470                self._advance()
                  -4471            return True
                  +4384            if self._match(TokenType.INSERT):
                  +4385                _this = self._parse_star()
                  +4386                if _this:
                  +4387                    then: t.Optional[exp.Expression] = self.expression(exp.Insert, this=_this)
                  +4388                else:
                  +4389                    then = self.expression(
                  +4390                        exp.Insert,
                  +4391                        this=self._parse_value(),
                  +4392                        expression=self._match(TokenType.VALUES) and self._parse_value(),
                  +4393                    )
                  +4394            elif self._match(TokenType.UPDATE):
                  +4395                expressions = self._parse_star()
                  +4396                if expressions:
                  +4397                    then = self.expression(exp.Update, expressions=expressions)
                  +4398                else:
                  +4399                    then = self.expression(
                  +4400                        exp.Update,
                  +4401                        expressions=self._match(TokenType.SET)
                  +4402                        and self._parse_csv(self._parse_equality),
                  +4403                    )
                  +4404            elif self._match(TokenType.DELETE):
                  +4405                then = self.expression(exp.Var, this=self._prev.text)
                  +4406            else:
                  +4407                then = None
                  +4408
                  +4409            whens.append(
                  +4410                self.expression(
                  +4411                    exp.When,
                  +4412                    matched=matched,
                  +4413                    source=source,
                  +4414                    condition=condition,
                  +4415                    then=then,
                  +4416                )
                  +4417            )
                  +4418
                  +4419        return self.expression(
                  +4420            exp.Merge,
                  +4421            this=target,
                  +4422            using=using,
                  +4423            on=on,
                  +4424            expressions=whens,
                  +4425        )
                  +4426
                  +4427    def _parse_show(self) -> t.Optional[exp.Expression]:
                  +4428        parser = self._find_parser(self.SHOW_PARSERS, self._show_trie)  # type: ignore
                  +4429        if parser:
                  +4430            return parser(self)
                  +4431        self._advance()
                  +4432        return self.expression(exp.Show, this=self._prev.text.upper())
                  +4433
                  +4434    def _parse_set_item_assignment(
                  +4435        self, kind: t.Optional[str] = None
                  +4436    ) -> t.Optional[exp.Expression]:
                  +4437        index = self._index
                  +4438
                  +4439        if kind in {"GLOBAL", "SESSION"} and self._match_text_seq("TRANSACTION"):
                  +4440            return self._parse_set_transaction(global_=kind == "GLOBAL")
                  +4441
                  +4442        left = self._parse_primary() or self._parse_id_var()
                  +4443
                  +4444        if not self._match_texts(("=", "TO")):
                  +4445            self._retreat(index)
                  +4446            return None
                  +4447
                  +4448        right = self._parse_statement() or self._parse_id_var()
                  +4449        this = self.expression(
                  +4450            exp.EQ,
                  +4451            this=left,
                  +4452            expression=right,
                  +4453        )
                  +4454
                  +4455        return self.expression(
                  +4456            exp.SetItem,
                  +4457            this=this,
                  +4458            kind=kind,
                  +4459        )
                  +4460
                  +4461    def _parse_set_transaction(self, global_: bool = False) -> exp.Expression:
                  +4462        self._match_text_seq("TRANSACTION")
                  +4463        characteristics = self._parse_csv(
                  +4464            lambda: self._parse_var_from_options(self.TRANSACTION_CHARACTERISTICS)
                  +4465        )
                  +4466        return self.expression(
                  +4467            exp.SetItem,
                  +4468            expressions=characteristics,
                  +4469            kind="TRANSACTION",
                  +4470            **{"global": global_},  # type: ignore
                  +4471        )
                   4472
                  -4473        return None
                  -4474
                  -4475    def _match_pair(self, token_type_a, token_type_b, advance=True):
                  -4476        if not self._curr or not self._next:
                  -4477            return None
                  -4478
                  -4479        if self._curr.token_type == token_type_a and self._next.token_type == token_type_b:
                  -4480            if advance:
                  -4481                self._advance(2)
                  -4482            return True
                  -4483
                  -4484        return None
                  -4485
                  -4486    def _match_l_paren(self, expression: t.Optional[exp.Expression] = None) -> None:
                  -4487        if not self._match(TokenType.L_PAREN, expression=expression):
                  -4488            self.raise_error("Expecting (")
                  -4489
                  -4490    def _match_r_paren(self, expression: t.Optional[exp.Expression] = None) -> None:
                  -4491        if not self._match(TokenType.R_PAREN, expression=expression):
                  -4492            self.raise_error("Expecting )")
                  -4493
                  -4494    def _match_texts(self, texts, advance=True):
                  -4495        if self._curr and self._curr.text.upper() in texts:
                  -4496            if advance:
                  -4497                self._advance()
                  -4498            return True
                  -4499        return False
                  -4500
                  -4501    def _match_text_seq(self, *texts, advance=True):
                  -4502        index = self._index
                  -4503        for text in texts:
                  -4504            if self._curr and self._curr.text.upper() == text:
                  -4505                self._advance()
                  -4506            else:
                  -4507                self._retreat(index)
                  -4508                return False
                  -4509
                  -4510        if not advance:
                  -4511            self._retreat(index)
                  -4512
                  -4513        return True
                  -4514
                  -4515    def _replace_columns_with_dots(
                  -4516        self, this: t.Optional[exp.Expression]
                  -4517    ) -> t.Optional[exp.Expression]:
                  -4518        if isinstance(this, exp.Dot):
                  -4519            exp.replace_children(this, self._replace_columns_with_dots)
                  -4520        elif isinstance(this, exp.Column):
                  -4521            exp.replace_children(this, self._replace_columns_with_dots)
                  -4522            table = this.args.get("table")
                  -4523            this = (
                  -4524                self.expression(exp.Dot, this=table, expression=this.this)
                  -4525                if table
                  -4526                else self.expression(exp.Var, this=this.name)
                  -4527            )
                  -4528        elif isinstance(this, exp.Identifier):
                  -4529            this = self.expression(exp.Var, this=this.name)
                  -4530
                  -4531        return this
                  -4532
                  -4533    def _replace_lambda(
                  -4534        self, node: t.Optional[exp.Expression], lambda_variables: t.Set[str]
                  -4535    ) -> t.Optional[exp.Expression]:
                  -4536        if not node:
                  -4537            return node
                  -4538
                  -4539        for column in node.find_all(exp.Column):
                  -4540            if column.parts[0].name in lambda_variables:
                  -4541                dot_or_id = column.to_dot() if column.table else column.this
                  -4542                parent = column.parent
                  +4473    def _parse_set_item(self) -> t.Optional[exp.Expression]:
                  +4474        parser = self._find_parser(self.SET_PARSERS, self._set_trie)  # type: ignore
                  +4475        return parser(self) if parser else self._parse_set_item_assignment(kind=None)
                  +4476
                  +4477    def _parse_set(self) -> exp.Expression:
                  +4478        index = self._index
                  +4479        set_ = self.expression(exp.Set, expressions=self._parse_csv(self._parse_set_item))
                  +4480
                  +4481        if self._curr:
                  +4482            self._retreat(index)
                  +4483            return self._parse_as_command(self._prev)
                  +4484
                  +4485        return set_
                  +4486
                  +4487    def _parse_var_from_options(self, options: t.Collection[str]) -> t.Optional[exp.Expression]:
                  +4488        for option in options:
                  +4489            if self._match_text_seq(*option.split(" ")):
                  +4490                return exp.Var(this=option)
                  +4491        return None
                  +4492
                  +4493    def _parse_as_command(self, start: Token) -> exp.Command:
                  +4494        while self._curr:
                  +4495            self._advance()
                  +4496        text = self._find_sql(start, self._prev)
                  +4497        size = len(start.text)
                  +4498        return exp.Command(this=text[:size], expression=text[size:])
                  +4499
                  +4500    def _parse_dict_property(self, this: str) -> exp.DictProperty:
                  +4501        settings = []
                  +4502
                  +4503        self._match_l_paren()
                  +4504        kind = self._parse_id_var()
                  +4505
                  +4506        if self._match(TokenType.L_PAREN):
                  +4507            while True:
                  +4508                key = self._parse_id_var()
                  +4509                value = self._parse_primary()
                  +4510
                  +4511                if not key and value is None:
                  +4512                    break
                  +4513                settings.append(self.expression(exp.DictSubProperty, this=key, value=value))
                  +4514            self._match(TokenType.R_PAREN)
                  +4515
                  +4516        self._match_r_paren()
                  +4517
                  +4518        return self.expression(
                  +4519            exp.DictProperty,
                  +4520            this=this,
                  +4521            kind=kind.this if kind else None,
                  +4522            settings=settings,
                  +4523        )
                  +4524
                  +4525    def _parse_dict_range(self, this: str) -> exp.DictRange:
                  +4526        self._match_l_paren()
                  +4527        has_min = self._match_text_seq("MIN")
                  +4528        if has_min:
                  +4529            min = self._parse_var() or self._parse_primary()
                  +4530            self._match_text_seq("MAX")
                  +4531            max = self._parse_var() or self._parse_primary()
                  +4532        else:
                  +4533            max = self._parse_var() or self._parse_primary()
                  +4534            min = exp.Literal.number(0)
                  +4535        self._match_r_paren()
                  +4536        return self.expression(exp.DictRange, this=this, min=min, max=max)
                  +4537
                  +4538    def _find_parser(
                  +4539        self, parsers: t.Dict[str, t.Callable], trie: t.Dict
                  +4540    ) -> t.Optional[t.Callable]:
                  +4541        if not self._curr:
                  +4542            return None
                   4543
                  -4544                while isinstance(parent, exp.Dot):
                  -4545                    if not isinstance(parent.parent, exp.Dot):
                  -4546                        parent.replace(dot_or_id)
                  -4547                        break
                  -4548                    parent = parent.parent
                  -4549                else:
                  -4550                    if column is node:
                  -4551                        node = dot_or_id
                  -4552                    else:
                  -4553                        column.replace(dot_or_id)
                  -4554        return node
                  +4544        index = self._index
                  +4545        this = []
                  +4546        while True:
                  +4547            # The current token might be multiple words
                  +4548            curr = self._curr.text.upper()
                  +4549            key = curr.split(" ")
                  +4550            this.append(curr)
                  +4551            self._advance()
                  +4552            result, trie = in_trie(trie, key)
                  +4553            if result == 0:
                  +4554                break
                  +4555            if result == 2:
                  +4556                subparser = parsers[" ".join(this)]
                  +4557                return subparser
                  +4558        self._retreat(index)
                  +4559        return None
                  +4560
                  +4561    def _match(self, token_type, advance=True, expression=None):
                  +4562        if not self._curr:
                  +4563            return None
                  +4564
                  +4565        if self._curr.token_type == token_type:
                  +4566            if advance:
                  +4567                self._advance()
                  +4568            self._add_comments(expression)
                  +4569            return True
                  +4570
                  +4571        return None
                  +4572
                  +4573    def _match_set(self, types, advance=True):
                  +4574        if not self._curr:
                  +4575            return None
                  +4576
                  +4577        if self._curr.token_type in types:
                  +4578            if advance:
                  +4579                self._advance()
                  +4580            return True
                  +4581
                  +4582        return None
                  +4583
                  +4584    def _match_pair(self, token_type_a, token_type_b, advance=True):
                  +4585        if not self._curr or not self._next:
                  +4586            return None
                  +4587
                  +4588        if self._curr.token_type == token_type_a and self._next.token_type == token_type_b:
                  +4589            if advance:
                  +4590                self._advance(2)
                  +4591            return True
                  +4592
                  +4593        return None
                  +4594
                  +4595    def _match_l_paren(self, expression: t.Optional[exp.Expression] = None) -> None:
                  +4596        if not self._match(TokenType.L_PAREN, expression=expression):
                  +4597            self.raise_error("Expecting (")
                  +4598
                  +4599    def _match_r_paren(self, expression: t.Optional[exp.Expression] = None) -> None:
                  +4600        if not self._match(TokenType.R_PAREN, expression=expression):
                  +4601            self.raise_error("Expecting )")
                  +4602
                  +4603    def _match_texts(self, texts, advance=True):
                  +4604        if self._curr and self._curr.text.upper() in texts:
                  +4605            if advance:
                  +4606                self._advance()
                  +4607            return True
                  +4608        return False
                  +4609
                  +4610    def _match_text_seq(self, *texts, advance=True):
                  +4611        index = self._index
                  +4612        for text in texts:
                  +4613            if self._curr and self._curr.text.upper() == text:
                  +4614                self._advance()
                  +4615            else:
                  +4616                self._retreat(index)
                  +4617                return False
                  +4618
                  +4619        if not advance:
                  +4620            self._retreat(index)
                  +4621
                  +4622        return True
                  +4623
                  +4624    @t.overload
                  +4625    def _replace_columns_with_dots(self, this: exp.Expression) -> exp.Expression:
                  +4626        ...
                  +4627
                  +4628    @t.overload
                  +4629    def _replace_columns_with_dots(
                  +4630        self, this: t.Optional[exp.Expression]
                  +4631    ) -> t.Optional[exp.Expression]:
                  +4632        ...
                  +4633
                  +4634    def _replace_columns_with_dots(self, this):
                  +4635        if isinstance(this, exp.Dot):
                  +4636            exp.replace_children(this, self._replace_columns_with_dots)
                  +4637        elif isinstance(this, exp.Column):
                  +4638            exp.replace_children(this, self._replace_columns_with_dots)
                  +4639            table = this.args.get("table")
                  +4640            this = (
                  +4641                self.expression(exp.Dot, this=table, expression=this.this)
                  +4642                if table
                  +4643                else self.expression(exp.Var, this=this.name)
                  +4644            )
                  +4645        elif isinstance(this, exp.Identifier):
                  +4646            this = self.expression(exp.Var, this=this.name)
                  +4647
                  +4648        return this
                  +4649
                  +4650    def _replace_lambda(
                  +4651        self, node: t.Optional[exp.Expression], lambda_variables: t.Set[str]
                  +4652    ) -> t.Optional[exp.Expression]:
                  +4653        if not node:
                  +4654            return node
                  +4655
                  +4656        for column in node.find_all(exp.Column):
                  +4657            if column.parts[0].name in lambda_variables:
                  +4658                dot_or_id = column.to_dot() if column.table else column.this
                  +4659                parent = column.parent
                  +4660
                  +4661                while isinstance(parent, exp.Dot):
                  +4662                    if not isinstance(parent.parent, exp.Dot):
                  +4663                        parent.replace(dot_or_id)
                  +4664                        break
                  +4665                    parent = parent.parent
                  +4666                else:
                  +4667                    if column is node:
                  +4668                        node = dot_or_id
                  +4669                    else:
                  +4670                        column.replace(dot_or_id)
                  +4671        return node
                   
                  @@ -9241,7 +9475,7 @@ a parsed syntax tree.

                  • error_level: the desired error level. -Default: ErrorLevel.RAISE
                  • +Default: ErrorLevel.IMMEDIATE
                  • error_message_context: determines the amount of context to capture from a query string when displaying the error message (in number of characters). Default: 50.
                  • @@ -9269,24 +9503,24 @@ Default: "nulls_are_small"
                  -
                  781    def __init__(
                  -782        self,
                  -783        error_level: t.Optional[ErrorLevel] = None,
                  -784        error_message_context: int = 100,
                  -785        index_offset: int = 0,
                  -786        unnest_column_only: bool = False,
                  -787        alias_post_tablesample: bool = False,
                  -788        max_errors: int = 3,
                  -789        null_ordering: t.Optional[str] = None,
                  -790    ):
                  -791        self.error_level = error_level or ErrorLevel.IMMEDIATE
                  -792        self.error_message_context = error_message_context
                  -793        self.index_offset = index_offset
                  -794        self.unnest_column_only = unnest_column_only
                  -795        self.alias_post_tablesample = alias_post_tablesample
                  -796        self.max_errors = max_errors
                  -797        self.null_ordering = null_ordering
                  -798        self.reset()
                  +            
                  810    def __init__(
                  +811        self,
                  +812        error_level: t.Optional[ErrorLevel] = None,
                  +813        error_message_context: int = 100,
                  +814        index_offset: int = 0,
                  +815        unnest_column_only: bool = False,
                  +816        alias_post_tablesample: bool = False,
                  +817        max_errors: int = 3,
                  +818        null_ordering: t.Optional[str] = None,
                  +819    ):
                  +820        self.error_level = error_level or ErrorLevel.IMMEDIATE
                  +821        self.error_message_context = error_message_context
                  +822        self.index_offset = index_offset
                  +823        self.unnest_column_only = unnest_column_only
                  +824        self.alias_post_tablesample = alias_post_tablesample
                  +825        self.max_errors = max_errors
                  +826        self.null_ordering = null_ordering
                  +827        self.reset()
                   
                  @@ -9304,15 +9538,15 @@ Default: "nulls_are_small"
                  -
                  800    def reset(self):
                  -801        self.sql = ""
                  -802        self.errors = []
                  -803        self._tokens = []
                  -804        self._index = 0
                  -805        self._curr = None
                  -806        self._next = None
                  -807        self._prev = None
                  -808        self._prev_comments = None
                  +            
                  829    def reset(self):
                  +830        self.sql = ""
                  +831        self.errors = []
                  +832        self._tokens = []
                  +833        self._index = 0
                  +834        self._curr = None
                  +835        self._next = None
                  +836        self._prev = None
                  +837        self._prev_comments = None
                   
                  @@ -9330,23 +9564,23 @@ Default: "nulls_are_small"
                  -
                  810    def parse(
                  -811        self, raw_tokens: t.List[Token], sql: t.Optional[str] = None
                  -812    ) -> t.List[t.Optional[exp.Expression]]:
                  -813        """
                  -814        Parses a list of tokens and returns a list of syntax trees, one tree
                  -815        per parsed SQL statement.
                  -816
                  -817        Args:
                  -818            raw_tokens: the list of tokens.
                  -819            sql: the original SQL string, used to produce helpful debug messages.
                  -820
                  -821        Returns:
                  -822            The list of syntax trees.
                  -823        """
                  -824        return self._parse(
                  -825            parse_method=self.__class__._parse_statement, raw_tokens=raw_tokens, sql=sql
                  -826        )
                  +            
                  839    def parse(
                  +840        self, raw_tokens: t.List[Token], sql: t.Optional[str] = None
                  +841    ) -> t.List[t.Optional[exp.Expression]]:
                  +842        """
                  +843        Parses a list of tokens and returns a list of syntax trees, one tree
                  +844        per parsed SQL statement.
                  +845
                  +846        Args:
                  +847            raw_tokens: the list of tokens.
                  +848            sql: the original SQL string, used to produce helpful debug messages.
                  +849
                  +850        Returns:
                  +851            The list of syntax trees.
                  +852        """
                  +853        return self._parse(
                  +854            parse_method=self.__class__._parse_statement, raw_tokens=raw_tokens, sql=sql
                  +855        )
                   
                  @@ -9380,39 +9614,39 @@ per parsed SQL statement.

                  -
                  828    def parse_into(
                  -829        self,
                  -830        expression_types: exp.IntoType,
                  -831        raw_tokens: t.List[Token],
                  -832        sql: t.Optional[str] = None,
                  -833    ) -> t.List[t.Optional[exp.Expression]]:
                  -834        """
                  -835        Parses a list of tokens into a given Expression type. If a collection of Expression
                  -836        types is given instead, this method will try to parse the token list into each one
                  -837        of them, stopping at the first for which the parsing succeeds.
                  -838
                  -839        Args:
                  -840            expression_types: the expression type(s) to try and parse the token list into.
                  -841            raw_tokens: the list of tokens.
                  -842            sql: the original SQL string, used to produce helpful debug messages.
                  -843
                  -844        Returns:
                  -845            The target Expression.
                  -846        """
                  -847        errors = []
                  -848        for expression_type in ensure_collection(expression_types):
                  -849            parser = self.EXPRESSION_PARSERS.get(expression_type)
                  -850            if not parser:
                  -851                raise TypeError(f"No parser registered for {expression_type}")
                  -852            try:
                  -853                return self._parse(parser, raw_tokens, sql)
                  -854            except ParseError as e:
                  -855                e.errors[0]["into_expression"] = expression_type
                  -856                errors.append(e)
                  -857        raise ParseError(
                  -858            f"Failed to parse into {expression_types}",
                  -859            errors=merge_errors(errors),
                  -860        ) from errors[-1]
                  +            
                  857    def parse_into(
                  +858        self,
                  +859        expression_types: exp.IntoType,
                  +860        raw_tokens: t.List[Token],
                  +861        sql: t.Optional[str] = None,
                  +862    ) -> t.List[t.Optional[exp.Expression]]:
                  +863        """
                  +864        Parses a list of tokens into a given Expression type. If a collection of Expression
                  +865        types is given instead, this method will try to parse the token list into each one
                  +866        of them, stopping at the first for which the parsing succeeds.
                  +867
                  +868        Args:
                  +869            expression_types: the expression type(s) to try and parse the token list into.
                  +870            raw_tokens: the list of tokens.
                  +871            sql: the original SQL string, used to produce helpful debug messages.
                  +872
                  +873        Returns:
                  +874            The target Expression.
                  +875        """
                  +876        errors = []
                  +877        for expression_type in ensure_collection(expression_types):
                  +878            parser = self.EXPRESSION_PARSERS.get(expression_type)
                  +879            if not parser:
                  +880                raise TypeError(f"No parser registered for {expression_type}")
                  +881            try:
                  +882                return self._parse(parser, raw_tokens, sql)
                  +883            except ParseError as e:
                  +884                e.errors[0]["into_expression"] = expression_type
                  +885                errors.append(e)
                  +886        raise ParseError(
                  +887            f"Failed to parse '{sql or raw_tokens}' into {expression_types}",
                  +888            errors=merge_errors(errors),
                  +889        ) from errors[-1]
                   
                  @@ -9448,18 +9682,18 @@ of them, stopping at the first for which the parsing succeeds.

                  -
                  896    def check_errors(self) -> None:
                  -897        """
                  -898        Logs or raises any found errors, depending on the chosen error level setting.
                  -899        """
                  -900        if self.error_level == ErrorLevel.WARN:
                  -901            for error in self.errors:
                  -902                logger.error(str(error))
                  -903        elif self.error_level == ErrorLevel.RAISE and self.errors:
                  -904            raise ParseError(
                  -905                concat_messages(self.errors, self.max_errors),
                  -906                errors=merge_errors(self.errors),
                  -907            )
                  +            
                  925    def check_errors(self) -> None:
                  +926        """
                  +927        Logs or raises any found errors, depending on the chosen error level setting.
                  +928        """
                  +929        if self.error_level == ErrorLevel.WARN:
                  +930            for error in self.errors:
                  +931                logger.error(str(error))
                  +932        elif self.error_level == ErrorLevel.RAISE and self.errors:
                  +933            raise ParseError(
                  +934                concat_messages(self.errors, self.max_errors),
                  +935                errors=merge_errors(self.errors),
                  +936            )
                   
                  @@ -9479,33 +9713,33 @@ of them, stopping at the first for which the parsing succeeds.

                  -
                  909    def raise_error(self, message: str, token: t.Optional[Token] = None) -> None:
                  -910        """
                  -911        Appends an error in the list of recorded errors or raises it, depending on the chosen
                  -912        error level setting.
                  -913        """
                  -914        token = token or self._curr or self._prev or Token.string("")
                  -915        start = token.start
                  -916        end = token.end + 1
                  -917        start_context = self.sql[max(start - self.error_message_context, 0) : start]
                  -918        highlight = self.sql[start:end]
                  -919        end_context = self.sql[end : end + self.error_message_context]
                  -920
                  -921        error = ParseError.new(
                  -922            f"{message}. Line {token.line}, Col: {token.col}.\n"
                  -923            f"  {start_context}\033[4m{highlight}\033[0m{end_context}",
                  -924            description=message,
                  -925            line=token.line,
                  -926            col=token.col,
                  -927            start_context=start_context,
                  -928            highlight=highlight,
                  -929            end_context=end_context,
                  -930        )
                  -931
                  -932        if self.error_level == ErrorLevel.IMMEDIATE:
                  -933            raise error
                  -934
                  -935        self.errors.append(error)
                  +            
                  938    def raise_error(self, message: str, token: t.Optional[Token] = None) -> None:
                  +939        """
                  +940        Appends an error in the list of recorded errors or raises it, depending on the chosen
                  +941        error level setting.
                  +942        """
                  +943        token = token or self._curr or self._prev or Token.string("")
                  +944        start = token.start
                  +945        end = token.end + 1
                  +946        start_context = self.sql[max(start - self.error_message_context, 0) : start]
                  +947        highlight = self.sql[start:end]
                  +948        end_context = self.sql[end : end + self.error_message_context]
                  +949
                  +950        error = ParseError.new(
                  +951            f"{message}. Line {token.line}, Col: {token.col}.\n"
                  +952            f"  {start_context}\033[4m{highlight}\033[0m{end_context}",
                  +953            description=message,
                  +954            line=token.line,
                  +955            col=token.col,
                  +956            start_context=start_context,
                  +957            highlight=highlight,
                  +958            end_context=end_context,
                  +959        )
                  +960
                  +961        if self.error_level == ErrorLevel.IMMEDIATE:
                  +962            raise error
                  +963
                  +964        self.errors.append(error)
                   
                  @@ -9526,24 +9760,24 @@ error level setting.

                  -
                  937    def expression(
                  -938        self, exp_class: t.Type[E], comments: t.Optional[t.List[str]] = None, **kwargs
                  -939    ) -> E:
                  -940        """
                  -941        Creates a new, validated Expression.
                  -942
                  -943        Args:
                  -944            exp_class: the expression class to instantiate.
                  -945            comments: an optional list of comments to attach to the expression.
                  -946            kwargs: the arguments to set for the expression along with their respective values.
                  -947
                  -948        Returns:
                  -949            The target expression.
                  -950        """
                  -951        instance = exp_class(**kwargs)
                  -952        instance.add_comments(comments) if comments else self._add_comments(instance)
                  -953        self.validate_expression(instance)
                  -954        return instance
                  +            
                  966    def expression(
                  +967        self, exp_class: t.Type[E], comments: t.Optional[t.List[str]] = None, **kwargs
                  +968    ) -> E:
                  +969        """
                  +970        Creates a new, validated Expression.
                  +971
                  +972        Args:
                  +973            exp_class: the expression class to instantiate.
                  +974            comments: an optional list of comments to attach to the expression.
                  +975            kwargs: the arguments to set for the expression along with their respective values.
                  +976
                  +977        Returns:
                  +978            The target expression.
                  +979        """
                  +980        instance = exp_class(**kwargs)
                  +981        instance.add_comments(comments) if comments else self._add_comments(instance)
                  +982        self.validate_expression(instance)
                  +983        return instance
                   
                  @@ -9577,22 +9811,22 @@ error level setting.

                  -
                  961    def validate_expression(
                  -962        self, expression: exp.Expression, args: t.Optional[t.List] = None
                  -963    ) -> None:
                  -964        """
                  -965        Validates an already instantiated expression, making sure that all its mandatory arguments
                  -966        are set.
                  -967
                  -968        Args:
                  -969            expression: the expression to validate.
                  -970            args: an optional list of items that was used to instantiate the expression, if it's a Func.
                  -971        """
                  -972        if self.error_level == ErrorLevel.IGNORE:
                  -973            return
                  -974
                  -975        for error_message in expression.error_messages(args):
                  -976            self.raise_error(error_message)
                  +            
                   990    def validate_expression(
                  + 991        self, expression: exp.Expression, args: t.Optional[t.List] = None
                  + 992    ) -> None:
                  + 993        """
                  + 994        Validates an already instantiated expression, making sure that all its mandatory arguments
                  + 995        are set.
                  + 996
                  + 997        Args:
                  + 998            expression: the expression to validate.
                  + 999            args: an optional list of items that was used to instantiate the expression, if it's a Func.
                  +1000        """
                  +1001        if self.error_level == ErrorLevel.IGNORE:
                  +1002            return
                  +1003
                  +1004        for error_message in expression.error_messages(args):
                  +1005            self.raise_error(error_message)
                   
                  diff --git a/docs/sqlglot/planner.html b/docs/sqlglot/planner.html index d134e38..f6cbdd0 100644 --- a/docs/sqlglot/planner.html +++ b/docs/sqlglot/planner.html @@ -121,11 +121,11 @@
                    1from __future__ import annotations
                     2
                  -  3import itertools
                  -  4import math
                  -  5import typing as t
                  -  6
                  -  7from sqlglot import alias, exp
                  +  3import math
                  +  4import typing as t
                  +  5
                  +  6from sqlglot import alias, exp
                  +  7from sqlglot.helper import name_sequence
                     8from sqlglot.optimizer.eliminate_joins import join_condition
                     9
                    10
                  @@ -242,7 +242,7 @@
                   121        projections = []  # final selects in this chain of steps representing a select
                   122        operands = {}  # intermediate computations of agg funcs eg x + 1 in SUM(x + 1)
                   123        aggregations = []
                  -124        sequence = itertools.count()
                  +124        next_operand_name = name_sequence("_a_")
                   125
                   126        def extract_agg_operands(expression):
                   127            for agg in expression.find_all(exp.AggFunc):
                  @@ -250,7 +250,7 @@
                   129                    if isinstance(operand, exp.Column):
                   130                        continue
                   131                    if operand not in operands:
                  -132                        operands[operand] = f"_a_{next(sequence)}"
                  +132                        operands[operand] = next_operand_name()
                   133                    operand.replace(exp.column(operands[operand], quoted=True))
                   134
                   135        for e in expression.expressions:
                  @@ -693,7 +693,7 @@
                   122        projections = []  # final selects in this chain of steps representing a select
                   123        operands = {}  # intermediate computations of agg funcs eg x + 1 in SUM(x + 1)
                   124        aggregations = []
                  -125        sequence = itertools.count()
                  +125        next_operand_name = name_sequence("_a_")
                   126
                   127        def extract_agg_operands(expression):
                   128            for agg in expression.find_all(exp.AggFunc):
                  @@ -701,7 +701,7 @@
                   130                    if isinstance(operand, exp.Column):
                   131                        continue
                   132                    if operand not in operands:
                  -133                        operands[operand] = f"_a_{next(sequence)}"
                  +133                        operands[operand] = next_operand_name()
                   134                    operand.replace(exp.column(operands[operand], quoted=True))
                   135
                   136        for e in expression.expressions:
                  @@ -932,7 +932,7 @@
                   122        projections = []  # final selects in this chain of steps representing a select
                   123        operands = {}  # intermediate computations of agg funcs eg x + 1 in SUM(x + 1)
                   124        aggregations = []
                  -125        sequence = itertools.count()
                  +125        next_operand_name = name_sequence("_a_")
                   126
                   127        def extract_agg_operands(expression):
                   128            for agg in expression.find_all(exp.AggFunc):
                  @@ -940,7 +940,7 @@
                   130                    if isinstance(operand, exp.Column):
                   131                        continue
                   132                    if operand not in operands:
                  -133                        operands[operand] = f"_a_{next(sequence)}"
                  +133                        operands[operand] = next_operand_name()
                   134                    operand.replace(exp.column(operands[operand], quoted=True))
                   135
                   136        for e in expression.expressions:
                  diff --git a/docs/sqlglot/schema.html b/docs/sqlglot/schema.html
                  index 50f86bf..8bcaf2f 100644
                  --- a/docs/sqlglot/schema.html
                  +++ b/docs/sqlglot/schema.html
                  @@ -139,474 +139,477 @@
                     6import sqlglot
                     7from sqlglot import expressions as exp
                     8from sqlglot._typing import T
                  -  9from sqlglot.errors import ParseError, SchemaError
                  - 10from sqlglot.helper import dict_depth
                  - 11from sqlglot.trie import in_trie, new_trie
                  - 12
                  - 13if t.TYPE_CHECKING:
                  - 14    from sqlglot.dataframe.sql.types import StructType
                  - 15    from sqlglot.dialects.dialect import DialectType
                  - 16
                  - 17    ColumnMapping = t.Union[t.Dict, str, StructType, t.List]
                  - 18
                  - 19TABLE_ARGS = ("this", "db", "catalog")
                  - 20
                  +  9from sqlglot.dialects.dialect import RESOLVES_IDENTIFIERS_AS_UPPERCASE
                  + 10from sqlglot.errors import ParseError, SchemaError
                  + 11from sqlglot.helper import dict_depth
                  + 12from sqlglot.trie import in_trie, new_trie
                  + 13
                  + 14if t.TYPE_CHECKING:
                  + 15    from sqlglot.dataframe.sql.types import StructType
                  + 16    from sqlglot.dialects.dialect import DialectType
                  + 17
                  + 18    ColumnMapping = t.Union[t.Dict, str, StructType, t.List]
                  + 19
                  + 20TABLE_ARGS = ("this", "db", "catalog")
                    21
                  - 22class Schema(abc.ABC):
                  - 23    """Abstract base class for database schemas"""
                  - 24
                  - 25    @abc.abstractmethod
                  - 26    def add_table(
                  - 27        self,
                  - 28        table: exp.Table | str,
                  - 29        column_mapping: t.Optional[ColumnMapping] = None,
                  - 30        dialect: DialectType = None,
                  - 31    ) -> None:
                  - 32        """
                  - 33        Register or update a table. Some implementing classes may require column information to also be provided.
                  - 34
                  - 35        Args:
                  - 36            table: the `Table` expression instance or string representing the table.
                  - 37            column_mapping: a column mapping that describes the structure of the table.
                  - 38            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  - 39        """
                  - 40
                  - 41    @abc.abstractmethod
                  - 42    def column_names(
                  - 43        self,
                  - 44        table: exp.Table | str,
                  - 45        only_visible: bool = False,
                  - 46        dialect: DialectType = None,
                  - 47    ) -> t.List[str]:
                  - 48        """
                  - 49        Get the column names for a table.
                  - 50
                  - 51        Args:
                  - 52            table: the `Table` expression instance.
                  - 53            only_visible: whether to include invisible columns.
                  - 54            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  - 55
                  - 56        Returns:
                  - 57            The list of column names.
                  - 58        """
                  - 59
                  - 60    @abc.abstractmethod
                  - 61    def get_column_type(
                  - 62        self,
                  - 63        table: exp.Table | str,
                  - 64        column: exp.Column,
                  - 65        dialect: DialectType = None,
                  - 66    ) -> exp.DataType:
                  - 67        """
                  - 68        Get the `sqlglot.exp.DataType` type of a column in the schema.
                  - 69
                  - 70        Args:
                  - 71            table: the source table.
                  - 72            column: the target column.
                  - 73            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  - 74
                  - 75        Returns:
                  - 76            The resulting column type.
                  - 77        """
                  - 78
                  - 79    @property
                  - 80    @abc.abstractmethod
                  - 81    def supported_table_args(self) -> t.Tuple[str, ...]:
                  - 82        """
                  - 83        Table arguments this schema support, e.g. `("this", "db", "catalog")`
                  - 84        """
                  - 85
                  - 86    @property
                  - 87    def empty(self) -> bool:
                  - 88        """Returns whether or not the schema is empty."""
                  - 89        return True
                  - 90
                  - 91
                  - 92class AbstractMappingSchema(t.Generic[T]):
                  - 93    def __init__(
                  - 94        self,
                  - 95        mapping: t.Optional[t.Dict] = None,
                  - 96    ) -> None:
                  - 97        self.mapping = mapping or {}
                  - 98        self.mapping_trie = new_trie(
                  - 99            tuple(reversed(t)) for t in flatten_schema(self.mapping, depth=self._depth())
                  -100        )
                  -101        self._supported_table_args: t.Tuple[str, ...] = tuple()
                  -102
                  -103    @property
                  -104    def empty(self) -> bool:
                  -105        return not self.mapping
                  -106
                  -107    def _depth(self) -> int:
                  -108        return dict_depth(self.mapping)
                  + 22
                  + 23class Schema(abc.ABC):
                  + 24    """Abstract base class for database schemas"""
                  + 25
                  + 26    dialect: DialectType
                  + 27
                  + 28    @abc.abstractmethod
                  + 29    def add_table(
                  + 30        self,
                  + 31        table: exp.Table | str,
                  + 32        column_mapping: t.Optional[ColumnMapping] = None,
                  + 33        dialect: DialectType = None,
                  + 34    ) -> None:
                  + 35        """
                  + 36        Register or update a table. Some implementing classes may require column information to also be provided.
                  + 37
                  + 38        Args:
                  + 39            table: the `Table` expression instance or string representing the table.
                  + 40            column_mapping: a column mapping that describes the structure of the table.
                  + 41            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  + 42        """
                  + 43
                  + 44    @abc.abstractmethod
                  + 45    def column_names(
                  + 46        self,
                  + 47        table: exp.Table | str,
                  + 48        only_visible: bool = False,
                  + 49        dialect: DialectType = None,
                  + 50    ) -> t.List[str]:
                  + 51        """
                  + 52        Get the column names for a table.
                  + 53
                  + 54        Args:
                  + 55            table: the `Table` expression instance.
                  + 56            only_visible: whether to include invisible columns.
                  + 57            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  + 58
                  + 59        Returns:
                  + 60            The list of column names.
                  + 61        """
                  + 62
                  + 63    @abc.abstractmethod
                  + 64    def get_column_type(
                  + 65        self,
                  + 66        table: exp.Table | str,
                  + 67        column: exp.Column,
                  + 68        dialect: DialectType = None,
                  + 69    ) -> exp.DataType:
                  + 70        """
                  + 71        Get the `sqlglot.exp.DataType` type of a column in the schema.
                  + 72
                  + 73        Args:
                  + 74            table: the source table.
                  + 75            column: the target column.
                  + 76            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  + 77
                  + 78        Returns:
                  + 79            The resulting column type.
                  + 80        """
                  + 81
                  + 82    @property
                  + 83    @abc.abstractmethod
                  + 84    def supported_table_args(self) -> t.Tuple[str, ...]:
                  + 85        """
                  + 86        Table arguments this schema support, e.g. `("this", "db", "catalog")`
                  + 87        """
                  + 88
                  + 89    @property
                  + 90    def empty(self) -> bool:
                  + 91        """Returns whether or not the schema is empty."""
                  + 92        return True
                  + 93
                  + 94
                  + 95class AbstractMappingSchema(t.Generic[T]):
                  + 96    def __init__(
                  + 97        self,
                  + 98        mapping: t.Optional[t.Dict] = None,
                  + 99    ) -> None:
                  +100        self.mapping = mapping or {}
                  +101        self.mapping_trie = new_trie(
                  +102            tuple(reversed(t)) for t in flatten_schema(self.mapping, depth=self._depth())
                  +103        )
                  +104        self._supported_table_args: t.Tuple[str, ...] = tuple()
                  +105
                  +106    @property
                  +107    def empty(self) -> bool:
                  +108        return not self.mapping
                   109
                  -110    @property
                  -111    def supported_table_args(self) -> t.Tuple[str, ...]:
                  -112        if not self._supported_table_args and self.mapping:
                  -113            depth = self._depth()
                  -114
                  -115            if not depth:  # None
                  -116                self._supported_table_args = tuple()
                  -117            elif 1 <= depth <= 3:
                  -118                self._supported_table_args = TABLE_ARGS[:depth]
                  -119            else:
                  -120                raise SchemaError(f"Invalid mapping shape. Depth: {depth}")
                  -121
                  -122        return self._supported_table_args
                  -123
                  -124    def table_parts(self, table: exp.Table) -> t.List[str]:
                  -125        if isinstance(table.this, exp.ReadCSV):
                  -126            return [table.this.name]
                  -127        return [table.text(part) for part in TABLE_ARGS if table.text(part)]
                  -128
                  -129    def find(
                  -130        self, table: exp.Table, trie: t.Optional[t.Dict] = None, raise_on_missing: bool = True
                  -131    ) -> t.Optional[T]:
                  -132        parts = self.table_parts(table)[0 : len(self.supported_table_args)]
                  -133        value, trie = in_trie(self.mapping_trie if trie is None else trie, parts)
                  -134
                  -135        if value == 0:
                  -136            return None
                  +110    def _depth(self) -> int:
                  +111        return dict_depth(self.mapping)
                  +112
                  +113    @property
                  +114    def supported_table_args(self) -> t.Tuple[str, ...]:
                  +115        if not self._supported_table_args and self.mapping:
                  +116            depth = self._depth()
                  +117
                  +118            if not depth:  # None
                  +119                self._supported_table_args = tuple()
                  +120            elif 1 <= depth <= 3:
                  +121                self._supported_table_args = TABLE_ARGS[:depth]
                  +122            else:
                  +123                raise SchemaError(f"Invalid mapping shape. Depth: {depth}")
                  +124
                  +125        return self._supported_table_args
                  +126
                  +127    def table_parts(self, table: exp.Table) -> t.List[str]:
                  +128        if isinstance(table.this, exp.ReadCSV):
                  +129            return [table.this.name]
                  +130        return [table.text(part) for part in TABLE_ARGS if table.text(part)]
                  +131
                  +132    def find(
                  +133        self, table: exp.Table, trie: t.Optional[t.Dict] = None, raise_on_missing: bool = True
                  +134    ) -> t.Optional[T]:
                  +135        parts = self.table_parts(table)[0 : len(self.supported_table_args)]
                  +136        value, trie = in_trie(self.mapping_trie if trie is None else trie, parts)
                   137
                  -138        if value == 1:
                  -139            possibilities = flatten_schema(trie, depth=dict_depth(trie) - 1)
                  +138        if value == 0:
                  +139            return None
                   140
                  -141            if len(possibilities) == 1:
                  -142                parts.extend(possibilities[0])
                  -143            else:
                  -144                message = ", ".join(".".join(parts) for parts in possibilities)
                  -145                if raise_on_missing:
                  -146                    raise SchemaError(f"Ambiguous mapping for {table}: {message}.")
                  -147                return None
                  -148
                  -149        return self.nested_get(parts, raise_on_missing=raise_on_missing)
                  -150
                  -151    def nested_get(
                  -152        self, parts: t.Sequence[str], d: t.Optional[t.Dict] = None, raise_on_missing=True
                  -153    ) -> t.Optional[t.Any]:
                  -154        return nested_get(
                  -155            d or self.mapping,
                  -156            *zip(self.supported_table_args, reversed(parts)),
                  -157            raise_on_missing=raise_on_missing,
                  -158        )
                  -159
                  -160
                  -161class MappingSchema(AbstractMappingSchema[t.Dict[str, str]], Schema):
                  -162    """
                  -163    Schema based on a nested mapping.
                  -164
                  -165    Args:
                  -166        schema: Mapping in one of the following forms:
                  -167            1. {table: {col: type}}
                  -168            2. {db: {table: {col: type}}}
                  -169            3. {catalog: {db: {table: {col: type}}}}
                  -170            4. None - Tables will be added later
                  -171        visible: Optional mapping of which columns in the schema are visible. If not provided, all columns
                  -172            are assumed to be visible. The nesting should mirror that of the schema:
                  -173            1. {table: set(*cols)}}
                  -174            2. {db: {table: set(*cols)}}}
                  -175            3. {catalog: {db: {table: set(*cols)}}}}
                  -176        dialect: The dialect to be used for custom type mappings & parsing string arguments.
                  -177    """
                  -178
                  -179    def __init__(
                  -180        self,
                  -181        schema: t.Optional[t.Dict] = None,
                  -182        visible: t.Optional[t.Dict] = None,
                  -183        dialect: DialectType = None,
                  -184    ) -> None:
                  -185        self.dialect = dialect
                  -186        self.visible = visible or {}
                  -187        self._type_mapping_cache: t.Dict[str, exp.DataType] = {}
                  -188
                  -189        super().__init__(self._normalize(schema or {}))
                  -190
                  -191    @classmethod
                  -192    def from_mapping_schema(cls, mapping_schema: MappingSchema) -> MappingSchema:
                  -193        return MappingSchema(
                  -194            schema=mapping_schema.mapping,
                  -195            visible=mapping_schema.visible,
                  -196            dialect=mapping_schema.dialect,
                  -197        )
                  -198
                  -199    def copy(self, **kwargs) -> MappingSchema:
                  -200        return MappingSchema(
                  -201            **{  # type: ignore
                  -202                "schema": self.mapping.copy(),
                  -203                "visible": self.visible.copy(),
                  -204                "dialect": self.dialect,
                  -205                **kwargs,
                  -206            }
                  -207        )
                  -208
                  -209    def add_table(
                  -210        self,
                  -211        table: exp.Table | str,
                  -212        column_mapping: t.Optional[ColumnMapping] = None,
                  -213        dialect: DialectType = None,
                  -214    ) -> None:
                  -215        """
                  -216        Register or update a table. Updates are only performed if a new column mapping is provided.
                  -217
                  -218        Args:
                  -219            table: the `Table` expression instance or string representing the table.
                  -220            column_mapping: a column mapping that describes the structure of the table.
                  -221            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  -222        """
                  -223        normalized_table = self._normalize_table(
                  -224            self._ensure_table(table, dialect=dialect), dialect=dialect
                  -225        )
                  -226        normalized_column_mapping = {
                  -227            self._normalize_name(key, dialect=dialect): value
                  -228            for key, value in ensure_column_mapping(column_mapping).items()
                  -229        }
                  -230
                  -231        schema = self.find(normalized_table, raise_on_missing=False)
                  -232        if schema and not normalized_column_mapping:
                  -233            return
                  -234
                  -235        parts = self.table_parts(normalized_table)
                  +141        if value == 1:
                  +142            possibilities = flatten_schema(trie, depth=dict_depth(trie) - 1)
                  +143
                  +144            if len(possibilities) == 1:
                  +145                parts.extend(possibilities[0])
                  +146            else:
                  +147                message = ", ".join(".".join(parts) for parts in possibilities)
                  +148                if raise_on_missing:
                  +149                    raise SchemaError(f"Ambiguous mapping for {table}: {message}.")
                  +150                return None
                  +151
                  +152        return self.nested_get(parts, raise_on_missing=raise_on_missing)
                  +153
                  +154    def nested_get(
                  +155        self, parts: t.Sequence[str], d: t.Optional[t.Dict] = None, raise_on_missing=True
                  +156    ) -> t.Optional[t.Any]:
                  +157        return nested_get(
                  +158            d or self.mapping,
                  +159            *zip(self.supported_table_args, reversed(parts)),
                  +160            raise_on_missing=raise_on_missing,
                  +161        )
                  +162
                  +163
                  +164class MappingSchema(AbstractMappingSchema[t.Dict[str, str]], Schema):
                  +165    """
                  +166    Schema based on a nested mapping.
                  +167
                  +168    Args:
                  +169        schema: Mapping in one of the following forms:
                  +170            1. {table: {col: type}}
                  +171            2. {db: {table: {col: type}}}
                  +172            3. {catalog: {db: {table: {col: type}}}}
                  +173            4. None - Tables will be added later
                  +174        visible: Optional mapping of which columns in the schema are visible. If not provided, all columns
                  +175            are assumed to be visible. The nesting should mirror that of the schema:
                  +176            1. {table: set(*cols)}}
                  +177            2. {db: {table: set(*cols)}}}
                  +178            3. {catalog: {db: {table: set(*cols)}}}}
                  +179        dialect: The dialect to be used for custom type mappings & parsing string arguments.
                  +180        normalize: Whether to normalize identifier names according to the given dialect or not.
                  +181    """
                  +182
                  +183    def __init__(
                  +184        self,
                  +185        schema: t.Optional[t.Dict] = None,
                  +186        visible: t.Optional[t.Dict] = None,
                  +187        dialect: DialectType = None,
                  +188        normalize: bool = True,
                  +189    ) -> None:
                  +190        self.dialect = dialect
                  +191        self.visible = visible or {}
                  +192        self.normalize = normalize
                  +193        self._type_mapping_cache: t.Dict[str, exp.DataType] = {}
                  +194
                  +195        super().__init__(self._normalize(schema or {}))
                  +196
                  +197    @classmethod
                  +198    def from_mapping_schema(cls, mapping_schema: MappingSchema) -> MappingSchema:
                  +199        return MappingSchema(
                  +200            schema=mapping_schema.mapping,
                  +201            visible=mapping_schema.visible,
                  +202            dialect=mapping_schema.dialect,
                  +203        )
                  +204
                  +205    def copy(self, **kwargs) -> MappingSchema:
                  +206        return MappingSchema(
                  +207            **{  # type: ignore
                  +208                "schema": self.mapping.copy(),
                  +209                "visible": self.visible.copy(),
                  +210                "dialect": self.dialect,
                  +211                **kwargs,
                  +212            }
                  +213        )
                  +214
                  +215    def add_table(
                  +216        self,
                  +217        table: exp.Table | str,
                  +218        column_mapping: t.Optional[ColumnMapping] = None,
                  +219        dialect: DialectType = None,
                  +220    ) -> None:
                  +221        """
                  +222        Register or update a table. Updates are only performed if a new column mapping is provided.
                  +223
                  +224        Args:
                  +225            table: the `Table` expression instance or string representing the table.
                  +226            column_mapping: a column mapping that describes the structure of the table.
                  +227            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  +228        """
                  +229        normalized_table = self._normalize_table(
                  +230            self._ensure_table(table, dialect=dialect), dialect=dialect
                  +231        )
                  +232        normalized_column_mapping = {
                  +233            self._normalize_name(key, dialect=dialect): value
                  +234            for key, value in ensure_column_mapping(column_mapping).items()
                  +235        }
                   236
                  -237        nested_set(self.mapping, tuple(reversed(parts)), normalized_column_mapping)
                  -238        new_trie([parts], self.mapping_trie)
                  -239
                  -240    def column_names(
                  -241        self,
                  -242        table: exp.Table | str,
                  -243        only_visible: bool = False,
                  -244        dialect: DialectType = None,
                  -245    ) -> t.List[str]:
                  -246        normalized_table = self._normalize_table(
                  -247            self._ensure_table(table, dialect=dialect), dialect=dialect
                  -248        )
                  -249
                  -250        schema = self.find(normalized_table)
                  -251        if schema is None:
                  -252            return []
                  -253
                  -254        if not only_visible or not self.visible:
                  -255            return list(schema)
                  -256
                  -257        visible = self.nested_get(self.table_parts(normalized_table), self.visible) or []
                  -258        return [col for col in schema if col in visible]
                  +237        schema = self.find(normalized_table, raise_on_missing=False)
                  +238        if schema and not normalized_column_mapping:
                  +239            return
                  +240
                  +241        parts = self.table_parts(normalized_table)
                  +242
                  +243        nested_set(self.mapping, tuple(reversed(parts)), normalized_column_mapping)
                  +244        new_trie([parts], self.mapping_trie)
                  +245
                  +246    def column_names(
                  +247        self,
                  +248        table: exp.Table | str,
                  +249        only_visible: bool = False,
                  +250        dialect: DialectType = None,
                  +251    ) -> t.List[str]:
                  +252        normalized_table = self._normalize_table(
                  +253            self._ensure_table(table, dialect=dialect), dialect=dialect
                  +254        )
                  +255
                  +256        schema = self.find(normalized_table)
                  +257        if schema is None:
                  +258            return []
                   259
                  -260    def get_column_type(
                  -261        self,
                  -262        table: exp.Table | str,
                  -263        column: exp.Column,
                  -264        dialect: DialectType = None,
                  -265    ) -> exp.DataType:
                  -266        normalized_table = self._normalize_table(
                  -267            self._ensure_table(table, dialect=dialect), dialect=dialect
                  -268        )
                  -269        normalized_column_name = self._normalize_name(
                  -270            column if isinstance(column, str) else column.this, dialect=dialect
                  -271        )
                  -272
                  -273        table_schema = self.find(normalized_table, raise_on_missing=False)
                  -274        if table_schema:
                  -275            column_type = table_schema.get(normalized_column_name)
                  -276
                  -277            if isinstance(column_type, exp.DataType):
                  -278                return column_type
                  -279            elif isinstance(column_type, str):
                  -280                return self._to_data_type(column_type.upper(), dialect=dialect)
                  -281
                  -282            raise SchemaError(f"Unknown column type '{column_type}'")
                  -283
                  -284        return exp.DataType.build("unknown")
                  -285
                  -286    def _normalize(self, schema: t.Dict) -> t.Dict:
                  -287        """
                  -288        Converts all identifiers in the schema into lowercase, unless they're quoted.
                  +260        if not only_visible or not self.visible:
                  +261            return list(schema)
                  +262
                  +263        visible = self.nested_get(self.table_parts(normalized_table), self.visible) or []
                  +264        return [col for col in schema if col in visible]
                  +265
                  +266    def get_column_type(
                  +267        self,
                  +268        table: exp.Table | str,
                  +269        column: exp.Column,
                  +270        dialect: DialectType = None,
                  +271    ) -> exp.DataType:
                  +272        normalized_table = self._normalize_table(
                  +273            self._ensure_table(table, dialect=dialect), dialect=dialect
                  +274        )
                  +275        normalized_column_name = self._normalize_name(
                  +276            column if isinstance(column, str) else column.this, dialect=dialect
                  +277        )
                  +278
                  +279        table_schema = self.find(normalized_table, raise_on_missing=False)
                  +280        if table_schema:
                  +281            column_type = table_schema.get(normalized_column_name)
                  +282
                  +283            if isinstance(column_type, exp.DataType):
                  +284                return column_type
                  +285            elif isinstance(column_type, str):
                  +286                return self._to_data_type(column_type.upper(), dialect=dialect)
                  +287
                  +288            raise SchemaError(f"Unknown column type '{column_type}'")
                   289
                  -290        Args:
                  -291            schema: the schema to normalize.
                  -292
                  -293        Returns:
                  -294            The normalized schema mapping.
                  -295        """
                  -296        flattened_schema = flatten_schema(schema, depth=dict_depth(schema) - 1)
                  -297
                  -298        normalized_mapping: t.Dict = {}
                  -299        for keys in flattened_schema:
                  -300            columns = nested_get(schema, *zip(keys, keys))
                  -301            assert columns is not None
                  -302
                  -303            normalized_keys = [self._normalize_name(key, dialect=self.dialect) for key in keys]
                  -304            for column_name, column_type in columns.items():
                  -305                nested_set(
                  -306                    normalized_mapping,
                  -307                    normalized_keys + [self._normalize_name(column_name, dialect=self.dialect)],
                  -308                    column_type,
                  -309                )
                  -310
                  -311        return normalized_mapping
                  -312
                  -313    def _normalize_table(self, table: exp.Table, dialect: DialectType = None) -> exp.Table:
                  -314        normalized_table = table.copy()
                  -315
                  -316        for arg in TABLE_ARGS:
                  -317            value = normalized_table.args.get(arg)
                  -318            if isinstance(value, (str, exp.Identifier)):
                  -319                normalized_table.set(arg, self._normalize_name(value, dialect=dialect))
                  -320
                  -321        return normalized_table
                  -322
                  -323    def _normalize_name(self, name: str | exp.Identifier, dialect: DialectType = None) -> str:
                  -324        dialect = dialect or self.dialect
                  -325
                  -326        try:
                  -327            identifier = sqlglot.maybe_parse(name, dialect=dialect, into=exp.Identifier)
                  -328        except ParseError:
                  -329            return name if isinstance(name, str) else name.name
                  +290        return exp.DataType.build("unknown")
                  +291
                  +292    def _normalize(self, schema: t.Dict) -> t.Dict:
                  +293        """
                  +294        Converts all identifiers in the schema into lowercase, unless they're quoted.
                  +295
                  +296        Args:
                  +297            schema: the schema to normalize.
                  +298
                  +299        Returns:
                  +300            The normalized schema mapping.
                  +301        """
                  +302        flattened_schema = flatten_schema(schema, depth=dict_depth(schema) - 1)
                  +303
                  +304        normalized_mapping: t.Dict = {}
                  +305        for keys in flattened_schema:
                  +306            columns = nested_get(schema, *zip(keys, keys))
                  +307            assert columns is not None
                  +308
                  +309            normalized_keys = [self._normalize_name(key, dialect=self.dialect) for key in keys]
                  +310            for column_name, column_type in columns.items():
                  +311                nested_set(
                  +312                    normalized_mapping,
                  +313                    normalized_keys + [self._normalize_name(column_name, dialect=self.dialect)],
                  +314                    column_type,
                  +315                )
                  +316
                  +317        return normalized_mapping
                  +318
                  +319    def _normalize_table(self, table: exp.Table, dialect: DialectType = None) -> exp.Table:
                  +320        normalized_table = table.copy()
                  +321
                  +322        for arg in TABLE_ARGS:
                  +323            value = normalized_table.args.get(arg)
                  +324            if isinstance(value, (str, exp.Identifier)):
                  +325                normalized_table.set(
                  +326                    arg, exp.to_identifier(self._normalize_name(value, dialect=dialect))
                  +327                )
                  +328
                  +329        return normalized_table
                   330
                  -331        return identifier.name if identifier.quoted else identifier.name.lower()
                  -332
                  -333    def _depth(self) -> int:
                  -334        # The columns themselves are a mapping, but we don't want to include those
                  -335        return super()._depth() - 1
                  -336
                  -337    def _ensure_table(self, table: exp.Table | str, dialect: DialectType = None) -> exp.Table:
                  -338        if isinstance(table, exp.Table):
                  -339            return table
                  +331    def _normalize_name(self, name: str | exp.Identifier, dialect: DialectType = None) -> str:
                  +332        dialect = dialect or self.dialect
                  +333
                  +334        try:
                  +335            identifier = sqlglot.maybe_parse(name, dialect=dialect, into=exp.Identifier)
                  +336        except ParseError:
                  +337            return name if isinstance(name, str) else name.name
                  +338
                  +339        name = identifier.name
                   340
                  -341        dialect = dialect or self.dialect
                  -342        parsed_table = sqlglot.parse_one(table, read=dialect, into=exp.Table)
                  +341        if not self.normalize or identifier.quoted:
                  +342            return name
                   343
                  -344        if not parsed_table:
                  -345            in_dialect = f" in dialect {dialect}" if dialect else ""
                  -346            raise SchemaError(f"Failed to parse table '{table}'{in_dialect}.")
                  -347
                  -348        return parsed_table
                  +344        return name.upper() if dialect in RESOLVES_IDENTIFIERS_AS_UPPERCASE else name.lower()
                  +345
                  +346    def _depth(self) -> int:
                  +347        # The columns themselves are a mapping, but we don't want to include those
                  +348        return super()._depth() - 1
                   349
                  -350    def _to_data_type(self, schema_type: str, dialect: DialectType = None) -> exp.DataType:
                  -351        """
                  -352        Convert a type represented as a string to the corresponding `sqlglot.exp.DataType` object.
                  -353
                  -354        Args:
                  -355            schema_type: the type we want to convert.
                  -356            dialect: the SQL dialect that will be used to parse `schema_type`, if needed.
                  -357
                  -358        Returns:
                  -359            The resulting expression type.
                  -360        """
                  -361        if schema_type not in self._type_mapping_cache:
                  -362            dialect = dialect or self.dialect
                  -363
                  -364            try:
                  -365                expression = exp.DataType.build(schema_type, dialect=dialect)
                  -366                self._type_mapping_cache[schema_type] = expression
                  -367            except AttributeError:
                  -368                in_dialect = f" in dialect {dialect}" if dialect else ""
                  -369                raise SchemaError(f"Failed to build type '{schema_type}'{in_dialect}.")
                  -370
                  -371        return self._type_mapping_cache[schema_type]
                  -372
                  +350    def _ensure_table(self, table: exp.Table | str, dialect: DialectType = None) -> exp.Table:
                  +351        return exp.maybe_parse(table, into=exp.Table, dialect=dialect or self.dialect)
                  +352
                  +353    def _to_data_type(self, schema_type: str, dialect: DialectType = None) -> exp.DataType:
                  +354        """
                  +355        Convert a type represented as a string to the corresponding `sqlglot.exp.DataType` object.
                  +356
                  +357        Args:
                  +358            schema_type: the type we want to convert.
                  +359            dialect: the SQL dialect that will be used to parse `schema_type`, if needed.
                  +360
                  +361        Returns:
                  +362            The resulting expression type.
                  +363        """
                  +364        if schema_type not in self._type_mapping_cache:
                  +365            dialect = dialect or self.dialect
                  +366
                  +367            try:
                  +368                expression = exp.DataType.build(schema_type, dialect=dialect)
                  +369                self._type_mapping_cache[schema_type] = expression
                  +370            except AttributeError:
                  +371                in_dialect = f" in dialect {dialect}" if dialect else ""
                  +372                raise SchemaError(f"Failed to build type '{schema_type}'{in_dialect}.")
                   373
                  -374def ensure_schema(schema: t.Any, dialect: DialectType = None) -> Schema:
                  -375    if isinstance(schema, Schema):
                  -376        return schema
                  -377
                  -378    return MappingSchema(schema, dialect=dialect)
                  -379
                  +374        return self._type_mapping_cache[schema_type]
                  +375
                  +376
                  +377def ensure_schema(schema: Schema | t.Optional[t.Dict], **kwargs: t.Any) -> Schema:
                  +378    if isinstance(schema, Schema):
                  +379        return schema
                   380
                  -381def ensure_column_mapping(mapping: t.Optional[ColumnMapping]) -> t.Dict:
                  -382    if mapping is None:
                  -383        return {}
                  -384    elif isinstance(mapping, dict):
                  -385        return mapping
                  -386    elif isinstance(mapping, str):
                  -387        col_name_type_strs = [x.strip() for x in mapping.split(",")]
                  -388        return {
                  -389            name_type_str.split(":")[0].strip(): name_type_str.split(":")[1].strip()
                  -390            for name_type_str in col_name_type_strs
                  -391        }
                  -392    # Check if mapping looks like a DataFrame StructType
                  -393    elif hasattr(mapping, "simpleString"):
                  -394        return {struct_field.name: struct_field.dataType.simpleString() for struct_field in mapping}
                  -395    elif isinstance(mapping, list):
                  -396        return {x.strip(): None for x in mapping}
                  -397
                  -398    raise ValueError(f"Invalid mapping provided: {type(mapping)}")
                  -399
                  +381    return MappingSchema(schema, **kwargs)
                  +382
                  +383
                  +384def ensure_column_mapping(mapping: t.Optional[ColumnMapping]) -> t.Dict:
                  +385    if mapping is None:
                  +386        return {}
                  +387    elif isinstance(mapping, dict):
                  +388        return mapping
                  +389    elif isinstance(mapping, str):
                  +390        col_name_type_strs = [x.strip() for x in mapping.split(",")]
                  +391        return {
                  +392            name_type_str.split(":")[0].strip(): name_type_str.split(":")[1].strip()
                  +393            for name_type_str in col_name_type_strs
                  +394        }
                  +395    # Check if mapping looks like a DataFrame StructType
                  +396    elif hasattr(mapping, "simpleString"):
                  +397        return {struct_field.name: struct_field.dataType.simpleString() for struct_field in mapping}
                  +398    elif isinstance(mapping, list):
                  +399        return {x.strip(): None for x in mapping}
                   400
                  -401def flatten_schema(
                  -402    schema: t.Dict, depth: int, keys: t.Optional[t.List[str]] = None
                  -403) -> t.List[t.List[str]]:
                  -404    tables = []
                  -405    keys = keys or []
                  -406
                  -407    for k, v in schema.items():
                  -408        if depth >= 2:
                  -409            tables.extend(flatten_schema(v, depth - 1, keys + [k]))
                  -410        elif depth == 1:
                  -411            tables.append(keys + [k])
                  -412
                  -413    return tables
                  -414
                  +401    raise ValueError(f"Invalid mapping provided: {type(mapping)}")
                  +402
                  +403
                  +404def flatten_schema(
                  +405    schema: t.Dict, depth: int, keys: t.Optional[t.List[str]] = None
                  +406) -> t.List[t.List[str]]:
                  +407    tables = []
                  +408    keys = keys or []
                  +409
                  +410    for k, v in schema.items():
                  +411        if depth >= 2:
                  +412            tables.extend(flatten_schema(v, depth - 1, keys + [k]))
                  +413        elif depth == 1:
                  +414            tables.append(keys + [k])
                   415
                  -416def nested_get(
                  -417    d: t.Dict, *path: t.Tuple[str, str], raise_on_missing: bool = True
                  -418) -> t.Optional[t.Any]:
                  -419    """
                  -420    Get a value for a nested dictionary.
                  -421
                  -422    Args:
                  -423        d: the dictionary to search.
                  -424        *path: tuples of (name, key), where:
                  -425            `key` is the key in the dictionary to get.
                  -426            `name` is a string to use in the error if `key` isn't found.
                  -427
                  -428    Returns:
                  -429        The value or None if it doesn't exist.
                  -430    """
                  -431    for name, key in path:
                  -432        d = d.get(key)  # type: ignore
                  -433        if d is None:
                  -434            if raise_on_missing:
                  -435                name = "table" if name == "this" else name
                  -436                raise ValueError(f"Unknown {name}: {key}")
                  -437            return None
                  -438
                  -439    return d
                  -440
                  +416    return tables
                  +417
                  +418
                  +419def nested_get(
                  +420    d: t.Dict, *path: t.Tuple[str, str], raise_on_missing: bool = True
                  +421) -> t.Optional[t.Any]:
                  +422    """
                  +423    Get a value for a nested dictionary.
                  +424
                  +425    Args:
                  +426        d: the dictionary to search.
                  +427        *path: tuples of (name, key), where:
                  +428            `key` is the key in the dictionary to get.
                  +429            `name` is a string to use in the error if `key` isn't found.
                  +430
                  +431    Returns:
                  +432        The value or None if it doesn't exist.
                  +433    """
                  +434    for name, key in path:
                  +435        d = d.get(key)  # type: ignore
                  +436        if d is None:
                  +437            if raise_on_missing:
                  +438                name = "table" if name == "this" else name
                  +439                raise ValueError(f"Unknown {name}: {key}")
                  +440            return None
                   441
                  -442def nested_set(d: t.Dict, keys: t.Sequence[str], value: t.Any) -> t.Dict:
                  -443    """
                  -444    In-place set a value for a nested dictionary
                  -445
                  -446    Example:
                  -447        >>> nested_set({}, ["top_key", "second_key"], "value")
                  -448        {'top_key': {'second_key': 'value'}}
                  -449
                  -450        >>> nested_set({"top_key": {"third_key": "third_value"}}, ["top_key", "second_key"], "value")
                  -451        {'top_key': {'third_key': 'third_value', 'second_key': 'value'}}
                  +442    return d
                  +443
                  +444
                  +445def nested_set(d: t.Dict, keys: t.Sequence[str], value: t.Any) -> t.Dict:
                  +446    """
                  +447    In-place set a value for a nested dictionary
                  +448
                  +449    Example:
                  +450        >>> nested_set({}, ["top_key", "second_key"], "value")
                  +451        {'top_key': {'second_key': 'value'}}
                   452
                  -453    Args:
                  -454        d: dictionary to update.
                  -455        keys: the keys that makeup the path to `value`.
                  -456        value: the value to set in the dictionary for the given key path.
                  -457
                  -458    Returns:
                  -459        The (possibly) updated dictionary.
                  -460    """
                  -461    if not keys:
                  -462        return d
                  -463
                  -464    if len(keys) == 1:
                  -465        d[keys[0]] = value
                  -466        return d
                  -467
                  -468    subd = d
                  -469    for key in keys[:-1]:
                  -470        if key not in subd:
                  -471            subd = subd.setdefault(key, {})
                  -472        else:
                  -473            subd = subd[key]
                  -474
                  -475    subd[keys[-1]] = value
                  -476    return d
                  +453        >>> nested_set({"top_key": {"third_key": "third_value"}}, ["top_key", "second_key"], "value")
                  +454        {'top_key': {'third_key': 'third_value', 'second_key': 'value'}}
                  +455
                  +456    Args:
                  +457        d: dictionary to update.
                  +458        keys: the keys that makeup the path to `value`.
                  +459        value: the value to set in the dictionary for the given key path.
                  +460
                  +461    Returns:
                  +462        The (possibly) updated dictionary.
                  +463    """
                  +464    if not keys:
                  +465        return d
                  +466
                  +467    if len(keys) == 1:
                  +468        d[keys[0]] = value
                  +469        return d
                  +470
                  +471    subd = d
                  +472    for key in keys[:-1]:
                  +473        if key not in subd:
                  +474            subd = subd.setdefault(key, {})
                  +475        else:
                  +476            subd = subd[key]
                  +477
                  +478    subd[keys[-1]] = value
                  +479    return d
                   
                  @@ -622,74 +625,76 @@
                  -
                  23class Schema(abc.ABC):
                  -24    """Abstract base class for database schemas"""
                  -25
                  -26    @abc.abstractmethod
                  -27    def add_table(
                  -28        self,
                  -29        table: exp.Table | str,
                  -30        column_mapping: t.Optional[ColumnMapping] = None,
                  -31        dialect: DialectType = None,
                  -32    ) -> None:
                  -33        """
                  -34        Register or update a table. Some implementing classes may require column information to also be provided.
                  -35
                  -36        Args:
                  -37            table: the `Table` expression instance or string representing the table.
                  -38            column_mapping: a column mapping that describes the structure of the table.
                  -39            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  -40        """
                  -41
                  -42    @abc.abstractmethod
                  -43    def column_names(
                  -44        self,
                  -45        table: exp.Table | str,
                  -46        only_visible: bool = False,
                  -47        dialect: DialectType = None,
                  -48    ) -> t.List[str]:
                  -49        """
                  -50        Get the column names for a table.
                  -51
                  -52        Args:
                  -53            table: the `Table` expression instance.
                  -54            only_visible: whether to include invisible columns.
                  -55            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  -56
                  -57        Returns:
                  -58            The list of column names.
                  -59        """
                  -60
                  -61    @abc.abstractmethod
                  -62    def get_column_type(
                  -63        self,
                  -64        table: exp.Table | str,
                  -65        column: exp.Column,
                  -66        dialect: DialectType = None,
                  -67    ) -> exp.DataType:
                  -68        """
                  -69        Get the `sqlglot.exp.DataType` type of a column in the schema.
                  -70
                  -71        Args:
                  -72            table: the source table.
                  -73            column: the target column.
                  -74            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  -75
                  -76        Returns:
                  -77            The resulting column type.
                  -78        """
                  -79
                  -80    @property
                  -81    @abc.abstractmethod
                  -82    def supported_table_args(self) -> t.Tuple[str, ...]:
                  -83        """
                  -84        Table arguments this schema support, e.g. `("this", "db", "catalog")`
                  -85        """
                  -86
                  -87    @property
                  -88    def empty(self) -> bool:
                  -89        """Returns whether or not the schema is empty."""
                  -90        return True
                  +            
                  24class Schema(abc.ABC):
                  +25    """Abstract base class for database schemas"""
                  +26
                  +27    dialect: DialectType
                  +28
                  +29    @abc.abstractmethod
                  +30    def add_table(
                  +31        self,
                  +32        table: exp.Table | str,
                  +33        column_mapping: t.Optional[ColumnMapping] = None,
                  +34        dialect: DialectType = None,
                  +35    ) -> None:
                  +36        """
                  +37        Register or update a table. Some implementing classes may require column information to also be provided.
                  +38
                  +39        Args:
                  +40            table: the `Table` expression instance or string representing the table.
                  +41            column_mapping: a column mapping that describes the structure of the table.
                  +42            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  +43        """
                  +44
                  +45    @abc.abstractmethod
                  +46    def column_names(
                  +47        self,
                  +48        table: exp.Table | str,
                  +49        only_visible: bool = False,
                  +50        dialect: DialectType = None,
                  +51    ) -> t.List[str]:
                  +52        """
                  +53        Get the column names for a table.
                  +54
                  +55        Args:
                  +56            table: the `Table` expression instance.
                  +57            only_visible: whether to include invisible columns.
                  +58            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  +59
                  +60        Returns:
                  +61            The list of column names.
                  +62        """
                  +63
                  +64    @abc.abstractmethod
                  +65    def get_column_type(
                  +66        self,
                  +67        table: exp.Table | str,
                  +68        column: exp.Column,
                  +69        dialect: DialectType = None,
                  +70    ) -> exp.DataType:
                  +71        """
                  +72        Get the `sqlglot.exp.DataType` type of a column in the schema.
                  +73
                  +74        Args:
                  +75            table: the source table.
                  +76            column: the target column.
                  +77            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  +78
                  +79        Returns:
                  +80            The resulting column type.
                  +81        """
                  +82
                  +83    @property
                  +84    @abc.abstractmethod
                  +85    def supported_table_args(self) -> t.Tuple[str, ...]:
                  +86        """
                  +87        Table arguments this schema support, e.g. `("this", "db", "catalog")`
                  +88        """
                  +89
                  +90    @property
                  +91    def empty(self) -> bool:
                  +92        """Returns whether or not the schema is empty."""
                  +93        return True
                   
                  @@ -709,21 +714,21 @@
                  -
                  26    @abc.abstractmethod
                  -27    def add_table(
                  -28        self,
                  -29        table: exp.Table | str,
                  -30        column_mapping: t.Optional[ColumnMapping] = None,
                  -31        dialect: DialectType = None,
                  -32    ) -> None:
                  -33        """
                  -34        Register or update a table. Some implementing classes may require column information to also be provided.
                  -35
                  -36        Args:
                  -37            table: the `Table` expression instance or string representing the table.
                  -38            column_mapping: a column mapping that describes the structure of the table.
                  -39            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  -40        """
                  +            
                  29    @abc.abstractmethod
                  +30    def add_table(
                  +31        self,
                  +32        table: exp.Table | str,
                  +33        column_mapping: t.Optional[ColumnMapping] = None,
                  +34        dialect: DialectType = None,
                  +35    ) -> None:
                  +36        """
                  +37        Register or update a table. Some implementing classes may require column information to also be provided.
                  +38
                  +39        Args:
                  +40            table: the `Table` expression instance or string representing the table.
                  +41            column_mapping: a column mapping that describes the structure of the table.
                  +42            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  +43        """
                   
                  @@ -752,24 +757,24 @@
                  -
                  42    @abc.abstractmethod
                  -43    def column_names(
                  -44        self,
                  -45        table: exp.Table | str,
                  -46        only_visible: bool = False,
                  -47        dialect: DialectType = None,
                  -48    ) -> t.List[str]:
                  -49        """
                  -50        Get the column names for a table.
                  -51
                  -52        Args:
                  -53            table: the `Table` expression instance.
                  -54            only_visible: whether to include invisible columns.
                  -55            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  -56
                  -57        Returns:
                  -58            The list of column names.
                  -59        """
                  +            
                  45    @abc.abstractmethod
                  +46    def column_names(
                  +47        self,
                  +48        table: exp.Table | str,
                  +49        only_visible: bool = False,
                  +50        dialect: DialectType = None,
                  +51    ) -> t.List[str]:
                  +52        """
                  +53        Get the column names for a table.
                  +54
                  +55        Args:
                  +56            table: the `Table` expression instance.
                  +57            only_visible: whether to include invisible columns.
                  +58            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  +59
                  +60        Returns:
                  +61            The list of column names.
                  +62        """
                   
                  @@ -804,24 +809,24 @@
                  -
                  61    @abc.abstractmethod
                  -62    def get_column_type(
                  -63        self,
                  -64        table: exp.Table | str,
                  -65        column: exp.Column,
                  -66        dialect: DialectType = None,
                  -67    ) -> exp.DataType:
                  -68        """
                  -69        Get the `sqlglot.exp.DataType` type of a column in the schema.
                  -70
                  -71        Args:
                  -72            table: the source table.
                  -73            column: the target column.
                  -74            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  -75
                  -76        Returns:
                  -77            The resulting column type.
                  -78        """
                  +            
                  64    @abc.abstractmethod
                  +65    def get_column_type(
                  +66        self,
                  +67        table: exp.Table | str,
                  +68        column: exp.Column,
                  +69        dialect: DialectType = None,
                  +70    ) -> exp.DataType:
                  +71        """
                  +72        Get the `sqlglot.exp.DataType` type of a column in the schema.
                  +73
                  +74        Args:
                  +75            table: the source table.
                  +76            column: the target column.
                  +77            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  +78
                  +79        Returns:
                  +80            The resulting column type.
                  +81        """
                   
                  @@ -882,73 +887,73 @@
                  -
                   93class AbstractMappingSchema(t.Generic[T]):
                  - 94    def __init__(
                  - 95        self,
                  - 96        mapping: t.Optional[t.Dict] = None,
                  - 97    ) -> None:
                  - 98        self.mapping = mapping or {}
                  - 99        self.mapping_trie = new_trie(
                  -100            tuple(reversed(t)) for t in flatten_schema(self.mapping, depth=self._depth())
                  -101        )
                  -102        self._supported_table_args: t.Tuple[str, ...] = tuple()
                  -103
                  -104    @property
                  -105    def empty(self) -> bool:
                  -106        return not self.mapping
                  -107
                  -108    def _depth(self) -> int:
                  -109        return dict_depth(self.mapping)
                  +            
                   96class AbstractMappingSchema(t.Generic[T]):
                  + 97    def __init__(
                  + 98        self,
                  + 99        mapping: t.Optional[t.Dict] = None,
                  +100    ) -> None:
                  +101        self.mapping = mapping or {}
                  +102        self.mapping_trie = new_trie(
                  +103            tuple(reversed(t)) for t in flatten_schema(self.mapping, depth=self._depth())
                  +104        )
                  +105        self._supported_table_args: t.Tuple[str, ...] = tuple()
                  +106
                  +107    @property
                  +108    def empty(self) -> bool:
                  +109        return not self.mapping
                   110
                  -111    @property
                  -112    def supported_table_args(self) -> t.Tuple[str, ...]:
                  -113        if not self._supported_table_args and self.mapping:
                  -114            depth = self._depth()
                  -115
                  -116            if not depth:  # None
                  -117                self._supported_table_args = tuple()
                  -118            elif 1 <= depth <= 3:
                  -119                self._supported_table_args = TABLE_ARGS[:depth]
                  -120            else:
                  -121                raise SchemaError(f"Invalid mapping shape. Depth: {depth}")
                  -122
                  -123        return self._supported_table_args
                  -124
                  -125    def table_parts(self, table: exp.Table) -> t.List[str]:
                  -126        if isinstance(table.this, exp.ReadCSV):
                  -127            return [table.this.name]
                  -128        return [table.text(part) for part in TABLE_ARGS if table.text(part)]
                  -129
                  -130    def find(
                  -131        self, table: exp.Table, trie: t.Optional[t.Dict] = None, raise_on_missing: bool = True
                  -132    ) -> t.Optional[T]:
                  -133        parts = self.table_parts(table)[0 : len(self.supported_table_args)]
                  -134        value, trie = in_trie(self.mapping_trie if trie is None else trie, parts)
                  -135
                  -136        if value == 0:
                  -137            return None
                  +111    def _depth(self) -> int:
                  +112        return dict_depth(self.mapping)
                  +113
                  +114    @property
                  +115    def supported_table_args(self) -> t.Tuple[str, ...]:
                  +116        if not self._supported_table_args and self.mapping:
                  +117            depth = self._depth()
                  +118
                  +119            if not depth:  # None
                  +120                self._supported_table_args = tuple()
                  +121            elif 1 <= depth <= 3:
                  +122                self._supported_table_args = TABLE_ARGS[:depth]
                  +123            else:
                  +124                raise SchemaError(f"Invalid mapping shape. Depth: {depth}")
                  +125
                  +126        return self._supported_table_args
                  +127
                  +128    def table_parts(self, table: exp.Table) -> t.List[str]:
                  +129        if isinstance(table.this, exp.ReadCSV):
                  +130            return [table.this.name]
                  +131        return [table.text(part) for part in TABLE_ARGS if table.text(part)]
                  +132
                  +133    def find(
                  +134        self, table: exp.Table, trie: t.Optional[t.Dict] = None, raise_on_missing: bool = True
                  +135    ) -> t.Optional[T]:
                  +136        parts = self.table_parts(table)[0 : len(self.supported_table_args)]
                  +137        value, trie = in_trie(self.mapping_trie if trie is None else trie, parts)
                   138
                  -139        if value == 1:
                  -140            possibilities = flatten_schema(trie, depth=dict_depth(trie) - 1)
                  +139        if value == 0:
                  +140            return None
                   141
                  -142            if len(possibilities) == 1:
                  -143                parts.extend(possibilities[0])
                  -144            else:
                  -145                message = ", ".join(".".join(parts) for parts in possibilities)
                  -146                if raise_on_missing:
                  -147                    raise SchemaError(f"Ambiguous mapping for {table}: {message}.")
                  -148                return None
                  -149
                  -150        return self.nested_get(parts, raise_on_missing=raise_on_missing)
                  -151
                  -152    def nested_get(
                  -153        self, parts: t.Sequence[str], d: t.Optional[t.Dict] = None, raise_on_missing=True
                  -154    ) -> t.Optional[t.Any]:
                  -155        return nested_get(
                  -156            d or self.mapping,
                  -157            *zip(self.supported_table_args, reversed(parts)),
                  -158            raise_on_missing=raise_on_missing,
                  -159        )
                  +142        if value == 1:
                  +143            possibilities = flatten_schema(trie, depth=dict_depth(trie) - 1)
                  +144
                  +145            if len(possibilities) == 1:
                  +146                parts.extend(possibilities[0])
                  +147            else:
                  +148                message = ", ".join(".".join(parts) for parts in possibilities)
                  +149                if raise_on_missing:
                  +150                    raise SchemaError(f"Ambiguous mapping for {table}: {message}.")
                  +151                return None
                  +152
                  +153        return self.nested_get(parts, raise_on_missing=raise_on_missing)
                  +154
                  +155    def nested_get(
                  +156        self, parts: t.Sequence[str], d: t.Optional[t.Dict] = None, raise_on_missing=True
                  +157    ) -> t.Optional[t.Any]:
                  +158        return nested_get(
                  +159            d or self.mapping,
                  +160            *zip(self.supported_table_args, reversed(parts)),
                  +161            raise_on_missing=raise_on_missing,
                  +162        )
                   
                  @@ -983,15 +988,15 @@ For example, a generic mapping type might be defined as::

                  -
                   94    def __init__(
                  - 95        self,
                  - 96        mapping: t.Optional[t.Dict] = None,
                  - 97    ) -> None:
                  - 98        self.mapping = mapping or {}
                  - 99        self.mapping_trie = new_trie(
                  -100            tuple(reversed(t)) for t in flatten_schema(self.mapping, depth=self._depth())
                  -101        )
                  -102        self._supported_table_args: t.Tuple[str, ...] = tuple()
                  +            
                   97    def __init__(
                  + 98        self,
                  + 99        mapping: t.Optional[t.Dict] = None,
                  +100    ) -> None:
                  +101        self.mapping = mapping or {}
                  +102        self.mapping_trie = new_trie(
                  +103            tuple(reversed(t)) for t in flatten_schema(self.mapping, depth=self._depth())
                  +104        )
                  +105        self._supported_table_args: t.Tuple[str, ...] = tuple()
                   
                  @@ -1009,10 +1014,10 @@ For example, a generic mapping type might be defined as::

                  -
                  125    def table_parts(self, table: exp.Table) -> t.List[str]:
                  -126        if isinstance(table.this, exp.ReadCSV):
                  -127            return [table.this.name]
                  -128        return [table.text(part) for part in TABLE_ARGS if table.text(part)]
                  +            
                  128    def table_parts(self, table: exp.Table) -> t.List[str]:
                  +129        if isinstance(table.this, exp.ReadCSV):
                  +130            return [table.this.name]
                  +131        return [table.text(part) for part in TABLE_ARGS if table.text(part)]
                   
                  @@ -1030,27 +1035,27 @@ For example, a generic mapping type might be defined as::

                  -
                  130    def find(
                  -131        self, table: exp.Table, trie: t.Optional[t.Dict] = None, raise_on_missing: bool = True
                  -132    ) -> t.Optional[T]:
                  -133        parts = self.table_parts(table)[0 : len(self.supported_table_args)]
                  -134        value, trie = in_trie(self.mapping_trie if trie is None else trie, parts)
                  -135
                  -136        if value == 0:
                  -137            return None
                  +            
                  133    def find(
                  +134        self, table: exp.Table, trie: t.Optional[t.Dict] = None, raise_on_missing: bool = True
                  +135    ) -> t.Optional[T]:
                  +136        parts = self.table_parts(table)[0 : len(self.supported_table_args)]
                  +137        value, trie = in_trie(self.mapping_trie if trie is None else trie, parts)
                   138
                  -139        if value == 1:
                  -140            possibilities = flatten_schema(trie, depth=dict_depth(trie) - 1)
                  +139        if value == 0:
                  +140            return None
                   141
                  -142            if len(possibilities) == 1:
                  -143                parts.extend(possibilities[0])
                  -144            else:
                  -145                message = ", ".join(".".join(parts) for parts in possibilities)
                  -146                if raise_on_missing:
                  -147                    raise SchemaError(f"Ambiguous mapping for {table}: {message}.")
                  -148                return None
                  -149
                  -150        return self.nested_get(parts, raise_on_missing=raise_on_missing)
                  +142        if value == 1:
                  +143            possibilities = flatten_schema(trie, depth=dict_depth(trie) - 1)
                  +144
                  +145            if len(possibilities) == 1:
                  +146                parts.extend(possibilities[0])
                  +147            else:
                  +148                message = ", ".join(".".join(parts) for parts in possibilities)
                  +149                if raise_on_missing:
                  +150                    raise SchemaError(f"Ambiguous mapping for {table}: {message}.")
                  +151                return None
                  +152
                  +153        return self.nested_get(parts, raise_on_missing=raise_on_missing)
                   
                  @@ -1068,14 +1073,14 @@ For example, a generic mapping type might be defined as::

                  -
                  152    def nested_get(
                  -153        self, parts: t.Sequence[str], d: t.Optional[t.Dict] = None, raise_on_missing=True
                  -154    ) -> t.Optional[t.Any]:
                  -155        return nested_get(
                  -156            d or self.mapping,
                  -157            *zip(self.supported_table_args, reversed(parts)),
                  -158            raise_on_missing=raise_on_missing,
                  -159        )
                  +            
                  155    def nested_get(
                  +156        self, parts: t.Sequence[str], d: t.Optional[t.Dict] = None, raise_on_missing=True
                  +157    ) -> t.Optional[t.Any]:
                  +158        return nested_get(
                  +159            d or self.mapping,
                  +160            *zip(self.supported_table_args, reversed(parts)),
                  +161            raise_on_missing=raise_on_missing,
                  +162        )
                   
                  @@ -1094,217 +1099,217 @@ For example, a generic mapping type might be defined as::

                  -
                  162class MappingSchema(AbstractMappingSchema[t.Dict[str, str]], Schema):
                  -163    """
                  -164    Schema based on a nested mapping.
                  -165
                  -166    Args:
                  -167        schema: Mapping in one of the following forms:
                  -168            1. {table: {col: type}}
                  -169            2. {db: {table: {col: type}}}
                  -170            3. {catalog: {db: {table: {col: type}}}}
                  -171            4. None - Tables will be added later
                  -172        visible: Optional mapping of which columns in the schema are visible. If not provided, all columns
                  -173            are assumed to be visible. The nesting should mirror that of the schema:
                  -174            1. {table: set(*cols)}}
                  -175            2. {db: {table: set(*cols)}}}
                  -176            3. {catalog: {db: {table: set(*cols)}}}}
                  -177        dialect: The dialect to be used for custom type mappings & parsing string arguments.
                  -178    """
                  -179
                  -180    def __init__(
                  -181        self,
                  -182        schema: t.Optional[t.Dict] = None,
                  -183        visible: t.Optional[t.Dict] = None,
                  -184        dialect: DialectType = None,
                  -185    ) -> None:
                  -186        self.dialect = dialect
                  -187        self.visible = visible or {}
                  -188        self._type_mapping_cache: t.Dict[str, exp.DataType] = {}
                  -189
                  -190        super().__init__(self._normalize(schema or {}))
                  -191
                  -192    @classmethod
                  -193    def from_mapping_schema(cls, mapping_schema: MappingSchema) -> MappingSchema:
                  -194        return MappingSchema(
                  -195            schema=mapping_schema.mapping,
                  -196            visible=mapping_schema.visible,
                  -197            dialect=mapping_schema.dialect,
                  -198        )
                  -199
                  -200    def copy(self, **kwargs) -> MappingSchema:
                  -201        return MappingSchema(
                  -202            **{  # type: ignore
                  -203                "schema": self.mapping.copy(),
                  -204                "visible": self.visible.copy(),
                  -205                "dialect": self.dialect,
                  -206                **kwargs,
                  -207            }
                  -208        )
                  -209
                  -210    def add_table(
                  -211        self,
                  -212        table: exp.Table | str,
                  -213        column_mapping: t.Optional[ColumnMapping] = None,
                  -214        dialect: DialectType = None,
                  -215    ) -> None:
                  -216        """
                  -217        Register or update a table. Updates are only performed if a new column mapping is provided.
                  -218
                  -219        Args:
                  -220            table: the `Table` expression instance or string representing the table.
                  -221            column_mapping: a column mapping that describes the structure of the table.
                  -222            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  -223        """
                  -224        normalized_table = self._normalize_table(
                  -225            self._ensure_table(table, dialect=dialect), dialect=dialect
                  -226        )
                  -227        normalized_column_mapping = {
                  -228            self._normalize_name(key, dialect=dialect): value
                  -229            for key, value in ensure_column_mapping(column_mapping).items()
                  -230        }
                  -231
                  -232        schema = self.find(normalized_table, raise_on_missing=False)
                  -233        if schema and not normalized_column_mapping:
                  -234            return
                  -235
                  -236        parts = self.table_parts(normalized_table)
                  +            
                  165class MappingSchema(AbstractMappingSchema[t.Dict[str, str]], Schema):
                  +166    """
                  +167    Schema based on a nested mapping.
                  +168
                  +169    Args:
                  +170        schema: Mapping in one of the following forms:
                  +171            1. {table: {col: type}}
                  +172            2. {db: {table: {col: type}}}
                  +173            3. {catalog: {db: {table: {col: type}}}}
                  +174            4. None - Tables will be added later
                  +175        visible: Optional mapping of which columns in the schema are visible. If not provided, all columns
                  +176            are assumed to be visible. The nesting should mirror that of the schema:
                  +177            1. {table: set(*cols)}}
                  +178            2. {db: {table: set(*cols)}}}
                  +179            3. {catalog: {db: {table: set(*cols)}}}}
                  +180        dialect: The dialect to be used for custom type mappings & parsing string arguments.
                  +181        normalize: Whether to normalize identifier names according to the given dialect or not.
                  +182    """
                  +183
                  +184    def __init__(
                  +185        self,
                  +186        schema: t.Optional[t.Dict] = None,
                  +187        visible: t.Optional[t.Dict] = None,
                  +188        dialect: DialectType = None,
                  +189        normalize: bool = True,
                  +190    ) -> None:
                  +191        self.dialect = dialect
                  +192        self.visible = visible or {}
                  +193        self.normalize = normalize
                  +194        self._type_mapping_cache: t.Dict[str, exp.DataType] = {}
                  +195
                  +196        super().__init__(self._normalize(schema or {}))
                  +197
                  +198    @classmethod
                  +199    def from_mapping_schema(cls, mapping_schema: MappingSchema) -> MappingSchema:
                  +200        return MappingSchema(
                  +201            schema=mapping_schema.mapping,
                  +202            visible=mapping_schema.visible,
                  +203            dialect=mapping_schema.dialect,
                  +204        )
                  +205
                  +206    def copy(self, **kwargs) -> MappingSchema:
                  +207        return MappingSchema(
                  +208            **{  # type: ignore
                  +209                "schema": self.mapping.copy(),
                  +210                "visible": self.visible.copy(),
                  +211                "dialect": self.dialect,
                  +212                **kwargs,
                  +213            }
                  +214        )
                  +215
                  +216    def add_table(
                  +217        self,
                  +218        table: exp.Table | str,
                  +219        column_mapping: t.Optional[ColumnMapping] = None,
                  +220        dialect: DialectType = None,
                  +221    ) -> None:
                  +222        """
                  +223        Register or update a table. Updates are only performed if a new column mapping is provided.
                  +224
                  +225        Args:
                  +226            table: the `Table` expression instance or string representing the table.
                  +227            column_mapping: a column mapping that describes the structure of the table.
                  +228            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                  +229        """
                  +230        normalized_table = self._normalize_table(
                  +231            self._ensure_table(table, dialect=dialect), dialect=dialect
                  +232        )
                  +233        normalized_column_mapping = {
                  +234            self._normalize_name(key, dialect=dialect): value
                  +235            for key, value in ensure_column_mapping(column_mapping).items()
                  +236        }
                   237
                  -238        nested_set(self.mapping, tuple(reversed(parts)), normalized_column_mapping)
                  -239        new_trie([parts], self.mapping_trie)
                  -240
                  -241    def column_names(
                  -242        self,
                  -243        table: exp.Table | str,
                  -244        only_visible: bool = False,
                  -245        dialect: DialectType = None,
                  -246    ) -> t.List[str]:
                  -247        normalized_table = self._normalize_table(
                  -248            self._ensure_table(table, dialect=dialect), dialect=dialect
                  -249        )
                  -250
                  -251        schema = self.find(normalized_table)
                  -252        if schema is None:
                  -253            return []
                  -254
                  -255        if not only_visible or not self.visible:
                  -256            return list(schema)
                  -257
                  -258        visible = self.nested_get(self.table_parts(normalized_table), self.visible) or []
                  -259        return [col for col in schema if col in visible]
                  +238        schema = self.find(normalized_table, raise_on_missing=False)
                  +239        if schema and not normalized_column_mapping:
                  +240            return
                  +241
                  +242        parts = self.table_parts(normalized_table)
                  +243
                  +244        nested_set(self.mapping, tuple(reversed(parts)), normalized_column_mapping)
                  +245        new_trie([parts], self.mapping_trie)
                  +246
                  +247    def column_names(
                  +248        self,
                  +249        table: exp.Table | str,
                  +250        only_visible: bool = False,
                  +251        dialect: DialectType = None,
                  +252    ) -> t.List[str]:
                  +253        normalized_table = self._normalize_table(
                  +254            self._ensure_table(table, dialect=dialect), dialect=dialect
                  +255        )
                  +256
                  +257        schema = self.find(normalized_table)
                  +258        if schema is None:
                  +259            return []
                   260
                  -261    def get_column_type(
                  -262        self,
                  -263        table: exp.Table | str,
                  -264        column: exp.Column,
                  -265        dialect: DialectType = None,
                  -266    ) -> exp.DataType:
                  -267        normalized_table = self._normalize_table(
                  -268            self._ensure_table(table, dialect=dialect), dialect=dialect
                  -269        )
                  -270        normalized_column_name = self._normalize_name(
                  -271            column if isinstance(column, str) else column.this, dialect=dialect
                  -272        )
                  -273
                  -274        table_schema = self.find(normalized_table, raise_on_missing=False)
                  -275        if table_schema:
                  -276            column_type = table_schema.get(normalized_column_name)
                  -277
                  -278            if isinstance(column_type, exp.DataType):
                  -279                return column_type
                  -280            elif isinstance(column_type, str):
                  -281                return self._to_data_type(column_type.upper(), dialect=dialect)
                  -282
                  -283            raise SchemaError(f"Unknown column type '{column_type}'")
                  -284
                  -285        return exp.DataType.build("unknown")
                  -286
                  -287    def _normalize(self, schema: t.Dict) -> t.Dict:
                  -288        """
                  -289        Converts all identifiers in the schema into lowercase, unless they're quoted.
                  +261        if not only_visible or not self.visible:
                  +262            return list(schema)
                  +263
                  +264        visible = self.nested_get(self.table_parts(normalized_table), self.visible) or []
                  +265        return [col for col in schema if col in visible]
                  +266
                  +267    def get_column_type(
                  +268        self,
                  +269        table: exp.Table | str,
                  +270        column: exp.Column,
                  +271        dialect: DialectType = None,
                  +272    ) -> exp.DataType:
                  +273        normalized_table = self._normalize_table(
                  +274            self._ensure_table(table, dialect=dialect), dialect=dialect
                  +275        )
                  +276        normalized_column_name = self._normalize_name(
                  +277            column if isinstance(column, str) else column.this, dialect=dialect
                  +278        )
                  +279
                  +280        table_schema = self.find(normalized_table, raise_on_missing=False)
                  +281        if table_schema:
                  +282            column_type = table_schema.get(normalized_column_name)
                  +283
                  +284            if isinstance(column_type, exp.DataType):
                  +285                return column_type
                  +286            elif isinstance(column_type, str):
                  +287                return self._to_data_type(column_type.upper(), dialect=dialect)
                  +288
                  +289            raise SchemaError(f"Unknown column type '{column_type}'")
                   290
                  -291        Args:
                  -292            schema: the schema to normalize.
                  -293
                  -294        Returns:
                  -295            The normalized schema mapping.
                  -296        """
                  -297        flattened_schema = flatten_schema(schema, depth=dict_depth(schema) - 1)
                  -298
                  -299        normalized_mapping: t.Dict = {}
                  -300        for keys in flattened_schema:
                  -301            columns = nested_get(schema, *zip(keys, keys))
                  -302            assert columns is not None
                  -303
                  -304            normalized_keys = [self._normalize_name(key, dialect=self.dialect) for key in keys]
                  -305            for column_name, column_type in columns.items():
                  -306                nested_set(
                  -307                    normalized_mapping,
                  -308                    normalized_keys + [self._normalize_name(column_name, dialect=self.dialect)],
                  -309                    column_type,
                  -310                )
                  -311
                  -312        return normalized_mapping
                  -313
                  -314    def _normalize_table(self, table: exp.Table, dialect: DialectType = None) -> exp.Table:
                  -315        normalized_table = table.copy()
                  -316
                  -317        for arg in TABLE_ARGS:
                  -318            value = normalized_table.args.get(arg)
                  -319            if isinstance(value, (str, exp.Identifier)):
                  -320                normalized_table.set(arg, self._normalize_name(value, dialect=dialect))
                  -321
                  -322        return normalized_table
                  -323
                  -324    def _normalize_name(self, name: str | exp.Identifier, dialect: DialectType = None) -> str:
                  -325        dialect = dialect or self.dialect
                  -326
                  -327        try:
                  -328            identifier = sqlglot.maybe_parse(name, dialect=dialect, into=exp.Identifier)
                  -329        except ParseError:
                  -330            return name if isinstance(name, str) else name.name
                  +291        return exp.DataType.build("unknown")
                  +292
                  +293    def _normalize(self, schema: t.Dict) -> t.Dict:
                  +294        """
                  +295        Converts all identifiers in the schema into lowercase, unless they're quoted.
                  +296
                  +297        Args:
                  +298            schema: the schema to normalize.
                  +299
                  +300        Returns:
                  +301            The normalized schema mapping.
                  +302        """
                  +303        flattened_schema = flatten_schema(schema, depth=dict_depth(schema) - 1)
                  +304
                  +305        normalized_mapping: t.Dict = {}
                  +306        for keys in flattened_schema:
                  +307            columns = nested_get(schema, *zip(keys, keys))
                  +308            assert columns is not None
                  +309
                  +310            normalized_keys = [self._normalize_name(key, dialect=self.dialect) for key in keys]
                  +311            for column_name, column_type in columns.items():
                  +312                nested_set(
                  +313                    normalized_mapping,
                  +314                    normalized_keys + [self._normalize_name(column_name, dialect=self.dialect)],
                  +315                    column_type,
                  +316                )
                  +317
                  +318        return normalized_mapping
                  +319
                  +320    def _normalize_table(self, table: exp.Table, dialect: DialectType = None) -> exp.Table:
                  +321        normalized_table = table.copy()
                  +322
                  +323        for arg in TABLE_ARGS:
                  +324            value = normalized_table.args.get(arg)
                  +325            if isinstance(value, (str, exp.Identifier)):
                  +326                normalized_table.set(
                  +327                    arg, exp.to_identifier(self._normalize_name(value, dialect=dialect))
                  +328                )
                  +329
                  +330        return normalized_table
                   331
                  -332        return identifier.name if identifier.quoted else identifier.name.lower()
                  -333
                  -334    def _depth(self) -> int:
                  -335        # The columns themselves are a mapping, but we don't want to include those
                  -336        return super()._depth() - 1
                  -337
                  -338    def _ensure_table(self, table: exp.Table | str, dialect: DialectType = None) -> exp.Table:
                  -339        if isinstance(table, exp.Table):
                  -340            return table
                  +332    def _normalize_name(self, name: str | exp.Identifier, dialect: DialectType = None) -> str:
                  +333        dialect = dialect or self.dialect
                  +334
                  +335        try:
                  +336            identifier = sqlglot.maybe_parse(name, dialect=dialect, into=exp.Identifier)
                  +337        except ParseError:
                  +338            return name if isinstance(name, str) else name.name
                  +339
                  +340        name = identifier.name
                   341
                  -342        dialect = dialect or self.dialect
                  -343        parsed_table = sqlglot.parse_one(table, read=dialect, into=exp.Table)
                  +342        if not self.normalize or identifier.quoted:
                  +343            return name
                   344
                  -345        if not parsed_table:
                  -346            in_dialect = f" in dialect {dialect}" if dialect else ""
                  -347            raise SchemaError(f"Failed to parse table '{table}'{in_dialect}.")
                  -348
                  -349        return parsed_table
                  +345        return name.upper() if dialect in RESOLVES_IDENTIFIERS_AS_UPPERCASE else name.lower()
                  +346
                  +347    def _depth(self) -> int:
                  +348        # The columns themselves are a mapping, but we don't want to include those
                  +349        return super()._depth() - 1
                   350
                  -351    def _to_data_type(self, schema_type: str, dialect: DialectType = None) -> exp.DataType:
                  -352        """
                  -353        Convert a type represented as a string to the corresponding `sqlglot.exp.DataType` object.
                  -354
                  -355        Args:
                  -356            schema_type: the type we want to convert.
                  -357            dialect: the SQL dialect that will be used to parse `schema_type`, if needed.
                  -358
                  -359        Returns:
                  -360            The resulting expression type.
                  -361        """
                  -362        if schema_type not in self._type_mapping_cache:
                  -363            dialect = dialect or self.dialect
                  -364
                  -365            try:
                  -366                expression = exp.DataType.build(schema_type, dialect=dialect)
                  -367                self._type_mapping_cache[schema_type] = expression
                  -368            except AttributeError:
                  -369                in_dialect = f" in dialect {dialect}" if dialect else ""
                  -370                raise SchemaError(f"Failed to build type '{schema_type}'{in_dialect}.")
                  -371
                  -372        return self._type_mapping_cache[schema_type]
                  +351    def _ensure_table(self, table: exp.Table | str, dialect: DialectType = None) -> exp.Table:
                  +352        return exp.maybe_parse(table, into=exp.Table, dialect=dialect or self.dialect)
                  +353
                  +354    def _to_data_type(self, schema_type: str, dialect: DialectType = None) -> exp.DataType:
                  +355        """
                  +356        Convert a type represented as a string to the corresponding `sqlglot.exp.DataType` object.
                  +357
                  +358        Args:
                  +359            schema_type: the type we want to convert.
                  +360            dialect: the SQL dialect that will be used to parse `schema_type`, if needed.
                  +361
                  +362        Returns:
                  +363            The resulting expression type.
                  +364        """
                  +365        if schema_type not in self._type_mapping_cache:
                  +366            dialect = dialect or self.dialect
                  +367
                  +368            try:
                  +369                expression = exp.DataType.build(schema_type, dialect=dialect)
                  +370                self._type_mapping_cache[schema_type] = expression
                  +371            except AttributeError:
                  +372                in_dialect = f" in dialect {dialect}" if dialect else ""
                  +373                raise SchemaError(f"Failed to build type '{schema_type}'{in_dialect}.")
                  +374
                  +375        return self._type_mapping_cache[schema_type]
                   
                  @@ -1328,6 +1333,7 @@ are assumed to be visible. The nesting should mirror that of the schema:
                • {catalog: {db: {table: set(*cols)}}}}
                • dialect: The dialect to be used for custom type mappings & parsing string arguments.
                • +
                • normalize: Whether to normalize identifier names according to the given dialect or not.
                @@ -1336,23 +1342,25 @@ are assumed to be visible. The nesting should mirror that of the schema:
                - MappingSchema( schema: Optional[Dict] = None, visible: Optional[Dict] = None, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) + MappingSchema( schema: Optional[Dict] = None, visible: Optional[Dict] = None, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None, normalize: bool = True)
                -
                180    def __init__(
                -181        self,
                -182        schema: t.Optional[t.Dict] = None,
                -183        visible: t.Optional[t.Dict] = None,
                -184        dialect: DialectType = None,
                -185    ) -> None:
                -186        self.dialect = dialect
                -187        self.visible = visible or {}
                -188        self._type_mapping_cache: t.Dict[str, exp.DataType] = {}
                -189
                -190        super().__init__(self._normalize(schema or {}))
                +            
                184    def __init__(
                +185        self,
                +186        schema: t.Optional[t.Dict] = None,
                +187        visible: t.Optional[t.Dict] = None,
                +188        dialect: DialectType = None,
                +189        normalize: bool = True,
                +190    ) -> None:
                +191        self.dialect = dialect
                +192        self.visible = visible or {}
                +193        self.normalize = normalize
                +194        self._type_mapping_cache: t.Dict[str, exp.DataType] = {}
                +195
                +196        super().__init__(self._normalize(schema or {}))
                 
                @@ -1371,13 +1379,13 @@ are assumed to be visible. The nesting should mirror that of the schema:
                -
                192    @classmethod
                -193    def from_mapping_schema(cls, mapping_schema: MappingSchema) -> MappingSchema:
                -194        return MappingSchema(
                -195            schema=mapping_schema.mapping,
                -196            visible=mapping_schema.visible,
                -197            dialect=mapping_schema.dialect,
                -198        )
                +            
                198    @classmethod
                +199    def from_mapping_schema(cls, mapping_schema: MappingSchema) -> MappingSchema:
                +200        return MappingSchema(
                +201            schema=mapping_schema.mapping,
                +202            visible=mapping_schema.visible,
                +203            dialect=mapping_schema.dialect,
                +204        )
                 
                @@ -1395,15 +1403,15 @@ are assumed to be visible. The nesting should mirror that of the schema:
                -
                200    def copy(self, **kwargs) -> MappingSchema:
                -201        return MappingSchema(
                -202            **{  # type: ignore
                -203                "schema": self.mapping.copy(),
                -204                "visible": self.visible.copy(),
                -205                "dialect": self.dialect,
                -206                **kwargs,
                -207            }
                -208        )
                +            
                206    def copy(self, **kwargs) -> MappingSchema:
                +207        return MappingSchema(
                +208            **{  # type: ignore
                +209                "schema": self.mapping.copy(),
                +210                "visible": self.visible.copy(),
                +211                "dialect": self.dialect,
                +212                **kwargs,
                +213            }
                +214        )
                 
                @@ -1421,36 +1429,36 @@ are assumed to be visible. The nesting should mirror that of the schema:
                -
                210    def add_table(
                -211        self,
                -212        table: exp.Table | str,
                -213        column_mapping: t.Optional[ColumnMapping] = None,
                -214        dialect: DialectType = None,
                -215    ) -> None:
                -216        """
                -217        Register or update a table. Updates are only performed if a new column mapping is provided.
                -218
                -219        Args:
                -220            table: the `Table` expression instance or string representing the table.
                -221            column_mapping: a column mapping that describes the structure of the table.
                -222            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                -223        """
                -224        normalized_table = self._normalize_table(
                -225            self._ensure_table(table, dialect=dialect), dialect=dialect
                -226        )
                -227        normalized_column_mapping = {
                -228            self._normalize_name(key, dialect=dialect): value
                -229            for key, value in ensure_column_mapping(column_mapping).items()
                -230        }
                -231
                -232        schema = self.find(normalized_table, raise_on_missing=False)
                -233        if schema and not normalized_column_mapping:
                -234            return
                -235
                -236        parts = self.table_parts(normalized_table)
                +            
                216    def add_table(
                +217        self,
                +218        table: exp.Table | str,
                +219        column_mapping: t.Optional[ColumnMapping] = None,
                +220        dialect: DialectType = None,
                +221    ) -> None:
                +222        """
                +223        Register or update a table. Updates are only performed if a new column mapping is provided.
                +224
                +225        Args:
                +226            table: the `Table` expression instance or string representing the table.
                +227            column_mapping: a column mapping that describes the structure of the table.
                +228            dialect: the SQL dialect that will be used to parse `table` if it's a string.
                +229        """
                +230        normalized_table = self._normalize_table(
                +231            self._ensure_table(table, dialect=dialect), dialect=dialect
                +232        )
                +233        normalized_column_mapping = {
                +234            self._normalize_name(key, dialect=dialect): value
                +235            for key, value in ensure_column_mapping(column_mapping).items()
                +236        }
                 237
                -238        nested_set(self.mapping, tuple(reversed(parts)), normalized_column_mapping)
                -239        new_trie([parts], self.mapping_trie)
                +238        schema = self.find(normalized_table, raise_on_missing=False)
                +239        if schema and not normalized_column_mapping:
                +240            return
                +241
                +242        parts = self.table_parts(normalized_table)
                +243
                +244        nested_set(self.mapping, tuple(reversed(parts)), normalized_column_mapping)
                +245        new_trie([parts], self.mapping_trie)
                 
                @@ -1478,25 +1486,25 @@ are assumed to be visible. The nesting should mirror that of the schema:
                -
                241    def column_names(
                -242        self,
                -243        table: exp.Table | str,
                -244        only_visible: bool = False,
                -245        dialect: DialectType = None,
                -246    ) -> t.List[str]:
                -247        normalized_table = self._normalize_table(
                -248            self._ensure_table(table, dialect=dialect), dialect=dialect
                -249        )
                -250
                -251        schema = self.find(normalized_table)
                -252        if schema is None:
                -253            return []
                -254
                -255        if not only_visible or not self.visible:
                -256            return list(schema)
                -257
                -258        visible = self.nested_get(self.table_parts(normalized_table), self.visible) or []
                -259        return [col for col in schema if col in visible]
                +            
                247    def column_names(
                +248        self,
                +249        table: exp.Table | str,
                +250        only_visible: bool = False,
                +251        dialect: DialectType = None,
                +252    ) -> t.List[str]:
                +253        normalized_table = self._normalize_table(
                +254            self._ensure_table(table, dialect=dialect), dialect=dialect
                +255        )
                +256
                +257        schema = self.find(normalized_table)
                +258        if schema is None:
                +259            return []
                +260
                +261        if not only_visible or not self.visible:
                +262            return list(schema)
                +263
                +264        visible = self.nested_get(self.table_parts(normalized_table), self.visible) or []
                +265        return [col for col in schema if col in visible]
                 
                @@ -1530,31 +1538,31 @@ are assumed to be visible. The nesting should mirror that of the schema:
                -
                261    def get_column_type(
                -262        self,
                -263        table: exp.Table | str,
                -264        column: exp.Column,
                -265        dialect: DialectType = None,
                -266    ) -> exp.DataType:
                -267        normalized_table = self._normalize_table(
                -268            self._ensure_table(table, dialect=dialect), dialect=dialect
                -269        )
                -270        normalized_column_name = self._normalize_name(
                -271            column if isinstance(column, str) else column.this, dialect=dialect
                -272        )
                -273
                -274        table_schema = self.find(normalized_table, raise_on_missing=False)
                -275        if table_schema:
                -276            column_type = table_schema.get(normalized_column_name)
                -277
                -278            if isinstance(column_type, exp.DataType):
                -279                return column_type
                -280            elif isinstance(column_type, str):
                -281                return self._to_data_type(column_type.upper(), dialect=dialect)
                -282
                -283            raise SchemaError(f"Unknown column type '{column_type}'")
                -284
                -285        return exp.DataType.build("unknown")
                +            
                267    def get_column_type(
                +268        self,
                +269        table: exp.Table | str,
                +270        column: exp.Column,
                +271        dialect: DialectType = None,
                +272    ) -> exp.DataType:
                +273        normalized_table = self._normalize_table(
                +274            self._ensure_table(table, dialect=dialect), dialect=dialect
                +275        )
                +276        normalized_column_name = self._normalize_name(
                +277            column if isinstance(column, str) else column.this, dialect=dialect
                +278        )
                +279
                +280        table_schema = self.find(normalized_table, raise_on_missing=False)
                +281        if table_schema:
                +282            column_type = table_schema.get(normalized_column_name)
                +283
                +284            if isinstance(column_type, exp.DataType):
                +285                return column_type
                +286            elif isinstance(column_type, str):
                +287                return self._to_data_type(column_type.upper(), dialect=dialect)
                +288
                +289            raise SchemaError(f"Unknown column type '{column_type}'")
                +290
                +291        return exp.DataType.build("unknown")
                 
                @@ -1596,17 +1604,17 @@ are assumed to be visible. The nesting should mirror that of the schema:
                def - ensure_schema( schema: Any, dialect: Union[str, sqlglot.dialects.dialect.Dialect, Type[sqlglot.dialects.dialect.Dialect], NoneType] = None) -> sqlglot.schema.Schema: + ensure_schema( schema: Union[sqlglot.schema.Schema, Dict, NoneType], **kwargs: Any) -> sqlglot.schema.Schema:
                -
                375def ensure_schema(schema: t.Any, dialect: DialectType = None) -> Schema:
                -376    if isinstance(schema, Schema):
                -377        return schema
                -378
                -379    return MappingSchema(schema, dialect=dialect)
                +            
                378def ensure_schema(schema: Schema | t.Optional[t.Dict], **kwargs: t.Any) -> Schema:
                +379    if isinstance(schema, Schema):
                +380        return schema
                +381
                +382    return MappingSchema(schema, **kwargs)
                 
                @@ -1624,24 +1632,24 @@ are assumed to be visible. The nesting should mirror that of the schema:
                -
                382def ensure_column_mapping(mapping: t.Optional[ColumnMapping]) -> t.Dict:
                -383    if mapping is None:
                -384        return {}
                -385    elif isinstance(mapping, dict):
                -386        return mapping
                -387    elif isinstance(mapping, str):
                -388        col_name_type_strs = [x.strip() for x in mapping.split(",")]
                -389        return {
                -390            name_type_str.split(":")[0].strip(): name_type_str.split(":")[1].strip()
                -391            for name_type_str in col_name_type_strs
                -392        }
                -393    # Check if mapping looks like a DataFrame StructType
                -394    elif hasattr(mapping, "simpleString"):
                -395        return {struct_field.name: struct_field.dataType.simpleString() for struct_field in mapping}
                -396    elif isinstance(mapping, list):
                -397        return {x.strip(): None for x in mapping}
                -398
                -399    raise ValueError(f"Invalid mapping provided: {type(mapping)}")
                +            
                385def ensure_column_mapping(mapping: t.Optional[ColumnMapping]) -> t.Dict:
                +386    if mapping is None:
                +387        return {}
                +388    elif isinstance(mapping, dict):
                +389        return mapping
                +390    elif isinstance(mapping, str):
                +391        col_name_type_strs = [x.strip() for x in mapping.split(",")]
                +392        return {
                +393            name_type_str.split(":")[0].strip(): name_type_str.split(":")[1].strip()
                +394            for name_type_str in col_name_type_strs
                +395        }
                +396    # Check if mapping looks like a DataFrame StructType
                +397    elif hasattr(mapping, "simpleString"):
                +398        return {struct_field.name: struct_field.dataType.simpleString() for struct_field in mapping}
                +399    elif isinstance(mapping, list):
                +400        return {x.strip(): None for x in mapping}
                +401
                +402    raise ValueError(f"Invalid mapping provided: {type(mapping)}")
                 
                @@ -1659,19 +1667,19 @@ are assumed to be visible. The nesting should mirror that of the schema:
                -
                402def flatten_schema(
                -403    schema: t.Dict, depth: int, keys: t.Optional[t.List[str]] = None
                -404) -> t.List[t.List[str]]:
                -405    tables = []
                -406    keys = keys or []
                -407
                -408    for k, v in schema.items():
                -409        if depth >= 2:
                -410            tables.extend(flatten_schema(v, depth - 1, keys + [k]))
                -411        elif depth == 1:
                -412            tables.append(keys + [k])
                -413
                -414    return tables
                +            
                405def flatten_schema(
                +406    schema: t.Dict, depth: int, keys: t.Optional[t.List[str]] = None
                +407) -> t.List[t.List[str]]:
                +408    tables = []
                +409    keys = keys or []
                +410
                +411    for k, v in schema.items():
                +412        if depth >= 2:
                +413            tables.extend(flatten_schema(v, depth - 1, keys + [k]))
                +414        elif depth == 1:
                +415            tables.append(keys + [k])
                +416
                +417    return tables
                 
                @@ -1689,30 +1697,30 @@ are assumed to be visible. The nesting should mirror that of the schema:
                -
                417def nested_get(
                -418    d: t.Dict, *path: t.Tuple[str, str], raise_on_missing: bool = True
                -419) -> t.Optional[t.Any]:
                -420    """
                -421    Get a value for a nested dictionary.
                -422
                -423    Args:
                -424        d: the dictionary to search.
                -425        *path: tuples of (name, key), where:
                -426            `key` is the key in the dictionary to get.
                -427            `name` is a string to use in the error if `key` isn't found.
                -428
                -429    Returns:
                -430        The value or None if it doesn't exist.
                -431    """
                -432    for name, key in path:
                -433        d = d.get(key)  # type: ignore
                -434        if d is None:
                -435            if raise_on_missing:
                -436                name = "table" if name == "this" else name
                -437                raise ValueError(f"Unknown {name}: {key}")
                -438            return None
                -439
                -440    return d
                +            
                420def nested_get(
                +421    d: t.Dict, *path: t.Tuple[str, str], raise_on_missing: bool = True
                +422) -> t.Optional[t.Any]:
                +423    """
                +424    Get a value for a nested dictionary.
                +425
                +426    Args:
                +427        d: the dictionary to search.
                +428        *path: tuples of (name, key), where:
                +429            `key` is the key in the dictionary to get.
                +430            `name` is a string to use in the error if `key` isn't found.
                +431
                +432    Returns:
                +433        The value or None if it doesn't exist.
                +434    """
                +435    for name, key in path:
                +436        d = d.get(key)  # type: ignore
                +437        if d is None:
                +438            if raise_on_missing:
                +439                name = "table" if name == "this" else name
                +440                raise ValueError(f"Unknown {name}: {key}")
                +441            return None
                +442
                +443    return d
                 
                @@ -1747,41 +1755,41 @@ are assumed to be visible. The nesting should mirror that of the schema:
                -
                443def nested_set(d: t.Dict, keys: t.Sequence[str], value: t.Any) -> t.Dict:
                -444    """
                -445    In-place set a value for a nested dictionary
                -446
                -447    Example:
                -448        >>> nested_set({}, ["top_key", "second_key"], "value")
                -449        {'top_key': {'second_key': 'value'}}
                -450
                -451        >>> nested_set({"top_key": {"third_key": "third_value"}}, ["top_key", "second_key"], "value")
                -452        {'top_key': {'third_key': 'third_value', 'second_key': 'value'}}
                +            
                446def nested_set(d: t.Dict, keys: t.Sequence[str], value: t.Any) -> t.Dict:
                +447    """
                +448    In-place set a value for a nested dictionary
                +449
                +450    Example:
                +451        >>> nested_set({}, ["top_key", "second_key"], "value")
                +452        {'top_key': {'second_key': 'value'}}
                 453
                -454    Args:
                -455        d: dictionary to update.
                -456        keys: the keys that makeup the path to `value`.
                -457        value: the value to set in the dictionary for the given key path.
                -458
                -459    Returns:
                -460        The (possibly) updated dictionary.
                -461    """
                -462    if not keys:
                -463        return d
                -464
                -465    if len(keys) == 1:
                -466        d[keys[0]] = value
                -467        return d
                -468
                -469    subd = d
                -470    for key in keys[:-1]:
                -471        if key not in subd:
                -472            subd = subd.setdefault(key, {})
                -473        else:
                -474            subd = subd[key]
                -475
                -476    subd[keys[-1]] = value
                -477    return d
                +454        >>> nested_set({"top_key": {"third_key": "third_value"}}, ["top_key", "second_key"], "value")
                +455        {'top_key': {'third_key': 'third_value', 'second_key': 'value'}}
                +456
                +457    Args:
                +458        d: dictionary to update.
                +459        keys: the keys that makeup the path to `value`.
                +460        value: the value to set in the dictionary for the given key path.
                +461
                +462    Returns:
                +463        The (possibly) updated dictionary.
                +464    """
                +465    if not keys:
                +466        return d
                +467
                +468    if len(keys) == 1:
                +469        d[keys[0]] = value
                +470        return d
                +471
                +472    subd = d
                +473    for key in keys[:-1]:
                +474        if key not in subd:
                +475            subd = subd.setdefault(key, {})
                +476        else:
                +477            subd = subd[key]
                +478
                +479    subd[keys[-1]] = value
                +480    return d
                 
                diff --git a/docs/sqlglot/tokens.html b/docs/sqlglot/tokens.html index a622c55..e11806a 100644 --- a/docs/sqlglot/tokens.html +++ b/docs/sqlglot/tokens.html @@ -333,6 +333,42 @@
              • DATE
              • +
              • + INT4RANGE +
              • +
              • + INT4MULTIRANGE +
              • +
              • + INT8RANGE +
              • +
              • + INT8MULTIRANGE +
              • +
              • + NUMRANGE +
              • +
              • + NUMMULTIRANGE +
              • +
              • + TSRANGE +
              • +
              • + TSMULTIRANGE +
              • +
              • + TSTZRANGE +
              • +
              • + TSTZMULTIRANGE +
              • +
              • + DATERANGE +
              • +
              • + DATEMULTIRANGE +
              • UUID
              • @@ -489,6 +525,9 @@
              • DESCRIBE
              • +
              • + DICTIONARY +
              • DISTINCT
              • @@ -1029,996 +1068,1021 @@
                113 DATETIME = auto() 114 DATETIME64 = auto() 115 DATE = auto() - 116 UUID = auto() - 117 GEOGRAPHY = auto() - 118 NULLABLE = auto() - 119 GEOMETRY = auto() - 120 HLLSKETCH = auto() - 121 HSTORE = auto() - 122 SUPER = auto() - 123 SERIAL = auto() - 124 SMALLSERIAL = auto() - 125 BIGSERIAL = auto() - 126 XML = auto() - 127 UNIQUEIDENTIFIER = auto() - 128 MONEY = auto() - 129 SMALLMONEY = auto() - 130 ROWVERSION = auto() - 131 IMAGE = auto() - 132 VARIANT = auto() - 133 OBJECT = auto() - 134 INET = auto() - 135 - 136 # keywords - 137 ALIAS = auto() - 138 ALTER = auto() - 139 ALWAYS = auto() - 140 ALL = auto() - 141 ANTI = auto() - 142 ANY = auto() - 143 APPLY = auto() - 144 ARRAY = auto() - 145 ASC = auto() - 146 ASOF = auto() - 147 AUTO_INCREMENT = auto() - 148 BEGIN = auto() - 149 BETWEEN = auto() - 150 CACHE = auto() - 151 CASE = auto() - 152 CHARACTER_SET = auto() - 153 COLLATE = auto() - 154 COMMAND = auto() - 155 COMMENT = auto() - 156 COMMIT = auto() - 157 CONSTRAINT = auto() - 158 CREATE = auto() - 159 CROSS = auto() - 160 CUBE = auto() - 161 CURRENT_DATE = auto() - 162 CURRENT_DATETIME = auto() - 163 CURRENT_TIME = auto() - 164 CURRENT_TIMESTAMP = auto() - 165 CURRENT_USER = auto() - 166 DEFAULT = auto() - 167 DELETE = auto() - 168 DESC = auto() - 169 DESCRIBE = auto() - 170 DISTINCT = auto() - 171 DIV = auto() - 172 DROP = auto() - 173 ELSE = auto() - 174 END = auto() - 175 ESCAPE = auto() - 176 EXCEPT = auto() - 177 EXECUTE = auto() - 178 EXISTS = auto() - 179 FALSE = auto() - 180 FETCH = auto() - 181 FILTER = auto() - 182 FINAL = auto() - 183 FIRST = auto() - 184 FOR = auto() - 185 FOREIGN_KEY = auto() - 186 FORMAT = auto() - 187 FROM = auto() - 188 FULL = auto() - 189 FUNCTION = auto() - 190 GLOB = auto() - 191 GLOBAL = auto() - 192 GROUP_BY = auto() - 193 GROUPING_SETS = auto() - 194 HAVING = auto() - 195 HINT = auto() - 196 IF = auto() - 197 ILIKE = auto() - 198 ILIKE_ANY = auto() - 199 IN = auto() - 200 INDEX = auto() - 201 INNER = auto() - 202 INSERT = auto() - 203 INTERSECT = auto() - 204 INTERVAL = auto() - 205 INTO = auto() - 206 INTRODUCER = auto() - 207 IRLIKE = auto() - 208 IS = auto() - 209 ISNULL = auto() - 210 JOIN = auto() - 211 JOIN_MARKER = auto() - 212 KEEP = auto() - 213 LANGUAGE = auto() - 214 LATERAL = auto() - 215 LEFT = auto() - 216 LIKE = auto() - 217 LIKE_ANY = auto() - 218 LIMIT = auto() - 219 LOAD = auto() - 220 LOCK = auto() - 221 MAP = auto() - 222 MATCH_RECOGNIZE = auto() - 223 MERGE = auto() - 224 MOD = auto() - 225 NATURAL = auto() - 226 NEXT = auto() - 227 NEXT_VALUE_FOR = auto() - 228 NOTNULL = auto() - 229 NULL = auto() - 230 OFFSET = auto() - 231 ON = auto() - 232 ORDER_BY = auto() - 233 ORDERED = auto() - 234 ORDINALITY = auto() - 235 OUTER = auto() - 236 OVER = auto() - 237 OVERLAPS = auto() - 238 OVERWRITE = auto() - 239 PARTITION = auto() - 240 PARTITION_BY = auto() - 241 PERCENT = auto() - 242 PIVOT = auto() - 243 PLACEHOLDER = auto() - 244 PRAGMA = auto() - 245 PRIMARY_KEY = auto() - 246 PROCEDURE = auto() - 247 PROPERTIES = auto() - 248 PSEUDO_TYPE = auto() - 249 QUALIFY = auto() - 250 QUOTE = auto() - 251 RANGE = auto() - 252 RECURSIVE = auto() - 253 REPLACE = auto() - 254 RETURNING = auto() - 255 REFERENCES = auto() - 256 RIGHT = auto() - 257 RLIKE = auto() - 258 ROLLBACK = auto() - 259 ROLLUP = auto() - 260 ROW = auto() - 261 ROWS = auto() - 262 SELECT = auto() - 263 SEMI = auto() - 264 SEPARATOR = auto() - 265 SERDE_PROPERTIES = auto() - 266 SET = auto() - 267 SETTINGS = auto() - 268 SHOW = auto() - 269 SIMILAR_TO = auto() - 270 SOME = auto() - 271 STRUCT = auto() - 272 TABLE_SAMPLE = auto() - 273 TEMPORARY = auto() - 274 TOP = auto() - 275 THEN = auto() - 276 TRUE = auto() - 277 UNCACHE = auto() - 278 UNION = auto() - 279 UNNEST = auto() - 280 UNPIVOT = auto() - 281 UPDATE = auto() - 282 USE = auto() - 283 USING = auto() - 284 VALUES = auto() - 285 VIEW = auto() - 286 VOLATILE = auto() - 287 WHEN = auto() - 288 WHERE = auto() - 289 WINDOW = auto() - 290 WITH = auto() - 291 UNIQUE = auto() - 292 - 293 - 294class Token: - 295 __slots__ = ("token_type", "text", "line", "col", "start", "end", "comments") - 296 - 297 @classmethod - 298 def number(cls, number: int) -> Token: - 299 """Returns a NUMBER token with `number` as its text.""" - 300 return cls(TokenType.NUMBER, str(number)) - 301 - 302 @classmethod - 303 def string(cls, string: str) -> Token: - 304 """Returns a STRING token with `string` as its text.""" - 305 return cls(TokenType.STRING, string) + 116 INT4RANGE = auto() + 117 INT4MULTIRANGE = auto() + 118 INT8RANGE = auto() + 119 INT8MULTIRANGE = auto() + 120 NUMRANGE = auto() + 121 NUMMULTIRANGE = auto() + 122 TSRANGE = auto() + 123 TSMULTIRANGE = auto() + 124 TSTZRANGE = auto() + 125 TSTZMULTIRANGE = auto() + 126 DATERANGE = auto() + 127 DATEMULTIRANGE = auto() + 128 UUID = auto() + 129 GEOGRAPHY = auto() + 130 NULLABLE = auto() + 131 GEOMETRY = auto() + 132 HLLSKETCH = auto() + 133 HSTORE = auto() + 134 SUPER = auto() + 135 SERIAL = auto() + 136 SMALLSERIAL = auto() + 137 BIGSERIAL = auto() + 138 XML = auto() + 139 UNIQUEIDENTIFIER = auto() + 140 MONEY = auto() + 141 SMALLMONEY = auto() + 142 ROWVERSION = auto() + 143 IMAGE = auto() + 144 VARIANT = auto() + 145 OBJECT = auto() + 146 INET = auto() + 147 + 148 # keywords + 149 ALIAS = auto() + 150 ALTER = auto() + 151 ALWAYS = auto() + 152 ALL = auto() + 153 ANTI = auto() + 154 ANY = auto() + 155 APPLY = auto() + 156 ARRAY = auto() + 157 ASC = auto() + 158 ASOF = auto() + 159 AUTO_INCREMENT = auto() + 160 BEGIN = auto() + 161 BETWEEN = auto() + 162 CACHE = auto() + 163 CASE = auto() + 164 CHARACTER_SET = auto() + 165 COLLATE = auto() + 166 COMMAND = auto() + 167 COMMENT = auto() + 168 COMMIT = auto() + 169 CONSTRAINT = auto() + 170 CREATE = auto() + 171 CROSS = auto() + 172 CUBE = auto() + 173 CURRENT_DATE = auto() + 174 CURRENT_DATETIME = auto() + 175 CURRENT_TIME = auto() + 176 CURRENT_TIMESTAMP = auto() + 177 CURRENT_USER = auto() + 178 DEFAULT = auto() + 179 DELETE = auto() + 180 DESC = auto() + 181 DESCRIBE = auto() + 182 DICTIONARY = auto() + 183 DISTINCT = auto() + 184 DIV = auto() + 185 DROP = auto() + 186 ELSE = auto() + 187 END = auto() + 188 ESCAPE = auto() + 189 EXCEPT = auto() + 190 EXECUTE = auto() + 191 EXISTS = auto() + 192 FALSE = auto() + 193 FETCH = auto() + 194 FILTER = auto() + 195 FINAL = auto() + 196 FIRST = auto() + 197 FOR = auto() + 198 FOREIGN_KEY = auto() + 199 FORMAT = auto() + 200 FROM = auto() + 201 FULL = auto() + 202 FUNCTION = auto() + 203 GLOB = auto() + 204 GLOBAL = auto() + 205 GROUP_BY = auto() + 206 GROUPING_SETS = auto() + 207 HAVING = auto() + 208 HINT = auto() + 209 IF = auto() + 210 ILIKE = auto() + 211 ILIKE_ANY = auto() + 212 IN = auto() + 213 INDEX = auto() + 214 INNER = auto() + 215 INSERT = auto() + 216 INTERSECT = auto() + 217 INTERVAL = auto() + 218 INTO = auto() + 219 INTRODUCER = auto() + 220 IRLIKE = auto() + 221 IS = auto() + 222 ISNULL = auto() + 223 JOIN = auto() + 224 JOIN_MARKER = auto() + 225 KEEP = auto() + 226 LANGUAGE = auto() + 227 LATERAL = auto() + 228 LEFT = auto() + 229 LIKE = auto() + 230 LIKE_ANY = auto() + 231 LIMIT = auto() + 232 LOAD = auto() + 233 LOCK = auto() + 234 MAP = auto() + 235 MATCH_RECOGNIZE = auto() + 236 MERGE = auto() + 237 MOD = auto() + 238 NATURAL = auto() + 239 NEXT = auto() + 240 NEXT_VALUE_FOR = auto() + 241 NOTNULL = auto() + 242 NULL = auto() + 243 OFFSET = auto() + 244 ON = auto() + 245 ORDER_BY = auto() + 246 ORDERED = auto() + 247 ORDINALITY = auto() + 248 OUTER = auto() + 249 OVER = auto() + 250 OVERLAPS = auto() + 251 OVERWRITE = auto() + 252 PARTITION = auto() + 253 PARTITION_BY = auto() + 254 PERCENT = auto() + 255 PIVOT = auto() + 256 PLACEHOLDER = auto() + 257 PRAGMA = auto() + 258 PRIMARY_KEY = auto() + 259 PROCEDURE = auto() + 260 PROPERTIES = auto() + 261 PSEUDO_TYPE = auto() + 262 QUALIFY = auto() + 263 QUOTE = auto() + 264 RANGE = auto() + 265 RECURSIVE = auto() + 266 REPLACE = auto() + 267 RETURNING = auto() + 268 REFERENCES = auto() + 269 RIGHT = auto() + 270 RLIKE = auto() + 271 ROLLBACK = auto() + 272 ROLLUP = auto() + 273 ROW = auto() + 274 ROWS = auto() + 275 SELECT = auto() + 276 SEMI = auto() + 277 SEPARATOR = auto() + 278 SERDE_PROPERTIES = auto() + 279 SET = auto() + 280 SETTINGS = auto() + 281 SHOW = auto() + 282 SIMILAR_TO = auto() + 283 SOME = auto() + 284 STRUCT = auto() + 285 TABLE_SAMPLE = auto() + 286 TEMPORARY = auto() + 287 TOP = auto() + 288 THEN = auto() + 289 TRUE = auto() + 290 UNCACHE = auto() + 291 UNION = auto() + 292 UNNEST = auto() + 293 UNPIVOT = auto() + 294 UPDATE = auto() + 295 USE = auto() + 296 USING = auto() + 297 VALUES = auto() + 298 VIEW = auto() + 299 VOLATILE = auto() + 300 WHEN = auto() + 301 WHERE = auto() + 302 WINDOW = auto() + 303 WITH = auto() + 304 UNIQUE = auto() + 305 306 - 307 @classmethod - 308 def identifier(cls, identifier: str) -> Token: - 309 """Returns an IDENTIFIER token with `identifier` as its text.""" - 310 return cls(TokenType.IDENTIFIER, identifier) - 311 - 312 @classmethod - 313 def var(cls, var: str) -> Token: - 314 """Returns an VAR token with `var` as its text.""" - 315 return cls(TokenType.VAR, var) - 316 - 317 def __init__( - 318 self, - 319 token_type: TokenType, - 320 text: str, - 321 line: int = 1, - 322 col: int = 1, - 323 start: int = 0, - 324 end: int = 0, - 325 comments: t.List[str] = [], - 326 ) -> None: - 327 """Token initializer. - 328 - 329 Args: - 330 token_type: The TokenType Enum. - 331 text: The text of the token. - 332 line: The line that the token ends on. - 333 col: The column that the token ends on. - 334 start: The start index of the token. - 335 end: The ending index of the token. - 336 """ - 337 self.token_type = token_type - 338 self.text = text - 339 self.line = line - 340 self.col = col - 341 self.start = start - 342 self.end = end - 343 self.comments = comments - 344 - 345 def __repr__(self) -> str: - 346 attributes = ", ".join(f"{k}: {getattr(self, k)}" for k in self.__slots__) - 347 return f"<Token {attributes}>" - 348 - 349 - 350class _Tokenizer(type): - 351 def __new__(cls, clsname, bases, attrs): - 352 klass = super().__new__(cls, clsname, bases, attrs) - 353 - 354 def _convert_quotes(arr: t.List[str | t.Tuple[str, str]]) -> t.Dict[str, str]: - 355 return dict( - 356 (item, item) if isinstance(item, str) else (item[0], item[1]) for item in arr - 357 ) - 358 - 359 def _quotes_to_format( - 360 token_type: TokenType, arr: t.List[str | t.Tuple[str, str]] - 361 ) -> t.Dict[str, t.Tuple[str, TokenType]]: - 362 return {k: (v, token_type) for k, v in _convert_quotes(arr).items()} - 363 - 364 klass._QUOTES = _convert_quotes(klass.QUOTES) - 365 klass._IDENTIFIERS = _convert_quotes(klass.IDENTIFIERS) + 307class Token: + 308 __slots__ = ("token_type", "text", "line", "col", "start", "end", "comments") + 309 + 310 @classmethod + 311 def number(cls, number: int) -> Token: + 312 """Returns a NUMBER token with `number` as its text.""" + 313 return cls(TokenType.NUMBER, str(number)) + 314 + 315 @classmethod + 316 def string(cls, string: str) -> Token: + 317 """Returns a STRING token with `string` as its text.""" + 318 return cls(TokenType.STRING, string) + 319 + 320 @classmethod + 321 def identifier(cls, identifier: str) -> Token: + 322 """Returns an IDENTIFIER token with `identifier` as its text.""" + 323 return cls(TokenType.IDENTIFIER, identifier) + 324 + 325 @classmethod + 326 def var(cls, var: str) -> Token: + 327 """Returns an VAR token with `var` as its text.""" + 328 return cls(TokenType.VAR, var) + 329 + 330 def __init__( + 331 self, + 332 token_type: TokenType, + 333 text: str, + 334 line: int = 1, + 335 col: int = 1, + 336 start: int = 0, + 337 end: int = 0, + 338 comments: t.List[str] = [], + 339 ) -> None: + 340 """Token initializer. + 341 + 342 Args: + 343 token_type: The TokenType Enum. + 344 text: The text of the token. + 345 line: The line that the token ends on. + 346 col: The column that the token ends on. + 347 start: The start index of the token. + 348 end: The ending index of the token. + 349 """ + 350 self.token_type = token_type + 351 self.text = text + 352 self.line = line + 353 self.col = col + 354 self.start = start + 355 self.end = end + 356 self.comments = comments + 357 + 358 def __repr__(self) -> str: + 359 attributes = ", ".join(f"{k}: {getattr(self, k)}" for k in self.__slots__) + 360 return f"<Token {attributes}>" + 361 + 362 + 363class _Tokenizer(type): + 364 def __new__(cls, clsname, bases, attrs): + 365 klass = super().__new__(cls, clsname, bases, attrs) 366 - 367 klass._FORMAT_STRINGS = { - 368 **{ - 369 p + s: (e, TokenType.NATIONAL_STRING) - 370 for s, e in klass._QUOTES.items() - 371 for p in ("n", "N") - 372 }, - 373 **_quotes_to_format(TokenType.BIT_STRING, klass.BIT_STRINGS), - 374 **_quotes_to_format(TokenType.BYTE_STRING, klass.BYTE_STRINGS), - 375 **_quotes_to_format(TokenType.HEX_STRING, klass.HEX_STRINGS), - 376 **_quotes_to_format(TokenType.RAW_STRING, klass.RAW_STRINGS), - 377 } - 378 - 379 klass._STRING_ESCAPES = set(klass.STRING_ESCAPES) - 380 klass._IDENTIFIER_ESCAPES = set(klass.IDENTIFIER_ESCAPES) - 381 klass._COMMENTS = dict( - 382 (comment, None) if isinstance(comment, str) else (comment[0], comment[1]) - 383 for comment in klass.COMMENTS - 384 ) - 385 - 386 klass.KEYWORD_TRIE = new_trie( - 387 key.upper() - 388 for key in ( - 389 *klass.KEYWORDS, - 390 *klass._COMMENTS, - 391 *klass._QUOTES, - 392 *klass._FORMAT_STRINGS, - 393 ) - 394 if " " in key or any(single in key for single in klass.SINGLE_TOKENS) - 395 ) - 396 - 397 return klass + 367 def _convert_quotes(arr: t.List[str | t.Tuple[str, str]]) -> t.Dict[str, str]: + 368 return dict( + 369 (item, item) if isinstance(item, str) else (item[0], item[1]) for item in arr + 370 ) + 371 + 372 def _quotes_to_format( + 373 token_type: TokenType, arr: t.List[str | t.Tuple[str, str]] + 374 ) -> t.Dict[str, t.Tuple[str, TokenType]]: + 375 return {k: (v, token_type) for k, v in _convert_quotes(arr).items()} + 376 + 377 klass._QUOTES = _convert_quotes(klass.QUOTES) + 378 klass._IDENTIFIERS = _convert_quotes(klass.IDENTIFIERS) + 379 + 380 klass._FORMAT_STRINGS = { + 381 **{ + 382 p + s: (e, TokenType.NATIONAL_STRING) + 383 for s, e in klass._QUOTES.items() + 384 for p in ("n", "N") + 385 }, + 386 **_quotes_to_format(TokenType.BIT_STRING, klass.BIT_STRINGS), + 387 **_quotes_to_format(TokenType.BYTE_STRING, klass.BYTE_STRINGS), + 388 **_quotes_to_format(TokenType.HEX_STRING, klass.HEX_STRINGS), + 389 **_quotes_to_format(TokenType.RAW_STRING, klass.RAW_STRINGS), + 390 } + 391 + 392 klass._STRING_ESCAPES = set(klass.STRING_ESCAPES) + 393 klass._IDENTIFIER_ESCAPES = set(klass.IDENTIFIER_ESCAPES) + 394 klass._COMMENTS = dict( + 395 (comment, None) if isinstance(comment, str) else (comment[0], comment[1]) + 396 for comment in klass.COMMENTS + 397 ) 398 - 399 - 400class Tokenizer(metaclass=_Tokenizer): - 401 SINGLE_TOKENS = { - 402 "(": TokenType.L_PAREN, - 403 ")": TokenType.R_PAREN, - 404 "[": TokenType.L_BRACKET, - 405 "]": TokenType.R_BRACKET, - 406 "{": TokenType.L_BRACE, - 407 "}": TokenType.R_BRACE, - 408 "&": TokenType.AMP, - 409 "^": TokenType.CARET, - 410 ":": TokenType.COLON, - 411 ",": TokenType.COMMA, - 412 ".": TokenType.DOT, - 413 "-": TokenType.DASH, - 414 "=": TokenType.EQ, - 415 ">": TokenType.GT, - 416 "<": TokenType.LT, - 417 "%": TokenType.MOD, - 418 "!": TokenType.NOT, - 419 "|": TokenType.PIPE, - 420 "+": TokenType.PLUS, - 421 ";": TokenType.SEMICOLON, - 422 "/": TokenType.SLASH, - 423 "\\": TokenType.BACKSLASH, - 424 "*": TokenType.STAR, - 425 "~": TokenType.TILDA, - 426 "?": TokenType.PLACEHOLDER, - 427 "@": TokenType.PARAMETER, - 428 # used for breaking a var like x'y' but nothing else - 429 # the token type doesn't matter - 430 "'": TokenType.QUOTE, - 431 "`": TokenType.IDENTIFIER, - 432 '"': TokenType.IDENTIFIER, - 433 "#": TokenType.HASH, - 434 } - 435 - 436 BIT_STRINGS: t.List[str | t.Tuple[str, str]] = [] - 437 BYTE_STRINGS: t.List[str | t.Tuple[str, str]] = [] - 438 HEX_STRINGS: t.List[str | t.Tuple[str, str]] = [] - 439 RAW_STRINGS: t.List[str | t.Tuple[str, str]] = [] - 440 IDENTIFIERS: t.List[str | t.Tuple[str, str]] = ['"'] - 441 IDENTIFIER_ESCAPES = ['"'] - 442 QUOTES: t.List[t.Tuple[str, str] | str] = ["'"] - 443 STRING_ESCAPES = ["'"] - 444 VAR_SINGLE_TOKENS: t.Set[str] = set() - 445 - 446 _COMMENTS: t.Dict[str, str] = {} - 447 _FORMAT_STRINGS: t.Dict[str, t.Tuple[str, TokenType]] = {} - 448 _IDENTIFIERS: t.Dict[str, str] = {} - 449 _IDENTIFIER_ESCAPES: t.Set[str] = set() - 450 _QUOTES: t.Dict[str, str] = {} - 451 _STRING_ESCAPES: t.Set[str] = set() - 452 - 453 KEYWORDS: t.Dict[t.Optional[str], TokenType] = { - 454 **{f"{{%{postfix}": TokenType.BLOCK_START for postfix in ("", "+", "-")}, - 455 **{f"{prefix}%}}": TokenType.BLOCK_END for prefix in ("", "+", "-")}, - 456 "{{+": TokenType.BLOCK_START, - 457 "{{-": TokenType.BLOCK_START, - 458 "+}}": TokenType.BLOCK_END, - 459 "-}}": TokenType.BLOCK_END, - 460 "/*+": TokenType.HINT, - 461 "==": TokenType.EQ, - 462 "::": TokenType.DCOLON, - 463 "||": TokenType.DPIPE, - 464 ">=": TokenType.GTE, - 465 "<=": TokenType.LTE, - 466 "<>": TokenType.NEQ, - 467 "!=": TokenType.NEQ, - 468 "<=>": TokenType.NULLSAFE_EQ, - 469 "->": TokenType.ARROW, - 470 "->>": TokenType.DARROW, - 471 "=>": TokenType.FARROW, - 472 "#>": TokenType.HASH_ARROW, - 473 "#>>": TokenType.DHASH_ARROW, - 474 "<->": TokenType.LR_ARROW, - 475 "&&": TokenType.DAMP, - 476 "ALL": TokenType.ALL, - 477 "ALWAYS": TokenType.ALWAYS, - 478 "AND": TokenType.AND, - 479 "ANTI": TokenType.ANTI, - 480 "ANY": TokenType.ANY, - 481 "ASC": TokenType.ASC, - 482 "AS": TokenType.ALIAS, - 483 "AUTOINCREMENT": TokenType.AUTO_INCREMENT, - 484 "AUTO_INCREMENT": TokenType.AUTO_INCREMENT, - 485 "BEGIN": TokenType.BEGIN, - 486 "BETWEEN": TokenType.BETWEEN, - 487 "CACHE": TokenType.CACHE, - 488 "UNCACHE": TokenType.UNCACHE, - 489 "CASE": TokenType.CASE, - 490 "CHARACTER SET": TokenType.CHARACTER_SET, - 491 "COLLATE": TokenType.COLLATE, - 492 "COLUMN": TokenType.COLUMN, - 493 "COMMIT": TokenType.COMMIT, - 494 "CONSTRAINT": TokenType.CONSTRAINT, - 495 "CREATE": TokenType.CREATE, - 496 "CROSS": TokenType.CROSS, - 497 "CUBE": TokenType.CUBE, - 498 "CURRENT_DATE": TokenType.CURRENT_DATE, - 499 "CURRENT_TIME": TokenType.CURRENT_TIME, - 500 "CURRENT_TIMESTAMP": TokenType.CURRENT_TIMESTAMP, - 501 "CURRENT_USER": TokenType.CURRENT_USER, - 502 "DATABASE": TokenType.DATABASE, - 503 "DEFAULT": TokenType.DEFAULT, - 504 "DELETE": TokenType.DELETE, - 505 "DESC": TokenType.DESC, - 506 "DESCRIBE": TokenType.DESCRIBE, - 507 "DISTINCT": TokenType.DISTINCT, - 508 "DIV": TokenType.DIV, - 509 "DROP": TokenType.DROP, - 510 "ELSE": TokenType.ELSE, - 511 "END": TokenType.END, - 512 "ESCAPE": TokenType.ESCAPE, - 513 "EXCEPT": TokenType.EXCEPT, - 514 "EXECUTE": TokenType.EXECUTE, - 515 "EXISTS": TokenType.EXISTS, - 516 "FALSE": TokenType.FALSE, - 517 "FETCH": TokenType.FETCH, - 518 "FILTER": TokenType.FILTER, - 519 "FIRST": TokenType.FIRST, - 520 "FULL": TokenType.FULL, - 521 "FUNCTION": TokenType.FUNCTION, - 522 "FOR": TokenType.FOR, - 523 "FOREIGN KEY": TokenType.FOREIGN_KEY, - 524 "FORMAT": TokenType.FORMAT, - 525 "FROM": TokenType.FROM, - 526 "GEOGRAPHY": TokenType.GEOGRAPHY, - 527 "GEOMETRY": TokenType.GEOMETRY, - 528 "GLOB": TokenType.GLOB, - 529 "GROUP BY": TokenType.GROUP_BY, - 530 "GROUPING SETS": TokenType.GROUPING_SETS, - 531 "HAVING": TokenType.HAVING, - 532 "IF": TokenType.IF, - 533 "ILIKE": TokenType.ILIKE, - 534 "IN": TokenType.IN, - 535 "INDEX": TokenType.INDEX, - 536 "INET": TokenType.INET, - 537 "INNER": TokenType.INNER, - 538 "INSERT": TokenType.INSERT, - 539 "INTERVAL": TokenType.INTERVAL, - 540 "INTERSECT": TokenType.INTERSECT, - 541 "INTO": TokenType.INTO, - 542 "IS": TokenType.IS, - 543 "ISNULL": TokenType.ISNULL, - 544 "JOIN": TokenType.JOIN, - 545 "KEEP": TokenType.KEEP, - 546 "LATERAL": TokenType.LATERAL, - 547 "LEFT": TokenType.LEFT, - 548 "LIKE": TokenType.LIKE, - 549 "LIMIT": TokenType.LIMIT, - 550 "LOAD": TokenType.LOAD, - 551 "LOCK": TokenType.LOCK, - 552 "MERGE": TokenType.MERGE, - 553 "NATURAL": TokenType.NATURAL, - 554 "NEXT": TokenType.NEXT, - 555 "NEXT VALUE FOR": TokenType.NEXT_VALUE_FOR, - 556 "NOT": TokenType.NOT, - 557 "NOTNULL": TokenType.NOTNULL, - 558 "NULL": TokenType.NULL, - 559 "OBJECT": TokenType.OBJECT, - 560 "OFFSET": TokenType.OFFSET, - 561 "ON": TokenType.ON, - 562 "OR": TokenType.OR, - 563 "ORDER BY": TokenType.ORDER_BY, - 564 "ORDINALITY": TokenType.ORDINALITY, - 565 "OUTER": TokenType.OUTER, - 566 "OVER": TokenType.OVER, - 567 "OVERLAPS": TokenType.OVERLAPS, - 568 "OVERWRITE": TokenType.OVERWRITE, - 569 "PARTITION": TokenType.PARTITION, - 570 "PARTITION BY": TokenType.PARTITION_BY, - 571 "PARTITIONED BY": TokenType.PARTITION_BY, - 572 "PARTITIONED_BY": TokenType.PARTITION_BY, - 573 "PERCENT": TokenType.PERCENT, - 574 "PIVOT": TokenType.PIVOT, - 575 "PRAGMA": TokenType.PRAGMA, - 576 "PRIMARY KEY": TokenType.PRIMARY_KEY, - 577 "PROCEDURE": TokenType.PROCEDURE, - 578 "QUALIFY": TokenType.QUALIFY, - 579 "RANGE": TokenType.RANGE, - 580 "RECURSIVE": TokenType.RECURSIVE, - 581 "REGEXP": TokenType.RLIKE, - 582 "REPLACE": TokenType.REPLACE, - 583 "REFERENCES": TokenType.REFERENCES, - 584 "RIGHT": TokenType.RIGHT, - 585 "RLIKE": TokenType.RLIKE, - 586 "ROLLBACK": TokenType.ROLLBACK, - 587 "ROLLUP": TokenType.ROLLUP, - 588 "ROW": TokenType.ROW, - 589 "ROWS": TokenType.ROWS, - 590 "SCHEMA": TokenType.SCHEMA, - 591 "SELECT": TokenType.SELECT, - 592 "SEMI": TokenType.SEMI, - 593 "SET": TokenType.SET, - 594 "SETTINGS": TokenType.SETTINGS, - 595 "SHOW": TokenType.SHOW, - 596 "SIMILAR TO": TokenType.SIMILAR_TO, - 597 "SOME": TokenType.SOME, - 598 "TABLE": TokenType.TABLE, - 599 "TABLESAMPLE": TokenType.TABLE_SAMPLE, - 600 "TEMP": TokenType.TEMPORARY, - 601 "TEMPORARY": TokenType.TEMPORARY, - 602 "THEN": TokenType.THEN, - 603 "TRUE": TokenType.TRUE, - 604 "UNION": TokenType.UNION, - 605 "UNNEST": TokenType.UNNEST, - 606 "UNPIVOT": TokenType.UNPIVOT, - 607 "UPDATE": TokenType.UPDATE, - 608 "USE": TokenType.USE, - 609 "USING": TokenType.USING, - 610 "UUID": TokenType.UUID, - 611 "VALUES": TokenType.VALUES, - 612 "VIEW": TokenType.VIEW, - 613 "VOLATILE": TokenType.VOLATILE, - 614 "WHEN": TokenType.WHEN, - 615 "WHERE": TokenType.WHERE, - 616 "WINDOW": TokenType.WINDOW, - 617 "WITH": TokenType.WITH, - 618 "APPLY": TokenType.APPLY, - 619 "ARRAY": TokenType.ARRAY, - 620 "BIT": TokenType.BIT, - 621 "BOOL": TokenType.BOOLEAN, - 622 "BOOLEAN": TokenType.BOOLEAN, - 623 "BYTE": TokenType.TINYINT, - 624 "TINYINT": TokenType.TINYINT, - 625 "SHORT": TokenType.SMALLINT, - 626 "SMALLINT": TokenType.SMALLINT, - 627 "INT2": TokenType.SMALLINT, - 628 "INTEGER": TokenType.INT, - 629 "INT": TokenType.INT, - 630 "INT4": TokenType.INT, - 631 "LONG": TokenType.BIGINT, - 632 "BIGINT": TokenType.BIGINT, - 633 "INT8": TokenType.BIGINT, - 634 "DEC": TokenType.DECIMAL, - 635 "DECIMAL": TokenType.DECIMAL, - 636 "BIGDECIMAL": TokenType.BIGDECIMAL, - 637 "BIGNUMERIC": TokenType.BIGDECIMAL, - 638 "MAP": TokenType.MAP, - 639 "NULLABLE": TokenType.NULLABLE, - 640 "NUMBER": TokenType.DECIMAL, - 641 "NUMERIC": TokenType.DECIMAL, - 642 "FIXED": TokenType.DECIMAL, - 643 "REAL": TokenType.FLOAT, - 644 "FLOAT": TokenType.FLOAT, - 645 "FLOAT4": TokenType.FLOAT, - 646 "FLOAT8": TokenType.DOUBLE, - 647 "DOUBLE": TokenType.DOUBLE, - 648 "DOUBLE PRECISION": TokenType.DOUBLE, - 649 "JSON": TokenType.JSON, - 650 "CHAR": TokenType.CHAR, - 651 "CHARACTER": TokenType.CHAR, - 652 "NCHAR": TokenType.NCHAR, - 653 "VARCHAR": TokenType.VARCHAR, - 654 "VARCHAR2": TokenType.VARCHAR, - 655 "NVARCHAR": TokenType.NVARCHAR, - 656 "NVARCHAR2": TokenType.NVARCHAR, - 657 "STR": TokenType.TEXT, - 658 "STRING": TokenType.TEXT, - 659 "TEXT": TokenType.TEXT, - 660 "CLOB": TokenType.TEXT, - 661 "LONGVARCHAR": TokenType.TEXT, - 662 "BINARY": TokenType.BINARY, - 663 "BLOB": TokenType.VARBINARY, - 664 "BYTEA": TokenType.VARBINARY, - 665 "VARBINARY": TokenType.VARBINARY, - 666 "TIME": TokenType.TIME, - 667 "TIMESTAMP": TokenType.TIMESTAMP, - 668 "TIMESTAMPTZ": TokenType.TIMESTAMPTZ, - 669 "TIMESTAMPLTZ": TokenType.TIMESTAMPLTZ, - 670 "DATE": TokenType.DATE, - 671 "DATETIME": TokenType.DATETIME, - 672 "UNIQUE": TokenType.UNIQUE, - 673 "STRUCT": TokenType.STRUCT, - 674 "VARIANT": TokenType.VARIANT, - 675 "ALTER": TokenType.ALTER, - 676 "ANALYZE": TokenType.COMMAND, - 677 "CALL": TokenType.COMMAND, - 678 "COMMENT": TokenType.COMMENT, - 679 "COPY": TokenType.COMMAND, - 680 "EXPLAIN": TokenType.COMMAND, - 681 "GRANT": TokenType.COMMAND, - 682 "OPTIMIZE": TokenType.COMMAND, - 683 "PREPARE": TokenType.COMMAND, - 684 "TRUNCATE": TokenType.COMMAND, - 685 "VACUUM": TokenType.COMMAND, - 686 } - 687 - 688 WHITE_SPACE: t.Dict[t.Optional[str], TokenType] = { - 689 " ": TokenType.SPACE, - 690 "\t": TokenType.SPACE, - 691 "\n": TokenType.BREAK, - 692 "\r": TokenType.BREAK, - 693 "\r\n": TokenType.BREAK, - 694 } - 695 - 696 COMMANDS = { - 697 TokenType.COMMAND, - 698 TokenType.EXECUTE, - 699 TokenType.FETCH, - 700 TokenType.SHOW, - 701 } - 702 - 703 COMMAND_PREFIX_TOKENS = {TokenType.SEMICOLON, TokenType.BEGIN} - 704 - 705 # handle numeric literals like in hive (3L = BIGINT) - 706 NUMERIC_LITERALS: t.Dict[str, str] = {} - 707 ENCODE: t.Optional[str] = None - 708 - 709 COMMENTS = ["--", ("/*", "*/"), ("{#", "#}")] - 710 KEYWORD_TRIE: t.Dict = {} # autofilled - 711 - 712 IDENTIFIER_CAN_START_WITH_DIGIT = False + 399 klass.KEYWORD_TRIE = new_trie( + 400 key.upper() + 401 for key in ( + 402 *klass.KEYWORDS, + 403 *klass._COMMENTS, + 404 *klass._QUOTES, + 405 *klass._FORMAT_STRINGS, + 406 ) + 407 if " " in key or any(single in key for single in klass.SINGLE_TOKENS) + 408 ) + 409 + 410 return klass + 411 + 412 + 413class Tokenizer(metaclass=_Tokenizer): + 414 SINGLE_TOKENS = { + 415 "(": TokenType.L_PAREN, + 416 ")": TokenType.R_PAREN, + 417 "[": TokenType.L_BRACKET, + 418 "]": TokenType.R_BRACKET, + 419 "{": TokenType.L_BRACE, + 420 "}": TokenType.R_BRACE, + 421 "&": TokenType.AMP, + 422 "^": TokenType.CARET, + 423 ":": TokenType.COLON, + 424 ",": TokenType.COMMA, + 425 ".": TokenType.DOT, + 426 "-": TokenType.DASH, + 427 "=": TokenType.EQ, + 428 ">": TokenType.GT, + 429 "<": TokenType.LT, + 430 "%": TokenType.MOD, + 431 "!": TokenType.NOT, + 432 "|": TokenType.PIPE, + 433 "+": TokenType.PLUS, + 434 ";": TokenType.SEMICOLON, + 435 "/": TokenType.SLASH, + 436 "\\": TokenType.BACKSLASH, + 437 "*": TokenType.STAR, + 438 "~": TokenType.TILDA, + 439 "?": TokenType.PLACEHOLDER, + 440 "@": TokenType.PARAMETER, + 441 # used for breaking a var like x'y' but nothing else + 442 # the token type doesn't matter + 443 "'": TokenType.QUOTE, + 444 "`": TokenType.IDENTIFIER, + 445 '"': TokenType.IDENTIFIER, + 446 "#": TokenType.HASH, + 447 } + 448 + 449 BIT_STRINGS: t.List[str | t.Tuple[str, str]] = [] + 450 BYTE_STRINGS: t.List[str | t.Tuple[str, str]] = [] + 451 HEX_STRINGS: t.List[str | t.Tuple[str, str]] = [] + 452 RAW_STRINGS: t.List[str | t.Tuple[str, str]] = [] + 453 IDENTIFIERS: t.List[str | t.Tuple[str, str]] = ['"'] + 454 IDENTIFIER_ESCAPES = ['"'] + 455 QUOTES: t.List[t.Tuple[str, str] | str] = ["'"] + 456 STRING_ESCAPES = ["'"] + 457 VAR_SINGLE_TOKENS: t.Set[str] = set() + 458 + 459 _COMMENTS: t.Dict[str, str] = {} + 460 _FORMAT_STRINGS: t.Dict[str, t.Tuple[str, TokenType]] = {} + 461 _IDENTIFIERS: t.Dict[str, str] = {} + 462 _IDENTIFIER_ESCAPES: t.Set[str] = set() + 463 _QUOTES: t.Dict[str, str] = {} + 464 _STRING_ESCAPES: t.Set[str] = set() + 465 + 466 KEYWORDS: t.Dict[t.Optional[str], TokenType] = { + 467 **{f"{{%{postfix}": TokenType.BLOCK_START for postfix in ("", "+", "-")}, + 468 **{f"{prefix}%}}": TokenType.BLOCK_END for prefix in ("", "+", "-")}, + 469 "{{+": TokenType.BLOCK_START, + 470 "{{-": TokenType.BLOCK_START, + 471 "+}}": TokenType.BLOCK_END, + 472 "-}}": TokenType.BLOCK_END, + 473 "/*+": TokenType.HINT, + 474 "==": TokenType.EQ, + 475 "::": TokenType.DCOLON, + 476 "||": TokenType.DPIPE, + 477 ">=": TokenType.GTE, + 478 "<=": TokenType.LTE, + 479 "<>": TokenType.NEQ, + 480 "!=": TokenType.NEQ, + 481 "<=>": TokenType.NULLSAFE_EQ, + 482 "->": TokenType.ARROW, + 483 "->>": TokenType.DARROW, + 484 "=>": TokenType.FARROW, + 485 "#>": TokenType.HASH_ARROW, + 486 "#>>": TokenType.DHASH_ARROW, + 487 "<->": TokenType.LR_ARROW, + 488 "&&": TokenType.DAMP, + 489 "ALL": TokenType.ALL, + 490 "ALWAYS": TokenType.ALWAYS, + 491 "AND": TokenType.AND, + 492 "ANTI": TokenType.ANTI, + 493 "ANY": TokenType.ANY, + 494 "ASC": TokenType.ASC, + 495 "AS": TokenType.ALIAS, + 496 "ASOF": TokenType.ASOF, + 497 "AUTOINCREMENT": TokenType.AUTO_INCREMENT, + 498 "AUTO_INCREMENT": TokenType.AUTO_INCREMENT, + 499 "BEGIN": TokenType.BEGIN, + 500 "BETWEEN": TokenType.BETWEEN, + 501 "CACHE": TokenType.CACHE, + 502 "UNCACHE": TokenType.UNCACHE, + 503 "CASE": TokenType.CASE, + 504 "CHARACTER SET": TokenType.CHARACTER_SET, + 505 "COLLATE": TokenType.COLLATE, + 506 "COLUMN": TokenType.COLUMN, + 507 "COMMIT": TokenType.COMMIT, + 508 "CONSTRAINT": TokenType.CONSTRAINT, + 509 "CREATE": TokenType.CREATE, + 510 "CROSS": TokenType.CROSS, + 511 "CUBE": TokenType.CUBE, + 512 "CURRENT_DATE": TokenType.CURRENT_DATE, + 513 "CURRENT_TIME": TokenType.CURRENT_TIME, + 514 "CURRENT_TIMESTAMP": TokenType.CURRENT_TIMESTAMP, + 515 "CURRENT_USER": TokenType.CURRENT_USER, + 516 "DATABASE": TokenType.DATABASE, + 517 "DEFAULT": TokenType.DEFAULT, + 518 "DELETE": TokenType.DELETE, + 519 "DESC": TokenType.DESC, + 520 "DESCRIBE": TokenType.DESCRIBE, + 521 "DISTINCT": TokenType.DISTINCT, + 522 "DIV": TokenType.DIV, + 523 "DROP": TokenType.DROP, + 524 "ELSE": TokenType.ELSE, + 525 "END": TokenType.END, + 526 "ESCAPE": TokenType.ESCAPE, + 527 "EXCEPT": TokenType.EXCEPT, + 528 "EXECUTE": TokenType.EXECUTE, + 529 "EXISTS": TokenType.EXISTS, + 530 "FALSE": TokenType.FALSE, + 531 "FETCH": TokenType.FETCH, + 532 "FILTER": TokenType.FILTER, + 533 "FIRST": TokenType.FIRST, + 534 "FULL": TokenType.FULL, + 535 "FUNCTION": TokenType.FUNCTION, + 536 "FOR": TokenType.FOR, + 537 "FOREIGN KEY": TokenType.FOREIGN_KEY, + 538 "FORMAT": TokenType.FORMAT, + 539 "FROM": TokenType.FROM, + 540 "GEOGRAPHY": TokenType.GEOGRAPHY, + 541 "GEOMETRY": TokenType.GEOMETRY, + 542 "GLOB": TokenType.GLOB, + 543 "GROUP BY": TokenType.GROUP_BY, + 544 "GROUPING SETS": TokenType.GROUPING_SETS, + 545 "HAVING": TokenType.HAVING, + 546 "IF": TokenType.IF, + 547 "ILIKE": TokenType.ILIKE, + 548 "IN": TokenType.IN, + 549 "INDEX": TokenType.INDEX, + 550 "INET": TokenType.INET, + 551 "INNER": TokenType.INNER, + 552 "INSERT": TokenType.INSERT, + 553 "INTERVAL": TokenType.INTERVAL, + 554 "INTERSECT": TokenType.INTERSECT, + 555 "INTO": TokenType.INTO, + 556 "IS": TokenType.IS, + 557 "ISNULL": TokenType.ISNULL, + 558 "JOIN": TokenType.JOIN, + 559 "KEEP": TokenType.KEEP, + 560 "LATERAL": TokenType.LATERAL, + 561 "LEFT": TokenType.LEFT, + 562 "LIKE": TokenType.LIKE, + 563 "LIMIT": TokenType.LIMIT, + 564 "LOAD": TokenType.LOAD, + 565 "LOCK": TokenType.LOCK, + 566 "MERGE": TokenType.MERGE, + 567 "NATURAL": TokenType.NATURAL, + 568 "NEXT": TokenType.NEXT, + 569 "NEXT VALUE FOR": TokenType.NEXT_VALUE_FOR, + 570 "NOT": TokenType.NOT, + 571 "NOTNULL": TokenType.NOTNULL, + 572 "NULL": TokenType.NULL, + 573 "OBJECT": TokenType.OBJECT, + 574 "OFFSET": TokenType.OFFSET, + 575 "ON": TokenType.ON, + 576 "OR": TokenType.OR, + 577 "ORDER BY": TokenType.ORDER_BY, + 578 "ORDINALITY": TokenType.ORDINALITY, + 579 "OUTER": TokenType.OUTER, + 580 "OVER": TokenType.OVER, + 581 "OVERLAPS": TokenType.OVERLAPS, + 582 "OVERWRITE": TokenType.OVERWRITE, + 583 "PARTITION": TokenType.PARTITION, + 584 "PARTITION BY": TokenType.PARTITION_BY, + 585 "PARTITIONED BY": TokenType.PARTITION_BY, + 586 "PARTITIONED_BY": TokenType.PARTITION_BY, + 587 "PERCENT": TokenType.PERCENT, + 588 "PIVOT": TokenType.PIVOT, + 589 "PRAGMA": TokenType.PRAGMA, + 590 "PRIMARY KEY": TokenType.PRIMARY_KEY, + 591 "PROCEDURE": TokenType.PROCEDURE, + 592 "QUALIFY": TokenType.QUALIFY, + 593 "RANGE": TokenType.RANGE, + 594 "RECURSIVE": TokenType.RECURSIVE, + 595 "REGEXP": TokenType.RLIKE, + 596 "REPLACE": TokenType.REPLACE, + 597 "REFERENCES": TokenType.REFERENCES, + 598 "RIGHT": TokenType.RIGHT, + 599 "RLIKE": TokenType.RLIKE, + 600 "ROLLBACK": TokenType.ROLLBACK, + 601 "ROLLUP": TokenType.ROLLUP, + 602 "ROW": TokenType.ROW, + 603 "ROWS": TokenType.ROWS, + 604 "SCHEMA": TokenType.SCHEMA, + 605 "SELECT": TokenType.SELECT, + 606 "SEMI": TokenType.SEMI, + 607 "SET": TokenType.SET, + 608 "SETTINGS": TokenType.SETTINGS, + 609 "SHOW": TokenType.SHOW, + 610 "SIMILAR TO": TokenType.SIMILAR_TO, + 611 "SOME": TokenType.SOME, + 612 "TABLE": TokenType.TABLE, + 613 "TABLESAMPLE": TokenType.TABLE_SAMPLE, + 614 "TEMP": TokenType.TEMPORARY, + 615 "TEMPORARY": TokenType.TEMPORARY, + 616 "THEN": TokenType.THEN, + 617 "TRUE": TokenType.TRUE, + 618 "UNION": TokenType.UNION, + 619 "UNNEST": TokenType.UNNEST, + 620 "UNPIVOT": TokenType.UNPIVOT, + 621 "UPDATE": TokenType.UPDATE, + 622 "USE": TokenType.USE, + 623 "USING": TokenType.USING, + 624 "UUID": TokenType.UUID, + 625 "VALUES": TokenType.VALUES, + 626 "VIEW": TokenType.VIEW, + 627 "VOLATILE": TokenType.VOLATILE, + 628 "WHEN": TokenType.WHEN, + 629 "WHERE": TokenType.WHERE, + 630 "WINDOW": TokenType.WINDOW, + 631 "WITH": TokenType.WITH, + 632 "APPLY": TokenType.APPLY, + 633 "ARRAY": TokenType.ARRAY, + 634 "BIT": TokenType.BIT, + 635 "BOOL": TokenType.BOOLEAN, + 636 "BOOLEAN": TokenType.BOOLEAN, + 637 "BYTE": TokenType.TINYINT, + 638 "TINYINT": TokenType.TINYINT, + 639 "SHORT": TokenType.SMALLINT, + 640 "SMALLINT": TokenType.SMALLINT, + 641 "INT2": TokenType.SMALLINT, + 642 "INTEGER": TokenType.INT, + 643 "INT": TokenType.INT, + 644 "INT4": TokenType.INT, + 645 "LONG": TokenType.BIGINT, + 646 "BIGINT": TokenType.BIGINT, + 647 "INT8": TokenType.BIGINT, + 648 "DEC": TokenType.DECIMAL, + 649 "DECIMAL": TokenType.DECIMAL, + 650 "BIGDECIMAL": TokenType.BIGDECIMAL, + 651 "BIGNUMERIC": TokenType.BIGDECIMAL, + 652 "MAP": TokenType.MAP, + 653 "NULLABLE": TokenType.NULLABLE, + 654 "NUMBER": TokenType.DECIMAL, + 655 "NUMERIC": TokenType.DECIMAL, + 656 "FIXED": TokenType.DECIMAL, + 657 "REAL": TokenType.FLOAT, + 658 "FLOAT": TokenType.FLOAT, + 659 "FLOAT4": TokenType.FLOAT, + 660 "FLOAT8": TokenType.DOUBLE, + 661 "DOUBLE": TokenType.DOUBLE, + 662 "DOUBLE PRECISION": TokenType.DOUBLE, + 663 "JSON": TokenType.JSON, + 664 "CHAR": TokenType.CHAR, + 665 "CHARACTER": TokenType.CHAR, + 666 "NCHAR": TokenType.NCHAR, + 667 "VARCHAR": TokenType.VARCHAR, + 668 "VARCHAR2": TokenType.VARCHAR, + 669 "NVARCHAR": TokenType.NVARCHAR, + 670 "NVARCHAR2": TokenType.NVARCHAR, + 671 "STR": TokenType.TEXT, + 672 "STRING": TokenType.TEXT, + 673 "TEXT": TokenType.TEXT, + 674 "CLOB": TokenType.TEXT, + 675 "LONGVARCHAR": TokenType.TEXT, + 676 "BINARY": TokenType.BINARY, + 677 "BLOB": TokenType.VARBINARY, + 678 "BYTEA": TokenType.VARBINARY, + 679 "VARBINARY": TokenType.VARBINARY, + 680 "TIME": TokenType.TIME, + 681 "TIMESTAMP": TokenType.TIMESTAMP, + 682 "TIMESTAMPTZ": TokenType.TIMESTAMPTZ, + 683 "TIMESTAMPLTZ": TokenType.TIMESTAMPLTZ, + 684 "DATE": TokenType.DATE, + 685 "DATETIME": TokenType.DATETIME, + 686 "INT4RANGE": TokenType.INT4RANGE, + 687 "INT4MULTIRANGE": TokenType.INT4MULTIRANGE, + 688 "INT8RANGE": TokenType.INT8RANGE, + 689 "INT8MULTIRANGE": TokenType.INT8MULTIRANGE, + 690 "NUMRANGE": TokenType.NUMRANGE, + 691 "NUMMULTIRANGE": TokenType.NUMMULTIRANGE, + 692 "TSRANGE": TokenType.TSRANGE, + 693 "TSMULTIRANGE": TokenType.TSMULTIRANGE, + 694 "TSTZRANGE": TokenType.TSTZRANGE, + 695 "TSTZMULTIRANGE": TokenType.TSTZMULTIRANGE, + 696 "DATERANGE": TokenType.DATERANGE, + 697 "DATEMULTIRANGE": TokenType.DATEMULTIRANGE, + 698 "UNIQUE": TokenType.UNIQUE, + 699 "STRUCT": TokenType.STRUCT, + 700 "VARIANT": TokenType.VARIANT, + 701 "ALTER": TokenType.ALTER, + 702 "ANALYZE": TokenType.COMMAND, + 703 "CALL": TokenType.COMMAND, + 704 "COMMENT": TokenType.COMMENT, + 705 "COPY": TokenType.COMMAND, + 706 "EXPLAIN": TokenType.COMMAND, + 707 "GRANT": TokenType.COMMAND, + 708 "OPTIMIZE": TokenType.COMMAND, + 709 "PREPARE": TokenType.COMMAND, + 710 "TRUNCATE": TokenType.COMMAND, + 711 "VACUUM": TokenType.COMMAND, + 712 } 713 - 714 __slots__ = ( - 715 "sql", - 716 "size", - 717 "tokens", - 718 "_start", - 719 "_current", - 720 "_line", - 721 "_col", - 722 "_comments", - 723 "_char", - 724 "_end", - 725 "_peek", - 726 "_prev_token_line", - 727 ) + 714 WHITE_SPACE: t.Dict[t.Optional[str], TokenType] = { + 715 " ": TokenType.SPACE, + 716 "\t": TokenType.SPACE, + 717 "\n": TokenType.BREAK, + 718 "\r": TokenType.BREAK, + 719 "\r\n": TokenType.BREAK, + 720 } + 721 + 722 COMMANDS = { + 723 TokenType.COMMAND, + 724 TokenType.EXECUTE, + 725 TokenType.FETCH, + 726 TokenType.SHOW, + 727 } 728 - 729 def __init__(self) -> None: - 730 self.reset() - 731 - 732 def reset(self) -> None: - 733 self.sql = "" - 734 self.size = 0 - 735 self.tokens: t.List[Token] = [] - 736 self._start = 0 - 737 self._current = 0 - 738 self._line = 1 - 739 self._col = 0 - 740 self._comments: t.List[str] = [] - 741 - 742 self._char = "" - 743 self._end = False - 744 self._peek = "" - 745 self._prev_token_line = -1 - 746 - 747 def tokenize(self, sql: str) -> t.List[Token]: - 748 """Returns a list of tokens corresponding to the SQL string `sql`.""" - 749 self.reset() - 750 self.sql = sql - 751 self.size = len(sql) - 752 - 753 try: - 754 self._scan() - 755 except Exception as e: - 756 start = max(self._current - 50, 0) - 757 end = min(self._current + 50, self.size - 1) - 758 context = self.sql[start:end] - 759 raise ValueError(f"Error tokenizing '{context}'") from e - 760 - 761 return self.tokens - 762 - 763 def _scan(self, until: t.Optional[t.Callable] = None) -> None: - 764 while self.size and not self._end: - 765 self._start = self._current - 766 self._advance() - 767 - 768 if self._char is None: - 769 break - 770 - 771 if self._char not in self.WHITE_SPACE: - 772 if self._char.isdigit(): - 773 self._scan_number() - 774 elif self._char in self._IDENTIFIERS: - 775 self._scan_identifier(self._IDENTIFIERS[self._char]) - 776 else: - 777 self._scan_keywords() - 778 - 779 if until and until(): - 780 break - 781 - 782 if self.tokens and self._comments: - 783 self.tokens[-1].comments.extend(self._comments) - 784 - 785 def _chars(self, size: int) -> str: - 786 if size == 1: - 787 return self._char - 788 - 789 start = self._current - 1 - 790 end = start + size - 791 - 792 return self.sql[start:end] if end <= self.size else "" - 793 - 794 def _advance(self, i: int = 1, alnum: bool = False) -> None: - 795 if self.WHITE_SPACE.get(self._char) is TokenType.BREAK: - 796 self._col = 1 - 797 self._line += 1 - 798 else: - 799 self._col += i - 800 - 801 self._current += i - 802 self._end = self._current >= self.size - 803 self._char = self.sql[self._current - 1] - 804 self._peek = "" if self._end else self.sql[self._current] - 805 - 806 if alnum and self._char.isalnum(): - 807 # Here we use local variables instead of attributes for better performance - 808 _col = self._col - 809 _current = self._current - 810 _end = self._end - 811 _peek = self._peek - 812 - 813 while _peek.isalnum(): - 814 _col += 1 - 815 _current += 1 - 816 _end = _current >= self.size - 817 _peek = "" if _end else self.sql[_current] + 729 COMMAND_PREFIX_TOKENS = {TokenType.SEMICOLON, TokenType.BEGIN} + 730 + 731 # handle numeric literals like in hive (3L = BIGINT) + 732 NUMERIC_LITERALS: t.Dict[str, str] = {} + 733 ENCODE: t.Optional[str] = None + 734 + 735 COMMENTS = ["--", ("/*", "*/"), ("{#", "#}")] + 736 KEYWORD_TRIE: t.Dict = {} # autofilled + 737 + 738 __slots__ = ( + 739 "sql", + 740 "size", + 741 "tokens", + 742 "_start", + 743 "_current", + 744 "_line", + 745 "_col", + 746 "_comments", + 747 "_char", + 748 "_end", + 749 "_peek", + 750 "_prev_token_line", + 751 "identifiers_can_start_with_digit", + 752 ) + 753 + 754 def __init__(self) -> None: + 755 self.reset() + 756 + 757 def reset(self) -> None: + 758 self.sql = "" + 759 self.size = 0 + 760 self.tokens: t.List[Token] = [] + 761 self._start = 0 + 762 self._current = 0 + 763 self._line = 1 + 764 self._col = 0 + 765 self._comments: t.List[str] = [] + 766 + 767 self._char = "" + 768 self._end = False + 769 self._peek = "" + 770 self._prev_token_line = -1 + 771 + 772 def tokenize(self, sql: str) -> t.List[Token]: + 773 """Returns a list of tokens corresponding to the SQL string `sql`.""" + 774 self.reset() + 775 self.sql = sql + 776 self.size = len(sql) + 777 + 778 try: + 779 self._scan() + 780 except Exception as e: + 781 start = max(self._current - 50, 0) + 782 end = min(self._current + 50, self.size - 1) + 783 context = self.sql[start:end] + 784 raise ValueError(f"Error tokenizing '{context}'") from e + 785 + 786 return self.tokens + 787 + 788 def _scan(self, until: t.Optional[t.Callable] = None) -> None: + 789 while self.size and not self._end: + 790 self._start = self._current + 791 self._advance() + 792 + 793 if self._char is None: + 794 break + 795 + 796 if self._char not in self.WHITE_SPACE: + 797 if self._char.isdigit(): + 798 self._scan_number() + 799 elif self._char in self._IDENTIFIERS: + 800 self._scan_identifier(self._IDENTIFIERS[self._char]) + 801 else: + 802 self._scan_keywords() + 803 + 804 if until and until(): + 805 break + 806 + 807 if self.tokens and self._comments: + 808 self.tokens[-1].comments.extend(self._comments) + 809 + 810 def _chars(self, size: int) -> str: + 811 if size == 1: + 812 return self._char + 813 + 814 start = self._current - 1 + 815 end = start + size + 816 + 817 return self.sql[start:end] if end <= self.size else "" 818 - 819 self._col = _col - 820 self._current = _current - 821 self._end = _end - 822 self._peek = _peek - 823 self._char = self.sql[_current - 1] - 824 - 825 @property - 826 def _text(self) -> str: - 827 return self.sql[self._start : self._current] - 828 - 829 def _add(self, token_type: TokenType, text: t.Optional[str] = None) -> None: - 830 self._prev_token_line = self._line - 831 self.tokens.append( - 832 Token( - 833 token_type, - 834 text=self._text if text is None else text, - 835 line=self._line, - 836 col=self._col, - 837 start=self._start, - 838 end=self._current - 1, - 839 comments=self._comments, - 840 ) - 841 ) - 842 self._comments = [] + 819 def _advance(self, i: int = 1, alnum: bool = False) -> None: + 820 if self.WHITE_SPACE.get(self._char) is TokenType.BREAK: + 821 self._col = 1 + 822 self._line += 1 + 823 else: + 824 self._col += i + 825 + 826 self._current += i + 827 self._end = self._current >= self.size + 828 self._char = self.sql[self._current - 1] + 829 self._peek = "" if self._end else self.sql[self._current] + 830 + 831 if alnum and self._char.isalnum(): + 832 # Here we use local variables instead of attributes for better performance + 833 _col = self._col + 834 _current = self._current + 835 _end = self._end + 836 _peek = self._peek + 837 + 838 while _peek.isalnum(): + 839 _col += 1 + 840 _current += 1 + 841 _end = _current >= self.size + 842 _peek = "" if _end else self.sql[_current] 843 - 844 # If we have either a semicolon or a begin token before the command's token, we'll parse - 845 # whatever follows the command's token as a string - 846 if ( - 847 token_type in self.COMMANDS - 848 and self._peek != ";" - 849 and (len(self.tokens) == 1 or self.tokens[-2].token_type in self.COMMAND_PREFIX_TOKENS) - 850 ): - 851 start = self._current - 852 tokens = len(self.tokens) - 853 self._scan(lambda: self._peek == ";") - 854 self.tokens = self.tokens[:tokens] - 855 text = self.sql[start : self._current].strip() - 856 if text: - 857 self._add(TokenType.STRING, text) - 858 - 859 def _scan_keywords(self) -> None: - 860 size = 0 - 861 word = None - 862 chars = self._text - 863 char = chars - 864 prev_space = False - 865 skip = False - 866 trie = self.KEYWORD_TRIE - 867 single_token = char in self.SINGLE_TOKENS + 844 self._col = _col + 845 self._current = _current + 846 self._end = _end + 847 self._peek = _peek + 848 self._char = self.sql[_current - 1] + 849 + 850 @property + 851 def _text(self) -> str: + 852 return self.sql[self._start : self._current] + 853 + 854 def _add(self, token_type: TokenType, text: t.Optional[str] = None) -> None: + 855 self._prev_token_line = self._line + 856 self.tokens.append( + 857 Token( + 858 token_type, + 859 text=self._text if text is None else text, + 860 line=self._line, + 861 col=self._col, + 862 start=self._start, + 863 end=self._current - 1, + 864 comments=self._comments, + 865 ) + 866 ) + 867 self._comments = [] 868 - 869 while chars: - 870 if skip: - 871 result = 1 - 872 else: - 873 result, trie = in_trie(trie, char.upper()) - 874 - 875 if result == 0: - 876 break - 877 if result == 2: - 878 word = chars - 879 - 880 size += 1 - 881 end = self._current - 1 + size - 882 - 883 if end < self.size: - 884 char = self.sql[end] - 885 single_token = single_token or char in self.SINGLE_TOKENS - 886 is_space = char in self.WHITE_SPACE - 887 - 888 if not is_space or not prev_space: - 889 if is_space: - 890 char = " " - 891 chars += char - 892 prev_space = is_space - 893 skip = False - 894 else: - 895 skip = True - 896 else: - 897 char = "" - 898 chars = " " + 869 # If we have either a semicolon or a begin token before the command's token, we'll parse + 870 # whatever follows the command's token as a string + 871 if ( + 872 token_type in self.COMMANDS + 873 and self._peek != ";" + 874 and (len(self.tokens) == 1 or self.tokens[-2].token_type in self.COMMAND_PREFIX_TOKENS) + 875 ): + 876 start = self._current + 877 tokens = len(self.tokens) + 878 self._scan(lambda: self._peek == ";") + 879 self.tokens = self.tokens[:tokens] + 880 text = self.sql[start : self._current].strip() + 881 if text: + 882 self._add(TokenType.STRING, text) + 883 + 884 def _scan_keywords(self) -> None: + 885 size = 0 + 886 word = None + 887 chars = self._text + 888 char = chars + 889 prev_space = False + 890 skip = False + 891 trie = self.KEYWORD_TRIE + 892 single_token = char in self.SINGLE_TOKENS + 893 + 894 while chars: + 895 if skip: + 896 result = 1 + 897 else: + 898 result, trie = in_trie(trie, char.upper()) 899 - 900 word = None if not single_token and chars[-1] not in self.WHITE_SPACE else word - 901 - 902 if not word: - 903 if self._char in self.SINGLE_TOKENS: - 904 self._add(self.SINGLE_TOKENS[self._char], text=self._char) - 905 return - 906 self._scan_var() - 907 return - 908 - 909 if self._scan_string(word): - 910 return - 911 if self._scan_comment(word): - 912 return - 913 - 914 self._advance(size - 1) - 915 word = word.upper() - 916 self._add(self.KEYWORDS[word], text=word) - 917 - 918 def _scan_comment(self, comment_start: str) -> bool: - 919 if comment_start not in self._COMMENTS: - 920 return False - 921 - 922 comment_start_line = self._line - 923 comment_start_size = len(comment_start) - 924 comment_end = self._COMMENTS[comment_start] - 925 - 926 if comment_end: - 927 # Skip the comment's start delimiter - 928 self._advance(comment_start_size) - 929 - 930 comment_end_size = len(comment_end) - 931 while not self._end and self._chars(comment_end_size) != comment_end: - 932 self._advance(alnum=True) + 900 if result == 0: + 901 break + 902 if result == 2: + 903 word = chars + 904 + 905 size += 1 + 906 end = self._current - 1 + size + 907 + 908 if end < self.size: + 909 char = self.sql[end] + 910 single_token = single_token or char in self.SINGLE_TOKENS + 911 is_space = char in self.WHITE_SPACE + 912 + 913 if not is_space or not prev_space: + 914 if is_space: + 915 char = " " + 916 chars += char + 917 prev_space = is_space + 918 skip = False + 919 else: + 920 skip = True + 921 else: + 922 char = "" + 923 chars = " " + 924 + 925 word = None if not single_token and chars[-1] not in self.WHITE_SPACE else word + 926 + 927 if not word: + 928 if self._char in self.SINGLE_TOKENS: + 929 self._add(self.SINGLE_TOKENS[self._char], text=self._char) + 930 return + 931 self._scan_var() + 932 return 933 - 934 self._comments.append(self._text[comment_start_size : -comment_end_size + 1]) - 935 self._advance(comment_end_size - 1) - 936 else: - 937 while not self._end and not self.WHITE_SPACE.get(self._peek) is TokenType.BREAK: - 938 self._advance(alnum=True) - 939 self._comments.append(self._text[comment_start_size:]) - 940 - 941 # Leading comment is attached to the succeeding token, whilst trailing comment to the preceding. - 942 # Multiple consecutive comments are preserved by appending them to the current comments list. - 943 if comment_start_line == self._prev_token_line: - 944 self.tokens[-1].comments.extend(self._comments) - 945 self._comments = [] - 946 self._prev_token_line = self._line - 947 - 948 return True - 949 - 950 def _scan_number(self) -> None: - 951 if self._char == "0": - 952 peek = self._peek.upper() - 953 if peek == "B": - 954 return self._scan_bits() if self.BIT_STRINGS else self._add(TokenType.NUMBER) - 955 elif peek == "X": - 956 return self._scan_hex() if self.HEX_STRINGS else self._add(TokenType.NUMBER) - 957 - 958 decimal = False - 959 scientific = 0 - 960 - 961 while True: - 962 if self._peek.isdigit(): - 963 self._advance() - 964 elif self._peek == "." and not decimal: - 965 decimal = True - 966 self._advance() - 967 elif self._peek in ("-", "+") and scientific == 1: - 968 scientific += 1 - 969 self._advance() - 970 elif self._peek.upper() == "E" and not scientific: - 971 scientific += 1 - 972 self._advance() - 973 elif self._peek.isidentifier(): - 974 number_text = self._text - 975 literal = "" - 976 - 977 while self._peek.strip() and self._peek not in self.SINGLE_TOKENS: - 978 literal += self._peek.upper() - 979 self._advance() - 980 - 981 token_type = self.KEYWORDS.get(self.NUMERIC_LITERALS.get(literal)) + 934 if self._scan_string(word): + 935 return + 936 if self._scan_comment(word): + 937 return + 938 + 939 self._advance(size - 1) + 940 word = word.upper() + 941 self._add(self.KEYWORDS[word], text=word) + 942 + 943 def _scan_comment(self, comment_start: str) -> bool: + 944 if comment_start not in self._COMMENTS: + 945 return False + 946 + 947 comment_start_line = self._line + 948 comment_start_size = len(comment_start) + 949 comment_end = self._COMMENTS[comment_start] + 950 + 951 if comment_end: + 952 # Skip the comment's start delimiter + 953 self._advance(comment_start_size) + 954 + 955 comment_end_size = len(comment_end) + 956 while not self._end and self._chars(comment_end_size) != comment_end: + 957 self._advance(alnum=True) + 958 + 959 self._comments.append(self._text[comment_start_size : -comment_end_size + 1]) + 960 self._advance(comment_end_size - 1) + 961 else: + 962 while not self._end and not self.WHITE_SPACE.get(self._peek) is TokenType.BREAK: + 963 self._advance(alnum=True) + 964 self._comments.append(self._text[comment_start_size:]) + 965 + 966 # Leading comment is attached to the succeeding token, whilst trailing comment to the preceding. + 967 # Multiple consecutive comments are preserved by appending them to the current comments list. + 968 if comment_start_line == self._prev_token_line: + 969 self.tokens[-1].comments.extend(self._comments) + 970 self._comments = [] + 971 self._prev_token_line = self._line + 972 + 973 return True + 974 + 975 def _scan_number(self) -> None: + 976 if self._char == "0": + 977 peek = self._peek.upper() + 978 if peek == "B": + 979 return self._scan_bits() if self.BIT_STRINGS else self._add(TokenType.NUMBER) + 980 elif peek == "X": + 981 return self._scan_hex() if self.HEX_STRINGS else self._add(TokenType.NUMBER) 982 - 983 if token_type: - 984 self._add(TokenType.NUMBER, number_text) - 985 self._add(TokenType.DCOLON, "::") - 986 return self._add(token_type, literal) - 987 elif self.IDENTIFIER_CAN_START_WITH_DIGIT: - 988 return self._add(TokenType.VAR) - 989 - 990 self._add(TokenType.NUMBER, number_text) - 991 return self._advance(-len(literal)) - 992 else: - 993 return self._add(TokenType.NUMBER) - 994 - 995 def _scan_bits(self) -> None: - 996 self._advance() - 997 value = self._extract_value() - 998 try: - 999 # If `value` can't be converted to a binary, fallback to tokenizing it as an identifier -1000 int(value, 2) -1001 self._add(TokenType.BIT_STRING, value[2:]) # Drop the 0b -1002 except ValueError: -1003 self._add(TokenType.IDENTIFIER) -1004 -1005 def _scan_hex(self) -> None: -1006 self._advance() -1007 value = self._extract_value() -1008 try: -1009 # If `value` can't be converted to a hex, fallback to tokenizing it as an identifier -1010 int(value, 16) -1011 self._add(TokenType.HEX_STRING, value[2:]) # Drop the 0x -1012 except ValueError: -1013 self._add(TokenType.IDENTIFIER) + 983 decimal = False + 984 scientific = 0 + 985 + 986 while True: + 987 if self._peek.isdigit(): + 988 self._advance() + 989 elif self._peek == "." and not decimal: + 990 decimal = True + 991 self._advance() + 992 elif self._peek in ("-", "+") and scientific == 1: + 993 scientific += 1 + 994 self._advance() + 995 elif self._peek.upper() == "E" and not scientific: + 996 scientific += 1 + 997 self._advance() + 998 elif self._peek.isidentifier(): + 999 number_text = self._text +1000 literal = "" +1001 +1002 while self._peek.strip() and self._peek not in self.SINGLE_TOKENS: +1003 literal += self._peek.upper() +1004 self._advance() +1005 +1006 token_type = self.KEYWORDS.get(self.NUMERIC_LITERALS.get(literal)) +1007 +1008 if token_type: +1009 self._add(TokenType.NUMBER, number_text) +1010 self._add(TokenType.DCOLON, "::") +1011 return self._add(token_type, literal) +1012 elif self.identifiers_can_start_with_digit: # type: ignore +1013 return self._add(TokenType.VAR) 1014 -1015 def _extract_value(self) -> str: -1016 while True: -1017 char = self._peek.strip() -1018 if char and char not in self.SINGLE_TOKENS: -1019 self._advance(alnum=True) -1020 else: -1021 break -1022 -1023 return self._text -1024 -1025 def _scan_string(self, start: str) -> bool: -1026 base = None -1027 token_type = TokenType.STRING -1028 -1029 if start in self._QUOTES: -1030 end = self._QUOTES[start] -1031 elif start in self._FORMAT_STRINGS: -1032 end, token_type = self._FORMAT_STRINGS[start] -1033 -1034 if token_type == TokenType.HEX_STRING: -1035 base = 16 -1036 elif token_type == TokenType.BIT_STRING: -1037 base = 2 -1038 else: -1039 return False -1040 -1041 self._advance(len(start)) -1042 text = self._extract_string(end) -1043 -1044 if base: -1045 try: -1046 int(text, base) -1047 except: -1048 raise RuntimeError( -1049 f"Numeric string contains invalid characters from {self._line}:{self._start}" -1050 ) -1051 else: -1052 text = text.encode(self.ENCODE).decode(self.ENCODE) if self.ENCODE else text +1015 self._add(TokenType.NUMBER, number_text) +1016 return self._advance(-len(literal)) +1017 else: +1018 return self._add(TokenType.NUMBER) +1019 +1020 def _scan_bits(self) -> None: +1021 self._advance() +1022 value = self._extract_value() +1023 try: +1024 # If `value` can't be converted to a binary, fallback to tokenizing it as an identifier +1025 int(value, 2) +1026 self._add(TokenType.BIT_STRING, value[2:]) # Drop the 0b +1027 except ValueError: +1028 self._add(TokenType.IDENTIFIER) +1029 +1030 def _scan_hex(self) -> None: +1031 self._advance() +1032 value = self._extract_value() +1033 try: +1034 # If `value` can't be converted to a hex, fallback to tokenizing it as an identifier +1035 int(value, 16) +1036 self._add(TokenType.HEX_STRING, value[2:]) # Drop the 0x +1037 except ValueError: +1038 self._add(TokenType.IDENTIFIER) +1039 +1040 def _extract_value(self) -> str: +1041 while True: +1042 char = self._peek.strip() +1043 if char and char not in self.SINGLE_TOKENS: +1044 self._advance(alnum=True) +1045 else: +1046 break +1047 +1048 return self._text +1049 +1050 def _scan_string(self, start: str) -> bool: +1051 base = None +1052 token_type = TokenType.STRING 1053 -1054 self._add(token_type, text) -1055 return True -1056 -1057 def _scan_identifier(self, identifier_end: str) -> None: -1058 self._advance() -1059 text = self._extract_string(identifier_end, self._IDENTIFIER_ESCAPES) -1060 self._add(TokenType.IDENTIFIER, text) -1061 -1062 def _scan_var(self) -> None: -1063 while True: -1064 char = self._peek.strip() -1065 if char and (char in self.VAR_SINGLE_TOKENS or char not in self.SINGLE_TOKENS): -1066 self._advance(alnum=True) -1067 else: -1068 break -1069 -1070 self._add( -1071 TokenType.VAR -1072 if self.tokens and self.tokens[-1].token_type == TokenType.PARAMETER -1073 else self.KEYWORDS.get(self._text.upper(), TokenType.VAR) -1074 ) -1075 -1076 def _extract_string(self, delimiter: str, escapes=None) -> str: -1077 text = "" -1078 delim_size = len(delimiter) -1079 escapes = self._STRING_ESCAPES if escapes is None else escapes -1080 -1081 while True: -1082 if self._char in escapes and (self._peek == delimiter or self._peek in escapes): -1083 if self._peek == delimiter: -1084 text += self._peek -1085 else: -1086 text += self._char + self._peek -1087 -1088 if self._current + 1 < self.size: -1089 self._advance(2) -1090 else: -1091 raise RuntimeError(f"Missing {delimiter} from {self._line}:{self._current}") +1054 if start in self._QUOTES: +1055 end = self._QUOTES[start] +1056 elif start in self._FORMAT_STRINGS: +1057 end, token_type = self._FORMAT_STRINGS[start] +1058 +1059 if token_type == TokenType.HEX_STRING: +1060 base = 16 +1061 elif token_type == TokenType.BIT_STRING: +1062 base = 2 +1063 else: +1064 return False +1065 +1066 self._advance(len(start)) +1067 text = self._extract_string(end) +1068 +1069 if base: +1070 try: +1071 int(text, base) +1072 except: +1073 raise RuntimeError( +1074 f"Numeric string contains invalid characters from {self._line}:{self._start}" +1075 ) +1076 else: +1077 text = text.encode(self.ENCODE).decode(self.ENCODE) if self.ENCODE else text +1078 +1079 self._add(token_type, text) +1080 return True +1081 +1082 def _scan_identifier(self, identifier_end: str) -> None: +1083 self._advance() +1084 text = self._extract_string(identifier_end, self._IDENTIFIER_ESCAPES) +1085 self._add(TokenType.IDENTIFIER, text) +1086 +1087 def _scan_var(self) -> None: +1088 while True: +1089 char = self._peek.strip() +1090 if char and (char in self.VAR_SINGLE_TOKENS or char not in self.SINGLE_TOKENS): +1091 self._advance(alnum=True) 1092 else: -1093 if self._chars(delim_size) == delimiter: -1094 if delim_size > 1: -1095 self._advance(delim_size - 1) -1096 break -1097 -1098 if self._end: -1099 raise RuntimeError(f"Missing {delimiter} from {self._line}:{self._start}") +1093 break +1094 +1095 self._add( +1096 TokenType.VAR +1097 if self.tokens and self.tokens[-1].token_type == TokenType.PARAMETER +1098 else self.KEYWORDS.get(self._text.upper(), TokenType.VAR) +1099 ) 1100 -1101 current = self._current - 1 -1102 self._advance(alnum=True) -1103 text += self.sql[current : self._current - 1] -1104 -1105 return text +1101 def _extract_string(self, delimiter: str, escapes=None) -> str: +1102 text = "" +1103 delim_size = len(delimiter) +1104 escapes = self._STRING_ESCAPES if escapes is None else escapes +1105 +1106 while True: +1107 if self._char in escapes and (self._peek == delimiter or self._peek in escapes): +1108 if self._peek == delimiter: +1109 text += self._peek +1110 else: +1111 text += self._char + self._peek +1112 +1113 if self._current + 1 < self.size: +1114 self._advance(2) +1115 else: +1116 raise RuntimeError(f"Missing {delimiter} from {self._line}:{self._current}") +1117 else: +1118 if self._chars(delim_size) == delimiter: +1119 if delim_size > 1: +1120 self._advance(delim_size - 1) +1121 break +1122 +1123 if self._end: +1124 raise RuntimeError(f"Missing {delimiter} from {self._line}:{self._start}") +1125 +1126 current = self._current - 1 +1127 self._advance(alnum=True) +1128 text += self.sql[current : self._current - 1] +1129 +1130 return text
                @@ -2140,182 +2204,195 @@
                114 DATETIME = auto() 115 DATETIME64 = auto() 116 DATE = auto() -117 UUID = auto() -118 GEOGRAPHY = auto() -119 NULLABLE = auto() -120 GEOMETRY = auto() -121 HLLSKETCH = auto() -122 HSTORE = auto() -123 SUPER = auto() -124 SERIAL = auto() -125 SMALLSERIAL = auto() -126 BIGSERIAL = auto() -127 XML = auto() -128 UNIQUEIDENTIFIER = auto() -129 MONEY = auto() -130 SMALLMONEY = auto() -131 ROWVERSION = auto() -132 IMAGE = auto() -133 VARIANT = auto() -134 OBJECT = auto() -135 INET = auto() -136 -137 # keywords -138 ALIAS = auto() -139 ALTER = auto() -140 ALWAYS = auto() -141 ALL = auto() -142 ANTI = auto() -143 ANY = auto() -144 APPLY = auto() -145 ARRAY = auto() -146 ASC = auto() -147 ASOF = auto() -148 AUTO_INCREMENT = auto() -149 BEGIN = auto() -150 BETWEEN = auto() -151 CACHE = auto() -152 CASE = auto() -153 CHARACTER_SET = auto() -154 COLLATE = auto() -155 COMMAND = auto() -156 COMMENT = auto() -157 COMMIT = auto() -158 CONSTRAINT = auto() -159 CREATE = auto() -160 CROSS = auto() -161 CUBE = auto() -162 CURRENT_DATE = auto() -163 CURRENT_DATETIME = auto() -164 CURRENT_TIME = auto() -165 CURRENT_TIMESTAMP = auto() -166 CURRENT_USER = auto() -167 DEFAULT = auto() -168 DELETE = auto() -169 DESC = auto() -170 DESCRIBE = auto() -171 DISTINCT = auto() -172 DIV = auto() -173 DROP = auto() -174 ELSE = auto() -175 END = auto() -176 ESCAPE = auto() -177 EXCEPT = auto() -178 EXECUTE = auto() -179 EXISTS = auto() -180 FALSE = auto() -181 FETCH = auto() -182 FILTER = auto() -183 FINAL = auto() -184 FIRST = auto() -185 FOR = auto() -186 FOREIGN_KEY = auto() -187 FORMAT = auto() -188 FROM = auto() -189 FULL = auto() -190 FUNCTION = auto() -191 GLOB = auto() -192 GLOBAL = auto() -193 GROUP_BY = auto() -194 GROUPING_SETS = auto() -195 HAVING = auto() -196 HINT = auto() -197 IF = auto() -198 ILIKE = auto() -199 ILIKE_ANY = auto() -200 IN = auto() -201 INDEX = auto() -202 INNER = auto() -203 INSERT = auto() -204 INTERSECT = auto() -205 INTERVAL = auto() -206 INTO = auto() -207 INTRODUCER = auto() -208 IRLIKE = auto() -209 IS = auto() -210 ISNULL = auto() -211 JOIN = auto() -212 JOIN_MARKER = auto() -213 KEEP = auto() -214 LANGUAGE = auto() -215 LATERAL = auto() -216 LEFT = auto() -217 LIKE = auto() -218 LIKE_ANY = auto() -219 LIMIT = auto() -220 LOAD = auto() -221 LOCK = auto() -222 MAP = auto() -223 MATCH_RECOGNIZE = auto() -224 MERGE = auto() -225 MOD = auto() -226 NATURAL = auto() -227 NEXT = auto() -228 NEXT_VALUE_FOR = auto() -229 NOTNULL = auto() -230 NULL = auto() -231 OFFSET = auto() -232 ON = auto() -233 ORDER_BY = auto() -234 ORDERED = auto() -235 ORDINALITY = auto() -236 OUTER = auto() -237 OVER = auto() -238 OVERLAPS = auto() -239 OVERWRITE = auto() -240 PARTITION = auto() -241 PARTITION_BY = auto() -242 PERCENT = auto() -243 PIVOT = auto() -244 PLACEHOLDER = auto() -245 PRAGMA = auto() -246 PRIMARY_KEY = auto() -247 PROCEDURE = auto() -248 PROPERTIES = auto() -249 PSEUDO_TYPE = auto() -250 QUALIFY = auto() -251 QUOTE = auto() -252 RANGE = auto() -253 RECURSIVE = auto() -254 REPLACE = auto() -255 RETURNING = auto() -256 REFERENCES = auto() -257 RIGHT = auto() -258 RLIKE = auto() -259 ROLLBACK = auto() -260 ROLLUP = auto() -261 ROW = auto() -262 ROWS = auto() -263 SELECT = auto() -264 SEMI = auto() -265 SEPARATOR = auto() -266 SERDE_PROPERTIES = auto() -267 SET = auto() -268 SETTINGS = auto() -269 SHOW = auto() -270 SIMILAR_TO = auto() -271 SOME = auto() -272 STRUCT = auto() -273 TABLE_SAMPLE = auto() -274 TEMPORARY = auto() -275 TOP = auto() -276 THEN = auto() -277 TRUE = auto() -278 UNCACHE = auto() -279 UNION = auto() -280 UNNEST = auto() -281 UNPIVOT = auto() -282 UPDATE = auto() -283 USE = auto() -284 USING = auto() -285 VALUES = auto() -286 VIEW = auto() -287 VOLATILE = auto() -288 WHEN = auto() -289 WHERE = auto() -290 WINDOW = auto() -291 WITH = auto() -292 UNIQUE = auto() +117 INT4RANGE = auto() +118 INT4MULTIRANGE = auto() +119 INT8RANGE = auto() +120 INT8MULTIRANGE = auto() +121 NUMRANGE = auto() +122 NUMMULTIRANGE = auto() +123 TSRANGE = auto() +124 TSMULTIRANGE = auto() +125 TSTZRANGE = auto() +126 TSTZMULTIRANGE = auto() +127 DATERANGE = auto() +128 DATEMULTIRANGE = auto() +129 UUID = auto() +130 GEOGRAPHY = auto() +131 NULLABLE = auto() +132 GEOMETRY = auto() +133 HLLSKETCH = auto() +134 HSTORE = auto() +135 SUPER = auto() +136 SERIAL = auto() +137 SMALLSERIAL = auto() +138 BIGSERIAL = auto() +139 XML = auto() +140 UNIQUEIDENTIFIER = auto() +141 MONEY = auto() +142 SMALLMONEY = auto() +143 ROWVERSION = auto() +144 IMAGE = auto() +145 VARIANT = auto() +146 OBJECT = auto() +147 INET = auto() +148 +149 # keywords +150 ALIAS = auto() +151 ALTER = auto() +152 ALWAYS = auto() +153 ALL = auto() +154 ANTI = auto() +155 ANY = auto() +156 APPLY = auto() +157 ARRAY = auto() +158 ASC = auto() +159 ASOF = auto() +160 AUTO_INCREMENT = auto() +161 BEGIN = auto() +162 BETWEEN = auto() +163 CACHE = auto() +164 CASE = auto() +165 CHARACTER_SET = auto() +166 COLLATE = auto() +167 COMMAND = auto() +168 COMMENT = auto() +169 COMMIT = auto() +170 CONSTRAINT = auto() +171 CREATE = auto() +172 CROSS = auto() +173 CUBE = auto() +174 CURRENT_DATE = auto() +175 CURRENT_DATETIME = auto() +176 CURRENT_TIME = auto() +177 CURRENT_TIMESTAMP = auto() +178 CURRENT_USER = auto() +179 DEFAULT = auto() +180 DELETE = auto() +181 DESC = auto() +182 DESCRIBE = auto() +183 DICTIONARY = auto() +184 DISTINCT = auto() +185 DIV = auto() +186 DROP = auto() +187 ELSE = auto() +188 END = auto() +189 ESCAPE = auto() +190 EXCEPT = auto() +191 EXECUTE = auto() +192 EXISTS = auto() +193 FALSE = auto() +194 FETCH = auto() +195 FILTER = auto() +196 FINAL = auto() +197 FIRST = auto() +198 FOR = auto() +199 FOREIGN_KEY = auto() +200 FORMAT = auto() +201 FROM = auto() +202 FULL = auto() +203 FUNCTION = auto() +204 GLOB = auto() +205 GLOBAL = auto() +206 GROUP_BY = auto() +207 GROUPING_SETS = auto() +208 HAVING = auto() +209 HINT = auto() +210 IF = auto() +211 ILIKE = auto() +212 ILIKE_ANY = auto() +213 IN = auto() +214 INDEX = auto() +215 INNER = auto() +216 INSERT = auto() +217 INTERSECT = auto() +218 INTERVAL = auto() +219 INTO = auto() +220 INTRODUCER = auto() +221 IRLIKE = auto() +222 IS = auto() +223 ISNULL = auto() +224 JOIN = auto() +225 JOIN_MARKER = auto() +226 KEEP = auto() +227 LANGUAGE = auto() +228 LATERAL = auto() +229 LEFT = auto() +230 LIKE = auto() +231 LIKE_ANY = auto() +232 LIMIT = auto() +233 LOAD = auto() +234 LOCK = auto() +235 MAP = auto() +236 MATCH_RECOGNIZE = auto() +237 MERGE = auto() +238 MOD = auto() +239 NATURAL = auto() +240 NEXT = auto() +241 NEXT_VALUE_FOR = auto() +242 NOTNULL = auto() +243 NULL = auto() +244 OFFSET = auto() +245 ON = auto() +246 ORDER_BY = auto() +247 ORDERED = auto() +248 ORDINALITY = auto() +249 OUTER = auto() +250 OVER = auto() +251 OVERLAPS = auto() +252 OVERWRITE = auto() +253 PARTITION = auto() +254 PARTITION_BY = auto() +255 PERCENT = auto() +256 PIVOT = auto() +257 PLACEHOLDER = auto() +258 PRAGMA = auto() +259 PRIMARY_KEY = auto() +260 PROCEDURE = auto() +261 PROPERTIES = auto() +262 PSEUDO_TYPE = auto() +263 QUALIFY = auto() +264 QUOTE = auto() +265 RANGE = auto() +266 RECURSIVE = auto() +267 REPLACE = auto() +268 RETURNING = auto() +269 REFERENCES = auto() +270 RIGHT = auto() +271 RLIKE = auto() +272 ROLLBACK = auto() +273 ROLLUP = auto() +274 ROW = auto() +275 ROWS = auto() +276 SELECT = auto() +277 SEMI = auto() +278 SEPARATOR = auto() +279 SERDE_PROPERTIES = auto() +280 SET = auto() +281 SETTINGS = auto() +282 SHOW = auto() +283 SIMILAR_TO = auto() +284 SOME = auto() +285 STRUCT = auto() +286 TABLE_SAMPLE = auto() +287 TEMPORARY = auto() +288 TOP = auto() +289 THEN = auto() +290 TRUE = auto() +291 UNCACHE = auto() +292 UNION = auto() +293 UNNEST = auto() +294 UNPIVOT = auto() +295 UPDATE = auto() +296 USE = auto() +297 USING = auto() +298 VALUES = auto() +299 VIEW = auto() +300 VOLATILE = auto() +301 WHEN = auto() +302 WHERE = auto() +303 WINDOW = auto() +304 WITH = auto() +305 UNIQUE = auto()
                @@ -3522,6 +3599,150 @@ + +
                +
                + INT4RANGE = +<TokenType.INT4RANGE: 'INT4RANGE'> + + +
                + + + + +
                +
                +
                + INT4MULTIRANGE = +<TokenType.INT4MULTIRANGE: 'INT4MULTIRANGE'> + + +
                + + + + +
                +
                +
                + INT8RANGE = +<TokenType.INT8RANGE: 'INT8RANGE'> + + +
                + + + + +
                +
                +
                + INT8MULTIRANGE = +<TokenType.INT8MULTIRANGE: 'INT8MULTIRANGE'> + + +
                + + + + +
                +
                +
                + NUMRANGE = +<TokenType.NUMRANGE: 'NUMRANGE'> + + +
                + + + + +
                +
                +
                + NUMMULTIRANGE = +<TokenType.NUMMULTIRANGE: 'NUMMULTIRANGE'> + + +
                + + + + +
                +
                +
                + TSRANGE = +<TokenType.TSRANGE: 'TSRANGE'> + + +
                + + + + +
                +
                +
                + TSMULTIRANGE = +<TokenType.TSMULTIRANGE: 'TSMULTIRANGE'> + + +
                + + + + +
                +
                +
                + TSTZRANGE = +<TokenType.TSTZRANGE: 'TSTZRANGE'> + + +
                + + + + +
                +
                +
                + TSTZMULTIRANGE = +<TokenType.TSTZMULTIRANGE: 'TSTZMULTIRANGE'> + + +
                + + + + +
                +
                +
                + DATERANGE = +<TokenType.DATERANGE: 'DATERANGE'> + + +
                + + + + +
                +
                +
                + DATEMULTIRANGE = +<TokenType.DATEMULTIRANGE: 'DATEMULTIRANGE'> + + +
                + + + +
                @@ -4146,6 +4367,18 @@ +
                +
                +
                + DICTIONARY = +<TokenType.DICTIONARY: 'DICTIONARY'> + + +
                + + + +
                @@ -5633,60 +5866,60 @@
                -
                295class Token:
                -296    __slots__ = ("token_type", "text", "line", "col", "start", "end", "comments")
                -297
                -298    @classmethod
                -299    def number(cls, number: int) -> Token:
                -300        """Returns a NUMBER token with `number` as its text."""
                -301        return cls(TokenType.NUMBER, str(number))
                -302
                -303    @classmethod
                -304    def string(cls, string: str) -> Token:
                -305        """Returns a STRING token with `string` as its text."""
                -306        return cls(TokenType.STRING, string)
                -307
                -308    @classmethod
                -309    def identifier(cls, identifier: str) -> Token:
                -310        """Returns an IDENTIFIER token with `identifier` as its text."""
                -311        return cls(TokenType.IDENTIFIER, identifier)
                -312
                -313    @classmethod
                -314    def var(cls, var: str) -> Token:
                -315        """Returns an VAR token with `var` as its text."""
                -316        return cls(TokenType.VAR, var)
                -317
                -318    def __init__(
                -319        self,
                -320        token_type: TokenType,
                -321        text: str,
                -322        line: int = 1,
                -323        col: int = 1,
                -324        start: int = 0,
                -325        end: int = 0,
                -326        comments: t.List[str] = [],
                -327    ) -> None:
                -328        """Token initializer.
                -329
                -330        Args:
                -331            token_type: The TokenType Enum.
                -332            text: The text of the token.
                -333            line: The line that the token ends on.
                -334            col: The column that the token ends on.
                -335            start: The start index of the token.
                -336            end: The ending index of the token.
                -337        """
                -338        self.token_type = token_type
                -339        self.text = text
                -340        self.line = line
                -341        self.col = col
                -342        self.start = start
                -343        self.end = end
                -344        self.comments = comments
                -345
                -346    def __repr__(self) -> str:
                -347        attributes = ", ".join(f"{k}: {getattr(self, k)}" for k in self.__slots__)
                -348        return f"<Token {attributes}>"
                +            
                308class Token:
                +309    __slots__ = ("token_type", "text", "line", "col", "start", "end", "comments")
                +310
                +311    @classmethod
                +312    def number(cls, number: int) -> Token:
                +313        """Returns a NUMBER token with `number` as its text."""
                +314        return cls(TokenType.NUMBER, str(number))
                +315
                +316    @classmethod
                +317    def string(cls, string: str) -> Token:
                +318        """Returns a STRING token with `string` as its text."""
                +319        return cls(TokenType.STRING, string)
                +320
                +321    @classmethod
                +322    def identifier(cls, identifier: str) -> Token:
                +323        """Returns an IDENTIFIER token with `identifier` as its text."""
                +324        return cls(TokenType.IDENTIFIER, identifier)
                +325
                +326    @classmethod
                +327    def var(cls, var: str) -> Token:
                +328        """Returns an VAR token with `var` as its text."""
                +329        return cls(TokenType.VAR, var)
                +330
                +331    def __init__(
                +332        self,
                +333        token_type: TokenType,
                +334        text: str,
                +335        line: int = 1,
                +336        col: int = 1,
                +337        start: int = 0,
                +338        end: int = 0,
                +339        comments: t.List[str] = [],
                +340    ) -> None:
                +341        """Token initializer.
                +342
                +343        Args:
                +344            token_type: The TokenType Enum.
                +345            text: The text of the token.
                +346            line: The line that the token ends on.
                +347            col: The column that the token ends on.
                +348            start: The start index of the token.
                +349            end: The ending index of the token.
                +350        """
                +351        self.token_type = token_type
                +352        self.text = text
                +353        self.line = line
                +354        self.col = col
                +355        self.start = start
                +356        self.end = end
                +357        self.comments = comments
                +358
                +359    def __repr__(self) -> str:
                +360        attributes = ", ".join(f"{k}: {getattr(self, k)}" for k in self.__slots__)
                +361        return f"<Token {attributes}>"
                 
                @@ -5702,33 +5935,33 @@
                -
                318    def __init__(
                -319        self,
                -320        token_type: TokenType,
                -321        text: str,
                -322        line: int = 1,
                -323        col: int = 1,
                -324        start: int = 0,
                -325        end: int = 0,
                -326        comments: t.List[str] = [],
                -327    ) -> None:
                -328        """Token initializer.
                -329
                -330        Args:
                -331            token_type: The TokenType Enum.
                -332            text: The text of the token.
                -333            line: The line that the token ends on.
                -334            col: The column that the token ends on.
                -335            start: The start index of the token.
                -336            end: The ending index of the token.
                -337        """
                -338        self.token_type = token_type
                -339        self.text = text
                -340        self.line = line
                -341        self.col = col
                -342        self.start = start
                -343        self.end = end
                -344        self.comments = comments
                +            
                331    def __init__(
                +332        self,
                +333        token_type: TokenType,
                +334        text: str,
                +335        line: int = 1,
                +336        col: int = 1,
                +337        start: int = 0,
                +338        end: int = 0,
                +339        comments: t.List[str] = [],
                +340    ) -> None:
                +341        """Token initializer.
                +342
                +343        Args:
                +344            token_type: The TokenType Enum.
                +345            text: The text of the token.
                +346            line: The line that the token ends on.
                +347            col: The column that the token ends on.
                +348            start: The start index of the token.
                +349            end: The ending index of the token.
                +350        """
                +351        self.token_type = token_type
                +352        self.text = text
                +353        self.line = line
                +354        self.col = col
                +355        self.start = start
                +356        self.end = end
                +357        self.comments = comments
                 
                @@ -5760,10 +5993,10 @@
                -
                298    @classmethod
                -299    def number(cls, number: int) -> Token:
                -300        """Returns a NUMBER token with `number` as its text."""
                -301        return cls(TokenType.NUMBER, str(number))
                +            
                311    @classmethod
                +312    def number(cls, number: int) -> Token:
                +313        """Returns a NUMBER token with `number` as its text."""
                +314        return cls(TokenType.NUMBER, str(number))
                 
                @@ -5784,10 +6017,10 @@
                -
                303    @classmethod
                -304    def string(cls, string: str) -> Token:
                -305        """Returns a STRING token with `string` as its text."""
                -306        return cls(TokenType.STRING, string)
                +            
                316    @classmethod
                +317    def string(cls, string: str) -> Token:
                +318        """Returns a STRING token with `string` as its text."""
                +319        return cls(TokenType.STRING, string)
                 
                @@ -5808,10 +6041,10 @@
                -
                308    @classmethod
                -309    def identifier(cls, identifier: str) -> Token:
                -310        """Returns an IDENTIFIER token with `identifier` as its text."""
                -311        return cls(TokenType.IDENTIFIER, identifier)
                +            
                321    @classmethod
                +322    def identifier(cls, identifier: str) -> Token:
                +323        """Returns an IDENTIFIER token with `identifier` as its text."""
                +324        return cls(TokenType.IDENTIFIER, identifier)
                 
                @@ -5832,10 +6065,10 @@
                -
                313    @classmethod
                -314    def var(cls, var: str) -> Token:
                -315        """Returns an VAR token with `var` as its text."""
                -316        return cls(TokenType.VAR, var)
                +            
                326    @classmethod
                +327    def var(cls, var: str) -> Token:
                +328        """Returns an VAR token with `var` as its text."""
                +329        return cls(TokenType.VAR, var)
                 
                @@ -5856,712 +6089,724 @@
                -
                 401class Tokenizer(metaclass=_Tokenizer):
                - 402    SINGLE_TOKENS = {
                - 403        "(": TokenType.L_PAREN,
                - 404        ")": TokenType.R_PAREN,
                - 405        "[": TokenType.L_BRACKET,
                - 406        "]": TokenType.R_BRACKET,
                - 407        "{": TokenType.L_BRACE,
                - 408        "}": TokenType.R_BRACE,
                - 409        "&": TokenType.AMP,
                - 410        "^": TokenType.CARET,
                - 411        ":": TokenType.COLON,
                - 412        ",": TokenType.COMMA,
                - 413        ".": TokenType.DOT,
                - 414        "-": TokenType.DASH,
                - 415        "=": TokenType.EQ,
                - 416        ">": TokenType.GT,
                - 417        "<": TokenType.LT,
                - 418        "%": TokenType.MOD,
                - 419        "!": TokenType.NOT,
                - 420        "|": TokenType.PIPE,
                - 421        "+": TokenType.PLUS,
                - 422        ";": TokenType.SEMICOLON,
                - 423        "/": TokenType.SLASH,
                - 424        "\\": TokenType.BACKSLASH,
                - 425        "*": TokenType.STAR,
                - 426        "~": TokenType.TILDA,
                - 427        "?": TokenType.PLACEHOLDER,
                - 428        "@": TokenType.PARAMETER,
                - 429        # used for breaking a var like x'y' but nothing else
                - 430        # the token type doesn't matter
                - 431        "'": TokenType.QUOTE,
                - 432        "`": TokenType.IDENTIFIER,
                - 433        '"': TokenType.IDENTIFIER,
                - 434        "#": TokenType.HASH,
                - 435    }
                - 436
                - 437    BIT_STRINGS: t.List[str | t.Tuple[str, str]] = []
                - 438    BYTE_STRINGS: t.List[str | t.Tuple[str, str]] = []
                - 439    HEX_STRINGS: t.List[str | t.Tuple[str, str]] = []
                - 440    RAW_STRINGS: t.List[str | t.Tuple[str, str]] = []
                - 441    IDENTIFIERS: t.List[str | t.Tuple[str, str]] = ['"']
                - 442    IDENTIFIER_ESCAPES = ['"']
                - 443    QUOTES: t.List[t.Tuple[str, str] | str] = ["'"]
                - 444    STRING_ESCAPES = ["'"]
                - 445    VAR_SINGLE_TOKENS: t.Set[str] = set()
                - 446
                - 447    _COMMENTS: t.Dict[str, str] = {}
                - 448    _FORMAT_STRINGS: t.Dict[str, t.Tuple[str, TokenType]] = {}
                - 449    _IDENTIFIERS: t.Dict[str, str] = {}
                - 450    _IDENTIFIER_ESCAPES: t.Set[str] = set()
                - 451    _QUOTES: t.Dict[str, str] = {}
                - 452    _STRING_ESCAPES: t.Set[str] = set()
                - 453
                - 454    KEYWORDS: t.Dict[t.Optional[str], TokenType] = {
                - 455        **{f"{{%{postfix}": TokenType.BLOCK_START for postfix in ("", "+", "-")},
                - 456        **{f"{prefix}%}}": TokenType.BLOCK_END for prefix in ("", "+", "-")},
                - 457        "{{+": TokenType.BLOCK_START,
                - 458        "{{-": TokenType.BLOCK_START,
                - 459        "+}}": TokenType.BLOCK_END,
                - 460        "-}}": TokenType.BLOCK_END,
                - 461        "/*+": TokenType.HINT,
                - 462        "==": TokenType.EQ,
                - 463        "::": TokenType.DCOLON,
                - 464        "||": TokenType.DPIPE,
                - 465        ">=": TokenType.GTE,
                - 466        "<=": TokenType.LTE,
                - 467        "<>": TokenType.NEQ,
                - 468        "!=": TokenType.NEQ,
                - 469        "<=>": TokenType.NULLSAFE_EQ,
                - 470        "->": TokenType.ARROW,
                - 471        "->>": TokenType.DARROW,
                - 472        "=>": TokenType.FARROW,
                - 473        "#>": TokenType.HASH_ARROW,
                - 474        "#>>": TokenType.DHASH_ARROW,
                - 475        "<->": TokenType.LR_ARROW,
                - 476        "&&": TokenType.DAMP,
                - 477        "ALL": TokenType.ALL,
                - 478        "ALWAYS": TokenType.ALWAYS,
                - 479        "AND": TokenType.AND,
                - 480        "ANTI": TokenType.ANTI,
                - 481        "ANY": TokenType.ANY,
                - 482        "ASC": TokenType.ASC,
                - 483        "AS": TokenType.ALIAS,
                - 484        "AUTOINCREMENT": TokenType.AUTO_INCREMENT,
                - 485        "AUTO_INCREMENT": TokenType.AUTO_INCREMENT,
                - 486        "BEGIN": TokenType.BEGIN,
                - 487        "BETWEEN": TokenType.BETWEEN,
                - 488        "CACHE": TokenType.CACHE,
                - 489        "UNCACHE": TokenType.UNCACHE,
                - 490        "CASE": TokenType.CASE,
                - 491        "CHARACTER SET": TokenType.CHARACTER_SET,
                - 492        "COLLATE": TokenType.COLLATE,
                - 493        "COLUMN": TokenType.COLUMN,
                - 494        "COMMIT": TokenType.COMMIT,
                - 495        "CONSTRAINT": TokenType.CONSTRAINT,
                - 496        "CREATE": TokenType.CREATE,
                - 497        "CROSS": TokenType.CROSS,
                - 498        "CUBE": TokenType.CUBE,
                - 499        "CURRENT_DATE": TokenType.CURRENT_DATE,
                - 500        "CURRENT_TIME": TokenType.CURRENT_TIME,
                - 501        "CURRENT_TIMESTAMP": TokenType.CURRENT_TIMESTAMP,
                - 502        "CURRENT_USER": TokenType.CURRENT_USER,
                - 503        "DATABASE": TokenType.DATABASE,
                - 504        "DEFAULT": TokenType.DEFAULT,
                - 505        "DELETE": TokenType.DELETE,
                - 506        "DESC": TokenType.DESC,
                - 507        "DESCRIBE": TokenType.DESCRIBE,
                - 508        "DISTINCT": TokenType.DISTINCT,
                - 509        "DIV": TokenType.DIV,
                - 510        "DROP": TokenType.DROP,
                - 511        "ELSE": TokenType.ELSE,
                - 512        "END": TokenType.END,
                - 513        "ESCAPE": TokenType.ESCAPE,
                - 514        "EXCEPT": TokenType.EXCEPT,
                - 515        "EXECUTE": TokenType.EXECUTE,
                - 516        "EXISTS": TokenType.EXISTS,
                - 517        "FALSE": TokenType.FALSE,
                - 518        "FETCH": TokenType.FETCH,
                - 519        "FILTER": TokenType.FILTER,
                - 520        "FIRST": TokenType.FIRST,
                - 521        "FULL": TokenType.FULL,
                - 522        "FUNCTION": TokenType.FUNCTION,
                - 523        "FOR": TokenType.FOR,
                - 524        "FOREIGN KEY": TokenType.FOREIGN_KEY,
                - 525        "FORMAT": TokenType.FORMAT,
                - 526        "FROM": TokenType.FROM,
                - 527        "GEOGRAPHY": TokenType.GEOGRAPHY,
                - 528        "GEOMETRY": TokenType.GEOMETRY,
                - 529        "GLOB": TokenType.GLOB,
                - 530        "GROUP BY": TokenType.GROUP_BY,
                - 531        "GROUPING SETS": TokenType.GROUPING_SETS,
                - 532        "HAVING": TokenType.HAVING,
                - 533        "IF": TokenType.IF,
                - 534        "ILIKE": TokenType.ILIKE,
                - 535        "IN": TokenType.IN,
                - 536        "INDEX": TokenType.INDEX,
                - 537        "INET": TokenType.INET,
                - 538        "INNER": TokenType.INNER,
                - 539        "INSERT": TokenType.INSERT,
                - 540        "INTERVAL": TokenType.INTERVAL,
                - 541        "INTERSECT": TokenType.INTERSECT,
                - 542        "INTO": TokenType.INTO,
                - 543        "IS": TokenType.IS,
                - 544        "ISNULL": TokenType.ISNULL,
                - 545        "JOIN": TokenType.JOIN,
                - 546        "KEEP": TokenType.KEEP,
                - 547        "LATERAL": TokenType.LATERAL,
                - 548        "LEFT": TokenType.LEFT,
                - 549        "LIKE": TokenType.LIKE,
                - 550        "LIMIT": TokenType.LIMIT,
                - 551        "LOAD": TokenType.LOAD,
                - 552        "LOCK": TokenType.LOCK,
                - 553        "MERGE": TokenType.MERGE,
                - 554        "NATURAL": TokenType.NATURAL,
                - 555        "NEXT": TokenType.NEXT,
                - 556        "NEXT VALUE FOR": TokenType.NEXT_VALUE_FOR,
                - 557        "NOT": TokenType.NOT,
                - 558        "NOTNULL": TokenType.NOTNULL,
                - 559        "NULL": TokenType.NULL,
                - 560        "OBJECT": TokenType.OBJECT,
                - 561        "OFFSET": TokenType.OFFSET,
                - 562        "ON": TokenType.ON,
                - 563        "OR": TokenType.OR,
                - 564        "ORDER BY": TokenType.ORDER_BY,
                - 565        "ORDINALITY": TokenType.ORDINALITY,
                - 566        "OUTER": TokenType.OUTER,
                - 567        "OVER": TokenType.OVER,
                - 568        "OVERLAPS": TokenType.OVERLAPS,
                - 569        "OVERWRITE": TokenType.OVERWRITE,
                - 570        "PARTITION": TokenType.PARTITION,
                - 571        "PARTITION BY": TokenType.PARTITION_BY,
                - 572        "PARTITIONED BY": TokenType.PARTITION_BY,
                - 573        "PARTITIONED_BY": TokenType.PARTITION_BY,
                - 574        "PERCENT": TokenType.PERCENT,
                - 575        "PIVOT": TokenType.PIVOT,
                - 576        "PRAGMA": TokenType.PRAGMA,
                - 577        "PRIMARY KEY": TokenType.PRIMARY_KEY,
                - 578        "PROCEDURE": TokenType.PROCEDURE,
                - 579        "QUALIFY": TokenType.QUALIFY,
                - 580        "RANGE": TokenType.RANGE,
                - 581        "RECURSIVE": TokenType.RECURSIVE,
                - 582        "REGEXP": TokenType.RLIKE,
                - 583        "REPLACE": TokenType.REPLACE,
                - 584        "REFERENCES": TokenType.REFERENCES,
                - 585        "RIGHT": TokenType.RIGHT,
                - 586        "RLIKE": TokenType.RLIKE,
                - 587        "ROLLBACK": TokenType.ROLLBACK,
                - 588        "ROLLUP": TokenType.ROLLUP,
                - 589        "ROW": TokenType.ROW,
                - 590        "ROWS": TokenType.ROWS,
                - 591        "SCHEMA": TokenType.SCHEMA,
                - 592        "SELECT": TokenType.SELECT,
                - 593        "SEMI": TokenType.SEMI,
                - 594        "SET": TokenType.SET,
                - 595        "SETTINGS": TokenType.SETTINGS,
                - 596        "SHOW": TokenType.SHOW,
                - 597        "SIMILAR TO": TokenType.SIMILAR_TO,
                - 598        "SOME": TokenType.SOME,
                - 599        "TABLE": TokenType.TABLE,
                - 600        "TABLESAMPLE": TokenType.TABLE_SAMPLE,
                - 601        "TEMP": TokenType.TEMPORARY,
                - 602        "TEMPORARY": TokenType.TEMPORARY,
                - 603        "THEN": TokenType.THEN,
                - 604        "TRUE": TokenType.TRUE,
                - 605        "UNION": TokenType.UNION,
                - 606        "UNNEST": TokenType.UNNEST,
                - 607        "UNPIVOT": TokenType.UNPIVOT,
                - 608        "UPDATE": TokenType.UPDATE,
                - 609        "USE": TokenType.USE,
                - 610        "USING": TokenType.USING,
                - 611        "UUID": TokenType.UUID,
                - 612        "VALUES": TokenType.VALUES,
                - 613        "VIEW": TokenType.VIEW,
                - 614        "VOLATILE": TokenType.VOLATILE,
                - 615        "WHEN": TokenType.WHEN,
                - 616        "WHERE": TokenType.WHERE,
                - 617        "WINDOW": TokenType.WINDOW,
                - 618        "WITH": TokenType.WITH,
                - 619        "APPLY": TokenType.APPLY,
                - 620        "ARRAY": TokenType.ARRAY,
                - 621        "BIT": TokenType.BIT,
                - 622        "BOOL": TokenType.BOOLEAN,
                - 623        "BOOLEAN": TokenType.BOOLEAN,
                - 624        "BYTE": TokenType.TINYINT,
                - 625        "TINYINT": TokenType.TINYINT,
                - 626        "SHORT": TokenType.SMALLINT,
                - 627        "SMALLINT": TokenType.SMALLINT,
                - 628        "INT2": TokenType.SMALLINT,
                - 629        "INTEGER": TokenType.INT,
                - 630        "INT": TokenType.INT,
                - 631        "INT4": TokenType.INT,
                - 632        "LONG": TokenType.BIGINT,
                - 633        "BIGINT": TokenType.BIGINT,
                - 634        "INT8": TokenType.BIGINT,
                - 635        "DEC": TokenType.DECIMAL,
                - 636        "DECIMAL": TokenType.DECIMAL,
                - 637        "BIGDECIMAL": TokenType.BIGDECIMAL,
                - 638        "BIGNUMERIC": TokenType.BIGDECIMAL,
                - 639        "MAP": TokenType.MAP,
                - 640        "NULLABLE": TokenType.NULLABLE,
                - 641        "NUMBER": TokenType.DECIMAL,
                - 642        "NUMERIC": TokenType.DECIMAL,
                - 643        "FIXED": TokenType.DECIMAL,
                - 644        "REAL": TokenType.FLOAT,
                - 645        "FLOAT": TokenType.FLOAT,
                - 646        "FLOAT4": TokenType.FLOAT,
                - 647        "FLOAT8": TokenType.DOUBLE,
                - 648        "DOUBLE": TokenType.DOUBLE,
                - 649        "DOUBLE PRECISION": TokenType.DOUBLE,
                - 650        "JSON": TokenType.JSON,
                - 651        "CHAR": TokenType.CHAR,
                - 652        "CHARACTER": TokenType.CHAR,
                - 653        "NCHAR": TokenType.NCHAR,
                - 654        "VARCHAR": TokenType.VARCHAR,
                - 655        "VARCHAR2": TokenType.VARCHAR,
                - 656        "NVARCHAR": TokenType.NVARCHAR,
                - 657        "NVARCHAR2": TokenType.NVARCHAR,
                - 658        "STR": TokenType.TEXT,
                - 659        "STRING": TokenType.TEXT,
                - 660        "TEXT": TokenType.TEXT,
                - 661        "CLOB": TokenType.TEXT,
                - 662        "LONGVARCHAR": TokenType.TEXT,
                - 663        "BINARY": TokenType.BINARY,
                - 664        "BLOB": TokenType.VARBINARY,
                - 665        "BYTEA": TokenType.VARBINARY,
                - 666        "VARBINARY": TokenType.VARBINARY,
                - 667        "TIME": TokenType.TIME,
                - 668        "TIMESTAMP": TokenType.TIMESTAMP,
                - 669        "TIMESTAMPTZ": TokenType.TIMESTAMPTZ,
                - 670        "TIMESTAMPLTZ": TokenType.TIMESTAMPLTZ,
                - 671        "DATE": TokenType.DATE,
                - 672        "DATETIME": TokenType.DATETIME,
                - 673        "UNIQUE": TokenType.UNIQUE,
                - 674        "STRUCT": TokenType.STRUCT,
                - 675        "VARIANT": TokenType.VARIANT,
                - 676        "ALTER": TokenType.ALTER,
                - 677        "ANALYZE": TokenType.COMMAND,
                - 678        "CALL": TokenType.COMMAND,
                - 679        "COMMENT": TokenType.COMMENT,
                - 680        "COPY": TokenType.COMMAND,
                - 681        "EXPLAIN": TokenType.COMMAND,
                - 682        "GRANT": TokenType.COMMAND,
                - 683        "OPTIMIZE": TokenType.COMMAND,
                - 684        "PREPARE": TokenType.COMMAND,
                - 685        "TRUNCATE": TokenType.COMMAND,
                - 686        "VACUUM": TokenType.COMMAND,
                - 687    }
                - 688
                - 689    WHITE_SPACE: t.Dict[t.Optional[str], TokenType] = {
                - 690        " ": TokenType.SPACE,
                - 691        "\t": TokenType.SPACE,
                - 692        "\n": TokenType.BREAK,
                - 693        "\r": TokenType.BREAK,
                - 694        "\r\n": TokenType.BREAK,
                - 695    }
                - 696
                - 697    COMMANDS = {
                - 698        TokenType.COMMAND,
                - 699        TokenType.EXECUTE,
                - 700        TokenType.FETCH,
                - 701        TokenType.SHOW,
                - 702    }
                - 703
                - 704    COMMAND_PREFIX_TOKENS = {TokenType.SEMICOLON, TokenType.BEGIN}
                - 705
                - 706    # handle numeric literals like in hive (3L = BIGINT)
                - 707    NUMERIC_LITERALS: t.Dict[str, str] = {}
                - 708    ENCODE: t.Optional[str] = None
                - 709
                - 710    COMMENTS = ["--", ("/*", "*/"), ("{#", "#}")]
                - 711    KEYWORD_TRIE: t.Dict = {}  # autofilled
                - 712
                - 713    IDENTIFIER_CAN_START_WITH_DIGIT = False
                +            
                 414class Tokenizer(metaclass=_Tokenizer):
                + 415    SINGLE_TOKENS = {
                + 416        "(": TokenType.L_PAREN,
                + 417        ")": TokenType.R_PAREN,
                + 418        "[": TokenType.L_BRACKET,
                + 419        "]": TokenType.R_BRACKET,
                + 420        "{": TokenType.L_BRACE,
                + 421        "}": TokenType.R_BRACE,
                + 422        "&": TokenType.AMP,
                + 423        "^": TokenType.CARET,
                + 424        ":": TokenType.COLON,
                + 425        ",": TokenType.COMMA,
                + 426        ".": TokenType.DOT,
                + 427        "-": TokenType.DASH,
                + 428        "=": TokenType.EQ,
                + 429        ">": TokenType.GT,
                + 430        "<": TokenType.LT,
                + 431        "%": TokenType.MOD,
                + 432        "!": TokenType.NOT,
                + 433        "|": TokenType.PIPE,
                + 434        "+": TokenType.PLUS,
                + 435        ";": TokenType.SEMICOLON,
                + 436        "/": TokenType.SLASH,
                + 437        "\\": TokenType.BACKSLASH,
                + 438        "*": TokenType.STAR,
                + 439        "~": TokenType.TILDA,
                + 440        "?": TokenType.PLACEHOLDER,
                + 441        "@": TokenType.PARAMETER,
                + 442        # used for breaking a var like x'y' but nothing else
                + 443        # the token type doesn't matter
                + 444        "'": TokenType.QUOTE,
                + 445        "`": TokenType.IDENTIFIER,
                + 446        '"': TokenType.IDENTIFIER,
                + 447        "#": TokenType.HASH,
                + 448    }
                + 449
                + 450    BIT_STRINGS: t.List[str | t.Tuple[str, str]] = []
                + 451    BYTE_STRINGS: t.List[str | t.Tuple[str, str]] = []
                + 452    HEX_STRINGS: t.List[str | t.Tuple[str, str]] = []
                + 453    RAW_STRINGS: t.List[str | t.Tuple[str, str]] = []
                + 454    IDENTIFIERS: t.List[str | t.Tuple[str, str]] = ['"']
                + 455    IDENTIFIER_ESCAPES = ['"']
                + 456    QUOTES: t.List[t.Tuple[str, str] | str] = ["'"]
                + 457    STRING_ESCAPES = ["'"]
                + 458    VAR_SINGLE_TOKENS: t.Set[str] = set()
                + 459
                + 460    _COMMENTS: t.Dict[str, str] = {}
                + 461    _FORMAT_STRINGS: t.Dict[str, t.Tuple[str, TokenType]] = {}
                + 462    _IDENTIFIERS: t.Dict[str, str] = {}
                + 463    _IDENTIFIER_ESCAPES: t.Set[str] = set()
                + 464    _QUOTES: t.Dict[str, str] = {}
                + 465    _STRING_ESCAPES: t.Set[str] = set()
                + 466
                + 467    KEYWORDS: t.Dict[t.Optional[str], TokenType] = {
                + 468        **{f"{{%{postfix}": TokenType.BLOCK_START for postfix in ("", "+", "-")},
                + 469        **{f"{prefix}%}}": TokenType.BLOCK_END for prefix in ("", "+", "-")},
                + 470        "{{+": TokenType.BLOCK_START,
                + 471        "{{-": TokenType.BLOCK_START,
                + 472        "+}}": TokenType.BLOCK_END,
                + 473        "-}}": TokenType.BLOCK_END,
                + 474        "/*+": TokenType.HINT,
                + 475        "==": TokenType.EQ,
                + 476        "::": TokenType.DCOLON,
                + 477        "||": TokenType.DPIPE,
                + 478        ">=": TokenType.GTE,
                + 479        "<=": TokenType.LTE,
                + 480        "<>": TokenType.NEQ,
                + 481        "!=": TokenType.NEQ,
                + 482        "<=>": TokenType.NULLSAFE_EQ,
                + 483        "->": TokenType.ARROW,
                + 484        "->>": TokenType.DARROW,
                + 485        "=>": TokenType.FARROW,
                + 486        "#>": TokenType.HASH_ARROW,
                + 487        "#>>": TokenType.DHASH_ARROW,
                + 488        "<->": TokenType.LR_ARROW,
                + 489        "&&": TokenType.DAMP,
                + 490        "ALL": TokenType.ALL,
                + 491        "ALWAYS": TokenType.ALWAYS,
                + 492        "AND": TokenType.AND,
                + 493        "ANTI": TokenType.ANTI,
                + 494        "ANY": TokenType.ANY,
                + 495        "ASC": TokenType.ASC,
                + 496        "AS": TokenType.ALIAS,
                + 497        "ASOF": TokenType.ASOF,
                + 498        "AUTOINCREMENT": TokenType.AUTO_INCREMENT,
                + 499        "AUTO_INCREMENT": TokenType.AUTO_INCREMENT,
                + 500        "BEGIN": TokenType.BEGIN,
                + 501        "BETWEEN": TokenType.BETWEEN,
                + 502        "CACHE": TokenType.CACHE,
                + 503        "UNCACHE": TokenType.UNCACHE,
                + 504        "CASE": TokenType.CASE,
                + 505        "CHARACTER SET": TokenType.CHARACTER_SET,
                + 506        "COLLATE": TokenType.COLLATE,
                + 507        "COLUMN": TokenType.COLUMN,
                + 508        "COMMIT": TokenType.COMMIT,
                + 509        "CONSTRAINT": TokenType.CONSTRAINT,
                + 510        "CREATE": TokenType.CREATE,
                + 511        "CROSS": TokenType.CROSS,
                + 512        "CUBE": TokenType.CUBE,
                + 513        "CURRENT_DATE": TokenType.CURRENT_DATE,
                + 514        "CURRENT_TIME": TokenType.CURRENT_TIME,
                + 515        "CURRENT_TIMESTAMP": TokenType.CURRENT_TIMESTAMP,
                + 516        "CURRENT_USER": TokenType.CURRENT_USER,
                + 517        "DATABASE": TokenType.DATABASE,
                + 518        "DEFAULT": TokenType.DEFAULT,
                + 519        "DELETE": TokenType.DELETE,
                + 520        "DESC": TokenType.DESC,
                + 521        "DESCRIBE": TokenType.DESCRIBE,
                + 522        "DISTINCT": TokenType.DISTINCT,
                + 523        "DIV": TokenType.DIV,
                + 524        "DROP": TokenType.DROP,
                + 525        "ELSE": TokenType.ELSE,
                + 526        "END": TokenType.END,
                + 527        "ESCAPE": TokenType.ESCAPE,
                + 528        "EXCEPT": TokenType.EXCEPT,
                + 529        "EXECUTE": TokenType.EXECUTE,
                + 530        "EXISTS": TokenType.EXISTS,
                + 531        "FALSE": TokenType.FALSE,
                + 532        "FETCH": TokenType.FETCH,
                + 533        "FILTER": TokenType.FILTER,
                + 534        "FIRST": TokenType.FIRST,
                + 535        "FULL": TokenType.FULL,
                + 536        "FUNCTION": TokenType.FUNCTION,
                + 537        "FOR": TokenType.FOR,
                + 538        "FOREIGN KEY": TokenType.FOREIGN_KEY,
                + 539        "FORMAT": TokenType.FORMAT,
                + 540        "FROM": TokenType.FROM,
                + 541        "GEOGRAPHY": TokenType.GEOGRAPHY,
                + 542        "GEOMETRY": TokenType.GEOMETRY,
                + 543        "GLOB": TokenType.GLOB,
                + 544        "GROUP BY": TokenType.GROUP_BY,
                + 545        "GROUPING SETS": TokenType.GROUPING_SETS,
                + 546        "HAVING": TokenType.HAVING,
                + 547        "IF": TokenType.IF,
                + 548        "ILIKE": TokenType.ILIKE,
                + 549        "IN": TokenType.IN,
                + 550        "INDEX": TokenType.INDEX,
                + 551        "INET": TokenType.INET,
                + 552        "INNER": TokenType.INNER,
                + 553        "INSERT": TokenType.INSERT,
                + 554        "INTERVAL": TokenType.INTERVAL,
                + 555        "INTERSECT": TokenType.INTERSECT,
                + 556        "INTO": TokenType.INTO,
                + 557        "IS": TokenType.IS,
                + 558        "ISNULL": TokenType.ISNULL,
                + 559        "JOIN": TokenType.JOIN,
                + 560        "KEEP": TokenType.KEEP,
                + 561        "LATERAL": TokenType.LATERAL,
                + 562        "LEFT": TokenType.LEFT,
                + 563        "LIKE": TokenType.LIKE,
                + 564        "LIMIT": TokenType.LIMIT,
                + 565        "LOAD": TokenType.LOAD,
                + 566        "LOCK": TokenType.LOCK,
                + 567        "MERGE": TokenType.MERGE,
                + 568        "NATURAL": TokenType.NATURAL,
                + 569        "NEXT": TokenType.NEXT,
                + 570        "NEXT VALUE FOR": TokenType.NEXT_VALUE_FOR,
                + 571        "NOT": TokenType.NOT,
                + 572        "NOTNULL": TokenType.NOTNULL,
                + 573        "NULL": TokenType.NULL,
                + 574        "OBJECT": TokenType.OBJECT,
                + 575        "OFFSET": TokenType.OFFSET,
                + 576        "ON": TokenType.ON,
                + 577        "OR": TokenType.OR,
                + 578        "ORDER BY": TokenType.ORDER_BY,
                + 579        "ORDINALITY": TokenType.ORDINALITY,
                + 580        "OUTER": TokenType.OUTER,
                + 581        "OVER": TokenType.OVER,
                + 582        "OVERLAPS": TokenType.OVERLAPS,
                + 583        "OVERWRITE": TokenType.OVERWRITE,
                + 584        "PARTITION": TokenType.PARTITION,
                + 585        "PARTITION BY": TokenType.PARTITION_BY,
                + 586        "PARTITIONED BY": TokenType.PARTITION_BY,
                + 587        "PARTITIONED_BY": TokenType.PARTITION_BY,
                + 588        "PERCENT": TokenType.PERCENT,
                + 589        "PIVOT": TokenType.PIVOT,
                + 590        "PRAGMA": TokenType.PRAGMA,
                + 591        "PRIMARY KEY": TokenType.PRIMARY_KEY,
                + 592        "PROCEDURE": TokenType.PROCEDURE,
                + 593        "QUALIFY": TokenType.QUALIFY,
                + 594        "RANGE": TokenType.RANGE,
                + 595        "RECURSIVE": TokenType.RECURSIVE,
                + 596        "REGEXP": TokenType.RLIKE,
                + 597        "REPLACE": TokenType.REPLACE,
                + 598        "REFERENCES": TokenType.REFERENCES,
                + 599        "RIGHT": TokenType.RIGHT,
                + 600        "RLIKE": TokenType.RLIKE,
                + 601        "ROLLBACK": TokenType.ROLLBACK,
                + 602        "ROLLUP": TokenType.ROLLUP,
                + 603        "ROW": TokenType.ROW,
                + 604        "ROWS": TokenType.ROWS,
                + 605        "SCHEMA": TokenType.SCHEMA,
                + 606        "SELECT": TokenType.SELECT,
                + 607        "SEMI": TokenType.SEMI,
                + 608        "SET": TokenType.SET,
                + 609        "SETTINGS": TokenType.SETTINGS,
                + 610        "SHOW": TokenType.SHOW,
                + 611        "SIMILAR TO": TokenType.SIMILAR_TO,
                + 612        "SOME": TokenType.SOME,
                + 613        "TABLE": TokenType.TABLE,
                + 614        "TABLESAMPLE": TokenType.TABLE_SAMPLE,
                + 615        "TEMP": TokenType.TEMPORARY,
                + 616        "TEMPORARY": TokenType.TEMPORARY,
                + 617        "THEN": TokenType.THEN,
                + 618        "TRUE": TokenType.TRUE,
                + 619        "UNION": TokenType.UNION,
                + 620        "UNNEST": TokenType.UNNEST,
                + 621        "UNPIVOT": TokenType.UNPIVOT,
                + 622        "UPDATE": TokenType.UPDATE,
                + 623        "USE": TokenType.USE,
                + 624        "USING": TokenType.USING,
                + 625        "UUID": TokenType.UUID,
                + 626        "VALUES": TokenType.VALUES,
                + 627        "VIEW": TokenType.VIEW,
                + 628        "VOLATILE": TokenType.VOLATILE,
                + 629        "WHEN": TokenType.WHEN,
                + 630        "WHERE": TokenType.WHERE,
                + 631        "WINDOW": TokenType.WINDOW,
                + 632        "WITH": TokenType.WITH,
                + 633        "APPLY": TokenType.APPLY,
                + 634        "ARRAY": TokenType.ARRAY,
                + 635        "BIT": TokenType.BIT,
                + 636        "BOOL": TokenType.BOOLEAN,
                + 637        "BOOLEAN": TokenType.BOOLEAN,
                + 638        "BYTE": TokenType.TINYINT,
                + 639        "TINYINT": TokenType.TINYINT,
                + 640        "SHORT": TokenType.SMALLINT,
                + 641        "SMALLINT": TokenType.SMALLINT,
                + 642        "INT2": TokenType.SMALLINT,
                + 643        "INTEGER": TokenType.INT,
                + 644        "INT": TokenType.INT,
                + 645        "INT4": TokenType.INT,
                + 646        "LONG": TokenType.BIGINT,
                + 647        "BIGINT": TokenType.BIGINT,
                + 648        "INT8": TokenType.BIGINT,
                + 649        "DEC": TokenType.DECIMAL,
                + 650        "DECIMAL": TokenType.DECIMAL,
                + 651        "BIGDECIMAL": TokenType.BIGDECIMAL,
                + 652        "BIGNUMERIC": TokenType.BIGDECIMAL,
                + 653        "MAP": TokenType.MAP,
                + 654        "NULLABLE": TokenType.NULLABLE,
                + 655        "NUMBER": TokenType.DECIMAL,
                + 656        "NUMERIC": TokenType.DECIMAL,
                + 657        "FIXED": TokenType.DECIMAL,
                + 658        "REAL": TokenType.FLOAT,
                + 659        "FLOAT": TokenType.FLOAT,
                + 660        "FLOAT4": TokenType.FLOAT,
                + 661        "FLOAT8": TokenType.DOUBLE,
                + 662        "DOUBLE": TokenType.DOUBLE,
                + 663        "DOUBLE PRECISION": TokenType.DOUBLE,
                + 664        "JSON": TokenType.JSON,
                + 665        "CHAR": TokenType.CHAR,
                + 666        "CHARACTER": TokenType.CHAR,
                + 667        "NCHAR": TokenType.NCHAR,
                + 668        "VARCHAR": TokenType.VARCHAR,
                + 669        "VARCHAR2": TokenType.VARCHAR,
                + 670        "NVARCHAR": TokenType.NVARCHAR,
                + 671        "NVARCHAR2": TokenType.NVARCHAR,
                + 672        "STR": TokenType.TEXT,
                + 673        "STRING": TokenType.TEXT,
                + 674        "TEXT": TokenType.TEXT,
                + 675        "CLOB": TokenType.TEXT,
                + 676        "LONGVARCHAR": TokenType.TEXT,
                + 677        "BINARY": TokenType.BINARY,
                + 678        "BLOB": TokenType.VARBINARY,
                + 679        "BYTEA": TokenType.VARBINARY,
                + 680        "VARBINARY": TokenType.VARBINARY,
                + 681        "TIME": TokenType.TIME,
                + 682        "TIMESTAMP": TokenType.TIMESTAMP,
                + 683        "TIMESTAMPTZ": TokenType.TIMESTAMPTZ,
                + 684        "TIMESTAMPLTZ": TokenType.TIMESTAMPLTZ,
                + 685        "DATE": TokenType.DATE,
                + 686        "DATETIME": TokenType.DATETIME,
                + 687        "INT4RANGE": TokenType.INT4RANGE,
                + 688        "INT4MULTIRANGE": TokenType.INT4MULTIRANGE,
                + 689        "INT8RANGE": TokenType.INT8RANGE,
                + 690        "INT8MULTIRANGE": TokenType.INT8MULTIRANGE,
                + 691        "NUMRANGE": TokenType.NUMRANGE,
                + 692        "NUMMULTIRANGE": TokenType.NUMMULTIRANGE,
                + 693        "TSRANGE": TokenType.TSRANGE,
                + 694        "TSMULTIRANGE": TokenType.TSMULTIRANGE,
                + 695        "TSTZRANGE": TokenType.TSTZRANGE,
                + 696        "TSTZMULTIRANGE": TokenType.TSTZMULTIRANGE,
                + 697        "DATERANGE": TokenType.DATERANGE,
                + 698        "DATEMULTIRANGE": TokenType.DATEMULTIRANGE,
                + 699        "UNIQUE": TokenType.UNIQUE,
                + 700        "STRUCT": TokenType.STRUCT,
                + 701        "VARIANT": TokenType.VARIANT,
                + 702        "ALTER": TokenType.ALTER,
                + 703        "ANALYZE": TokenType.COMMAND,
                + 704        "CALL": TokenType.COMMAND,
                + 705        "COMMENT": TokenType.COMMENT,
                + 706        "COPY": TokenType.COMMAND,
                + 707        "EXPLAIN": TokenType.COMMAND,
                + 708        "GRANT": TokenType.COMMAND,
                + 709        "OPTIMIZE": TokenType.COMMAND,
                + 710        "PREPARE": TokenType.COMMAND,
                + 711        "TRUNCATE": TokenType.COMMAND,
                + 712        "VACUUM": TokenType.COMMAND,
                + 713    }
                  714
                - 715    __slots__ = (
                - 716        "sql",
                - 717        "size",
                - 718        "tokens",
                - 719        "_start",
                - 720        "_current",
                - 721        "_line",
                - 722        "_col",
                - 723        "_comments",
                - 724        "_char",
                - 725        "_end",
                - 726        "_peek",
                - 727        "_prev_token_line",
                - 728    )
                + 715    WHITE_SPACE: t.Dict[t.Optional[str], TokenType] = {
                + 716        " ": TokenType.SPACE,
                + 717        "\t": TokenType.SPACE,
                + 718        "\n": TokenType.BREAK,
                + 719        "\r": TokenType.BREAK,
                + 720        "\r\n": TokenType.BREAK,
                + 721    }
                + 722
                + 723    COMMANDS = {
                + 724        TokenType.COMMAND,
                + 725        TokenType.EXECUTE,
                + 726        TokenType.FETCH,
                + 727        TokenType.SHOW,
                + 728    }
                  729
                - 730    def __init__(self) -> None:
                - 731        self.reset()
                - 732
                - 733    def reset(self) -> None:
                - 734        self.sql = ""
                - 735        self.size = 0
                - 736        self.tokens: t.List[Token] = []
                - 737        self._start = 0
                - 738        self._current = 0
                - 739        self._line = 1
                - 740        self._col = 0
                - 741        self._comments: t.List[str] = []
                - 742
                - 743        self._char = ""
                - 744        self._end = False
                - 745        self._peek = ""
                - 746        self._prev_token_line = -1
                - 747
                - 748    def tokenize(self, sql: str) -> t.List[Token]:
                - 749        """Returns a list of tokens corresponding to the SQL string `sql`."""
                - 750        self.reset()
                - 751        self.sql = sql
                - 752        self.size = len(sql)
                - 753
                - 754        try:
                - 755            self._scan()
                - 756        except Exception as e:
                - 757            start = max(self._current - 50, 0)
                - 758            end = min(self._current + 50, self.size - 1)
                - 759            context = self.sql[start:end]
                - 760            raise ValueError(f"Error tokenizing '{context}'") from e
                - 761
                - 762        return self.tokens
                - 763
                - 764    def _scan(self, until: t.Optional[t.Callable] = None) -> None:
                - 765        while self.size and not self._end:
                - 766            self._start = self._current
                - 767            self._advance()
                - 768
                - 769            if self._char is None:
                - 770                break
                - 771
                - 772            if self._char not in self.WHITE_SPACE:
                - 773                if self._char.isdigit():
                - 774                    self._scan_number()
                - 775                elif self._char in self._IDENTIFIERS:
                - 776                    self._scan_identifier(self._IDENTIFIERS[self._char])
                - 777                else:
                - 778                    self._scan_keywords()
                - 779
                - 780            if until and until():
                - 781                break
                - 782
                - 783        if self.tokens and self._comments:
                - 784            self.tokens[-1].comments.extend(self._comments)
                - 785
                - 786    def _chars(self, size: int) -> str:
                - 787        if size == 1:
                - 788            return self._char
                - 789
                - 790        start = self._current - 1
                - 791        end = start + size
                - 792
                - 793        return self.sql[start:end] if end <= self.size else ""
                - 794
                - 795    def _advance(self, i: int = 1, alnum: bool = False) -> None:
                - 796        if self.WHITE_SPACE.get(self._char) is TokenType.BREAK:
                - 797            self._col = 1
                - 798            self._line += 1
                - 799        else:
                - 800            self._col += i
                - 801
                - 802        self._current += i
                - 803        self._end = self._current >= self.size
                - 804        self._char = self.sql[self._current - 1]
                - 805        self._peek = "" if self._end else self.sql[self._current]
                - 806
                - 807        if alnum and self._char.isalnum():
                - 808            # Here we use local variables instead of attributes for better performance
                - 809            _col = self._col
                - 810            _current = self._current
                - 811            _end = self._end
                - 812            _peek = self._peek
                - 813
                - 814            while _peek.isalnum():
                - 815                _col += 1
                - 816                _current += 1
                - 817                _end = _current >= self.size
                - 818                _peek = "" if _end else self.sql[_current]
                + 730    COMMAND_PREFIX_TOKENS = {TokenType.SEMICOLON, TokenType.BEGIN}
                + 731
                + 732    # handle numeric literals like in hive (3L = BIGINT)
                + 733    NUMERIC_LITERALS: t.Dict[str, str] = {}
                + 734    ENCODE: t.Optional[str] = None
                + 735
                + 736    COMMENTS = ["--", ("/*", "*/"), ("{#", "#}")]
                + 737    KEYWORD_TRIE: t.Dict = {}  # autofilled
                + 738
                + 739    __slots__ = (
                + 740        "sql",
                + 741        "size",
                + 742        "tokens",
                + 743        "_start",
                + 744        "_current",
                + 745        "_line",
                + 746        "_col",
                + 747        "_comments",
                + 748        "_char",
                + 749        "_end",
                + 750        "_peek",
                + 751        "_prev_token_line",
                + 752        "identifiers_can_start_with_digit",
                + 753    )
                + 754
                + 755    def __init__(self) -> None:
                + 756        self.reset()
                + 757
                + 758    def reset(self) -> None:
                + 759        self.sql = ""
                + 760        self.size = 0
                + 761        self.tokens: t.List[Token] = []
                + 762        self._start = 0
                + 763        self._current = 0
                + 764        self._line = 1
                + 765        self._col = 0
                + 766        self._comments: t.List[str] = []
                + 767
                + 768        self._char = ""
                + 769        self._end = False
                + 770        self._peek = ""
                + 771        self._prev_token_line = -1
                + 772
                + 773    def tokenize(self, sql: str) -> t.List[Token]:
                + 774        """Returns a list of tokens corresponding to the SQL string `sql`."""
                + 775        self.reset()
                + 776        self.sql = sql
                + 777        self.size = len(sql)
                + 778
                + 779        try:
                + 780            self._scan()
                + 781        except Exception as e:
                + 782            start = max(self._current - 50, 0)
                + 783            end = min(self._current + 50, self.size - 1)
                + 784            context = self.sql[start:end]
                + 785            raise ValueError(f"Error tokenizing '{context}'") from e
                + 786
                + 787        return self.tokens
                + 788
                + 789    def _scan(self, until: t.Optional[t.Callable] = None) -> None:
                + 790        while self.size and not self._end:
                + 791            self._start = self._current
                + 792            self._advance()
                + 793
                + 794            if self._char is None:
                + 795                break
                + 796
                + 797            if self._char not in self.WHITE_SPACE:
                + 798                if self._char.isdigit():
                + 799                    self._scan_number()
                + 800                elif self._char in self._IDENTIFIERS:
                + 801                    self._scan_identifier(self._IDENTIFIERS[self._char])
                + 802                else:
                + 803                    self._scan_keywords()
                + 804
                + 805            if until and until():
                + 806                break
                + 807
                + 808        if self.tokens and self._comments:
                + 809            self.tokens[-1].comments.extend(self._comments)
                + 810
                + 811    def _chars(self, size: int) -> str:
                + 812        if size == 1:
                + 813            return self._char
                + 814
                + 815        start = self._current - 1
                + 816        end = start + size
                + 817
                + 818        return self.sql[start:end] if end <= self.size else ""
                  819
                - 820            self._col = _col
                - 821            self._current = _current
                - 822            self._end = _end
                - 823            self._peek = _peek
                - 824            self._char = self.sql[_current - 1]
                - 825
                - 826    @property
                - 827    def _text(self) -> str:
                - 828        return self.sql[self._start : self._current]
                - 829
                - 830    def _add(self, token_type: TokenType, text: t.Optional[str] = None) -> None:
                - 831        self._prev_token_line = self._line
                - 832        self.tokens.append(
                - 833            Token(
                - 834                token_type,
                - 835                text=self._text if text is None else text,
                - 836                line=self._line,
                - 837                col=self._col,
                - 838                start=self._start,
                - 839                end=self._current - 1,
                - 840                comments=self._comments,
                - 841            )
                - 842        )
                - 843        self._comments = []
                + 820    def _advance(self, i: int = 1, alnum: bool = False) -> None:
                + 821        if self.WHITE_SPACE.get(self._char) is TokenType.BREAK:
                + 822            self._col = 1
                + 823            self._line += 1
                + 824        else:
                + 825            self._col += i
                + 826
                + 827        self._current += i
                + 828        self._end = self._current >= self.size
                + 829        self._char = self.sql[self._current - 1]
                + 830        self._peek = "" if self._end else self.sql[self._current]
                + 831
                + 832        if alnum and self._char.isalnum():
                + 833            # Here we use local variables instead of attributes for better performance
                + 834            _col = self._col
                + 835            _current = self._current
                + 836            _end = self._end
                + 837            _peek = self._peek
                + 838
                + 839            while _peek.isalnum():
                + 840                _col += 1
                + 841                _current += 1
                + 842                _end = _current >= self.size
                + 843                _peek = "" if _end else self.sql[_current]
                  844
                - 845        # If we have either a semicolon or a begin token before the command's token, we'll parse
                - 846        # whatever follows the command's token as a string
                - 847        if (
                - 848            token_type in self.COMMANDS
                - 849            and self._peek != ";"
                - 850            and (len(self.tokens) == 1 or self.tokens[-2].token_type in self.COMMAND_PREFIX_TOKENS)
                - 851        ):
                - 852            start = self._current
                - 853            tokens = len(self.tokens)
                - 854            self._scan(lambda: self._peek == ";")
                - 855            self.tokens = self.tokens[:tokens]
                - 856            text = self.sql[start : self._current].strip()
                - 857            if text:
                - 858                self._add(TokenType.STRING, text)
                - 859
                - 860    def _scan_keywords(self) -> None:
                - 861        size = 0
                - 862        word = None
                - 863        chars = self._text
                - 864        char = chars
                - 865        prev_space = False
                - 866        skip = False
                - 867        trie = self.KEYWORD_TRIE
                - 868        single_token = char in self.SINGLE_TOKENS
                + 845            self._col = _col
                + 846            self._current = _current
                + 847            self._end = _end
                + 848            self._peek = _peek
                + 849            self._char = self.sql[_current - 1]
                + 850
                + 851    @property
                + 852    def _text(self) -> str:
                + 853        return self.sql[self._start : self._current]
                + 854
                + 855    def _add(self, token_type: TokenType, text: t.Optional[str] = None) -> None:
                + 856        self._prev_token_line = self._line
                + 857        self.tokens.append(
                + 858            Token(
                + 859                token_type,
                + 860                text=self._text if text is None else text,
                + 861                line=self._line,
                + 862                col=self._col,
                + 863                start=self._start,
                + 864                end=self._current - 1,
                + 865                comments=self._comments,
                + 866            )
                + 867        )
                + 868        self._comments = []
                  869
                - 870        while chars:
                - 871            if skip:
                - 872                result = 1
                - 873            else:
                - 874                result, trie = in_trie(trie, char.upper())
                - 875
                - 876            if result == 0:
                - 877                break
                - 878            if result == 2:
                - 879                word = chars
                - 880
                - 881            size += 1
                - 882            end = self._current - 1 + size
                - 883
                - 884            if end < self.size:
                - 885                char = self.sql[end]
                - 886                single_token = single_token or char in self.SINGLE_TOKENS
                - 887                is_space = char in self.WHITE_SPACE
                - 888
                - 889                if not is_space or not prev_space:
                - 890                    if is_space:
                - 891                        char = " "
                - 892                    chars += char
                - 893                    prev_space = is_space
                - 894                    skip = False
                - 895                else:
                - 896                    skip = True
                - 897            else:
                - 898                char = ""
                - 899                chars = " "
                + 870        # If we have either a semicolon or a begin token before the command's token, we'll parse
                + 871        # whatever follows the command's token as a string
                + 872        if (
                + 873            token_type in self.COMMANDS
                + 874            and self._peek != ";"
                + 875            and (len(self.tokens) == 1 or self.tokens[-2].token_type in self.COMMAND_PREFIX_TOKENS)
                + 876        ):
                + 877            start = self._current
                + 878            tokens = len(self.tokens)
                + 879            self._scan(lambda: self._peek == ";")
                + 880            self.tokens = self.tokens[:tokens]
                + 881            text = self.sql[start : self._current].strip()
                + 882            if text:
                + 883                self._add(TokenType.STRING, text)
                + 884
                + 885    def _scan_keywords(self) -> None:
                + 886        size = 0
                + 887        word = None
                + 888        chars = self._text
                + 889        char = chars
                + 890        prev_space = False
                + 891        skip = False
                + 892        trie = self.KEYWORD_TRIE
                + 893        single_token = char in self.SINGLE_TOKENS
                + 894
                + 895        while chars:
                + 896            if skip:
                + 897                result = 1
                + 898            else:
                + 899                result, trie = in_trie(trie, char.upper())
                  900
                - 901        word = None if not single_token and chars[-1] not in self.WHITE_SPACE else word
                - 902
                - 903        if not word:
                - 904            if self._char in self.SINGLE_TOKENS:
                - 905                self._add(self.SINGLE_TOKENS[self._char], text=self._char)
                - 906                return
                - 907            self._scan_var()
                - 908            return
                - 909
                - 910        if self._scan_string(word):
                - 911            return
                - 912        if self._scan_comment(word):
                - 913            return
                - 914
                - 915        self._advance(size - 1)
                - 916        word = word.upper()
                - 917        self._add(self.KEYWORDS[word], text=word)
                - 918
                - 919    def _scan_comment(self, comment_start: str) -> bool:
                - 920        if comment_start not in self._COMMENTS:
                - 921            return False
                - 922
                - 923        comment_start_line = self._line
                - 924        comment_start_size = len(comment_start)
                - 925        comment_end = self._COMMENTS[comment_start]
                - 926
                - 927        if comment_end:
                - 928            # Skip the comment's start delimiter
                - 929            self._advance(comment_start_size)
                - 930
                - 931            comment_end_size = len(comment_end)
                - 932            while not self._end and self._chars(comment_end_size) != comment_end:
                - 933                self._advance(alnum=True)
                + 901            if result == 0:
                + 902                break
                + 903            if result == 2:
                + 904                word = chars
                + 905
                + 906            size += 1
                + 907            end = self._current - 1 + size
                + 908
                + 909            if end < self.size:
                + 910                char = self.sql[end]
                + 911                single_token = single_token or char in self.SINGLE_TOKENS
                + 912                is_space = char in self.WHITE_SPACE
                + 913
                + 914                if not is_space or not prev_space:
                + 915                    if is_space:
                + 916                        char = " "
                + 917                    chars += char
                + 918                    prev_space = is_space
                + 919                    skip = False
                + 920                else:
                + 921                    skip = True
                + 922            else:
                + 923                char = ""
                + 924                chars = " "
                + 925
                + 926        word = None if not single_token and chars[-1] not in self.WHITE_SPACE else word
                + 927
                + 928        if not word:
                + 929            if self._char in self.SINGLE_TOKENS:
                + 930                self._add(self.SINGLE_TOKENS[self._char], text=self._char)
                + 931                return
                + 932            self._scan_var()
                + 933            return
                  934
                - 935            self._comments.append(self._text[comment_start_size : -comment_end_size + 1])
                - 936            self._advance(comment_end_size - 1)
                - 937        else:
                - 938            while not self._end and not self.WHITE_SPACE.get(self._peek) is TokenType.BREAK:
                - 939                self._advance(alnum=True)
                - 940            self._comments.append(self._text[comment_start_size:])
                - 941
                - 942        # Leading comment is attached to the succeeding token, whilst trailing comment to the preceding.
                - 943        # Multiple consecutive comments are preserved by appending them to the current comments list.
                - 944        if comment_start_line == self._prev_token_line:
                - 945            self.tokens[-1].comments.extend(self._comments)
                - 946            self._comments = []
                - 947            self._prev_token_line = self._line
                - 948
                - 949        return True
                - 950
                - 951    def _scan_number(self) -> None:
                - 952        if self._char == "0":
                - 953            peek = self._peek.upper()
                - 954            if peek == "B":
                - 955                return self._scan_bits() if self.BIT_STRINGS else self._add(TokenType.NUMBER)
                - 956            elif peek == "X":
                - 957                return self._scan_hex() if self.HEX_STRINGS else self._add(TokenType.NUMBER)
                - 958
                - 959        decimal = False
                - 960        scientific = 0
                - 961
                - 962        while True:
                - 963            if self._peek.isdigit():
                - 964                self._advance()
                - 965            elif self._peek == "." and not decimal:
                - 966                decimal = True
                - 967                self._advance()
                - 968            elif self._peek in ("-", "+") and scientific == 1:
                - 969                scientific += 1
                - 970                self._advance()
                - 971            elif self._peek.upper() == "E" and not scientific:
                - 972                scientific += 1
                - 973                self._advance()
                - 974            elif self._peek.isidentifier():
                - 975                number_text = self._text
                - 976                literal = ""
                - 977
                - 978                while self._peek.strip() and self._peek not in self.SINGLE_TOKENS:
                - 979                    literal += self._peek.upper()
                - 980                    self._advance()
                - 981
                - 982                token_type = self.KEYWORDS.get(self.NUMERIC_LITERALS.get(literal))
                + 935        if self._scan_string(word):
                + 936            return
                + 937        if self._scan_comment(word):
                + 938            return
                + 939
                + 940        self._advance(size - 1)
                + 941        word = word.upper()
                + 942        self._add(self.KEYWORDS[word], text=word)
                + 943
                + 944    def _scan_comment(self, comment_start: str) -> bool:
                + 945        if comment_start not in self._COMMENTS:
                + 946            return False
                + 947
                + 948        comment_start_line = self._line
                + 949        comment_start_size = len(comment_start)
                + 950        comment_end = self._COMMENTS[comment_start]
                + 951
                + 952        if comment_end:
                + 953            # Skip the comment's start delimiter
                + 954            self._advance(comment_start_size)
                + 955
                + 956            comment_end_size = len(comment_end)
                + 957            while not self._end and self._chars(comment_end_size) != comment_end:
                + 958                self._advance(alnum=True)
                + 959
                + 960            self._comments.append(self._text[comment_start_size : -comment_end_size + 1])
                + 961            self._advance(comment_end_size - 1)
                + 962        else:
                + 963            while not self._end and not self.WHITE_SPACE.get(self._peek) is TokenType.BREAK:
                + 964                self._advance(alnum=True)
                + 965            self._comments.append(self._text[comment_start_size:])
                + 966
                + 967        # Leading comment is attached to the succeeding token, whilst trailing comment to the preceding.
                + 968        # Multiple consecutive comments are preserved by appending them to the current comments list.
                + 969        if comment_start_line == self._prev_token_line:
                + 970            self.tokens[-1].comments.extend(self._comments)
                + 971            self._comments = []
                + 972            self._prev_token_line = self._line
                + 973
                + 974        return True
                + 975
                + 976    def _scan_number(self) -> None:
                + 977        if self._char == "0":
                + 978            peek = self._peek.upper()
                + 979            if peek == "B":
                + 980                return self._scan_bits() if self.BIT_STRINGS else self._add(TokenType.NUMBER)
                + 981            elif peek == "X":
                + 982                return self._scan_hex() if self.HEX_STRINGS else self._add(TokenType.NUMBER)
                  983
                - 984                if token_type:
                - 985                    self._add(TokenType.NUMBER, number_text)
                - 986                    self._add(TokenType.DCOLON, "::")
                - 987                    return self._add(token_type, literal)
                - 988                elif self.IDENTIFIER_CAN_START_WITH_DIGIT:
                - 989                    return self._add(TokenType.VAR)
                - 990
                - 991                self._add(TokenType.NUMBER, number_text)
                - 992                return self._advance(-len(literal))
                - 993            else:
                - 994                return self._add(TokenType.NUMBER)
                - 995
                - 996    def _scan_bits(self) -> None:
                - 997        self._advance()
                - 998        value = self._extract_value()
                - 999        try:
                -1000            # If `value` can't be converted to a binary, fallback to tokenizing it as an identifier
                -1001            int(value, 2)
                -1002            self._add(TokenType.BIT_STRING, value[2:])  # Drop the 0b
                -1003        except ValueError:
                -1004            self._add(TokenType.IDENTIFIER)
                -1005
                -1006    def _scan_hex(self) -> None:
                -1007        self._advance()
                -1008        value = self._extract_value()
                -1009        try:
                -1010            # If `value` can't be converted to a hex, fallback to tokenizing it as an identifier
                -1011            int(value, 16)
                -1012            self._add(TokenType.HEX_STRING, value[2:])  # Drop the 0x
                -1013        except ValueError:
                -1014            self._add(TokenType.IDENTIFIER)
                + 984        decimal = False
                + 985        scientific = 0
                + 986
                + 987        while True:
                + 988            if self._peek.isdigit():
                + 989                self._advance()
                + 990            elif self._peek == "." and not decimal:
                + 991                decimal = True
                + 992                self._advance()
                + 993            elif self._peek in ("-", "+") and scientific == 1:
                + 994                scientific += 1
                + 995                self._advance()
                + 996            elif self._peek.upper() == "E" and not scientific:
                + 997                scientific += 1
                + 998                self._advance()
                + 999            elif self._peek.isidentifier():
                +1000                number_text = self._text
                +1001                literal = ""
                +1002
                +1003                while self._peek.strip() and self._peek not in self.SINGLE_TOKENS:
                +1004                    literal += self._peek.upper()
                +1005                    self._advance()
                +1006
                +1007                token_type = self.KEYWORDS.get(self.NUMERIC_LITERALS.get(literal))
                +1008
                +1009                if token_type:
                +1010                    self._add(TokenType.NUMBER, number_text)
                +1011                    self._add(TokenType.DCOLON, "::")
                +1012                    return self._add(token_type, literal)
                +1013                elif self.identifiers_can_start_with_digit:  # type: ignore
                +1014                    return self._add(TokenType.VAR)
                 1015
                -1016    def _extract_value(self) -> str:
                -1017        while True:
                -1018            char = self._peek.strip()
                -1019            if char and char not in self.SINGLE_TOKENS:
                -1020                self._advance(alnum=True)
                -1021            else:
                -1022                break
                -1023
                -1024        return self._text
                -1025
                -1026    def _scan_string(self, start: str) -> bool:
                -1027        base = None
                -1028        token_type = TokenType.STRING
                -1029
                -1030        if start in self._QUOTES:
                -1031            end = self._QUOTES[start]
                -1032        elif start in self._FORMAT_STRINGS:
                -1033            end, token_type = self._FORMAT_STRINGS[start]
                -1034
                -1035            if token_type == TokenType.HEX_STRING:
                -1036                base = 16
                -1037            elif token_type == TokenType.BIT_STRING:
                -1038                base = 2
                -1039        else:
                -1040            return False
                -1041
                -1042        self._advance(len(start))
                -1043        text = self._extract_string(end)
                -1044
                -1045        if base:
                -1046            try:
                -1047                int(text, base)
                -1048            except:
                -1049                raise RuntimeError(
                -1050                    f"Numeric string contains invalid characters from {self._line}:{self._start}"
                -1051                )
                -1052        else:
                -1053            text = text.encode(self.ENCODE).decode(self.ENCODE) if self.ENCODE else text
                +1016                self._add(TokenType.NUMBER, number_text)
                +1017                return self._advance(-len(literal))
                +1018            else:
                +1019                return self._add(TokenType.NUMBER)
                +1020
                +1021    def _scan_bits(self) -> None:
                +1022        self._advance()
                +1023        value = self._extract_value()
                +1024        try:
                +1025            # If `value` can't be converted to a binary, fallback to tokenizing it as an identifier
                +1026            int(value, 2)
                +1027            self._add(TokenType.BIT_STRING, value[2:])  # Drop the 0b
                +1028        except ValueError:
                +1029            self._add(TokenType.IDENTIFIER)
                +1030
                +1031    def _scan_hex(self) -> None:
                +1032        self._advance()
                +1033        value = self._extract_value()
                +1034        try:
                +1035            # If `value` can't be converted to a hex, fallback to tokenizing it as an identifier
                +1036            int(value, 16)
                +1037            self._add(TokenType.HEX_STRING, value[2:])  # Drop the 0x
                +1038        except ValueError:
                +1039            self._add(TokenType.IDENTIFIER)
                +1040
                +1041    def _extract_value(self) -> str:
                +1042        while True:
                +1043            char = self._peek.strip()
                +1044            if char and char not in self.SINGLE_TOKENS:
                +1045                self._advance(alnum=True)
                +1046            else:
                +1047                break
                +1048
                +1049        return self._text
                +1050
                +1051    def _scan_string(self, start: str) -> bool:
                +1052        base = None
                +1053        token_type = TokenType.STRING
                 1054
                -1055        self._add(token_type, text)
                -1056        return True
                -1057
                -1058    def _scan_identifier(self, identifier_end: str) -> None:
                -1059        self._advance()
                -1060        text = self._extract_string(identifier_end, self._IDENTIFIER_ESCAPES)
                -1061        self._add(TokenType.IDENTIFIER, text)
                -1062
                -1063    def _scan_var(self) -> None:
                -1064        while True:
                -1065            char = self._peek.strip()
                -1066            if char and (char in self.VAR_SINGLE_TOKENS or char not in self.SINGLE_TOKENS):
                -1067                self._advance(alnum=True)
                -1068            else:
                -1069                break
                -1070
                -1071        self._add(
                -1072            TokenType.VAR
                -1073            if self.tokens and self.tokens[-1].token_type == TokenType.PARAMETER
                -1074            else self.KEYWORDS.get(self._text.upper(), TokenType.VAR)
                -1075        )
                -1076
                -1077    def _extract_string(self, delimiter: str, escapes=None) -> str:
                -1078        text = ""
                -1079        delim_size = len(delimiter)
                -1080        escapes = self._STRING_ESCAPES if escapes is None else escapes
                -1081
                -1082        while True:
                -1083            if self._char in escapes and (self._peek == delimiter or self._peek in escapes):
                -1084                if self._peek == delimiter:
                -1085                    text += self._peek
                -1086                else:
                -1087                    text += self._char + self._peek
                -1088
                -1089                if self._current + 1 < self.size:
                -1090                    self._advance(2)
                -1091                else:
                -1092                    raise RuntimeError(f"Missing {delimiter} from {self._line}:{self._current}")
                +1055        if start in self._QUOTES:
                +1056            end = self._QUOTES[start]
                +1057        elif start in self._FORMAT_STRINGS:
                +1058            end, token_type = self._FORMAT_STRINGS[start]
                +1059
                +1060            if token_type == TokenType.HEX_STRING:
                +1061                base = 16
                +1062            elif token_type == TokenType.BIT_STRING:
                +1063                base = 2
                +1064        else:
                +1065            return False
                +1066
                +1067        self._advance(len(start))
                +1068        text = self._extract_string(end)
                +1069
                +1070        if base:
                +1071            try:
                +1072                int(text, base)
                +1073            except:
                +1074                raise RuntimeError(
                +1075                    f"Numeric string contains invalid characters from {self._line}:{self._start}"
                +1076                )
                +1077        else:
                +1078            text = text.encode(self.ENCODE).decode(self.ENCODE) if self.ENCODE else text
                +1079
                +1080        self._add(token_type, text)
                +1081        return True
                +1082
                +1083    def _scan_identifier(self, identifier_end: str) -> None:
                +1084        self._advance()
                +1085        text = self._extract_string(identifier_end, self._IDENTIFIER_ESCAPES)
                +1086        self._add(TokenType.IDENTIFIER, text)
                +1087
                +1088    def _scan_var(self) -> None:
                +1089        while True:
                +1090            char = self._peek.strip()
                +1091            if char and (char in self.VAR_SINGLE_TOKENS or char not in self.SINGLE_TOKENS):
                +1092                self._advance(alnum=True)
                 1093            else:
                -1094                if self._chars(delim_size) == delimiter:
                -1095                    if delim_size > 1:
                -1096                        self._advance(delim_size - 1)
                -1097                    break
                -1098
                -1099                if self._end:
                -1100                    raise RuntimeError(f"Missing {delimiter} from {self._line}:{self._start}")
                +1094                break
                +1095
                +1096        self._add(
                +1097            TokenType.VAR
                +1098            if self.tokens and self.tokens[-1].token_type == TokenType.PARAMETER
                +1099            else self.KEYWORDS.get(self._text.upper(), TokenType.VAR)
                +1100        )
                 1101
                -1102                current = self._current - 1
                -1103                self._advance(alnum=True)
                -1104                text += self.sql[current : self._current - 1]
                -1105
                -1106        return text
                +1102    def _extract_string(self, delimiter: str, escapes=None) -> str:
                +1103        text = ""
                +1104        delim_size = len(delimiter)
                +1105        escapes = self._STRING_ESCAPES if escapes is None else escapes
                +1106
                +1107        while True:
                +1108            if self._char in escapes and (self._peek == delimiter or self._peek in escapes):
                +1109                if self._peek == delimiter:
                +1110                    text += self._peek
                +1111                else:
                +1112                    text += self._char + self._peek
                +1113
                +1114                if self._current + 1 < self.size:
                +1115                    self._advance(2)
                +1116                else:
                +1117                    raise RuntimeError(f"Missing {delimiter} from {self._line}:{self._current}")
                +1118            else:
                +1119                if self._chars(delim_size) == delimiter:
                +1120                    if delim_size > 1:
                +1121                        self._advance(delim_size - 1)
                +1122                    break
                +1123
                +1124                if self._end:
                +1125                    raise RuntimeError(f"Missing {delimiter} from {self._line}:{self._start}")
                +1126
                +1127                current = self._current - 1
                +1128                self._advance(alnum=True)
                +1129                text += self.sql[current : self._current - 1]
                +1130
                +1131        return text
                 
                @@ -6578,20 +6823,20 @@
                -
                733    def reset(self) -> None:
                -734        self.sql = ""
                -735        self.size = 0
                -736        self.tokens: t.List[Token] = []
                -737        self._start = 0
                -738        self._current = 0
                -739        self._line = 1
                -740        self._col = 0
                -741        self._comments: t.List[str] = []
                -742
                -743        self._char = ""
                -744        self._end = False
                -745        self._peek = ""
                -746        self._prev_token_line = -1
                +            
                758    def reset(self) -> None:
                +759        self.sql = ""
                +760        self.size = 0
                +761        self.tokens: t.List[Token] = []
                +762        self._start = 0
                +763        self._current = 0
                +764        self._line = 1
                +765        self._col = 0
                +766        self._comments: t.List[str] = []
                +767
                +768        self._char = ""
                +769        self._end = False
                +770        self._peek = ""
                +771        self._prev_token_line = -1
                 
                @@ -6609,21 +6854,21 @@
                -
                748    def tokenize(self, sql: str) -> t.List[Token]:
                -749        """Returns a list of tokens corresponding to the SQL string `sql`."""
                -750        self.reset()
                -751        self.sql = sql
                -752        self.size = len(sql)
                -753
                -754        try:
                -755            self._scan()
                -756        except Exception as e:
                -757            start = max(self._current - 50, 0)
                -758            end = min(self._current + 50, self.size - 1)
                -759            context = self.sql[start:end]
                -760            raise ValueError(f"Error tokenizing '{context}'") from e
                -761
                -762        return self.tokens
                +            
                773    def tokenize(self, sql: str) -> t.List[Token]:
                +774        """Returns a list of tokens corresponding to the SQL string `sql`."""
                +775        self.reset()
                +776        self.sql = sql
                +777        self.size = len(sql)
                +778
                +779        try:
                +780            self._scan()
                +781        except Exception as e:
                +782            start = max(self._current - 50, 0)
                +783            end = min(self._current + 50, self.size - 1)
                +784            context = self.sql[start:end]
                +785            raise ValueError(f"Error tokenizing '{context}'") from e
                +786
                +787        return self.tokens
                 
                diff --git a/docs/sqlglot/transforms.html b/docs/sqlglot/transforms.html index 95f7933..9f81f53 100644 --- a/docs/sqlglot/transforms.html +++ b/docs/sqlglot/transforms.html @@ -57,6 +57,9 @@
              • add_recursive_cte_column_names
              • +
              • + epoch_cast_to_ts +
              • preprocess
              • @@ -85,317 +88,326 @@
                  1from __future__ import annotations
                   2
                -  3import itertools
                -  4import typing as t
                -  5
                -  6from sqlglot import expressions as exp
                -  7from sqlglot.helper import find_new_name
                -  8
                -  9if t.TYPE_CHECKING:
                - 10    from sqlglot.generator import Generator
                +  3import typing as t
                +  4
                +  5from sqlglot import expressions as exp
                +  6from sqlglot.helper import find_new_name, name_sequence
                +  7
                +  8if t.TYPE_CHECKING:
                +  9    from sqlglot.generator import Generator
                + 10
                  11
                - 12
                - 13def unalias_group(expression: exp.Expression) -> exp.Expression:
                - 14    """
                - 15    Replace references to select aliases in GROUP BY clauses.
                - 16
                - 17    Example:
                - 18        >>> import sqlglot
                - 19        >>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()
                - 20        'SELECT a AS b FROM x GROUP BY 1'
                - 21
                - 22    Args:
                - 23        expression: the expression that will be transformed.
                - 24
                - 25    Returns:
                - 26        The transformed expression.
                - 27    """
                - 28    if isinstance(expression, exp.Group) and isinstance(expression.parent, exp.Select):
                - 29        aliased_selects = {
                - 30            e.alias: i
                - 31            for i, e in enumerate(expression.parent.expressions, start=1)
                - 32            if isinstance(e, exp.Alias)
                - 33        }
                - 34
                - 35        for group_by in expression.expressions:
                - 36            if (
                - 37                isinstance(group_by, exp.Column)
                - 38                and not group_by.table
                - 39                and group_by.name in aliased_selects
                - 40            ):
                - 41                group_by.replace(exp.Literal.number(aliased_selects.get(group_by.name)))
                - 42
                - 43    return expression
                + 12def unalias_group(expression: exp.Expression) -> exp.Expression:
                + 13    """
                + 14    Replace references to select aliases in GROUP BY clauses.
                + 15
                + 16    Example:
                + 17        >>> import sqlglot
                + 18        >>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()
                + 19        'SELECT a AS b FROM x GROUP BY 1'
                + 20
                + 21    Args:
                + 22        expression: the expression that will be transformed.
                + 23
                + 24    Returns:
                + 25        The transformed expression.
                + 26    """
                + 27    if isinstance(expression, exp.Group) and isinstance(expression.parent, exp.Select):
                + 28        aliased_selects = {
                + 29            e.alias: i
                + 30            for i, e in enumerate(expression.parent.expressions, start=1)
                + 31            if isinstance(e, exp.Alias)
                + 32        }
                + 33
                + 34        for group_by in expression.expressions:
                + 35            if (
                + 36                isinstance(group_by, exp.Column)
                + 37                and not group_by.table
                + 38                and group_by.name in aliased_selects
                + 39            ):
                + 40                group_by.replace(exp.Literal.number(aliased_selects.get(group_by.name)))
                + 41
                + 42    return expression
                + 43
                  44
                - 45
                - 46def eliminate_distinct_on(expression: exp.Expression) -> exp.Expression:
                - 47    """
                - 48    Convert SELECT DISTINCT ON statements to a subquery with a window function.
                - 49
                - 50    This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.
                - 51
                - 52    Args:
                - 53        expression: the expression that will be transformed.
                - 54
                - 55    Returns:
                - 56        The transformed expression.
                - 57    """
                - 58    if (
                - 59        isinstance(expression, exp.Select)
                - 60        and expression.args.get("distinct")
                - 61        and expression.args["distinct"].args.get("on")
                - 62        and isinstance(expression.args["distinct"].args["on"], exp.Tuple)
                - 63    ):
                - 64        distinct_cols = expression.args["distinct"].pop().args["on"].expressions
                - 65        outer_selects = expression.selects
                - 66        row_number = find_new_name(expression.named_selects, "_row_number")
                - 67        window = exp.Window(this=exp.RowNumber(), partition_by=distinct_cols)
                - 68        order = expression.args.get("order")
                - 69
                - 70        if order:
                - 71            window.set("order", order.pop().copy())
                - 72
                - 73        window = exp.alias_(window, row_number)
                - 74        expression.select(window, copy=False)
                - 75
                - 76        return exp.select(*outer_selects).from_(expression.subquery()).where(f'"{row_number}" = 1')
                - 77
                - 78    return expression
                + 45def eliminate_distinct_on(expression: exp.Expression) -> exp.Expression:
                + 46    """
                + 47    Convert SELECT DISTINCT ON statements to a subquery with a window function.
                + 48
                + 49    This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.
                + 50
                + 51    Args:
                + 52        expression: the expression that will be transformed.
                + 53
                + 54    Returns:
                + 55        The transformed expression.
                + 56    """
                + 57    if (
                + 58        isinstance(expression, exp.Select)
                + 59        and expression.args.get("distinct")
                + 60        and expression.args["distinct"].args.get("on")
                + 61        and isinstance(expression.args["distinct"].args["on"], exp.Tuple)
                + 62    ):
                + 63        distinct_cols = expression.args["distinct"].pop().args["on"].expressions
                + 64        outer_selects = expression.selects
                + 65        row_number = find_new_name(expression.named_selects, "_row_number")
                + 66        window = exp.Window(this=exp.RowNumber(), partition_by=distinct_cols)
                + 67        order = expression.args.get("order")
                + 68
                + 69        if order:
                + 70            window.set("order", order.pop().copy())
                + 71
                + 72        window = exp.alias_(window, row_number)
                + 73        expression.select(window, copy=False)
                + 74
                + 75        return exp.select(*outer_selects).from_(expression.subquery()).where(f'"{row_number}" = 1')
                + 76
                + 77    return expression
                + 78
                  79
                - 80
                - 81def eliminate_qualify(expression: exp.Expression) -> exp.Expression:
                - 82    """
                - 83    Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.
                - 84
                - 85    The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY:
                - 86    https://docs.snowflake.com/en/sql-reference/constructs/qualify
                - 87
                - 88    Some dialects don't support window functions in the WHERE clause, so we need to include them as
                - 89    projections in the subquery, in order to refer to them in the outer filter using aliases. Also,
                - 90    if a column is referenced in the QUALIFY clause but is not selected, we need to include it too,
                - 91    otherwise we won't be able to refer to it in the outer query's WHERE clause.
                - 92    """
                - 93    if isinstance(expression, exp.Select) and expression.args.get("qualify"):
                - 94        taken = set(expression.named_selects)
                - 95        for select in expression.selects:
                - 96            if not select.alias_or_name:
                - 97                alias = find_new_name(taken, "_c")
                - 98                select.replace(exp.alias_(select, alias))
                - 99                taken.add(alias)
                -100
                -101        outer_selects = exp.select(*[select.alias_or_name for select in expression.selects])
                -102        qualify_filters = expression.args["qualify"].pop().this
                -103
                -104        for expr in qualify_filters.find_all((exp.Window, exp.Column)):
                -105            if isinstance(expr, exp.Window):
                -106                alias = find_new_name(expression.named_selects, "_w")
                -107                expression.select(exp.alias_(expr, alias), copy=False)
                -108                column = exp.column(alias)
                -109
                -110                if isinstance(expr.parent, exp.Qualify):
                -111                    qualify_filters = column
                -112                else:
                -113                    expr.replace(column)
                -114            elif expr.name not in expression.named_selects:
                -115                expression.select(expr.copy(), copy=False)
                -116
                -117        return outer_selects.from_(expression.subquery(alias="_t")).where(qualify_filters)
                -118
                -119    return expression
                + 80def eliminate_qualify(expression: exp.Expression) -> exp.Expression:
                + 81    """
                + 82    Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.
                + 83
                + 84    The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY:
                + 85    https://docs.snowflake.com/en/sql-reference/constructs/qualify
                + 86
                + 87    Some dialects don't support window functions in the WHERE clause, so we need to include them as
                + 88    projections in the subquery, in order to refer to them in the outer filter using aliases. Also,
                + 89    if a column is referenced in the QUALIFY clause but is not selected, we need to include it too,
                + 90    otherwise we won't be able to refer to it in the outer query's WHERE clause.
                + 91    """
                + 92    if isinstance(expression, exp.Select) and expression.args.get("qualify"):
                + 93        taken = set(expression.named_selects)
                + 94        for select in expression.selects:
                + 95            if not select.alias_or_name:
                + 96                alias = find_new_name(taken, "_c")
                + 97                select.replace(exp.alias_(select, alias))
                + 98                taken.add(alias)
                + 99
                +100        outer_selects = exp.select(*[select.alias_or_name for select in expression.selects])
                +101        qualify_filters = expression.args["qualify"].pop().this
                +102
                +103        for expr in qualify_filters.find_all((exp.Window, exp.Column)):
                +104            if isinstance(expr, exp.Window):
                +105                alias = find_new_name(expression.named_selects, "_w")
                +106                expression.select(exp.alias_(expr, alias), copy=False)
                +107                column = exp.column(alias)
                +108
                +109                if isinstance(expr.parent, exp.Qualify):
                +110                    qualify_filters = column
                +111                else:
                +112                    expr.replace(column)
                +113            elif expr.name not in expression.named_selects:
                +114                expression.select(expr.copy(), copy=False)
                +115
                +116        return outer_selects.from_(expression.subquery(alias="_t")).where(qualify_filters)
                +117
                +118    return expression
                +119
                 120
                -121
                -122def remove_precision_parameterized_types(expression: exp.Expression) -> exp.Expression:
                -123    """
                -124    Some dialects only allow the precision for parameterized types to be defined in the DDL and not in
                -125    other expressions. This transforms removes the precision from parameterized types in expressions.
                -126    """
                -127    for node in expression.find_all(exp.DataType):
                -128        node.set("expressions", [e for e in node.expressions if isinstance(e, exp.DataType)])
                -129
                -130    return expression
                +121def remove_precision_parameterized_types(expression: exp.Expression) -> exp.Expression:
                +122    """
                +123    Some dialects only allow the precision for parameterized types to be defined in the DDL and not in
                +124    other expressions. This transforms removes the precision from parameterized types in expressions.
                +125    """
                +126    for node in expression.find_all(exp.DataType):
                +127        node.set("expressions", [e for e in node.expressions if isinstance(e, exp.DataType)])
                +128
                +129    return expression
                +130
                 131
                -132
                -133def unnest_to_explode(expression: exp.Expression) -> exp.Expression:
                -134    """Convert cross join unnest into lateral view explode (used in presto -> hive)."""
                -135    if isinstance(expression, exp.Select):
                -136        for join in expression.args.get("joins") or []:
                -137            unnest = join.this
                -138
                -139            if isinstance(unnest, exp.Unnest):
                -140                alias = unnest.args.get("alias")
                -141                udtf = exp.Posexplode if unnest.args.get("ordinality") else exp.Explode
                -142
                -143                expression.args["joins"].remove(join)
                -144
                -145                for e, column in zip(unnest.expressions, alias.columns if alias else []):
                -146                    expression.append(
                -147                        "laterals",
                -148                        exp.Lateral(
                -149                            this=udtf(this=e),
                -150                            view=True,
                -151                            alias=exp.TableAlias(this=alias.this, columns=[column]),  # type: ignore
                -152                        ),
                -153                    )
                -154
                -155    return expression
                +132def unnest_to_explode(expression: exp.Expression) -> exp.Expression:
                +133    """Convert cross join unnest into lateral view explode (used in presto -> hive)."""
                +134    if isinstance(expression, exp.Select):
                +135        for join in expression.args.get("joins") or []:
                +136            unnest = join.this
                +137
                +138            if isinstance(unnest, exp.Unnest):
                +139                alias = unnest.args.get("alias")
                +140                udtf = exp.Posexplode if unnest.args.get("ordinality") else exp.Explode
                +141
                +142                expression.args["joins"].remove(join)
                +143
                +144                for e, column in zip(unnest.expressions, alias.columns if alias else []):
                +145                    expression.append(
                +146                        "laterals",
                +147                        exp.Lateral(
                +148                            this=udtf(this=e),
                +149                            view=True,
                +150                            alias=exp.TableAlias(this=alias.this, columns=[column]),  # type: ignore
                +151                        ),
                +152                    )
                +153
                +154    return expression
                +155
                 156
                -157
                -158def explode_to_unnest(expression: exp.Expression) -> exp.Expression:
                -159    """Convert explode/posexplode into unnest (used in hive -> presto)."""
                -160    if isinstance(expression, exp.Select):
                -161        from sqlglot.optimizer.scope import build_scope
                -162
                -163        taken_select_names = set(expression.named_selects)
                -164        scope = build_scope(expression)
                -165        if not scope:
                -166            return expression
                -167        taken_source_names = set(scope.selected_sources)
                -168
                -169        for select in expression.selects:
                -170            to_replace = select
                -171
                -172            pos_alias = ""
                -173            explode_alias = ""
                -174
                -175            if isinstance(select, exp.Alias):
                -176                explode_alias = select.alias
                -177                select = select.this
                -178            elif isinstance(select, exp.Aliases):
                -179                pos_alias = select.aliases[0].name
                -180                explode_alias = select.aliases[1].name
                -181                select = select.this
                -182
                -183            if isinstance(select, (exp.Explode, exp.Posexplode)):
                -184                is_posexplode = isinstance(select, exp.Posexplode)
                -185
                -186                explode_arg = select.this
                -187                unnest = exp.Unnest(expressions=[explode_arg.copy()], ordinality=is_posexplode)
                -188
                -189                # This ensures that we won't use [POS]EXPLODE's argument as a new selection
                -190                if isinstance(explode_arg, exp.Column):
                -191                    taken_select_names.add(explode_arg.output_name)
                -192
                -193                unnest_source_alias = find_new_name(taken_source_names, "_u")
                -194                taken_source_names.add(unnest_source_alias)
                -195
                -196                if not explode_alias:
                -197                    explode_alias = find_new_name(taken_select_names, "col")
                -198                    taken_select_names.add(explode_alias)
                -199
                -200                    if is_posexplode:
                -201                        pos_alias = find_new_name(taken_select_names, "pos")
                -202                        taken_select_names.add(pos_alias)
                -203
                -204                if is_posexplode:
                -205                    column_names = [explode_alias, pos_alias]
                -206                    to_replace.pop()
                -207                    expression.select(pos_alias, explode_alias, copy=False)
                -208                else:
                -209                    column_names = [explode_alias]
                -210                    to_replace.replace(exp.column(explode_alias))
                -211
                -212                unnest = exp.alias_(unnest, unnest_source_alias, table=column_names)
                -213
                -214                if not expression.args.get("from"):
                -215                    expression.from_(unnest, copy=False)
                -216                else:
                -217                    expression.join(unnest, join_type="CROSS", copy=False)
                -218
                -219    return expression
                +157def explode_to_unnest(expression: exp.Expression) -> exp.Expression:
                +158    """Convert explode/posexplode into unnest (used in hive -> presto)."""
                +159    if isinstance(expression, exp.Select):
                +160        from sqlglot.optimizer.scope import build_scope
                +161
                +162        taken_select_names = set(expression.named_selects)
                +163        scope = build_scope(expression)
                +164        if not scope:
                +165            return expression
                +166        taken_source_names = set(scope.selected_sources)
                +167
                +168        for select in expression.selects:
                +169            to_replace = select
                +170
                +171            pos_alias = ""
                +172            explode_alias = ""
                +173
                +174            if isinstance(select, exp.Alias):
                +175                explode_alias = select.alias
                +176                select = select.this
                +177            elif isinstance(select, exp.Aliases):
                +178                pos_alias = select.aliases[0].name
                +179                explode_alias = select.aliases[1].name
                +180                select = select.this
                +181
                +182            if isinstance(select, (exp.Explode, exp.Posexplode)):
                +183                is_posexplode = isinstance(select, exp.Posexplode)
                +184
                +185                explode_arg = select.this
                +186                unnest = exp.Unnest(expressions=[explode_arg.copy()], ordinality=is_posexplode)
                +187
                +188                # This ensures that we won't use [POS]EXPLODE's argument as a new selection
                +189                if isinstance(explode_arg, exp.Column):
                +190                    taken_select_names.add(explode_arg.output_name)
                +191
                +192                unnest_source_alias = find_new_name(taken_source_names, "_u")
                +193                taken_source_names.add(unnest_source_alias)
                +194
                +195                if not explode_alias:
                +196                    explode_alias = find_new_name(taken_select_names, "col")
                +197                    taken_select_names.add(explode_alias)
                +198
                +199                    if is_posexplode:
                +200                        pos_alias = find_new_name(taken_select_names, "pos")
                +201                        taken_select_names.add(pos_alias)
                +202
                +203                if is_posexplode:
                +204                    column_names = [explode_alias, pos_alias]
                +205                    to_replace.pop()
                +206                    expression.select(pos_alias, explode_alias, copy=False)
                +207                else:
                +208                    column_names = [explode_alias]
                +209                    to_replace.replace(exp.column(explode_alias))
                +210
                +211                unnest = exp.alias_(unnest, unnest_source_alias, table=column_names)
                +212
                +213                if not expression.args.get("from"):
                +214                    expression.from_(unnest, copy=False)
                +215                else:
                +216                    expression.join(unnest, join_type="CROSS", copy=False)
                +217
                +218    return expression
                +219
                 220
                -221
                -222def remove_target_from_merge(expression: exp.Expression) -> exp.Expression:
                -223    """Remove table refs from columns in when statements."""
                -224    if isinstance(expression, exp.Merge):
                -225        alias = expression.this.args.get("alias")
                -226        targets = {expression.this.this}
                -227        if alias:
                -228            targets.add(alias.this)
                -229
                -230        for when in expression.expressions:
                -231            when.transform(
                -232                lambda node: exp.column(node.name)
                -233                if isinstance(node, exp.Column) and node.args.get("table") in targets
                -234                else node,
                -235                copy=False,
                -236            )
                -237
                -238    return expression
                +221def remove_target_from_merge(expression: exp.Expression) -> exp.Expression:
                +222    """Remove table refs from columns in when statements."""
                +223    if isinstance(expression, exp.Merge):
                +224        alias = expression.this.args.get("alias")
                +225        targets = {expression.this.this}
                +226        if alias:
                +227            targets.add(alias.this)
                +228
                +229        for when in expression.expressions:
                +230            when.transform(
                +231                lambda node: exp.column(node.name)
                +232                if isinstance(node, exp.Column) and node.args.get("table") in targets
                +233                else node,
                +234                copy=False,
                +235            )
                +236
                +237    return expression
                +238
                 239
                -240
                -241def remove_within_group_for_percentiles(expression: exp.Expression) -> exp.Expression:
                -242    if (
                -243        isinstance(expression, exp.WithinGroup)
                -244        and isinstance(expression.this, (exp.PercentileCont, exp.PercentileDisc))
                -245        and isinstance(expression.expression, exp.Order)
                -246    ):
                -247        quantile = expression.this.this
                -248        input_value = t.cast(exp.Ordered, expression.find(exp.Ordered)).this
                -249        return expression.replace(exp.ApproxQuantile(this=input_value, quantile=quantile))
                -250
                -251    return expression
                +240def remove_within_group_for_percentiles(expression: exp.Expression) -> exp.Expression:
                +241    if (
                +242        isinstance(expression, exp.WithinGroup)
                +243        and isinstance(expression.this, (exp.PercentileCont, exp.PercentileDisc))
                +244        and isinstance(expression.expression, exp.Order)
                +245    ):
                +246        quantile = expression.this.this
                +247        input_value = t.cast(exp.Ordered, expression.find(exp.Ordered)).this
                +248        return expression.replace(exp.ApproxQuantile(this=input_value, quantile=quantile))
                +249
                +250    return expression
                +251
                 252
                -253
                -254def add_recursive_cte_column_names(expression: exp.Expression) -> exp.Expression:
                -255    if isinstance(expression, exp.With) and expression.recursive:
                -256        sequence = itertools.count()
                -257        next_name = lambda: f"_c_{next(sequence)}"
                -258
                -259        for cte in expression.expressions:
                -260            if not cte.args["alias"].columns:
                -261                query = cte.this
                -262                if isinstance(query, exp.Union):
                -263                    query = query.this
                -264
                -265                cte.args["alias"].set(
                -266                    "columns",
                -267                    [exp.to_identifier(s.alias_or_name or next_name()) for s in query.selects],
                -268                )
                +253def add_recursive_cte_column_names(expression: exp.Expression) -> exp.Expression:
                +254    if isinstance(expression, exp.With) and expression.recursive:
                +255        next_name = name_sequence("_c_")
                +256
                +257        for cte in expression.expressions:
                +258            if not cte.args["alias"].columns:
                +259                query = cte.this
                +260                if isinstance(query, exp.Union):
                +261                    query = query.this
                +262
                +263                cte.args["alias"].set(
                +264                    "columns",
                +265                    [exp.to_identifier(s.alias_or_name or next_name()) for s in query.selects],
                +266                )
                +267
                +268    return expression
                 269
                -270    return expression
                -271
                -272
                -273def preprocess(
                -274    transforms: t.List[t.Callable[[exp.Expression], exp.Expression]],
                -275) -> t.Callable[[Generator, exp.Expression], str]:
                -276    """
                -277    Creates a new transform by chaining a sequence of transformations and converts the resulting
                -278    expression to SQL, using either the "_sql" method corresponding to the resulting expression,
                -279    or the appropriate `Generator.TRANSFORMS` function (when applicable -- see below).
                +270
                +271def epoch_cast_to_ts(expression: exp.Expression) -> exp.Expression:
                +272    if (
                +273        isinstance(expression, (exp.Cast, exp.TryCast))
                +274        and expression.name.lower() == "epoch"
                +275        and expression.to.this in exp.DataType.TEMPORAL_TYPES
                +276    ):
                +277        expression.this.replace(exp.Literal.string("1970-01-01 00:00:00"))
                +278
                +279    return expression
                 280
                -281    Args:
                -282        transforms: sequence of transform functions. These will be called in order.
                -283
                -284    Returns:
                -285        Function that can be used as a generator transform.
                -286    """
                -287
                -288    def _to_sql(self, expression: exp.Expression) -> str:
                -289        expression_type = type(expression)
                -290
                -291        expression = transforms[0](expression.copy())
                -292        for t in transforms[1:]:
                -293            expression = t(expression)
                -294
                -295        _sql_handler = getattr(self, expression.key + "_sql", None)
                -296        if _sql_handler:
                -297            return _sql_handler(expression)
                -298
                -299        transforms_handler = self.TRANSFORMS.get(type(expression))
                -300        if transforms_handler:
                -301            # Ensures we don't enter an infinite loop. This can happen when the original expression
                -302            # has the same type as the final expression and there's no _sql method available for it,
                -303            # because then it'd re-enter _to_sql.
                -304            if expression_type is type(expression):
                -305                raise ValueError(
                -306                    f"Expression type {expression.__class__.__name__} requires a _sql method in order to be transformed."
                -307                )
                -308
                -309            return transforms_handler(self, expression)
                -310
                -311        raise ValueError(f"Unsupported expression type {expression.__class__.__name__}.")
                -312
                -313    return _to_sql
                +281
                +282def preprocess(
                +283    transforms: t.List[t.Callable[[exp.Expression], exp.Expression]],
                +284) -> t.Callable[[Generator, exp.Expression], str]:
                +285    """
                +286    Creates a new transform by chaining a sequence of transformations and converts the resulting
                +287    expression to SQL, using either the "_sql" method corresponding to the resulting expression,
                +288    or the appropriate `Generator.TRANSFORMS` function (when applicable -- see below).
                +289
                +290    Args:
                +291        transforms: sequence of transform functions. These will be called in order.
                +292
                +293    Returns:
                +294        Function that can be used as a generator transform.
                +295    """
                +296
                +297    def _to_sql(self, expression: exp.Expression) -> str:
                +298        expression_type = type(expression)
                +299
                +300        expression = transforms[0](expression.copy())
                +301        for t in transforms[1:]:
                +302            expression = t(expression)
                +303
                +304        _sql_handler = getattr(self, expression.key + "_sql", None)
                +305        if _sql_handler:
                +306            return _sql_handler(expression)
                +307
                +308        transforms_handler = self.TRANSFORMS.get(type(expression))
                +309        if transforms_handler:
                +310            # Ensures we don't enter an infinite loop. This can happen when the original expression
                +311            # has the same type as the final expression and there's no _sql method available for it,
                +312            # because then it'd re-enter _to_sql.
                +313            if expression_type is type(expression):
                +314                raise ValueError(
                +315                    f"Expression type {expression.__class__.__name__} requires a _sql method in order to be transformed."
                +316                )
                +317
                +318            return transforms_handler(self, expression)
                +319
                +320        raise ValueError(f"Unsupported expression type {expression.__class__.__name__}.")
                +321
                +322    return _to_sql
                 
                @@ -411,37 +423,37 @@
                -
                14def unalias_group(expression: exp.Expression) -> exp.Expression:
                -15    """
                -16    Replace references to select aliases in GROUP BY clauses.
                -17
                -18    Example:
                -19        >>> import sqlglot
                -20        >>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()
                -21        'SELECT a AS b FROM x GROUP BY 1'
                -22
                -23    Args:
                -24        expression: the expression that will be transformed.
                -25
                -26    Returns:
                -27        The transformed expression.
                -28    """
                -29    if isinstance(expression, exp.Group) and isinstance(expression.parent, exp.Select):
                -30        aliased_selects = {
                -31            e.alias: i
                -32            for i, e in enumerate(expression.parent.expressions, start=1)
                -33            if isinstance(e, exp.Alias)
                -34        }
                -35
                -36        for group_by in expression.expressions:
                -37            if (
                -38                isinstance(group_by, exp.Column)
                -39                and not group_by.table
                -40                and group_by.name in aliased_selects
                -41            ):
                -42                group_by.replace(exp.Literal.number(aliased_selects.get(group_by.name)))
                -43
                -44    return expression
                +            
                13def unalias_group(expression: exp.Expression) -> exp.Expression:
                +14    """
                +15    Replace references to select aliases in GROUP BY clauses.
                +16
                +17    Example:
                +18        >>> import sqlglot
                +19        >>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()
                +20        'SELECT a AS b FROM x GROUP BY 1'
                +21
                +22    Args:
                +23        expression: the expression that will be transformed.
                +24
                +25    Returns:
                +26        The transformed expression.
                +27    """
                +28    if isinstance(expression, exp.Group) and isinstance(expression.parent, exp.Select):
                +29        aliased_selects = {
                +30            e.alias: i
                +31            for i, e in enumerate(expression.parent.expressions, start=1)
                +32            if isinstance(e, exp.Alias)
                +33        }
                +34
                +35        for group_by in expression.expressions:
                +36            if (
                +37                isinstance(group_by, exp.Column)
                +38                and not group_by.table
                +39                and group_by.name in aliased_selects
                +40            ):
                +41                group_by.replace(exp.Literal.number(aliased_selects.get(group_by.name)))
                +42
                +43    return expression
                 
                @@ -484,39 +496,39 @@
                -
                47def eliminate_distinct_on(expression: exp.Expression) -> exp.Expression:
                -48    """
                -49    Convert SELECT DISTINCT ON statements to a subquery with a window function.
                -50
                -51    This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.
                -52
                -53    Args:
                -54        expression: the expression that will be transformed.
                -55
                -56    Returns:
                -57        The transformed expression.
                -58    """
                -59    if (
                -60        isinstance(expression, exp.Select)
                -61        and expression.args.get("distinct")
                -62        and expression.args["distinct"].args.get("on")
                -63        and isinstance(expression.args["distinct"].args["on"], exp.Tuple)
                -64    ):
                -65        distinct_cols = expression.args["distinct"].pop().args["on"].expressions
                -66        outer_selects = expression.selects
                -67        row_number = find_new_name(expression.named_selects, "_row_number")
                -68        window = exp.Window(this=exp.RowNumber(), partition_by=distinct_cols)
                -69        order = expression.args.get("order")
                -70
                -71        if order:
                -72            window.set("order", order.pop().copy())
                -73
                -74        window = exp.alias_(window, row_number)
                -75        expression.select(window, copy=False)
                -76
                -77        return exp.select(*outer_selects).from_(expression.subquery()).where(f'"{row_number}" = 1')
                -78
                -79    return expression
                +            
                46def eliminate_distinct_on(expression: exp.Expression) -> exp.Expression:
                +47    """
                +48    Convert SELECT DISTINCT ON statements to a subquery with a window function.
                +49
                +50    This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.
                +51
                +52    Args:
                +53        expression: the expression that will be transformed.
                +54
                +55    Returns:
                +56        The transformed expression.
                +57    """
                +58    if (
                +59        isinstance(expression, exp.Select)
                +60        and expression.args.get("distinct")
                +61        and expression.args["distinct"].args.get("on")
                +62        and isinstance(expression.args["distinct"].args["on"], exp.Tuple)
                +63    ):
                +64        distinct_cols = expression.args["distinct"].pop().args["on"].expressions
                +65        outer_selects = expression.selects
                +66        row_number = find_new_name(expression.named_selects, "_row_number")
                +67        window = exp.Window(this=exp.RowNumber(), partition_by=distinct_cols)
                +68        order = expression.args.get("order")
                +69
                +70        if order:
                +71            window.set("order", order.pop().copy())
                +72
                +73        window = exp.alias_(window, row_number)
                +74        expression.select(window, copy=False)
                +75
                +76        return exp.select(*outer_selects).from_(expression.subquery()).where(f'"{row_number}" = 1')
                +77
                +78    return expression
                 
                @@ -550,45 +562,45 @@
                -
                 82def eliminate_qualify(expression: exp.Expression) -> exp.Expression:
                - 83    """
                - 84    Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.
                - 85
                - 86    The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY:
                - 87    https://docs.snowflake.com/en/sql-reference/constructs/qualify
                - 88
                - 89    Some dialects don't support window functions in the WHERE clause, so we need to include them as
                - 90    projections in the subquery, in order to refer to them in the outer filter using aliases. Also,
                - 91    if a column is referenced in the QUALIFY clause but is not selected, we need to include it too,
                - 92    otherwise we won't be able to refer to it in the outer query's WHERE clause.
                - 93    """
                - 94    if isinstance(expression, exp.Select) and expression.args.get("qualify"):
                - 95        taken = set(expression.named_selects)
                - 96        for select in expression.selects:
                - 97            if not select.alias_or_name:
                - 98                alias = find_new_name(taken, "_c")
                - 99                select.replace(exp.alias_(select, alias))
                -100                taken.add(alias)
                -101
                -102        outer_selects = exp.select(*[select.alias_or_name for select in expression.selects])
                -103        qualify_filters = expression.args["qualify"].pop().this
                -104
                -105        for expr in qualify_filters.find_all((exp.Window, exp.Column)):
                -106            if isinstance(expr, exp.Window):
                -107                alias = find_new_name(expression.named_selects, "_w")
                -108                expression.select(exp.alias_(expr, alias), copy=False)
                -109                column = exp.column(alias)
                -110
                -111                if isinstance(expr.parent, exp.Qualify):
                -112                    qualify_filters = column
                -113                else:
                -114                    expr.replace(column)
                -115            elif expr.name not in expression.named_selects:
                -116                expression.select(expr.copy(), copy=False)
                -117
                -118        return outer_selects.from_(expression.subquery(alias="_t")).where(qualify_filters)
                -119
                -120    return expression
                +            
                 81def eliminate_qualify(expression: exp.Expression) -> exp.Expression:
                + 82    """
                + 83    Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.
                + 84
                + 85    The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY:
                + 86    https://docs.snowflake.com/en/sql-reference/constructs/qualify
                + 87
                + 88    Some dialects don't support window functions in the WHERE clause, so we need to include them as
                + 89    projections in the subquery, in order to refer to them in the outer filter using aliases. Also,
                + 90    if a column is referenced in the QUALIFY clause but is not selected, we need to include it too,
                + 91    otherwise we won't be able to refer to it in the outer query's WHERE clause.
                + 92    """
                + 93    if isinstance(expression, exp.Select) and expression.args.get("qualify"):
                + 94        taken = set(expression.named_selects)
                + 95        for select in expression.selects:
                + 96            if not select.alias_or_name:
                + 97                alias = find_new_name(taken, "_c")
                + 98                select.replace(exp.alias_(select, alias))
                + 99                taken.add(alias)
                +100
                +101        outer_selects = exp.select(*[select.alias_or_name for select in expression.selects])
                +102        qualify_filters = expression.args["qualify"].pop().this
                +103
                +104        for expr in qualify_filters.find_all((exp.Window, exp.Column)):
                +105            if isinstance(expr, exp.Window):
                +106                alias = find_new_name(expression.named_selects, "_w")
                +107                expression.select(exp.alias_(expr, alias), copy=False)
                +108                column = exp.column(alias)
                +109
                +110                if isinstance(expr.parent, exp.Qualify):
                +111                    qualify_filters = column
                +112                else:
                +113                    expr.replace(column)
                +114            elif expr.name not in expression.named_selects:
                +115                expression.select(expr.copy(), copy=False)
                +116
                +117        return outer_selects.from_(expression.subquery(alias="_t")).where(qualify_filters)
                +118
                +119    return expression
                 
                @@ -616,15 +628,15 @@ otherwise we won't be able to refer to it in the outer query's WHERE clause.

                -
                123def remove_precision_parameterized_types(expression: exp.Expression) -> exp.Expression:
                -124    """
                -125    Some dialects only allow the precision for parameterized types to be defined in the DDL and not in
                -126    other expressions. This transforms removes the precision from parameterized types in expressions.
                -127    """
                -128    for node in expression.find_all(exp.DataType):
                -129        node.set("expressions", [e for e in node.expressions if isinstance(e, exp.DataType)])
                -130
                -131    return expression
                +            
                122def remove_precision_parameterized_types(expression: exp.Expression) -> exp.Expression:
                +123    """
                +124    Some dialects only allow the precision for parameterized types to be defined in the DDL and not in
                +125    other expressions. This transforms removes the precision from parameterized types in expressions.
                +126    """
                +127    for node in expression.find_all(exp.DataType):
                +128        node.set("expressions", [e for e in node.expressions if isinstance(e, exp.DataType)])
                +129
                +130    return expression
                 
                @@ -645,29 +657,29 @@ other expressions. This transforms removes the precision from parameterized type
                -
                134def unnest_to_explode(expression: exp.Expression) -> exp.Expression:
                -135    """Convert cross join unnest into lateral view explode (used in presto -> hive)."""
                -136    if isinstance(expression, exp.Select):
                -137        for join in expression.args.get("joins") or []:
                -138            unnest = join.this
                -139
                -140            if isinstance(unnest, exp.Unnest):
                -141                alias = unnest.args.get("alias")
                -142                udtf = exp.Posexplode if unnest.args.get("ordinality") else exp.Explode
                -143
                -144                expression.args["joins"].remove(join)
                -145
                -146                for e, column in zip(unnest.expressions, alias.columns if alias else []):
                -147                    expression.append(
                -148                        "laterals",
                -149                        exp.Lateral(
                -150                            this=udtf(this=e),
                -151                            view=True,
                -152                            alias=exp.TableAlias(this=alias.this, columns=[column]),  # type: ignore
                -153                        ),
                -154                    )
                -155
                -156    return expression
                +            
                133def unnest_to_explode(expression: exp.Expression) -> exp.Expression:
                +134    """Convert cross join unnest into lateral view explode (used in presto -> hive)."""
                +135    if isinstance(expression, exp.Select):
                +136        for join in expression.args.get("joins") or []:
                +137            unnest = join.this
                +138
                +139            if isinstance(unnest, exp.Unnest):
                +140                alias = unnest.args.get("alias")
                +141                udtf = exp.Posexplode if unnest.args.get("ordinality") else exp.Explode
                +142
                +143                expression.args["joins"].remove(join)
                +144
                +145                for e, column in zip(unnest.expressions, alias.columns if alias else []):
                +146                    expression.append(
                +147                        "laterals",
                +148                        exp.Lateral(
                +149                            this=udtf(this=e),
                +150                            view=True,
                +151                            alias=exp.TableAlias(this=alias.this, columns=[column]),  # type: ignore
                +152                        ),
                +153                    )
                +154
                +155    return expression
                 
                @@ -687,68 +699,68 @@ other expressions. This transforms removes the precision from parameterized type
                -
                159def explode_to_unnest(expression: exp.Expression) -> exp.Expression:
                -160    """Convert explode/posexplode into unnest (used in hive -> presto)."""
                -161    if isinstance(expression, exp.Select):
                -162        from sqlglot.optimizer.scope import build_scope
                -163
                -164        taken_select_names = set(expression.named_selects)
                -165        scope = build_scope(expression)
                -166        if not scope:
                -167            return expression
                -168        taken_source_names = set(scope.selected_sources)
                -169
                -170        for select in expression.selects:
                -171            to_replace = select
                -172
                -173            pos_alias = ""
                -174            explode_alias = ""
                -175
                -176            if isinstance(select, exp.Alias):
                -177                explode_alias = select.alias
                -178                select = select.this
                -179            elif isinstance(select, exp.Aliases):
                -180                pos_alias = select.aliases[0].name
                -181                explode_alias = select.aliases[1].name
                -182                select = select.this
                -183
                -184            if isinstance(select, (exp.Explode, exp.Posexplode)):
                -185                is_posexplode = isinstance(select, exp.Posexplode)
                -186
                -187                explode_arg = select.this
                -188                unnest = exp.Unnest(expressions=[explode_arg.copy()], ordinality=is_posexplode)
                -189
                -190                # This ensures that we won't use [POS]EXPLODE's argument as a new selection
                -191                if isinstance(explode_arg, exp.Column):
                -192                    taken_select_names.add(explode_arg.output_name)
                -193
                -194                unnest_source_alias = find_new_name(taken_source_names, "_u")
                -195                taken_source_names.add(unnest_source_alias)
                -196
                -197                if not explode_alias:
                -198                    explode_alias = find_new_name(taken_select_names, "col")
                -199                    taken_select_names.add(explode_alias)
                -200
                -201                    if is_posexplode:
                -202                        pos_alias = find_new_name(taken_select_names, "pos")
                -203                        taken_select_names.add(pos_alias)
                -204
                -205                if is_posexplode:
                -206                    column_names = [explode_alias, pos_alias]
                -207                    to_replace.pop()
                -208                    expression.select(pos_alias, explode_alias, copy=False)
                -209                else:
                -210                    column_names = [explode_alias]
                -211                    to_replace.replace(exp.column(explode_alias))
                -212
                -213                unnest = exp.alias_(unnest, unnest_source_alias, table=column_names)
                -214
                -215                if not expression.args.get("from"):
                -216                    expression.from_(unnest, copy=False)
                -217                else:
                -218                    expression.join(unnest, join_type="CROSS", copy=False)
                -219
                -220    return expression
                +            
                158def explode_to_unnest(expression: exp.Expression) -> exp.Expression:
                +159    """Convert explode/posexplode into unnest (used in hive -> presto)."""
                +160    if isinstance(expression, exp.Select):
                +161        from sqlglot.optimizer.scope import build_scope
                +162
                +163        taken_select_names = set(expression.named_selects)
                +164        scope = build_scope(expression)
                +165        if not scope:
                +166            return expression
                +167        taken_source_names = set(scope.selected_sources)
                +168
                +169        for select in expression.selects:
                +170            to_replace = select
                +171
                +172            pos_alias = ""
                +173            explode_alias = ""
                +174
                +175            if isinstance(select, exp.Alias):
                +176                explode_alias = select.alias
                +177                select = select.this
                +178            elif isinstance(select, exp.Aliases):
                +179                pos_alias = select.aliases[0].name
                +180                explode_alias = select.aliases[1].name
                +181                select = select.this
                +182
                +183            if isinstance(select, (exp.Explode, exp.Posexplode)):
                +184                is_posexplode = isinstance(select, exp.Posexplode)
                +185
                +186                explode_arg = select.this
                +187                unnest = exp.Unnest(expressions=[explode_arg.copy()], ordinality=is_posexplode)
                +188
                +189                # This ensures that we won't use [POS]EXPLODE's argument as a new selection
                +190                if isinstance(explode_arg, exp.Column):
                +191                    taken_select_names.add(explode_arg.output_name)
                +192
                +193                unnest_source_alias = find_new_name(taken_source_names, "_u")
                +194                taken_source_names.add(unnest_source_alias)
                +195
                +196                if not explode_alias:
                +197                    explode_alias = find_new_name(taken_select_names, "col")
                +198                    taken_select_names.add(explode_alias)
                +199
                +200                    if is_posexplode:
                +201                        pos_alias = find_new_name(taken_select_names, "pos")
                +202                        taken_select_names.add(pos_alias)
                +203
                +204                if is_posexplode:
                +205                    column_names = [explode_alias, pos_alias]
                +206                    to_replace.pop()
                +207                    expression.select(pos_alias, explode_alias, copy=False)
                +208                else:
                +209                    column_names = [explode_alias]
                +210                    to_replace.replace(exp.column(explode_alias))
                +211
                +212                unnest = exp.alias_(unnest, unnest_source_alias, table=column_names)
                +213
                +214                if not expression.args.get("from"):
                +215                    expression.from_(unnest, copy=False)
                +216                else:
                +217                    expression.join(unnest, join_type="CROSS", copy=False)
                +218
                +219    return expression
                 
                @@ -768,23 +780,23 @@ other expressions. This transforms removes the precision from parameterized type
                -
                223def remove_target_from_merge(expression: exp.Expression) -> exp.Expression:
                -224    """Remove table refs from columns in when statements."""
                -225    if isinstance(expression, exp.Merge):
                -226        alias = expression.this.args.get("alias")
                -227        targets = {expression.this.this}
                -228        if alias:
                -229            targets.add(alias.this)
                -230
                -231        for when in expression.expressions:
                -232            when.transform(
                -233                lambda node: exp.column(node.name)
                -234                if isinstance(node, exp.Column) and node.args.get("table") in targets
                -235                else node,
                -236                copy=False,
                -237            )
                -238
                -239    return expression
                +            
                222def remove_target_from_merge(expression: exp.Expression) -> exp.Expression:
                +223    """Remove table refs from columns in when statements."""
                +224    if isinstance(expression, exp.Merge):
                +225        alias = expression.this.args.get("alias")
                +226        targets = {expression.this.this}
                +227        if alias:
                +228            targets.add(alias.this)
                +229
                +230        for when in expression.expressions:
                +231            when.transform(
                +232                lambda node: exp.column(node.name)
                +233                if isinstance(node, exp.Column) and node.args.get("table") in targets
                +234                else node,
                +235                copy=False,
                +236            )
                +237
                +238    return expression
                 
                @@ -804,17 +816,17 @@ other expressions. This transforms removes the precision from parameterized type
                -
                242def remove_within_group_for_percentiles(expression: exp.Expression) -> exp.Expression:
                -243    if (
                -244        isinstance(expression, exp.WithinGroup)
                -245        and isinstance(expression.this, (exp.PercentileCont, exp.PercentileDisc))
                -246        and isinstance(expression.expression, exp.Order)
                -247    ):
                -248        quantile = expression.this.this
                -249        input_value = t.cast(exp.Ordered, expression.find(exp.Ordered)).this
                -250        return expression.replace(exp.ApproxQuantile(this=input_value, quantile=quantile))
                -251
                -252    return expression
                +            
                241def remove_within_group_for_percentiles(expression: exp.Expression) -> exp.Expression:
                +242    if (
                +243        isinstance(expression, exp.WithinGroup)
                +244        and isinstance(expression.this, (exp.PercentileCont, exp.PercentileDisc))
                +245        and isinstance(expression.expression, exp.Order)
                +246    ):
                +247        quantile = expression.this.this
                +248        input_value = t.cast(exp.Ordered, expression.find(exp.Ordered)).this
                +249        return expression.replace(exp.ApproxQuantile(this=input_value, quantile=quantile))
                +250
                +251    return expression
                 
                @@ -832,23 +844,48 @@ other expressions. This transforms removes the precision from parameterized type
                -
                255def add_recursive_cte_column_names(expression: exp.Expression) -> exp.Expression:
                -256    if isinstance(expression, exp.With) and expression.recursive:
                -257        sequence = itertools.count()
                -258        next_name = lambda: f"_c_{next(sequence)}"
                -259
                -260        for cte in expression.expressions:
                -261            if not cte.args["alias"].columns:
                -262                query = cte.this
                -263                if isinstance(query, exp.Union):
                -264                    query = query.this
                -265
                -266                cte.args["alias"].set(
                -267                    "columns",
                -268                    [exp.to_identifier(s.alias_or_name or next_name()) for s in query.selects],
                -269                )
                -270
                -271    return expression
                +            
                254def add_recursive_cte_column_names(expression: exp.Expression) -> exp.Expression:
                +255    if isinstance(expression, exp.With) and expression.recursive:
                +256        next_name = name_sequence("_c_")
                +257
                +258        for cte in expression.expressions:
                +259            if not cte.args["alias"].columns:
                +260                query = cte.this
                +261                if isinstance(query, exp.Union):
                +262                    query = query.this
                +263
                +264                cte.args["alias"].set(
                +265                    "columns",
                +266                    [exp.to_identifier(s.alias_or_name or next_name()) for s in query.selects],
                +267                )
                +268
                +269    return expression
                +
                + + + + + +
                + +
                + + def + epoch_cast_to_ts( expression: sqlglot.expressions.Expression) -> sqlglot.expressions.Expression: + + + +
                + +
                272def epoch_cast_to_ts(expression: exp.Expression) -> exp.Expression:
                +273    if (
                +274        isinstance(expression, (exp.Cast, exp.TryCast))
                +275        and expression.name.lower() == "epoch"
                +276        and expression.to.this in exp.DataType.TEMPORAL_TYPES
                +277    ):
                +278        expression.this.replace(exp.Literal.string("1970-01-01 00:00:00"))
                +279
                +280    return expression
                 
                @@ -866,47 +903,47 @@ other expressions. This transforms removes the precision from parameterized type
                -
                274def preprocess(
                -275    transforms: t.List[t.Callable[[exp.Expression], exp.Expression]],
                -276) -> t.Callable[[Generator, exp.Expression], str]:
                -277    """
                -278    Creates a new transform by chaining a sequence of transformations and converts the resulting
                -279    expression to SQL, using either the "_sql" method corresponding to the resulting expression,
                -280    or the appropriate `Generator.TRANSFORMS` function (when applicable -- see below).
                -281
                -282    Args:
                -283        transforms: sequence of transform functions. These will be called in order.
                -284
                -285    Returns:
                -286        Function that can be used as a generator transform.
                -287    """
                -288
                -289    def _to_sql(self, expression: exp.Expression) -> str:
                -290        expression_type = type(expression)
                -291
                -292        expression = transforms[0](expression.copy())
                -293        for t in transforms[1:]:
                -294            expression = t(expression)
                -295
                -296        _sql_handler = getattr(self, expression.key + "_sql", None)
                -297        if _sql_handler:
                -298            return _sql_handler(expression)
                -299
                -300        transforms_handler = self.TRANSFORMS.get(type(expression))
                -301        if transforms_handler:
                -302            # Ensures we don't enter an infinite loop. This can happen when the original expression
                -303            # has the same type as the final expression and there's no _sql method available for it,
                -304            # because then it'd re-enter _to_sql.
                -305            if expression_type is type(expression):
                -306                raise ValueError(
                -307                    f"Expression type {expression.__class__.__name__} requires a _sql method in order to be transformed."
                -308                )
                -309
                -310            return transforms_handler(self, expression)
                -311
                -312        raise ValueError(f"Unsupported expression type {expression.__class__.__name__}.")
                -313
                -314    return _to_sql
                +            
                283def preprocess(
                +284    transforms: t.List[t.Callable[[exp.Expression], exp.Expression]],
                +285) -> t.Callable[[Generator, exp.Expression], str]:
                +286    """
                +287    Creates a new transform by chaining a sequence of transformations and converts the resulting
                +288    expression to SQL, using either the "_sql" method corresponding to the resulting expression,
                +289    or the appropriate `Generator.TRANSFORMS` function (when applicable -- see below).
                +290
                +291    Args:
                +292        transforms: sequence of transform functions. These will be called in order.
                +293
                +294    Returns:
                +295        Function that can be used as a generator transform.
                +296    """
                +297
                +298    def _to_sql(self, expression: exp.Expression) -> str:
                +299        expression_type = type(expression)
                +300
                +301        expression = transforms[0](expression.copy())
                +302        for t in transforms[1:]:
                +303            expression = t(expression)
                +304
                +305        _sql_handler = getattr(self, expression.key + "_sql", None)
                +306        if _sql_handler:
                +307            return _sql_handler(expression)
                +308
                +309        transforms_handler = self.TRANSFORMS.get(type(expression))
                +310        if transforms_handler:
                +311            # Ensures we don't enter an infinite loop. This can happen when the original expression
                +312            # has the same type as the final expression and there's no _sql method available for it,
                +313            # because then it'd re-enter _to_sql.
                +314            if expression_type is type(expression):
                +315                raise ValueError(
                +316                    f"Expression type {expression.__class__.__name__} requires a _sql method in order to be transformed."
                +317                )
                +318
                +319            return transforms_handler(self, expression)
                +320
                +321        raise ValueError(f"Unsupported expression type {expression.__class__.__name__}.")
                +322
                +323    return _to_sql
                 
                -- cgit v1.2.3