* Sending showplan graph over json rpc in Result updated event
Translating showplan graph into simple objects to be sent over JSON RPC
* Revert "Sending showplan graph over json rpc in Result updated event"
This reverts commit 2d63a625fd200d057bf6093e233f05dea440347c.
* Added string for localization
* Sending showplan graph over json rpc in Result updated event
Translating showplan graph into simple objects to be sent over JSON RPC
* Refactoring class
* Removing test warning
* Removing unused imports
Adding copyright
* Removing unused prop
* removing formatted string out .strings file
* Formatting files
Adding Errors in show plan graph
* Adding a separate event for execution plan
* Now sending mulitple graphs when a batch has more than one query.
* 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
* Initial Investigation
* Working code with include, connect, on error and tests
* Adding some loc strings
* Some cleanup and more tests
* Some dummy change to trigger build
* Adding PR comments
* Addressing PR comments
* 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
* 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
* Part1 : Changes to make cmdcmd script to work with parameters in script
* Stop SQL intellisense for SQLCMD
* Adding test for Intellisense handling of SQLCMD page
* Removing unintentional spacing changes caused by formatting
* Updating with smaller CR comments. Will discuss regarding script vs other options in batch info
* Removing unintentional change
* Adding latest PR comments
* Fix serialization tests & don't block thread
- Fixed potential null ref when closing streams
- Always clean up serialization queue if an error occurs
- Stop blocking dispatcher thread by not awaiting task that processes the message
- Improved error logging in EventFlowValidator to help debug issues
- Close stream on exception
Added a method that handles serialization requests
Support splitting save over multiple requests to reduce overall message size
Added unit tests
String changes used a new version of the string tool for generation.
Will publish PR separately for the changes to build & localization
so this can run on Mac without .Net Core 1.0
* Proposed changes to stop query execution if an exception has occured before/during batch execution
* Sending the error message was causing a test to fail - so removing for now. We can update the test to expect this is needed.
* Fix for : 4045: Cannot cancel a Query. Query runs too long.
HandleExecuteRequest was returning a task to awaiter - which was getting waited on. changed it to async function to start task in new thread and return nothing to awaiter . Also the cancellation token set by cancel request was getting checked only after making the connection to execute batches. Added an additional check for cancellation token befor the connection has been made.
Fix for 4319: Error showing dbs when using AAD in... 1.5.0-alpha.74
David has already created a new version of SMO nuget with the fix. - incorporating the same (150.18096.0-preview).
* Adding awaitable internal task for tests to run properly
* Adding more cancel tests
Fixes:
The streaming protocol is now tightened to ensure that only the last message for a result set contain isCompleted=true. Now isCompleted=true is never sent in isAvailable message.
Tightened logic in sending messages to make sure that no duplicate messages get sent out due to concurrent processing.
Made a fix to a null reference exception when processing special action which was a pre-existing benign bug.
Testing: Added 1 more new test that runs existing tests concurrently 1000 times to make sure no random timing issues are observed and tightened verifications to existing tests to ensure no duplicate messages and only one isComplete=true message is sent across.
* tightening the protocal to ensure only one message (the last one) with completed=true is sent back for a single result set within a query batch
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
* fixed bug where execution time was wrong for multiple batches
* fixed bug where multiple execution would show wrong execution time
* simplified logic
* Support `GO N` syntax to execute multiple times
- Plumbed through the batch execution count from the parser and used in the batch execution code path
- Functionality matches SSMS:
- Outputs loop start/end messages that match SSMS if you're doing multi-batch execution
- Outputs an "ignoring failure" error if an error happens during a batch
- Added tests for this
- Manually verified end to end also
* Fixing test error