Commit Graph

193 Commits

Author SHA1 Message Date
Sharon Ravindran
ab97948005 Fix/peek def mac (#170)
* Fix Integrated auth error and Uri for *nix/Mac

* Format code

* Add Logging and unit tests

* Modify tests for Windows:

* Workaround missing default schema on *nix and Mac

* Add unit tests

* Correct comments

* Change loop length

* Fix Log message
2016-12-07 16:52:35 -08:00
Leila Lali
379c6170b3 Intellisense for when the text starts with bracket (#164)
* Intellisense for when the text starts with bracket
2016-12-06 10:09:50 -08:00
Sharon Ravindran
82a7a01304 Peek definition support for tables, views and stored procedures (#160)
* Add support for peek/go to definition
Add unit tests for definition

Microsoft/vscode-mssql#253 and Microsoft/vscode-mssql#268

* Format Strings

* Add integration tests

* Refactor variable names

* Remove test file

* Remove LIVE_CONNECTION definition

* Change method name

* Write files to a separate directory

* Refactor GetDefinition

* Remove unnecessary whitespace and modify variable name

* Check intellisense settings

* Refactor code to be scalable and modify tests

* Refactor to facilitate CodeGen

* Reorder methods

* Modify method to strip bracket syntax

* Add one_second constant

* Add comments

* Modify null check

* Modify GetSchema code to account for spaces

* Alter variable names and modify null checks

* Remove timeout callback and refactor null check

* remove LIVE_CONNECTION_TEST definition
2016-12-02 12:16:21 -08:00
Mitchell Sternke
c95933b7e1 Implemented function signature help, and added tests (#153)
* Implemented function signature help, and added tests

* Incremental commit of changes from code review feedback

* Rename test

* Added check to make sure intellisense is enabled

* Use HoverTimeout instead of BindingTimeout
2016-11-30 14:22:48 -08:00
Mitchell Sternke
d1b791805a Fixed issue where no-op queries would never complete (#157)
* Fixed issue where no-op queries would never complete

* Changed approach to solving the race condition with no-op queries

* Addressing feedback
2016-11-28 14:28:05 -08:00
Karl Burtram
84eb164d87 Remove enabling MARS again. This merged down from master (#162) 2016-11-28 13:00:41 -08:00
Karl Burtram
e5d577dc81 Fix post merge break 2016-11-28 11:49:53 -08:00
Karl Burtram
39b79ae05b Merge branch 'master' into dev 2016-11-28 09:58:32 -08:00
Benjamin Russell
d9efb95386 Progressive Results Part 2: Result Completion Event (#134)
The main change in this pull request is to add a new event that will be fired upon completion of a resultset but before the completion of a batch. This event will only fire if a resultset is available and generated.

Changes:
* ConnectionService - Slight changes to enable mocking, cleanup 
* Batch - Moving summary generation into ResultSet class, adding generation of ordinals for resultset and locking of result set list (which needs further refinement, but would be outside scope of this change)
* Adding new event and associated parameters for completion of a resultset. Params return the resultset summary
* Adding logic for assigning the event a handler in the query execution service
* Adding unit tests for testing the new event /making sure the existing tests work
* Refactoring some private properties into member variables

* Refactor to remove SectionData class in favor of BufferRange

* Adding callback for batch completion that will let the extension know that a batch has completed execution

* Refactoring to make progressive results work as per async query execution

* Allowing retrieval of batch results while query is in progress

* reverting global.json, whoops

* Adding a few missing comments, and fixing a couple code style bugs

* Using SelectionData everywhere again

* One more missing comment

* Adding new notification type for result set completion

* Plumbing event for result set completion

* Unit tests for result set events

This includes a fairly substantial change to create a mock of the
ConnectionService and to create separate memorystream storage arrays. It
preserves more correct behavior with a integration test, fixes an issue
where the test db reader will return n-1 rows because the Reliable
Connection Helper steals a record.

* Adding locking to ResultSets for thread safety

* Adding/fixing unit tests

* Adding batch ID to result set summary
2016-11-22 17:37:27 -08:00
Benjamin Russell
0841ad7cf4 Removing the FileStreamWrapper as it is unecessary (#156) 2016-11-22 17:21:41 -08:00
Mitchell Sternke
ba0f564126 Fixed Turkish I problem with autocomplete keyword suggestions (#158) 2016-11-22 17:05:03 -08:00
Karl Burtram
a54d081363 Avoid null reference exceptions in diagnostics parsing (#149)
* Avoid a couple possible null reference exceptions

* Switch syntax around a little bit.
2016-11-17 15:06:57 -08:00
Mitchell Sternke
32f6cbc304 Language service no longer binds on duplicate connections (#148) 2016-11-15 18:12:16 -08:00
Mitchell Sternke
2211bd0403 Added notification for when language service is done updating after connect (#146)
* Added notification for when language service is done updating after connect

* Addressing feedback

* Added unit test
2016-11-15 17:39:17 -08:00
Mitchell Sternke
bffe5d590f Change comment for compliance (#145) 2016-11-11 14:46:51 -08:00
Mitchell Sternke
ee9e3d75bf Change comment for compliance (#145) 2016-11-11 14:39:18 -08:00
Benjamin Russell
ec94d986a8 Unit Test Cleanup (#141)
This is a fairly large set of changes to the unit tests that help isolate the effectiveness of the unit tests.

* Unit tests for query execution have been split into separate files for different classes.
* Unit tests have been added for the ResultSet class which previously did not have tests
* The InMemoryStreamWrapper has been improved to share memory, creating a simulated filesystem
* Creating a mock ConnectionService to decrease noisy exceptions and prevent "row stealing". Unfortunately this lowers code coverage. However, since the tests that touched the connection service were not really testing it, this helps keep us honest. But it will require adding more unit tests for connection service.
* Standardizing the await mechanism for query execution
* Cleaning up the mechanism for getting WorkspaceService mocks and mock FileStreamFactories

* Refactor the query execution tests into their own files

* Removing tests from ExecuteTests.cs that were moved to separate files

* Adding tests for ResultSet class

* Adding test for the FOR XML/JSON component of the resultset class

* Setting up shared storage between file stream readers/writers

* Standardizing on Workspace mocking, awaiting execution completion

* Adding comment for ResultSet class
2016-11-10 11:42:31 -08:00
Benjamin Russell
eba383e251 Fixing bad data issue w/closing/opening untitled doc (#142)
* Adding useful unit tests for this functionality
* Adding callback functionality for when a file is closed

* Fixing bad data issue w/closing/opening untitled doc

* Adding useful unit tests for this functionality
* Adding callback functionality for when a file is closed

* Moving from public to internal
2016-11-09 18:00:07 -08:00
Benjamin Russell
ffe17e85fc Fixing bad data issue w/closing/opening untitled doc (#142)
* Adding useful unit tests for this functionality
* Adding callback functionality for when a file is closed

* Fixing bad data issue w/closing/opening untitled doc

* Adding useful unit tests for this functionality
* Adding callback functionality for when a file is closed

* Moving from public to internal
2016-11-09 15:36:42 -08:00
Mitchell Sternke
2319de41e0 Added basic stress tests for the service (#140) 2016-11-09 12:02:19 -08:00
Karl Burtram
8e83afd628 Fix merge build break 2016-11-06 21:05:24 -08:00
Karl Burtram
cd5abad0f2 Merge branch 'release/ctp10' 2016-11-06 20:45:48 -08:00
Karl Burtram
2ebf34d9ce Add a few more autocomplete delimeter characters (#138)
Trival change to add a couple new delimeters..auto-merging.
2016-11-06 04:12:48 +00:00
Karl Burtram
93dbe05a66 Add a few more autocomplete delimeter characters (#138)
Trival change to add a couple new delimeters..auto-merging.
2016-11-05 21:11:40 -07:00
Karl Burtram
09e8f41640 Bump SMO to 140.1.11 (#137)
Version bump only
2016-11-05 16:57:19 -07:00
Karl Burtram
54b5488ce2 Bump SMO to 140.1.11 (#137)
Version bump only
2016-11-05 16:56:37 -07:00
Benjamin Russell
d5fbebc287 Progressive Results Part 1: Batch Completion Notification (#95)
The main feature of this pull request is a new callback that's added to the query class that is called when a batch has completed execution and retrieval of results. This callback will send an event to the extension with the batch summary information. After that, the extension can submit subset requests for the resultsets of the batch.
Other smaller changes in this pull request:
Refactor to assign a batch a id when its created instead of when returning the list of batch summaries
Passing the SelectionData around instead of extracting the values for it
Moving creation of BatchSummary into the Batch class
Retrieval of results is now permitted even if the entire query has not completed, as long as the batch requested has completed.
Also note, this does not break the protocol. It adds a new event that a queryRunner can listen to, but it doesn't require it to be listened to.

* Refactor to remove SectionData class in favor of BufferRange

* Adding callback for batch completion that will let the extension know that a batch has completed execution

* Refactoring to make progressive results work as per async query execution

* Allowing retrieval of batch results while query is in progress

* reverting global.json, whoops

* Adding a few missing comments, and fixing a couple code style bugs

* Using SelectionData everywhere again

* One more missing comment
2016-11-02 17:43:38 -07:00
Karl Burtram
3c98d03cc8 Update nuget.config to pull private nuget packages from within the repro. (#132) 2016-11-01 12:28:37 -07:00
Sharon Ravindran
6937e46c1b Handle connection exceptions and add error callback (#126) 2016-11-01 12:28:14 -07:00
Karl Burtram
eafe2973be Update nuget.config to pull private nuget packages from within the repro. (#132) 2016-11-01 11:09:55 -07:00
Sharon Ravindran
29b7854ec1 Handle connection exceptions and add error callback (#126) 2016-10-31 11:25:51 -07:00
Sharon Ravindran
a27c182a0f Refactor error messages (#122) 2016-10-29 20:08:04 -07:00
Anthony Dresser
6df458dcfc change time when the batch time is set (#118) 2016-10-29 20:07:39 -07:00
Karl Burtram
69bbb652da Add more code coverage tests. (#129) 2016-10-29 19:59:58 -07:00
Karl Burtram
ab1316b1fb Next batch of code coverage tests. (#128)
Auto-merging test-only changes.  Please review the commit and I'll make changes in next iteration.

* Add more tests to boast code coverage

* Add more reliable connection tests.
2016-10-29 15:34:51 -07:00
Karl Burtram
6cdaa6e808 Add more test cases for code coverage (#127)
Next round of code coverage test cases.  Please review the commit for next iteration.

* Add connection retry tests

* More test coverage

* Update diagnostics end-to-end test
2016-10-29 12:10:02 -07:00
Karl Burtram
f46fc0c787 Add additional test cases (#125)
Test-only changes for code coverage.  Please review the comment and I'll include the changes in the next iteration.

* Add more tests

* Add some more additional test cases
2016-10-28 20:33:32 -07:00
Sharon Ravindran
931235c604 Refactor error messages (#122) 2016-10-28 12:26:31 -07:00
Anthony Dresser
96c3e746ad change time when the batch time is set (#118) 2016-10-28 11:52:39 -07:00
Karl Burtram
da84ae9f3b Code coverage improvements (#121)
These are test-only changes to improve code coverage so I'll merge directly.  Please review the commit and I'll pickup those changes in the next iteration.

* Add integration test batch file

* Exclude Linux and MacOS from Windows code coverage builds

* Enable code coverage for test driver e2e tests

* Use the windows only build for code coverage runs
2016-10-27 18:18:31 -07:00
Leila Lali
017b00437a changing the setting namespace (#116) 2016-10-25 17:19:33 -07:00
Mitchell Sternke
67d1d800a3 Test driver improvements (#117)
* Refactored the test driver to work with xunit in addition to the command line

* Fix behavior of property
2016-10-25 17:16:33 -07:00
Leila Lali
cac3ae5eeb changing the setting namespace (#116) 2016-10-25 17:09:42 -07:00
Karl Burtram
ea77bfa885 Suggestion list cleanups (#115)
* Add additional autocomplete words

* Add another word to default completion list

* Add colorization keywords and fix minor bugs.
2016-10-25 12:08:41 -07:00
Karl Burtram
649ea7d05c Suggestion list cleanups (#115)
* Add additional autocomplete words

* Add another word to default completion list

* Add colorization keywords and fix minor bugs.
2016-10-25 17:21:37 +00:00
Karl Burtram
1d7e6e353f Feature/cleanups1 (#114)
* Intellisense cleanups.

* Additional intellisense cleanups for default list

* Add missing Monitor.Exit in completion resolve

* A couple more cleanups.

* Bug fixes for auto-complete.

* Add comment regarding conditional logic
2016-10-24 18:11:49 +00:00
Sharon Ravindran
2a688cb87f Make save result async (#107)
* Make save results asynchronous

* Prevent write share of file

* Lock objects in stages

* Create Save result objects

* refactor and write rows in batches

* CHange batchSize from test value

* Remove await in handler

* Removing the file reader as a member of the resultset

* Change Dispose to wait for save

* Change concurrentBag

* PascalCase variables

* Modify function signature and tests

* Safe file methods

* refactor ResultSets to Ilist and remove ToList

* Change dictionary key and prevent add to saveTasks during dispose

* Simplify row concatenation

* Fix prevent add

* Fix prevent add

* Add methods to expose saveTasks and isBeingDisposed
2016-10-21 20:07:21 -07:00
Leila Lali
5a7b412c38 changed the icons for the completion list based on the sql type (#112)
* changed the icons for the completion list based on the sql type
2016-10-21 15:50:12 -07:00
Karl Burtram
854a6a0eca Switch back to event from locks to fix blocking issues. (#111) 2016-10-21 15:46:33 -07:00
Leila Lali
b3d793dc85 Fixed autocomplete bugs (#110)
Autocomplete for items with special characters doesn't add [ ]
Autocomplete default list shows when it shouldn't..like in comments or literals
2016-10-21 15:03:48 -07:00