Skip to content

Commit 746702a

Browse files
iss-532: Offset is now long instead of int
1 parent b57ca54 commit 746702a

File tree

9 files changed

+26
-21
lines changed

9 files changed

+26
-21
lines changed

QueryBuilder.Tests/Firebird/FirebirdLimitTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ public void LimitAndOffset()
4747
var ctx = new SqlResult { Query = query };
4848

4949
Assert.Equal("ROWS ? TO ?", compiler.CompileLimit(ctx));
50-
Assert.Equal(21, ctx.Bindings[0]);
51-
Assert.Equal(25, ctx.Bindings[1]);
50+
Assert.Equal(21L, ctx.Bindings[0]);
51+
Assert.Equal(25L, ctx.Bindings[1]);
5252
Assert.Equal(2, ctx.Bindings.Count);
5353
}
5454
}

QueryBuilder.Tests/MySql/MySqlLimitTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void WithNoLimit()
3939
var ctx = new SqlResult { Query = query };
4040

4141
Assert.Equal("LIMIT 18446744073709551615 OFFSET ?", compiler.CompileLimit(ctx));
42-
Assert.Equal(20, ctx.Bindings[0]);
42+
Assert.Equal(20L, ctx.Bindings[0]);
4343
Assert.Single(ctx.Bindings);
4444
}
4545

@@ -51,7 +51,7 @@ public void WithLimitAndOffset()
5151

5252
Assert.Equal("LIMIT ? OFFSET ?", compiler.CompileLimit(ctx));
5353
Assert.Equal(5, ctx.Bindings[0]);
54-
Assert.Equal(20, ctx.Bindings[1]);
54+
Assert.Equal(20L, ctx.Bindings[1]);
5555
Assert.Equal(2, ctx.Bindings.Count);
5656
}
5757
}

QueryBuilder.Tests/Oracle/OracleLegacyLimitTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public void WithNoLimit()
5858

5959
// Assert:
6060
Assert.Equal("SELECT * FROM (SELECT \"results_wrapper\".*, ROWNUM \"row_num\" FROM (GENERATED_SQL) \"results_wrapper\") WHERE \"row_num\" > ?", ctx.RawSql);
61-
Assert.Equal(20, ctx.Bindings[0]);
61+
Assert.Equal(20L, ctx.Bindings[0]);
6262
Assert.Single(ctx.Bindings);
6363
}
6464

@@ -74,8 +74,8 @@ public void WithLimitAndOffset()
7474

7575
// Assert:
7676
Assert.Equal("SELECT * FROM (SELECT \"results_wrapper\".*, ROWNUM \"row_num\" FROM (GENERATED_SQL) \"results_wrapper\" WHERE ROWNUM <= ?) WHERE \"row_num\" > ?", ctx.RawSql);
77-
Assert.Equal(25, ctx.Bindings[0]);
78-
Assert.Equal(20, ctx.Bindings[1]);
77+
Assert.Equal(25L, ctx.Bindings[0]);
78+
Assert.Equal(20L, ctx.Bindings[1]);
7979
Assert.Equal(2, ctx.Bindings.Count);
8080
}
8181
}

QueryBuilder.Tests/Oracle/OracleLimitTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void LimitOnly()
3737
// Act & Assert:
3838
Assert.EndsWith("OFFSET ? ROWS FETCH NEXT ? ROWS ONLY", compiler.CompileLimit(ctx));
3939
Assert.Equal(2, ctx.Bindings.Count);
40-
Assert.Equal(0, ctx.Bindings[0]);
40+
Assert.Equal(0L, ctx.Bindings[0]);
4141
Assert.Equal(10, ctx.Bindings[1]);
4242
}
4343

@@ -52,7 +52,7 @@ public void OffsetOnly()
5252
Assert.EndsWith("OFFSET ? ROWS", compiler.CompileLimit(ctx));
5353

5454
Assert.Single(ctx.Bindings);
55-
Assert.Equal(20, ctx.Bindings[0]);
55+
Assert.Equal(20L, ctx.Bindings[0]);
5656
}
5757

5858
[Fact]
@@ -66,7 +66,7 @@ public void LimitAndOffset()
6666
Assert.EndsWith("OFFSET ? ROWS FETCH NEXT ? ROWS ONLY", compiler.CompileLimit(ctx));
6767

6868
Assert.Equal(2, ctx.Bindings.Count);
69-
Assert.Equal(20, ctx.Bindings[0]);
69+
Assert.Equal(20L, ctx.Bindings[0]);
7070
Assert.Equal(5, ctx.Bindings[1]);
7171

7272
compiler.CompileLimit(ctx);

