--- title: 'This Week in Databend #125' date: 2023-12-24 slug: category-weekly/2023-12-24-databend-weekly cover_url: 'weekly/weekly-125.jpg' image: 'weekly/weekly-125.jpg' tags: [weekly] category: Weekly description: 'Stay up to date with the latest weekly developments on Databend!' contributors: - name: andylokandy - name: ariesdevil - name: b41sh - name: BohuTang - name: Chasen-Zhang - name: dantengsky - name: Dousir9 - name: dqhl76 - name: drmingdrmer - name: everpcpc - name: flaneur2020 - name: guojidan - name: JackTan25 - name: leiysky - name: lichuang - name: PsiACE - name: RinChanNOWWW - name: soyeric128 - name: sundy-li - name: TCeason - name: wubx - name: xudong963 - name: youngsofun - name: zhang2014 - name: zhyass authors: - PsiACE --- [Databend](https://github.com/databendlabs/databend) is a modern cloud data warehouse, serving your massive-scale analytics needs at low cost and complexity. Open source alternative to Snowflake. Also available in the cloud: [https://app.databend.com](https://app.databend.com) . {/* truncate */} ## What's New Stay informed about the latest features of Databend. ### Password Policy Databend has now preliminary support for custom password policies (PASSWORD POLICY) to meet users' security needs. By setting a password policy, you can implement access denial after attempting wrong passwords and set password complexity requirements. {/* truncate */} Refer to the following examples: ```sql CREATE PASSWORD POLICY test_policy PASSWORD_MIN_LENGTH = 12 PASSWORD_MAX_LENGTH = 24 PASSWORD_MIN_UPPER_CASE_CHARS = 2 PASSWORD_MIN_LOWER_CASE_CHARS = 2 PASSWORD_MIN_NUMERIC_CHARS = 2 PASSWORD_MIN_SPECIAL_CHARS = 2 PASSWORD_MIN_AGE_DAYS = 1 PASSWORD_MAX_AGE_DAYS = 30 PASSWORD_MAX_RETRIES = 3 PASSWORD_LOCKOUT_TIME_MINS = 30 PASSWORD_HISTORY = 5 COMMENT = 'this is a test password policy'; ALTER PASSWORD POLICY test_policy UNSET PASSWORD_MIN_LENGTH PASSWORD_MAX_LENGTH PASSWORD_LOCKOUT_TIME_MINS; CREATE USER user1 IDENTIFIED BY '123456abcDE@!' WITH SET PASSWORD POLICY='test_policy'; ALTER USER user1 IDENTIFIED BY '1456abcDE@!' WITH SET PASSWORD POLICY='test_policy'; ``` This feature is actively being developed, with further support to be provided in the future, including password policy checks at login, to further enhance support. If you would like to learn more, please contact the [Databend team](https://databend.com/contact-us/) or refer to the resources listed below: - [PR #14012 | feat(query): Support create/alter/drop/desc/show password policy](https://github.com/databendlabs/databend/pull/14012) - [Draft PR #14124 | feat(query): Support check password policy when login](https://github.com/databendlabs/databend/pull/14124) ## Code Corner Discover some fascinating code snippets or projects that showcase our work or learning journey. ### Introducing lychee to Check for Broken Links Databend currently checks for broken links in the documentation using [lychee](https://github.com/lycheeverse/lychee), an asynchronous, high-performance link checking tool implemented in Rust that can check the response status of links in files. Command-line usage is as follows: ```shell lychee --base . --cache --max-cache-age 1d . --exclude 'https?://twitter\\.com(?:/.*$)?$' ``` The official [lychee-action](https://github.com/lycheeverse/lychee-action) is also provided for integration with GitHub Actions. - [PR #14100 | ci: add lychee links checker with cache](https://github.com/databendlabs/databend/pull/14100) ## Highlights We have also made these improvements to Databend that we hope you will find helpful: - Added support for decimal type's round / truncate / ceil / floor scalar math functions to support high-precision mathematical operations. - Added support for reading partitioned Delta Tables. - `CREATE FUNCTION` supports Lambda expressions. - Added support for `SHOW VIRTUAL COLUMNS`. ## What's Up Next We're always open to cutting-edge technologies and innovative ideas. You're more than welcome to join the community and bring them to Databend. ### Using TPC-DS to Assess the Performance Impact of PRs Databend currently supports using the `ci-benchmark` tag for benchmark testing of PRs to track performance changes. Hits and TPC-H test suites have already been enabled. Given that Databend fully supports 99 SQL queries of TPC-DS, and that the test suite more accurately reflects business patterns such as report generation, online querying, and data mining, we plan to introduce TPC-DS as part of PR performance assessment in the future. [Issue #13883 | Benchmark: Support TPC-DS ci-benchmark](https://github.com/databendlabs/databend/issues/13883) Please let us know if you're interested in contributing to this feature, or pick up a good first issue at [https://link.databend.com/i-m-feeling-lucky](https://link.databend.com/i-m-feeling-lucky) to get started. ## New Contributors We always open arms to everyone and can't wait to see how you'll help our community grow and thrive. - [@dqhl76](https://github.com/dqhl76) fixed the broken links in the documentation, [#14090](https://github.com/databendlabs/databend/pull/14090). ## Changelog You can check the changelog of Databend Nightly for details about our latest developments. **Full Changelog**: [https://github.com/databendlabs/databend/compare/v1.2.258-nightly...v1.2.268-nightly](https://github.com/databendlabs/databend/compare/v1.2.258-nightly...v1.2.268-nightly)