From 77a3be6fd778050eaad29d7914666ef91be63541 Mon Sep 17 00:00:00 2001 From: Maddy <12754347+MaddyDev@users.noreply.github.com> Date: Tue, 12 Mar 2019 10:38:34 -0700 Subject: [PATCH] pulling max bytes of data through the webhdfs api (#4314) * pulling max bytes of data through the webhdfs api * Added warning message for the Users to inform the data truncation. * Updated the warning message on the notification flyer. --- .../src/objectExplorerNodeProvider/fileSources.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/extensions/mssql/src/objectExplorerNodeProvider/fileSources.ts b/extensions/mssql/src/objectExplorerNodeProvider/fileSources.ts index 5f95b3652f..ac5be3175e 100644 --- a/extensions/mssql/src/objectExplorerNodeProvider/fileSources.ts +++ b/extensions/mssql/src/objectExplorerNodeProvider/fileSources.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; +import * as vscode from 'vscode'; import * as fspath from 'path'; import * as fs from 'fs'; import * as meter from 'stream-meter'; @@ -187,18 +188,25 @@ export class HdfsFileSource implements IFileSource { reject(error); }); + let data: any[] = []; if (maxBytes) { remoteFileStream = remoteFileStream.pipe(meter(maxBytes)); remoteFileStream.on('error', (err) => { error = err; if (error.message.includes('Stream exceeded specified max')) { - error.message = localize('maxSizeReached', 'File exceeds max size of ${0}', bytes(maxBytes)); + // We have data > maxbytes, show we're truncating + let previewNote: string = '#################################################################################################################### \r\n'+ + '########################### NOTICE: This file has been truncated at '+ bytes(maxBytes) +' for preview ################################ \r\n' + + '#################################################################################################################### \r\n'; + data.splice(0, 0, Buffer.from(previewNote, 'utf-8')); + vscode.window.showWarningMessage(localize('maxSizeReached', "The file has been truncated at {0} for preview.", bytes(maxBytes))); + resolve(Buffer.concat(data)); + } else { + reject(error); } - reject(error); }); } - let data: any[] = []; remoteFileStream.on('data', (chunk) => { data.push(chunk); });