diff --git a/hana/lib/HANAService.js b/hana/lib/HANAService.js index b758de809..fb6c97a13 100644 --- a/hana/lib/HANAService.js +++ b/hana/lib/HANAService.js @@ -1028,6 +1028,7 @@ class HANAService extends SQLService { Int64: () => `BIGINT`, UUID: () => `NVARCHAR(36)`, Boolean: () => `NVARCHAR(5)`, + String: e => `NVARCHAR(${(e.length || 5000) * 4})`, LargeString: () => `NVARCHAR(2147483647)`, LargeBinary: () => `NVARCHAR(2147483647)`, Binary: () => `NVARCHAR(2147483647)`, @@ -1041,7 +1042,7 @@ class HANAService extends SQLService { // HANA types 'cds.hana.TINYINT': () => 'INT', 'cds.hana.REAL': () => 'DECIMAL', - 'cds.hana.CHAR': e => `NVARCHAR(${e.length || 1})`, + 'cds.hana.CHAR': e => `NVARCHAR(${(e.length || 1) * 4})`, 'cds.hana.ST_POINT': () => 'NVARCHAR(2147483647)', 'cds.hana.ST_GEOMETRY': () => 'NVARCHAR(2147483647)', } diff --git a/test/compliance/resources/db/basic/literals/basic.literals.string.js b/test/compliance/resources/db/basic/literals/basic.literals.string.js index 227bb933f..4de7f9808 100644 --- a/test/compliance/resources/db/basic/literals/basic.literals.string.js +++ b/test/compliance/resources/db/basic/literals/basic.literals.string.js @@ -31,6 +31,9 @@ module.exports = [ { char: 'A', }, + { + char: '대', // Ensure multi byte utf-8 characters also fit into a single character column + }, { large: () => [...new Array(1000)].map(alphabetize).join(''), },