Я хотел бы создать шаблон jinja для генерации sql, и я хотел бы, чтобы он выровнял имена столбцов и типы данных для удобства чтения, вот так:
CREATE TABLE test_destination_table_csv (
col1 STRING
,asdfg INT
,somethingelse DOUBLE
,datestr TIMESTAMP
)
Обычно я делаю это с помощью вкладок в редакторе, но, похоже, это не работает в моем шаблоне jinja.
Что я получу, это:
CREATE TABLE test_destination_table_csv (
col1 STRING
, asdfg INT
, somethingelse DOUBLE
, datestr TIMESTAMP
)
используя следующий шаблон:
CREATE TABLE {{ table_name }}_csv (
{% for col, dtype in columns %}
{{ "," if not loop.first else " " }} {{col}} {{ dtype }}
{% endfor %}
)
Я пытался добавить что-то вроде следующего:
{{ " " * max(2,(20 - len(col))) }}
но Джинджа не понял этого. Я думал, что Jinja должен был поддерживать произвольный код на Python, как некоторые другие языки шаблонов?