| 91 | |
| 92 | |
| 93 | def td_query( |
| 94 | sql: str, results: list[str] | str | None, replacements: dict[Any, Any] |
| 95 | ) -> list[str]: |
| 96 | result: list[str] = [] |
| 97 | |
| 98 | sql = re.sub(r"/\*.*?\*/", "", sql, flags=re.DOTALL) |
| 99 | sql = re.sub(r"--.*?$", "", sql, flags=re.MULTILINE) |
| 100 | for old, new in replacements.items(): |
| 101 | sql = sql.replace(str(old), str(new)) |
| 102 | |
| 103 | for i, query in enumerate(sql.split(";")): |
| 104 | lines = query.strip().splitlines() |
| 105 | if not lines: |
| 106 | continue |
| 107 | result.append(f"> {lines[0]}\n" + "\n".join(f" {line}" for line in lines[1:])) |
| 108 | if isinstance(results, list): |
| 109 | result.append(td_result(results[i], replacements)) |
| 110 | |
| 111 | if isinstance(results, str): |
| 112 | result.append(td_result(results, replacements)) |
| 113 | |
| 114 | return result |
| 115 | |
| 116 | |
| 117 | def td_result(raw: str, replacements: dict[Any, Any]) -> str: |