diff --git a/extensions/dacpac/src/test/testDacFxService.ts b/extensions/dacpac/src/test/testDacFxService.ts index 16b5969b30..d87383ff12 100644 --- a/extensions/dacpac/src/test/testDacFxService.ts +++ b/extensions/dacpac/src/test/testDacFxService.ts @@ -170,7 +170,4 @@ export class DacFxTestService implements mssql.IDacFxService { }; return Promise.resolve(streamingJobValidationResult); } - parseTSqlScript(filePath: string, databaseSchemaProvider: string): Thenable { - return Promise.resolve({ containsCreateTableStatement: true }); - } } diff --git a/extensions/mssql/config.json b/extensions/mssql/config.json index 4bbd81246b..4013a4f020 100644 --- a/extensions/mssql/config.json +++ b/extensions/mssql/config.json @@ -1,6 +1,6 @@ { "downloadUrl": "https://github.com/Microsoft/sqltoolsservice/releases/download/{#version#}/microsoft.sqltools.servicelayer-{#fileName#}", - "version": "4.1.0.9", + "version": "4.1.0.4", "downloadFileNames": { "Windows_86": "win-x86-net6.0.zip", "Windows_64": "win-x64-net6.0.zip", diff --git a/extensions/mssql/src/contracts.ts b/extensions/mssql/src/contracts.ts index e0c415eebc..34054babe9 100644 --- a/extensions/mssql/src/contracts.ts +++ b/extensions/mssql/src/contracts.ts @@ -545,11 +545,6 @@ export interface ValidateStreamingJobParams { createStreamingJobTsql: string } -export interface ParseTSqlScriptParams { - filePath: string; - databaseSchemaProvider: string; -} - export namespace ExportRequest { export const type = new RequestType('dacfx/export'); } @@ -582,10 +577,6 @@ export namespace ValidateStreamingJobRequest { export const type = new RequestType('dacfx/validateStreamingJob'); } -export namespace ParseTSqlScriptRequest { - export const type = new RequestType('dacfx/parseTSqlScript'); -} - // ------------------------------- ------------------------------------ // ------------------------------- ---------------------------------------- diff --git a/extensions/mssql/src/dacfx/dacFxService.ts b/extensions/mssql/src/dacfx/dacFxService.ts index 0f6b7d1a6c..11634c6089 100644 --- a/extensions/mssql/src/dacfx/dacFxService.ts +++ b/extensions/mssql/src/dacfx/dacFxService.ts @@ -130,15 +130,4 @@ export class DacFxService implements mssql.IDacFxService { } ); } - - public async parseTSqlScript(filePath: string, databaseSchemaProvider: string): Promise { - const params: contracts.ParseTSqlScriptParams = { filePath, databaseSchemaProvider }; - try { - const result = await this.client.sendRequest(contracts.ParseTSqlScriptRequest.type, params); - return result; - } catch (e) { - this.client.logFailedRequest(contracts.ParseTSqlScriptRequest.type, e); - throw e; - } - } } diff --git a/extensions/mssql/src/mssql.d.ts b/extensions/mssql/src/mssql.d.ts index fb8ec23ea1..5b6b46e05f 100644 --- a/extensions/mssql/src/mssql.d.ts +++ b/extensions/mssql/src/mssql.d.ts @@ -391,7 +391,6 @@ declare module 'mssql' { generateDeployPlan(packageFilePath: string, databaseName: string, ownerUri: string, taskExecutionMode: azdata.TaskExecutionMode): Thenable; getOptionsFromProfile(profilePath: string): Thenable; validateStreamingJob(packageFilePath: string, createStreamingJobTsql: string): Thenable; - parseTSqlScript(filePath: string, databaseSchemaProvider: string): Thenable; } export interface DacFxResult extends azdata.ResultStatus { @@ -409,10 +408,6 @@ declare module 'mssql' { export interface ValidateStreamingJobResult extends azdata.ResultStatus { } - export interface ParseTSqlScriptResult { - containsCreateTableStatement: boolean; - } - export interface ExportParams { databaseName: string; packageFilePath: string; diff --git a/extensions/sql-database-projects/src/models/project.ts b/extensions/sql-database-projects/src/models/project.ts index 9b9fbc6a6a..bdfc3a5f4b 100644 --- a/extensions/sql-database-projects/src/models/project.ts +++ b/extensions/sql-database-projects/src/models/project.ts @@ -10,7 +10,6 @@ import * as utils from '../common/utils'; import * as xmlFormat from 'xml-formatter'; import * as os from 'os'; import * as UUID from 'vscode-languageclient/lib/utils/uuid'; -import * as mssql from 'mssql'; import { Uri, window } from 'vscode'; import { EntryType, IDatabaseReferenceProjectEntry, IProjectEntry, ISqlProject, ItemType, SqlTargetPlatform } from 'sqldbproj'; @@ -248,19 +247,14 @@ export class Project implements ISqlProject { const fileEntries: FileProjectEntry[] = []; for (let f of Array.from(filesSet.values())) { const typeEntry = entriesWithType.find(e => e.relativePath === f); - let containsCreateTableStatement = false; + let containsCreateTableStatement; // read file to check if it has a "Create Table" statement const fullPath = path.join(utils.getPlatformSafeFileEntryPath(this.projectFolderPath), utils.getPlatformSafeFileEntryPath(f)); - if (utils.getAzdataApi()) { - const dacFxService = await utils.getDacFxService() as mssql.IDacFxService; - try { - const result = await dacFxService.parseTSqlScript(fullPath, this.getProjectTargetVersion()); - containsCreateTableStatement = result.containsCreateTableStatement; - } catch (e) { - console.error(utils.getErrorMessage(e)); - } + if (await utils.exists(fullPath)) { + const fileContents = await fs.readFile(fullPath); + containsCreateTableStatement = fileContents.toString().toLowerCase().includes('create table'); } fileEntries.push(this.createFileProjectEntry(f, EntryType.File, typeEntry ? typeEntry.typeAttribute : undefined, containsCreateTableStatement)); diff --git a/extensions/sql-database-projects/src/test/testContext.ts b/extensions/sql-database-projects/src/test/testContext.ts index 6012e09f67..5962c7065e 100644 --- a/extensions/sql-database-projects/src/test/testContext.ts +++ b/extensions/sql-database-projects/src/test/testContext.ts @@ -140,7 +140,6 @@ export class MockDacFxService implements mssql.IDacFxService { public generateDeployPlan(_: string, __: string, ___: string, ____: azdata.TaskExecutionMode): Thenable { return Promise.resolve(mockDacFxResult); } public getOptionsFromProfile(_: string): Thenable { return Promise.resolve(mockDacFxOptionsResult); } public validateStreamingJob(_: string, __: string): Thenable { return Promise.resolve(mockDacFxResult); } - public parseTSqlScript(_: string, __: string): Thenable { return Promise.resolve({ containsCreateTableStatement: true }); } } export function createContext(): TestContext { diff --git a/extensions/sql-database-projects/src/test/testUtils.ts b/extensions/sql-database-projects/src/test/testUtils.ts index 5a9ce8651c..d4ac849726 100644 --- a/extensions/sql-database-projects/src/test/testUtils.ts +++ b/extensions/sql-database-projects/src/test/testUtils.ts @@ -6,7 +6,6 @@ import * as path from 'path'; import * as os from 'os'; import * as constants from '../common/constants'; -import * as templates from '../templates/templates'; import { promises as fs } from 'fs'; import should = require('should'); @@ -35,10 +34,6 @@ export async function createTestSqlProjFile(contents: string, folderPath?: strin } export async function createTestProject(contents: string, folderPath?: string): Promise { - const macroDict: Record = { - 'PROJECT_DSP': constants.defaultDSP - }; - contents = templates.macroExpansion(contents, macroDict); return await Project.openProject(await createTestSqlProjFile(contents, folderPath)); }