From 415dd376b7703e86a755c768245cb0a465453499 Mon Sep 17 00:00:00 2001 From: Cory Taylor Date: Sat, 27 Feb 2016 17:24:41 -0500 Subject: [PATCH 1/2] inject full_count column for mssql dialect --- src/relay.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/relay.js b/src/relay.js index fcecbde2..80c91988 100644 --- a/src/relay.js +++ b/src/relay.js @@ -205,6 +205,11 @@ export function sequelizeConnection({name, nodeType, target, orderBy: orderByEnu model.sequelize.literal('COUNT(*) OVER()'), 'full_count' ]); + } else if (model.sequelize.dialect.name === 'mssql' && options.limit) { + options.attributes.push([ + model.sequelize.literal('COUNT(*) OVER(ORDER BY (SELECT NULL))'), + 'full_count' + ]); } options.where = argsToWhere(args); From 9d8a59a193e9b5a445c5b0077dacf01c04632bd5 Mon Sep 17 00:00:00 2001 From: Cory Taylor Date: Sat, 27 Feb 2016 18:16:14 -0500 Subject: [PATCH 2/2] remove unneeded ORDER BY clause since OFFSET and FETCH NEXT only works on ms sqlserver 2012+ anyway --- src/relay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/relay.js b/src/relay.js index 80c91988..b2842aa4 100644 --- a/src/relay.js +++ b/src/relay.js @@ -207,7 +207,7 @@ export function sequelizeConnection({name, nodeType, target, orderBy: orderByEnu ]); } else if (model.sequelize.dialect.name === 'mssql' && options.limit) { options.attributes.push([ - model.sequelize.literal('COUNT(*) OVER(ORDER BY (SELECT NULL))'), + model.sequelize.literal('COUNT(1) OVER()'), 'full_count' ]); }