Hello,
I have 80 long queries, and for 27 of them, results are not correct for "sql_metadata.get_query_tables(ddl)"
Here is an example:
ddl_for_sql_metadata.sql
SELECT
"attr1"
FROM
(
SELECT
"attr2"
FROM
(database1.table1 "aliasTable"
LEFT JOIN (
SELECT
"attr3"
FROM
((
SELECT
"attr4"
FROM
database2.table2
GROUP BY 1, 2, 3, 4
) "aliasTable2"
LEFT JOIN (
SELECT
"attr5"
FROM
database3.table3
GROUP BY 1, 2
) "X" ON ("table"."attr" = "table"."attr"))
) "Y" ON ("table"."attr" = "table"."attr"))
) "Z"
WHERE (myCondition)
GROUP BY 1, 2, 3, 4, 5
Quick way to test:
import sql_metadata
def read_from_file(file_path):
return open(file_path, "r").read()
ddl = read_from_file("ddl_for_sql_metadata.sql")
tables = sql_metadata.get_query_tables(ddl)
print(tables)
It returns only ['database2.table2', 'database3.table3']
and it should return database1.table1
Hello,
I have 80 long queries, and for 27 of them, results are not correct for "sql_metadata.get_query_tables(ddl)"
Here is an example:
ddl_for_sql_metadata.sql
Quick way to test:
It returns only ['database2.table2', 'database3.table3']
and it should return database1.table1