Skip to content

Commit d73e9de

Browse files
committed
test: cover query result external memory
1 parent fb4c484 commit d73e9de

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

example/tests/unit/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import registerExecuteBatchUnitTests from './specs/operations/executeBatch.spec'
66
import registerTypeORMUnitTestsSpecs from './specs/typeorm.spec'
77
import registerDatabaseQueueUnitTests from './specs/DatabaseQueue.spec'
88
import registerSqliteVecUnitTestsSpecs from './specs/sqlite-vec.spec'
9+
import registerExternalMemoryUnitTests from './specs/externalMemory.spec'
910

1011
export function registerUnitTests() {
1112
beforeEach(setupTestDb)
@@ -16,6 +17,8 @@ export function registerUnitTests() {
1617
registerExecuteBatchUnitTests()
1718
})
1819

20+
registerExternalMemoryUnitTests()
21+
1922
registerDatabaseQueueUnitTests()
2023
}
2124

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { describe, expect, it } from '@tests/TestApi'
2+
import { testDb } from '@tests/db'
3+
4+
const LARGE_RESULT_ROW_COUNT = 25_000
5+
6+
export default function registerExternalMemoryUnitTests() {
7+
describe('External memory', () => {
8+
it('does not reject a large query result as too much external memory', () => {
9+
const result = testDb.execute(`
10+
WITH RECURSIVE numbers(value) AS (
11+
SELECT 1
12+
UNION ALL
13+
SELECT value + 1 FROM numbers WHERE value < ${LARGE_RESULT_ROW_COUNT}
14+
)
15+
SELECT value FROM numbers
16+
`)
17+
18+
expect(result.rows).not.toBe(undefined)
19+
expect(result.rows?.length).toBe(LARGE_RESULT_ROW_COUNT)
20+
expect(result.rows?.item(0)).toEqual({ value: 1 })
21+
expect(result.rows?.item(LARGE_RESULT_ROW_COUNT - 1)).toEqual({
22+
value: LARGE_RESULT_ROW_COUNT,
23+
})
24+
})
25+
})
26+
}

0 commit comments

Comments
 (0)