wren-semantic-core-v0.2.0

Canner/WrenAIwren-semantic-core-v0.2.0Jul 10, 2026by github-actions[bot]

AI Summary

This release introduces browser WASM support, enhances SQL dialect capabilities for BigQuery and Snowflake, and adds new connectors for Apache Doris and Databricks. It also improves core engine features such as composite primary key support, window frame validation, and introduces generic SQL knowledge.

Key Highlights

  • Browser WASM support via wren-core-wasm module
  • BigQuery enhancements including EXTRACT function and window frame validation
  • Support for composite (multi-column) primary keys
  • New connectors: Apache Doris and Databricks
  • Refactored dialect-specific function lists

Breaking Changes

  • Disabled `ReplaceDistinctWithAggregate` rule
  • Disabled `DecorrelatePredicateSubquery` rule
  • Disabled `EliminateCrossJoin` rule
  • Disabled `EliminateLimit` rule
  • Disabled `enable_ident_normalization` by default for case-sensitive identifiers

New Features

  • wren-core-wasm module with browser WASM support
  • BigQuery EXTRACT function support and window frame validation
  • Customize type coercion rule for unparsing
  • TypePlanner for compatible SQL types
  • Generic SQL knowledge introduction
  • Support for `to_char` format numeric values
  • UNNEST syntax support for Snowflake
  • MDL layout versioning and dialect field support
  • RLAC subqueries on MDL models
  • Apache Doris connector support

Full Release Notes

## [0.2.0](https://github.com/Canner/WrenAI/compare/wren-semantic-core-v0.1.0...wren-semantic-core-v0.2.0) (2026-07-10)


### Features

