Skip to content

Commit

Permalink
Git add missing file
Browse files Browse the repository at this point in the history
  • Loading branch information
KushaalShroff committed Sep 25, 2024
1 parent cfb3122 commit 82181e7
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 2 deletions.
4 changes: 2 additions & 2 deletions contrib/babelfishpg_tds/src/backend/tds/tdsprotocol.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ ResetConnection resetCon = NULL;
bool resetTdsConnectionFlag = false;

/* Local functions */
static void ResetTDSConnection();
static void ResetTDSConnection(void);
static TDSRequest GetTDSRequest(bool *resetProtocol);
static void ProcessTDSRequest(TDSRequest request);
static void enable_statement_timeout(void);
Expand Down Expand Up @@ -119,7 +119,7 @@ TdsDiscardAll()
* for RESETCON.
*/
static void
ResetTDSConnection()
ResetTDSConnection(void)
{
const char *isolationOld;

Expand Down
99 changes: 99 additions & 0 deletions test/JDBC/input/storedProcedures/Test-sp_reset_connection.mix
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
-- tsql
-- 1. Test resets GUC variables
SET lock_timeout 0;
GO
SELECT @@lock_timeout;
GO
EXEC sys.sp_reset_connection
-- TODO: GUC is not resetting
SELECT @@lock_timeout;
GO

-- 2. Test open transactions are aborted on reset
DROP TABLE IF EXISTS sp_reset_connection_test_table;
CREATE TABLE sp_reset_connection_test_table(id int);
BEGIN TRANSACTION
INSERT INTO sp_reset_connection_test_table VALUES(1)
GO
EXEC sys.sp_reset_connection
GO
COMMIT TRANSACTION
GO
SELECT * FROM sp_reset_connection_test_table
GO

-- 3. Test temp tables are deleted on reset
CREATE TABLE #babel_temp_table (ID INT identity(1,1), Data INT)
INSERT INTO #babel_temp_table (Data) VALUES (100), (200), (300)
GO
SELECT * from #babel_temp_table
GO
EXEC sys.sp_reset_connection
GO
SELECT * from #babel_temp_table
GO

-- 4. Test isolation level is reset
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
GO
select transaction_isolation_level from sys.dm_exec_sessions where session_id=@@SPID
GO
EXEC sys.sp_reset_connection
GO
select transaction_isolation_level from sys.dm_exec_sessions where session_id=@@SPID
GO

-- 5. Test sp_reset_connection called with sp_prepexec
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
GO
select transaction_isolation_level from sys.dm_exec_sessions where session_id=@@SPID
GO
DECLARE @handle int;
EXEC SP_PREPARE @handle output, NULL, N'exec sys.sp_reset_connection'
EXEC SP_EXECUTE @handle
GO
GO
select transaction_isolation_level from sys.dm_exec_sessions where session_id=@@SPID
GO

-- 6. Test Database Context being reset
-- Tests include negative cases where db is dropped or renamed
Create database reset_con_db1;
GO
Create database reset_con_db2;
GO

-- tsql database=reset_con_db1
select db_name();
GO
exec sys.sp_reset_connection
GO
use master
GO
select db_name();
GO
exec sys.sp_reset_connection
GO
select db_name();
GO
-- test db being dropped before resetting to same db
use master;
drop database reset_con_db1;
GO
exec sys.sp_reset_connection
GO
-- tsql database=reset_con_db2
select db_name();
GO
use master
GO
select db_name();
GO
ALTER DATABASE reset_con_db2 MODIFY NAME=reset_con_db3
GO
exec sys.sp_reset_connection
GO

-- tsql
DROP DATABASE reset_con_db3
GO

0 comments on commit 82181e7

Please sign in to comment.