From 25660c131c1a8d7000ff0767fe35df3fa834a8c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Frode=20H=C3=A5skjold?= Date: Mon, 21 Apr 2025 23:51:45 +0200 Subject: [PATCH 1/5] feat: add column label/name to tooltip in result view --- package-lock.json | 4 ++-- src/views/results/html.ts | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a1f8e28..f3db529f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "vscode-db2i", - "version": "1.9.4", + "version": "1.11.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "vscode-db2i", - "version": "1.9.4", + "version": "1.11.0", "dependencies": { "@ibm/mapepire-js": "^0.5.0", "@octokit/rest": "^21.1.1", diff --git a/src/views/results/html.ts b/src/views/results/html.ts index 47002731..49fc1402 100644 --- a/src/views/results/html.ts +++ b/src/views/results/html.ts @@ -459,6 +459,8 @@ export function generateScroller(basicSelect: string, isCL: boolean, withCancel? default: cell.title = column.type; } + cell.title += '\n' + columnHeadings === 'Label' ? column.name : column.label; + return cell; }); // Initialize the footer From d9a4d908dab60253bb8544112afbf2803842a0f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Frode=20H=C3=A5skjold?= Date: Tue, 22 Apr 2025 11:55:19 +0200 Subject: [PATCH 2/5] fix: tooltip formatting in result view --- src/views/results/html.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/views/results/html.ts b/src/views/results/html.ts index 47002731..e8c3f938 100644 --- a/src/views/results/html.ts +++ b/src/views/results/html.ts @@ -459,6 +459,8 @@ export function generateScroller(basicSelect: string, isCL: boolean, withCancel? default: cell.title = column.type; } + cell.title += \`\\n\`; + cell.title += columnHeadings === 'Label' ? column.name : column.label; }); // Initialize the footer From b0c2fb7ccb7b235ae5f009dace8ef8aabebaecb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Frode=20H=C3=A5skjold?= Date: Tue, 22 Apr 2025 11:55:53 +0200 Subject: [PATCH 3/5] Enable extended metadata as default --- src/connection/manager.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connection/manager.ts b/src/connection/manager.ts index 3f89ee9e..39d8faf3 100644 --- a/src/connection/manager.ts +++ b/src/connection/manager.ts @@ -35,7 +35,8 @@ export class SQLJobManager { "full open": false, "transaction isolation": "none", "query optimize goal": "1", - "block size": "512" + "block size": "512", + "extended metadata": true })); try { From 622975bdca7b57c9e2ae4274218576a8ab6b2ae7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Frode=20H=C3=A5skjold?= Date: Tue, 22 Apr 2025 12:10:42 +0200 Subject: [PATCH 4/5] Update tooltip when switching between label/name in header --- src/views/results/html.ts | 62 ++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/src/views/results/html.ts b/src/views/results/html.ts index e8c3f938..05fb1668 100644 --- a/src/views/results/html.ts +++ b/src/views/results/html.ts @@ -434,33 +434,7 @@ export function generateScroller(basicSelect: string, isCL: boolean, withCancel? columnMetaData.map(column => { var cell = headerRow.insertCell(); cell.appendChild(document.createTextNode(columnHeadings === 'Label' ? column.label : column.name)); - switch (column.type) { - case 'CHAR': - case 'VARCHAR': - case 'CLOB': - case 'BINARY': - case 'VARBINARY': - case 'BLOB': - case 'GRAPHIC': - case 'VARGRAPHIC': - case 'DBCLOB': - case 'NCHAR': - case 'NVARCHAR': - case 'NCLOB': - case 'FLOAT': - case 'DECFLOAT': - case 'DATALINK': - cell.title = column.type + '(' + column.precision + ')'; - break; - case 'DECIMAL': - case 'NUMERIC': - cell.title = column.type + '(' + column.precision + ', ' + column.scale + ')'; - break; - default: - cell.title = column.type; - } - cell.title += \`\\n\`; - cell.title += columnHeadings === 'Label' ? column.name : column.label; + cell.title = getTooltip(column, columnHeadings); }); // Initialize the footer @@ -539,9 +513,43 @@ export function generateScroller(basicSelect: string, isCL: boolean, withCancel? var headerCells = document.getElementById(htmlTableId).getElementsByTagName('thead')[0].rows[0].cells; for (let x = 0; x < headerCells.length; ++x) { headerCells[x].innerText = columnHeadings === 'Label' ? columnMetaData[x].label : columnMetaData[x].name; + headerCells[x].title = getTooltip(columnMetaData[x], columnHeadings); } } } + + function getTooltip(column, columnHeadings) { + let title = ''; + switch (column.type) { + case 'CHAR': + case 'VARCHAR': + case 'CLOB': + case 'BINARY': + case 'VARBINARY': + case 'BLOB': + case 'GRAPHIC': + case 'VARGRAPHIC': + case 'DBCLOB': + case 'NCHAR': + case 'NVARCHAR': + case 'NCLOB': + case 'FLOAT': + case 'DECFLOAT': + case 'DATALINK': + title = column.type + '(' + column.precision + ')'; + break; + case 'DECIMAL': + case 'NUMERIC': + title = column.type + '(' + column.precision + ', ' + column.scale + ')'; + break; + default: + title = column.type; + } + title += \`\\n\`; + title += columnHeadings === 'Label' ? column.name : column.label; + return title; + } + From fafa86a77bcca37f27b54bbf2ff24c763eb6034e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Frode=20H=C3=A5skjold?= Date: Mon, 28 Apr 2025 22:03:59 +0200 Subject: [PATCH 5/5] fix extended metadata --- src/connection/manager.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connection/manager.ts b/src/connection/manager.ts index d75ff72c..3f4ead4e 100644 --- a/src/connection/manager.ts +++ b/src/connection/manager.ts @@ -36,7 +36,8 @@ export class SQLJobManager { "transaction isolation": "none", "query optimize goal": "1", "block size": "512", - "date format": "iso" + "date format": "iso", + "extended metadata": true, })); try {