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
, column title rows,
+ let htmlStringArr: string[] = new Array(d.resultSubset.rowCount + 3); + htmlStringArr[0] = ''; if (columns.length > 0) { - htmlString += ''; + let columnHeaders = ''; for (let column of columns) { - htmlString += ''; + columnHeaders += ``; } - 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 += ''; + let rowData = ''; + for (let columnIndex = 0; columnIndex < columns.length; columnIndex++) { + rowData += ``; } - htmlString += ''; + rowData += ''; + htmlStringArr[i] = rowData; + i++; } - htmlString += '
' + escape(column.columnName) + '${escape(column.columnName)}
' + escape(row[i].displayValue) + '
${escape(row[columnIndex].displayValue)}
'; - return htmlString; + htmlStringArr[htmlStringArr.length - 1] = ''; + return htmlStringArr; } private convertToDisplayMessage(msg: IResultMessage | string): nb.IIOPubMessage {