Skip to content

Commit e98aa91

Browse files
authoredJan 31, 2023
Merge pull request #32 from mercedes-benz/fix-handling-of-magic-sql-in-sql-cells
Fix handling of magic sql in sql cells
2 parents c5c0378 + 5487953 commit e98aa91

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed
 

‎blackbricks/blackbricks.py

+8-7
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,13 @@ def _format_sql_cell(
9595
if NOFMT in cell.strip().splitlines()[0]:
9696
return title_line + cell
9797

98-
magics = []
9998
sql_lines = []
100-
for line in cell.strip().splitlines():
101-
if line.strip().startswith("# MAGIC %sql"):
99+
for line in (line.strip() for line in cell.strip().splitlines()):
100+
if line == "# MAGIC %sql":
102101
continue
103-
words = line.split()
104-
magic, sql = words[:2], words[2:]
105-
magics.append(magic)
102+
elif line.startswith("# MAGIC %sql"):
103+
line = line.replace(" %sql", "", 1)
104+
sql = line.split()[2:] # Remove "# MAGIC".
106105
sql_lines.append(" ".join(sql).strip())
107106

108107
return (
@@ -111,7 +110,9 @@ def _format_sql_cell(
111110
+ "\n".join(
112111
f"# MAGIC {sql}"
113112
for sql in sqlparse.format(
114-
"\n".join(sql_lines), reindent=True, keyword_case=sql_keyword_case
113+
"\n".join(sql_lines).strip(),
114+
reindent=True,
115+
keyword_case=sql_keyword_case,
115116
).splitlines()
116117
)
117118
)

‎test_notebooks/test.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,11 @@ def test_func(input_param):
7171
# MAGIC COLLECT_SET(bar.fizz)[0],
7272
# MAGIC FIRST(bar.baz)
7373
# MAGIC FROM dsa.asd bar
74-
# MAGIC GROUP BY bar.fizzbuzz);
74+
# MAGIC GROUP BY bar.fizzbuzz);
75+
76+
# COMMAND ----------
77+
78+
# MAGIC %sql
79+
# MAGIC SELECT id
80+
# MAGIC FROM test_table
81+
# MAGIC LIMIT 1

0 commit comments

Comments
 (0)
Please sign in to comment.