QueryBuilder.Tests/PostgreSql/PostgreSqlLimitTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void WithNoLimit()
3939
var ctx = new SqlResult { Query = query };
4040

4141
Assert.Equal("OFFSET ?", compiler.CompileLimit(ctx));
42-
Assert.Equal(20, ctx.Bindings[0]);
42+
Assert.Equal(20L, ctx.Bindings[0]);
4343
Assert.Single(ctx.Bindings);
4444
}
4545

@@ -51,7 +51,7 @@ public void WithLimitAndOffset()
5151

5252
Assert.Equal("LIMIT ? OFFSET ?", compiler.CompileLimit(ctx));
5353
Assert.Equal(5, ctx.Bindings[0]);
54-
Assert.Equal(20, ctx.Bindings[1]);
54+
Assert.Equal(20L, ctx.Bindings[1]);
5555
Assert.Equal(2, ctx.Bindings.Count);
5656
}
5757
}

QueryBuilder.Tests/SqlServer/SqlServerLimitTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void LimitOnly()
3131

3232
Assert.EndsWith("OFFSET ? ROWS FETCH NEXT ? ROWS ONLY", compiler.CompileLimit(ctx));
3333
Assert.Equal(2, ctx.Bindings.Count);
34-
Assert.Equal(0, ctx.Bindings[0]);
34+
Assert.Equal(0L, ctx.Bindings[0]);
3535
Assert.Equal(10, ctx.Bindings[1]);
3636
}
3737

@@ -44,7 +44,7 @@ public void OffsetOnly()
4444
Assert.EndsWith("OFFSET ? ROWS", compiler.CompileLimit(ctx));
4545

4646
Assert.Single(ctx.Bindings);
47-
Assert.Equal(20, ctx.Bindings[0]);
47+
Assert.Equal(20L, ctx.Bindings[0]);
4848
}
4949

5050
[Fact]
@@ -56,7 +56,7 @@ public void LimitAndOffset()
5656
Assert.EndsWith("OFFSET ? ROWS FETCH NEXT ? ROWS ONLY", compiler.CompileLimit(ctx));
5757

5858
Assert.Equal(2, ctx.Bindings.Count);
59-
Assert.Equal(20, ctx.Bindings[0]);
59+
Assert.Equal(20L, ctx.Bindings[0]);
6060
Assert.Equal(5, ctx.Bindings[1]);
6161
}
6262

QueryBuilder.Tests/Sqlite/SqliteLimitTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void WithNoLimit()
3939
var ctx = new SqlResult { Query = query };
4040

4141
Assert.Equal("LIMIT -1 OFFSET ?", compiler.CompileLimit(ctx));
42-
Assert.Equal(20, ctx.Bindings[0]);
42+
Assert.Equal(20L, ctx.Bindings[0]);
4343
Assert.Single(ctx.Bindings);
4444
}
4545

@@ -51,7 +51,7 @@ public void WithLimitAndOffset()
5151

5252
Assert.Equal("LIMIT ? OFFSET ?", compiler.CompileLimit(ctx));
5353
Assert.Equal(5, ctx.Bindings[0]);
54-
Assert.Equal(20, ctx.Bindings[1]);
54+
Assert.Equal(20L, ctx.Bindings[1]);
5555
Assert.Equal(2, ctx.Bindings.Count);
5656
}
5757
}

QueryBuilder/Clauses/OffsetClause.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ namespace SqlKata
22
{
33
public class OffsetClause : AbstractClause
44
{
5-
private int _offset;
5+
private long _offset;
66

7-
public int Offset
7+
public long Offset
88
{
99
get => _offset;
1010
set => _offset = value > 0 ? value : _offset;

QueryBuilder/Query.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public Query(string table, string comment = null) : base()
3232

3333
public bool HasLimit(string engineCode = null) => GetLimit(engineCode) > 0;
3434

35-
internal int GetOffset(string engineCode = null)
35+
internal long GetOffset(string engineCode = null)
3636
{
3737
engineCode = engineCode ?? EngineScope;
3838
var offset = this.GetOneComponent<OffsetClause>("offset", engineCode);
@@ -180,7 +180,7 @@ public Query Limit(int value)
180180
return AddOrReplaceComponent("limit", newClause);
181181
}
182182

183-
public Query Offset(int value)
183+
public Query Offset(long value)
184184
{
185185
var newClause = new OffsetClause
186186
{
@@ -190,6 +190,11 @@ public Query Offset(int value)
190190
return AddOrReplaceComponent("offset", newClause);
191191
}
192192

193+
public Query Offset(int value)
194+
{
195+
return Offset((long)value);
196+
}
197+
193198
/// <summary>
194199
/// Alias for Limit
195200
/// </summary>

0 commit comments

Comments
 (0)