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