FreeSql icon indicating copy to clipboard operation
FreeSql copied to clipboard

Page()的一个bug,如果pageSize值过大,生成的sql中自带where条件

Open hellokuls opened this issue 2 years ago • 2 comments

问题描述及重现步骤:

  var query = connection.Select<XXXXX>()
       .Where(item => item.XXXXX== XXXXX&& item.IsDeleted == 0);

  var items = await query.OrderByDescending(item => item.Id).Page(pageIndex, pageSize).ToListAsync();

如果pageSize = int.MaxValue

生成的sql语句如下:

SELECT t.* FROM (SELECT a."ID", a."XXXX", a."XXXX", a."XX", a."CREATE_TIME", a."XX", a."UPDATE_TIME", a."IS_DELETED", a."XXX", a."START_TIME", a."END_TIME", a."XXXXX"
      FROM "XXXXXXX" a
      WHERE (a."XXXX" = :exp_0 AND a."IS_DELETED" = 0)
      ORDER BY a."XXXX" DESC) t WHERE ROWNUM < -2147483648

不知道为啥会有 “WHERE ROWNUM < -2147483648”这玩意

数据库的具体版本

达梦8

安装的包

<PackageReference Include="FreeSql.All" Version="3.0.100" />

.net framework/. net core? 及具体版本

6

hellokuls avatar Sep 21 '22 07:09 hellokuls

溢出了,分页别带这样分啊

2881099 avatar Sep 21 '22 07:09 2881099

这个“pageSize值过大”就很灵性 😄 能说下为啥pageSize这么大吗?如果有workaround的话,这个问题感觉没有修复的必要。

LeaFrock avatar Sep 21 '22 09:09 LeaFrock