* add wren-core-wasm module with browser WASM support ([#1568](https://github.com/Canner/WrenAI/issues/1568)) ([5165a20](https://github.com/Canner/WrenAI/commit/5165a2099aeb7c9d7fef4ec78771e9efcb58db1c))
* **core:** add BigQuery EXTRACT function support and window frame validation ([#1279](https://github.com/Canner/WrenAI/issues/1279)) ([eae6a34](https://github.com/Canner/WrenAI/commit/eae6a3409570d2bb7b5df30800d8191d4a20b8ac))
* **core:** apply default nulls last policy for ordering ([#1262](https://github.com/Canner/WrenAI/issues/1262)) ([2477f43](https://github.com/Canner/WrenAI/commit/2477f43c3f50f10ed0b62e5e14240f29e4edccbc))
* **core:** bump DataFusion to 49.0.1 ([#1293](https://github.com/Canner/WrenAI/issues/1293)) ([ee73ea2](https://github.com/Canner/WrenAI/commit/ee73ea2d4606d823daf03ac6055ef793fc0e10b7))
* **core:** disable `enable_ident_normalization` for case-sensitive identifier by default ([#1305](https://github.com/Canner/WrenAI/issues/1305)) ([45a3a1f](https://github.com/Canner/WrenAI/commit/45a3a1fe828c1910f1b291539a4879cdadc3c1d1))
* **core:** enhance the error message for CLAC failure ([#1250](https://github.com/Canner/WrenAI/issues/1250)) ([f5755b9](https://github.com/Canner/WrenAI/commit/f5755b9b48ad7565a75ce310087ebae19aed9290))
* **core:** implement the customize type coercion rule for unparsing purpose ([#1318](https://github.com/Canner/WrenAI/issues/1318)) ([9b740b7](https://github.com/Canner/WrenAI/commit/9b740b7b87c8058b8c5087f361493f0bcdbbccd5))
* **core:** implement TypePlanner to compatible common SQL types ([#1314](https://github.com/Canner/WrenAI/issues/1314)) ([b340d56](https://github.com/Canner/WrenAI/commit/b340d5674129755b9ea5baf0c9cfe5ab1d646c82))
* **core:** import wren-engine into core/ ([cc9b67f](https://github.com/Canner/WrenAI/commit/cc9b67f593bf94c7418e0abb0ed46aa4a21613c3))
* **core:** import wren-engine into core/ ([#2209](https://github.com/Canner/WrenAI/issues/2209)) ([8b8a1a3](https://github.com/Canner/WrenAI/commit/8b8a1a3c5bf2a43d56ea1587782a0d5d853803b2))
* **core:** improve the scope analyzer for the used models ([#1239](https://github.com/Canner/WrenAI/issues/1239)) ([780f22d](https://github.com/Canner/WrenAI/commit/780f22db0d776d888274649b4555c6bb85cad7ec))
* **core:** introduce dialect-specific function list and refactor BigQuery function lists ([#1366](https://github.com/Canner/WrenAI/issues/1366)) ([586156f](https://github.com/Canner/WrenAI/commit/586156fde21005e2ac00c92236bbcdb0b3bfa754))
* **core:** support `to_char` format numeric values ([#1349](https://github.com/Canner/WrenAI/issues/1349)) ([a634f9f](https://github.com/Canner/WrenAI/commit/a634f9fb9d5424357e27a96b73b6c5246a8c5bfc))
* **core:** support UNNEST syntax for Snowflake ([#1357](https://github.com/Canner/WrenAI/issues/1357)) ([11a49b5](https://github.com/Canner/WrenAI/commit/11a49b5f32f6b17afb093b3330983efb8dfb9e24))
* **ibis:** enhance the function list of snowflake ([#1350](https://github.com/Canner/WrenAI/issues/1350)) ([c782eaf](https://github.com/Canner/WrenAI/commit/c782eaf16175357a2afa20f4dcdd297ba1368afb))
* **ibis:** introduce Databricks connector ([#1361](https://github.com/Canner/WrenAI/issues/1361)) ([8601c78](https://github.com/Canner/WrenAI/commit/8601c780b4193c15042261280039be22b8527631))
* **knowledge:** introduce the generic SQL knowledge ([#1389](https://github.com/Canner/WrenAI/issues/1389)) ([3dec4b3](https://github.com/Canner/WrenAI/commit/3dec4b3691392af37c61754012e4b9c713768a6e))
* **wasm:** full Cube support — validate, translate, PyO3, CLI, WASM, docs ([#2282](https://github.com/Canner/WrenAI/issues/2282)) ([026111e](https://github.com/Canner/WrenAI/commit/026111e54ec31e7165f9fd79c5c998070e66626c))
* **wren-core-base:** replace Metric with Cube types and remove deprecated security types ([#1574](https://github.com/Canner/WrenAI/issues/1574)) ([72d18a8](https://github.com/Canner/WrenAI/commit/72d18a81bbc28a9833a07e19486de16cf59836d0))
* **wren-core:** add refSql model support ([#1555](https://github.com/Canner/WrenAI/issues/1555)) ([815889c](https://github.com/Canner/WrenAI/commit/815889c69bdf5dd4dc13d4dd06ae3bfd160b6e73))
* **wren-core:** RLAC subqueries on MDL models + to-many calc on non-PK column ([#2335](https://github.com/Canner/WrenAI/issues/2335)) ([6972e69](https://github.com/Canner/WrenAI/commit/6972e696b2cb364ec22e48f1ef3ccbea168b4580))
* **wren-core:** support composite (multi-column) primary keys ([#2345](https://github.com/Canner/WrenAI/issues/2345)) ([d33917f](https://github.com/Canner/WrenAI/commit/d33917f046f4ac0abddbbce9ce6c9c10b5adb10a))
* **wren-engine:** add Apache Doris connector support ([#1430](https://github.com/Canner/WrenAI/issues/1430)) ([185dbb0](https://github.com/Canner/WrenAI/commit/185dbb09a93d82a6cc6e092148983f04a6e05d6c))


### Bug Fixes

* **core:** add quotes for the model subquery alias ([#1283](https://github.com/Canner/WrenAI/issues/1283)) ([5799b2a](https://github.com/Canner/WrenAI/commit/5799b2a8dd8aeabec78f99a69de72f1eddd8a4d7))
* **core:** allow the RLAC condition invoke the hidden columns ([#1330](https://github.com/Canner/WrenAI/issues/1330)) ([d8f1fa6](https://github.com/Canner/WrenAI/commit/d8f1fa676fd7cdb605e6a6e78c9828758e3ff17f))
* **core:** disable `ReplaceDistinctWithAggregate` rule ([#1294](https://github.com/Canner/WrenAI/issues/1294)) ([3fc6990](https://github.com/Canner/WrenAI/commit/3fc6990a005f5cbbc116de8a2e2f28b411f9680f))
* **core:** disable DecorrelatePredicateSubquery rule ([#1297](https://github.com/Canner/WrenAI/issues/1297)) ([feb2f17](https://github.com/Canner/WrenAI/commit/feb2f1779f327e1bc5deb23b1de933e4b8a51b35))
* **core:** disable EliminateCrossJoin rule ([#1354](https://github.com/Canner/WrenAI/issues/1354)) ([fdf05d9](https://github.com/Canner/WrenAI/commit/fdf05d9aedb4e8496a3bfcf68a35a6c8a4e717be))
* **core:** disable EliminateLimit rule ([#1226](https://github.com/Canner/WrenAI/issues/1226)) ([80e0edd](https://github.com/Canner/WrenAI/commit/80e0edd65e7d264409d70f931a3fb9579d25a23d))
* **core:** emit all relationship JOINs for multi-relationship calculated columns ([#2450](https://github.com/Canner/WrenAI/issues/2450)) ([c4de8ac](https://github.com/Canner/WrenAI/commit/c4de8ac66a15f48daaaae1ee6e639d63381291cc))
* **core:** fix access controls case-insensitive issue and disable fallback for the query with access control ([#1295](https://github.com/Canner/WrenAI/issues/1295)) ([4e90f69](https://github.com/Canner/WrenAI/commit/4e90f693f00d641c49ca80306ac6627d25eb5849))
* **core:** fix count statement for BigQuery ([#1274](https://github.com/Canner/WrenAI/issues/1274)) ([6137ce6](https://github.com/Canner/WrenAI/commit/6137ce631bd7b7334f1d2a23a4f06f15b5c02647))
* **core:** fix current_timestamp function and add datetime function for bigquery ([#1298](https://github.com/Canner/WrenAI/issues/1298)) ([75b1704](https://github.com/Canner/WrenAI/commit/75b1704aa77ab362d55d8a6fbd4756e4f7c35ea8))
* **core:** fix RLAC for model with an alias ([#1245](https://github.com/Canner/WrenAI/issues/1245)) ([aa8520f](https://github.com/Canner/WrenAI/commit/aa8520f9b641ad20153b07f9dcaa2253afb705e0))
* **core:** fix temporal add and sub function of BigQuery ([#1323](https://github.com/Canner/WrenAI/issues/1323)) ([ba6f5f1](https://github.com/Canner/WrenAI/commit/ba6f5f1e0e031ba8f072aee117190f880a96e6e2))
* **core:** fix the CLAC and scope analyze issues ([#1304](https://github.com/Canner/WrenAI/issues/1304)) ([087cb42](https://github.com/Canner/WrenAI/commit/087cb42f55e49caf9b7214b4ac281e1034da5026))
* **core:** fix the default session time zone ([#1306](https://github.com/Canner/WrenAI/issues/1306)) ([7c6e357](https://github.com/Canner/WrenAI/commit/7c6e35769bb27216bbce9e3b8bae7572680a0921))
* **core:** fix unparsing `EXTRACT` for MySQL ([#1376](https://github.com/Canner/WrenAI/issues/1376)) ([a401c0b](https://github.com/Canner/WrenAI/commit/a401c0bbd242bc1cf7fd5219c6c6059fc71ba112))
* **core:** generate `trim` for BigQuery ([#1337](https://github.com/Canner/WrenAI/issues/1337)) ([207e548](https://github.com/Canner/WrenAI/commit/207e5483f31bf9ca2711c21c283b3554eb3f08e1))
* **core:** generate trim for MSSQL ([#1378](https://github.com/Canner/WrenAI/issues/1378)) ([15e715b](https://github.com/Canner/WrenAI/commit/15e715b65e041a9e6fcd0bd92b3c8b9493821153))
* **core:** introduce `DATE_DIFF` function ([#1303](https://github.com/Canner/WrenAI/issues/1303)) ([2db6f88](https://github.com/Canner/WrenAI/commit/2db6f883122550644752a5efe738eb23ab6889bc))
* **core:** normalize the name of session property ([#1331](https://github.com/Canner/WrenAI/issues/1331)) ([ccd040c](https://github.com/Canner/WrenAI/commit/ccd040c8976336cb91529992c2e4ea1f72870607))
* **core:** prune inaccessible CLS columns in wildcard expansion instead of denying ([#2449](https://github.com/Canner/WrenAI/issues/2449)) ([a8a7519](https://github.com/Canner/WrenAI/commit/a8a751925f91623f94dfffe8dad578937786627c))
* **core:** remove default window frame clause ([#1315](https://github.com/Canner/WrenAI/issues/1315)) ([8ddc839](https://github.com/Canner/WrenAI/commit/8ddc839d0710ba2f78c84e32f1a69abcae59c1f5))
* **core:** support the Unicode literal for MSSQL ([#1338](https://github.com/Canner/WrenAI/issues/1338)) ([f96d11e](https://github.com/Canner/WrenAI/commit/f96d11e7271214f9d639879714c4835a45c27213))
* finish wren-engine → wrenai rename cleanup ([#2425](https://github.com/Canner/WrenAI/issues/2425)) ([0733d37](https://github.com/Canner/WrenAI/commit/0733d379e15f041235bd7ff7449ecc421834a7f4))
* **ibis:** using DataFusion to format the query result ([#1235](https://github.com/Canner/WrenAI/issues/1235)) ([2eddb9d](https://github.com/Canner/WrenAI/commit/2eddb9d1b1623c70778a5f57e412af3799acb44b))
* implement ClickHouse dialect and enhance temporal function mapping ([#1424](https://github.com/Canner/WrenAI/issues/1424)) ([c65ab18](https://github.com/Canner/WrenAI/commit/c65ab18171e3bb3c58366c06e2dc0e0c6d869bb9))
* **wren-core-wasm:** drive query() through a tokio runtime (UNION ALL trap) ([#2291](https://github.com/Canner/WrenAI/issues/2291)) ([f0748f5](https://github.com/Canner/WrenAI/commit/f0748f58a412a7708c39dae1e64ffeb13aa33dd6))
* **wren-core:** preserve composite-key predicates in relationship joins ([#2323](https://github.com/Canner/WrenAI/issues/2323)) ([52e3b07](https://github.com/Canner/WrenAI/commit/52e3b0723a078b8b327e903985b7cdec18c5defb))