From eba6432dcd1196dbb3c21e8d5d1a68269d81d220 Mon Sep 17 00:00:00 2001 From: Artem Niehrieiev Date: Mon, 28 Jul 2025 13:50:01 +0000 Subject: [PATCH 1/3] enhance type mapping: add additional Cassandra data types to type code handling --- .../data-access-object-cassandra.ts | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts b/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts index 6af3690aa..7ac731db8 100644 --- a/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts +++ b/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts @@ -357,6 +357,14 @@ export class DataAccessObjectCassandra extends BasicDataAccessObject implements if (type.info && type.info.name) return type.info.name; if (type.code !== undefined) { switch (type.code) { + case 0: + return 'custom'; + case 1: + return 'ascii'; + case 2: + return 'bigint'; + case 3: + return 'blob'; case 4: return 'int'; case 5: @@ -371,10 +379,16 @@ export class DataAccessObjectCassandra extends BasicDataAccessObject implements return 'float'; case 10: return 'double'; + case 11: + return 'counter'; case 12: return 'text'; case 13: return 'varchar'; + case 14: + return 'smallint'; + case 15: + return 'tinyint'; case 16: return 'uuid'; case 17: @@ -393,8 +407,10 @@ export class DataAccessObjectCassandra extends BasicDataAccessObject implements return 'map'; case 34: return 'set'; - case 0: - return 'custom'; + case 35: + return 'udt'; + case 36: + return 'tuple'; default: return `type_code_${type.code}`; } From c818f2cefb7b6e79bada82e96e6869defdf33b72 Mon Sep 17 00:00:00 2001 From: Artem Niehrieiev Date: Mon, 28 Jul 2025 14:02:30 +0000 Subject: [PATCH 2/3] enhance type mapping: update Cassandra type codes for improved data handling --- .../data-access-object-cassandra.ts | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts b/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts index 7ac731db8..aa3828d2b 100644 --- a/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts +++ b/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts @@ -366,50 +366,50 @@ export class DataAccessObjectCassandra extends BasicDataAccessObject implements case 3: return 'blob'; case 4: - return 'int'; + return 'boolean'; case 5: - return 'bigint'; + return 'counter'; case 6: - return 'varint'; - case 7: return 'decimal'; + case 7: + return 'double'; case 8: - return 'boolean'; - case 9: return 'float'; + case 9: + return 'int'; case 10: - return 'double'; + return 'text'; case 11: - return 'counter'; + return 'timestamp'; case 12: - return 'text'; + return 'uuid'; case 13: return 'varchar'; case 14: - return 'smallint'; + return 'varint'; case 15: - return 'tinyint'; + return 'timeuuid'; case 16: - return 'uuid'; + return 'inet'; case 17: - return 'timeuuid'; + return 'date'; + case 18: + return 'time'; case 19: - return 'timestamp'; + return 'smallint'; case 20: - return 'inet'; + return 'tinyint'; case 21: - return 'date'; - case 22: - return 'time'; + return 'duration'; case 32: return 'list'; case 33: return 'map'; case 34: return 'set'; - case 35: + case 48: return 'udt'; - case 36: + case 49: return 'tuple'; default: return `type_code_${type.code}`; From 263309708a9d0e92e591ced4b85ed378232c5c7b Mon Sep 17 00:00:00 2001 From: Artem Niehrieiev Date: Mon, 28 Jul 2025 14:07:38 +0000 Subject: [PATCH 3/3] enhance type handling: strip generics from Cassandra type names for improved readability --- .../data-access-object-cassandra.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts b/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts index aa3828d2b..31dc8f219 100644 --- a/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts +++ b/shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts @@ -352,9 +352,15 @@ export class DataAccessObjectCassandra extends BasicDataAccessObject implements return []; } private cassandraTypeToReadable(type: any): string { - if (typeof type === 'string') return type; + if (typeof type === 'string') { + return this.stripGenerics(type); + } + if (type && typeof type === 'object') { - if (type.info && type.info.name) return type.info.name; + if (type.info && type.info.name) { + return this.stripGenerics(type.info.name); + } + if (type.code !== undefined) { switch (type.code) { case 0: @@ -419,6 +425,13 @@ export class DataAccessObjectCassandra extends BasicDataAccessObject implements return 'unknown'; } + private stripGenerics(typeName: string): string { + if (typeName.includes('<')) { + return typeName.substring(0, typeName.indexOf('<')); + } + return typeName; + } + public async getTablePrimaryColumns(tableName: string): Promise> { try { const client = await this.getCassandraClient();