* added wip rename query
* added first rename test
* added missing query handling and two new tests
* removed ServiceDispose
* added change to owneruri.
* made fields private, used accessor methods
* added readonly flag back
* added didSave to sqltools.servicelayer
* fix for docsavecallbacks
* removed tryremove
* test disconnect in queryExecutionService
* removed debug message working query.
* added comment to handlerenamerequest
* added uri replacement function
* removed duplicate removemap function
* added minor fixes
* changed connectionOwnerUri to getter setter
* removed handledidsave and added setters
* removed additional save parts
* fixed space issues
* more fixes for spaces
* restored spaces
* fixed workspaceservice
* Update TextDocument.cs
* changed renameRequest into notification WIP
* restored textdocument
* restored textdocument.cs
* added rightwards arrow
* renamed rename to ChangeConnectionUri
* added more renames
* rename changeconnectionuri to changeuri
* renamed file names
* Revert "renamed file names"
This reverts commit 55228e65025b5179b15ae9a0adc095d95538723d.
* Revert "rename changeconnectionuri to changeuri"
This reverts commit 23f3813f609e3947f103e057f7c0919184075bdc.
* removed logging message and other small changes
* renamed class and method
* adding network file validator contract
* Adding additional properties to serverInfo
* Renaming to serversysinfo
* fixing var name
* Changed to smo to get the properties
* Fixing casting error
* renaming to sysinfo
* Removing unused sql scripts
* Throwing an error and renaming classes
* Changing Physicalmemory prop name from kb to mb
* pushing prop name change
* fixing comment
* The ServerType of SQL OD in SMO is being changed to cloud. This is a minimal set of changes needed in sqltoolservice in order to keep everything working within ADS.
* SMO version update
* Get connection string call was changing the connection info (ref object) received from cache. Changing it to just get and make changes to only the returned string..
* Change to ensure PR validation works
* Enable the enclave connection parameters.
* Update the switch statement to use the enum constants for EnclaveAttestationProtocol
* Update verbiage for Always Encrypted connection options
* Update the argument exception to chose one specific to this connection option
* Add resource logic to resource files.
* Add error checking for when enclave parameters are added and Always Encrypted is set to disabled.
* Add/Update unit tests
* Revert "Update SMO (#875)"
This reverts commit 96593d66e3.
* Revert "Switch Tools Service to new SMO and Microsoft.Data.SqlClient driver (#865)"
This reverts commit 9d140b53f3.
* Bump SMO to 160.1910315.0-preview
* Hotfix for ads dashboard for sqlondemand
* Generalizing engine edition functions and adapting tests
* Minor comment and cosmetic fixes
* Adding SqlOnDemand server edition string
* Fix tools service to store the corrected file path
* Use ClientFilePath for key
* Further fixes
* Undo spacing changes
* Fix tests
* Trigger CI rebuild
* switch to ambient props and targets files
* build against Microsoft.Data.SqlClient
* build tests
* fix test bug
* temporarily add SMO nuget to the repo
* update to released Microsoft.Data package
* First cut of CMS get Server Api - returns only names
* Adding Proper naming and some more functions
* Adding add remove Server and tests for it
* Changing relative path to derive from KeyChain.Urn and Nuget update
* Adding async thread for requests
* Addressing CR comments and adding one more test
* Adressed PR comments around naming
* Added the query to get big data cluster endpoints
Added bigDataClusterEndpoints to ObjectExplorerSession
Added bigDataClusterEndpoints to ServerInfo
Fixes some tests.
* Removed bigDataClusterEndpoints from session
* Since server property to get IsBigDataCluster is not implemented yet, use query of sys.asseblies instead to unblock us. Need to use server property when it is available
Add options to ServerInfo, so no need to change the contract in the further when adding new properties. Will move the existing properties to option later
* Undo changes not needed
* Resolved PR comments.
* Fixed node is null exception when can't find NodePath.
* Added comments
* Removed not used using
* Catch sqlException for the reader of BDC endpoints and set empty list to the option.
* Added comments for returning empty nodes.
This changes adds the following two notifications from the results processing within a batch. These new notifications allows a consumer to stream results from a resultset instead of getting them all at once after the entire resultset has been fetched.
ResultsAvailable
This is issued after at least 1 row has been fetched for this resultset.
ResultsUpdated
This is issued periodically as more rows are available on this resultset. The final send of this notification when all rows have been fetched has the property 'Complete' set to true in the ResultSummary object.
Detailed Change Log:
* Initial completed implementation of QueryResults stream feature. 3 unittests still need fixing
* Fix for the 3 failing test. I will look into making MockBehavior strict again for the three tests later
* Making GetReader/GetWriter use filestream objects in FileShare.ReadWrite mode so the file can be concurrently read and written
* Changing resultsAvailable also to fire off on a timer instead of after 1st row
* adding a project for clr TableValuedFunction to produce result set with delays after each row. This is helpful in end to end testing.
* Fixing up some tests and simplifying implementation of result update timer
* Address review comments
* Some test fixes
* Disabled flaky test verification
* Reopen connections prior to creating query execution data readers
* Reopen connection if an exception was rasied executing the query
* Fix unit tests
This change modifies the logging framework within sqltoolservice.
Moves away from custom Logger object to start using .Net tracing framework. It supports for the static Trace and TraceSource way of logging. For all new code it is recommend that we log the log messages using the existing static Logger class, while the code changes will continue to route the older Trace.Write* calls from the process to same log listeners (and thus the log targets) as used by the Logger class. Thus tracing in SMO code that uses Trace.Write* methods gets routed to the same file as the messages from rest of SQLTools Service code.
Make changes to start using .Net Frameworks codebase for all logging to unify our logging story.
Allows parameter to set tracingLevel filters that controls what kinds of message make it to the log file.
Allows a parameter to set a specific log file name so if these gets set by external code (the UI code using the tools service for example) then the external code is aware of the current log file in use.
Adding unittests to test out the existing and improved logging capabilities.
Sequences of checkins in development branch:
* Saving v1 of logging to prepare for code review. Minor cleanup and some end to end testing still remains
* Removing local launchSettings.json files
* added support for lazy listener to sqltoolsloglistener and removed incorrect changes to comments across files in previous checkin
* Converting time to local time when writing entries to the log
* move the hosting.v2 to new .net based logging code
* removing *.dgml files and addding them to .gitignore
* fixing typo of defaultTraceSource
* Addressing pull request feedback
* Adding a test to verify logging from SMO codebase
* propogating changes to v1 sqltools.hosting commandoptions.cs to the v2 version
* Fixing comments on start and stop callstack methods and whitespaces
* Commenting a test that got uncommented by mistake
* addding .gitattributes file as .sql file was observed to be misconstrued as a binary file
* add string serialization
* add unadded file
* changed code to be testable, added test
* moved test to correct location
* change to send undefined rather than error if the serialization fails
* update request name
* Add IncludePassword flag to get connection string method
* Override connection application name
* Fix typo
* Fix test break
* Use ****** as password placeholder
- Fixes https://github.com/Microsoft/sqlopsstudio/issues/97.
- This should fix the bulk of the issues reported by users since it's the 1st use of this connection in the query code path.
- Implemented the fix in the connection service. This will always open a connection when calling `GetOrOpenConnection`. I cannot see a reason why the connection returned from this should ever be closed.
- resolve issues in both this code path and the edit data code path since both use this method.
* add logic to close connections if changing fails
* added logic to close connections and reopen that fail to change (azure)
* expose connection map in connection info, change while to foreach
* removed unneeded code
* reworked logic to not depend on thrown errors
* added tests
* Avoid crashing if azure edition is System.
* Add new Azure-specific options to the prototype and return through the service calls
* Send azure properties over database info request
* IsCloud should include Azure SQL DW
- Fixed references to this feature flag
- Updated edition handling to include ManagedInstance and removed AzureV1 check since it's never used and it's been retired.
* Fix https://github.com/Microsoft/vscode-mssql/issues/986 and add better server edition naming
- Fixed a number of issues related to the binding queue, specifically the fact that it didn't capture exceptions that occurred on the binding thread. This caused the thread to crash the service.
- The root cause of the error was when you get a connection error during init of the SmoMetadataProvider which threw an exception. Because of this no Binder was created, and the code would null ref later during processing
- Added logic to handle null ref issue and other related code
- Added a unit test for the new error handling path, and supported still returning some value in this case
- Separately, have a fix for an issue where the edition is shown as "SQL Azure" for all Azure connections. Fixing to be "Azure SQL DB" for this case and handle when the database reports as DW or Stretch instead. This maps better to users concept of what the edition should be and avoids returning what is an outdated term.
* Messed up the test - fixing this by returning the expected return object
* Adding unit tests for save as excel
* Adding unit test for revert cell integration
* Adding unit test for edit session initialization
* Fixing issue where excel file factory wasn't being overridden