--- title: 'This Week in Databend #127' date: 2024-01-08 slug: category-weekly/2024-01-08-databend-weekly cover_url: 'weekly/weekly-127.jpg' image: 'weekly/weekly-127.jpg' tags: [weekly] category: Weekly description: 'Stay up to date with the latest weekly developments on Databend!' contributors: - name: akoshchiy - name: andylokandy - name: ariesdevil - name: b41sh - name: BohuTang - name: Chasen-Zhang - name: dantengsky - name: Dousir9 - name: dqhl76 - name: drmingdrmer - name: everpcpc - name: Freejww - name: guojidan - name: JackTan25 - name: lichuang - name: PsiACE - name: RinChanNOWWW - name: SkyFan2002 - name: soyeric128 - name: sundy-li - name: TCeason - name: Xuanwo - name: xudong963 - name: youngsofun - 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. ### Understanding Databend's Access Control The ownership mechanism in Databend has recently covered UDF and stage, and we have also launched introductory documentation on the access control model. Databend combines the Role-Based Access Control (RBAC) and Discretionary Access Control (DAC) models to implement access control features. When users access data objects in Databend, they must be granted appropriate permissions or roles, or they need to have ownership of the data objects. Data objects refer to various elements, such as databases, tables, views, stages, or UDFs. {/* truncate */} The diagram shows the establishment of role inheritance and management hierarchy in Databend. If you would like to learn more, please contact the [Databend team](https://databend.com/contact-us/) or refer to the resources listed below: - [Docs | Access Control](https://docs.databend.com/guides/security/access-control) - [PR #14217 | feat(query): ownership cover stage/udf)](https://github.com/databendlabs/databend/pull/14217) ## Code Corner Discover some fascinating code snippets or projects that showcase our work or learning journey. ### helyim: Distributed Object Storage System Built Using OpenRaft helyim is a rewrite of seaweedfs in Rust, with an architecture that refers to the design of Facebook's published haystack and f4 papers. It uses OpenRaft to provide distributed consensus support. OpenRaft is an asynchronous Raft consensus algorithm implementation maintained and open-sourced by Databend, written in Rust and supports the tokio runtime. In addition to supporting the implementation of Databend's Meta Services, it is also adopted by well-known manufacturers such as Azure and SAP. - [GitHub - helyim](https://github.com/helyim/helyim) - [GitHub - openraft](https://github.com/databendlabs/openraft) ## Highlights We have also made these improvements to Databend that we hope you will find helpful: - Introduced `abs` function for Decimal types. - Introduced `array_reduce` function. - `SHOW FULL DATABASES/TABLES` now displays owner information. - Implemented password policy checks at login. - Added support for distributed execution for `UPDATE` statements. - Added support for filter push down window. ## 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. #### Supporting `CREATE OR REPLACE` Syntax `CREATE OR REPLACE` means: if the object (directory, database, table) exists, drop it first, then recreate it. This syntax can be used to simplify and replace the following statements: ```sql DROP IF EXISTS .... CREATE ... ``` [Issue #14229 | feat: CREATE OR REPLACE](https://github.com/databendlabs/databend/issues/14229) 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. - [@Freejww](https://github.com/Freejww) implemented the `array_reduce` function in [#14143](https://github.com/databendlabs/databend/pull/14143). ## 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.277-nightly...v1.2.286-nightly](https://github.com/databendlabs/databend/compare/v1.2.277-nightly...v1.2.286-nightly)