✨ Features
- Allow sqlmesh models to import jinja macros. (#837) @tobymao
- Cache snapshot start to improve load time of large projects (#826) @crericha
- Introduce state backups during migrations (#824) @vchan
- Feat[breaking]: don't qualify columns on external tables. (#840) @tobymao
- Store seed content separately from snapshot payload (#853) @izeigerman
- Display external table in lineage (#857) @mykalmax
🪲 Bug fixes
- Support manifest generated by dbt 1.2 (#839) @izeigerman
- Run only one workflow at a time in CircleCI @izeigerman
- Use load API to insert append dataframes in the BigQuery adapter (#841) @izeigerman
- Use pd.DataFrame to insert snapshots and environments in state sync (#843) @izeigerman
- Use the public SQLGlot diff API when categorizing changes (#845) @izeigerman
- In Engine Adapter automatically infer columns-to-types from a DataFrame (#844) @izeigerman
- Remaining Engine Adapter API which require column schema when pandas DataFrame is passed (#847) @izeigerman
- Use explicit column-to-types mapping in the state sync @izeigerman
- Python 3.7 mypy @izeigerman
- Use Snowflake's API to write a dataframe into a table (#850) @izeigerman
- Escape JSON when inserting a dataframe (#849) @izeigerman
- Mypy error due to merging without rebasing first @izeigerman
- Return no missing intervals for seed models if evaluated at least once (#851) @izeigerman
- Improve lineage performance (#848) @mykalmax
- Simplify validation @izeigerman
- Improve performance of sushi example. @tobymao
- In Snowflake adapter return the DataFrame as is without modifying its column names. (#846) @izeigerman
- Move circleci release pipeline back into the config.yaml @izeigerman
🛠️ Refactor
- Use sqlglot's exp.insert to simplify Insert building (#855) @georgesittas
🧹 Chore
- BREAKING remove unused getter apis for macros/hooks (#838) @tobymao
- Move the release workflow into the continue_config.yml @izeigerman
- Fix CircleCI config @izeigerman
- Improve error message @tobymao