Ming Deng
Ming Deng
In theory, we should not rely on third party when we run unit tests. However, the Beego ORM module's unit tests still rely on MySQL, Postgress, Tidb. It's very hard...
[bytebufferpool](https://github.com/valyala/bytebufferpool) Now, type `dbBase` in `orm` package utilize the `fmt.Sprint` to build SQL, but it's not a elegant way because the performance is not good. In general, we prefer to...
Similar to #4966 , we can use the decorator design pattern to implement the `Cache` interface. This implementation will apply the `read-through` cache pattern which means that: - if the...
This is a really simple but big task. As we all known, the Go comments must follow the rule that the comments should start with the type name, function name,...
# Beego 贡献指南 [English Version Here](https://github.com/weopenprojects/WeOpen-Star/issues/new?assignees=&labels=&template=contribution-guideline---issue-template.md&title=%5BWeOpen-Star-Issue%5D) 欢迎来到开源摘星计划-Beego(项目名)贡献专栏 。Beego(项目名)已加入开源摘星计划,该计划提供奖励以鼓励你加入我们的社区:所有参与本项目贡献的开发者都可获得相应贡献积分、奖励以及被评选为年度摘星100 人的机会,活动及奖励详情请见:[开源摘星计划](https://github.com/weopenprojects/WeOpen-Star)。 📅活动时间:2022年5月-12月 ## 🌟关于 Beego(项目名) [代码仓库](https://github.com/beego/beego) Beego 是一个功能完备,使用简单的企业级应用开发框架。Beego 本身提供了 Web,ORM,Cache,Logging,Session 等一个企业级应用需要使用到的各个模块。所以对于初学者,或者开发简单 Go 应用的开发者来说,Beego 是一个很不错的选择。引入了 Beego,就相当于引入了全套的企业级应用解决方案。 也正因为 Beego 有很多模块,所以在功能、代码质量、测试和文档上,我们还有很大的改进空间。欢迎大家为 Beego 添砖加瓦。 这部分 issues...
**仅限中文** ## 背景 在结果集处理的相关问题下 #182 ,我们能够看到一个问题,即查询特征会直接决定了后续结果集如何处理。实际上,如果单纯站在分库分表的角度,那么不仅仅是结果集处理,连目标 SQL 生成都会收到查询特征的影响。比如说在计算 AVG(age) 的时候,生成的目标 SQL 就不是直接 SELECT AVG(age) 而是 SELECT COUNT and SUM。 于是我们就面临一个问题,如何提取并且表达这些查询特征?如果只考虑目前已知的几个情况: - 是否使用聚合函数,具体的聚合函数,以及聚合函数有没有附加 DISTINCT 关键字。 - 是否有 HAVING - 是否有 GROUP...
**仅限中文** # 背景 在最开始的时候,我们支持了 EQ 这种写法,AND 和 OR,并且在 #167 里面提及支持 NOT 写法。现在我们要进一步考虑剩余的操作符: - 比较操作符:>=, >, 1000 AND user_id < 10`:那么先单一一个条件考察 user_id > 1000 会命中所有的表;user_id < 10 则只会命中全部集群上的部分库(db_[0,9])和部分表。那么根据 AND 的运算规则进行求交集,最终会选择第二个条件的所有的表。但是我们手动分析就知道,这个查询条件是查询不到任何数据的。 那么有些分库分表会引入一些SQL优化,就能一定程度上解决这种问题。...