From eda2025c30662a804f1b8bf89b4d3f7448994793 Mon Sep 17 00:00:00 2001 From: baniasbaabe Date: Sun, 10 Mar 2024 10:49:41 +0100 Subject: [PATCH] Add sqlglot --- book/cooltools/Chapter.ipynb | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/book/cooltools/Chapter.ipynb b/book/cooltools/Chapter.ipynb index f783d47..7ab738f 100644 --- a/book/cooltools/Chapter.ipynb +++ b/book/cooltools/Chapter.ipynb @@ -1773,6 +1773,46 @@ "output_path = 'fr.wav'\n", "model.tts_to_file(text, speaker_ids['FR'], output_path, speed=speed)" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Powerful SQL Parser and Transpiler with `SQLGlot`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With `SQLGlot`, you can parse, optimize, transpile and format SQL queries. \n", + "\n", + "You can even translate between 21 different flavours like DuckDB, Snowflake, Spark and Hive." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!pip install sqlglot" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sqlglot\n", + "\n", + "sqlglot.transpile(\"SELECT TOP 1 salary FROM employees WHERE age > 30\", read=\"tsql\", write=\"hive\")[0]\n", + "# SELECT salary FROM employees WHERE age > 30 LIMIT 1\n", + "\n", + "sqlglot.transpile(\"SELECT foo FROM (SELECT baz FROM t\")\n", + "#ParseError: Expecting ). Line 1, Col: 34. SELECT foo FROM (SELECT baz FROM t" + ] } ], "metadata": {