diff --git a/src/sql/workbench/services/notebook/browser/sql/sqlSessionManager.ts b/src/sql/workbench/services/notebook/browser/sql/sqlSessionManager.ts
index fc5476c4a3..f653d6f34e 100644
--- a/src/sql/workbench/services/notebook/browser/sql/sqlSessionManager.ts
+++ b/src/sql/workbench/services/notebook/browser/sql/sqlSessionManager.ts
@@ -579,24 +579,30 @@ export class SQLFuture extends Disposable implements FutureInternal {
};
}
- private convertToHtmlTable(columns: IDbColumn[], d: QueryExecuteSubsetResult): string {
- let htmlString = '
';
+ private convertToHtmlTable(columns: IDbColumn[], d: QueryExecuteSubsetResult): string[] {
+ // Adding 3 for
+ let htmlStringArr: string[] = new Array(d.resultSubset.rowCount + 3);
+ htmlStringArr[0] = '';
if (columns.length > 0) {
- htmlString += '';
+ let columnHeaders = '
';
for (let column of columns) {
- htmlString += '| ' + escape(column.columnName) + ' | ';
+ columnHeaders += `${escape(column.columnName)} | `;
}
- htmlString += '
';
+ columnHeaders += '';
+ htmlStringArr[1] = columnHeaders;
}
+ let i = 2;
for (const row of d.resultSubset.rows) {
- htmlString += '';
- for (let i = 0; i < columns.length; i++) {
- htmlString += '| ' + escape(row[i].displayValue) + ' | ';
+ let rowData = '
';
+ for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) {
+ rowData += `| ${escape(row[columnIndex].displayValue)} | `;
}
- htmlString += '
';
+ rowData += '';
+ htmlStringArr[i] = rowData;
+ i++;
}
- htmlString += '
';
- return htmlString;
+ htmlStringArr[htmlStringArr.length - 1] = '
';
+ return htmlStringArr;
}
private convertToDisplayMessage(msg: IResultMessage | string): nb.IIOPubMessage {