Skip to content

Commit bf52708

Browse files
committed
Add INSERT ... RETURNING and NULL handling tests for DECFLOAT
1 parent 0388e38 commit bf52708

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

test/decfloat-integration.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,45 @@ describe('DECFLOAT Support Integration (Firebird 4.0+)', () => {
7777
await fromCallback(cb => db.query('DROP TABLE TEST_DEC', cb)).catch(() => {});
7878
}
7979
});
80+
81+
it('should handle INSERT ... RETURNING with DECFLOAT', { skip: !supportsDecFloat }, async () => {
82+
const table_sql = 'CREATE TABLE TEST_DEC_RET (ID INT, D16 DECFLOAT(16))';
83+
await fromCallback(cb => db.query(table_sql, cb));
84+
85+
try {
86+
const d16_val = Buffer.alloc(8, 0x33);
87+
88+
const row = await fromCallback(cb => db.query(
89+
'INSERT INTO TEST_DEC_RET (ID, D16) VALUES (?, ?) RETURNING D16',
90+
[1, d16_val],
91+
cb
92+
));
93+
94+
assert.ok(row.d16 instanceof Buffer);
95+
assert.ok(row.d16.equals(d16_val), 'DECFLOAT RETURNING mismatch');
96+
} finally {
97+
await fromCallback(cb => db.query('DROP TABLE TEST_DEC_RET', cb)).catch(() => {});
98+
}
99+
});
100+
101+
it('should handle NULL values in DECFLOAT columns', { skip: !supportsDecFloat }, async () => {
102+
const table_sql = 'CREATE TABLE TEST_DEC_NULL (ID INT, D16 DECFLOAT(16), D34 DECFLOAT(34))';
103+
await fromCallback(cb => db.query(table_sql, cb));
104+
105+
try {
106+
await fromCallback(cb => db.query(
107+
'INSERT INTO TEST_DEC_NULL (ID, D16, D34) VALUES (?, ?, ?)',
108+
[1, null, null],
109+
cb
110+
));
111+
112+
const rows = await fromCallback(cb => db.query('SELECT D16, D34 FROM TEST_DEC_NULL WHERE ID = 1', cb));
113+
const row = rows[0];
114+
115+
assert.strictEqual(row.d16, null, 'DECFLOAT(16) should be null');
116+
assert.strictEqual(row.d34, null, 'DECFLOAT(34) should be null');
117+
} finally {
118+
await fromCallback(cb => db.query('DROP TABLE TEST_DEC_NULL', cb)).catch(() => {});
119+
}
120+
});
80121
});

0 commit comments

Comments
 (0)