Point search pipeline at Search2 table and *2 procs for v5 POC

Re-target all search reads, writes, and stored proc calls to dbo.Search2 /
SubmitSearch2 / StartSearch2 / CompleteSearch2 / ResetPartialSearches2 so
the POC can run side-by-side with prod against the same QA database
without contending on the Search table or its procs. Standalone deployment
SQL for the new table and procs lives in OLD/sql/ and must be run against
the target DB before the POC apps are started.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joseph Doherty
2026-05-04 09:24:45 -04:00
parent c0bb86bace
commit 7e92e35991
7 changed files with 95 additions and 9 deletions
@@ -25,7 +25,7 @@ namespace DataModel.Process
s.SubmitDT,
s.StartDT,
s.EndDT
FROM dbo.Search s
FROM dbo.Search2 s
WHERE s.UserName = @userName
ORDER BY s.SubmitDT";
@@ -65,7 +65,7 @@ namespace DataModel.Process
s.SubmitDT,
s.StartDT,
s.EndDT
FROM dbo.Search s
FROM dbo.Search2 s
WHERE s.Status < 3
ORDER BY s.SubmitDT";
@@ -104,7 +104,7 @@ namespace DataModel.Process
s.StartDT,
s.EndDT,
s.Criteria as CriteriaJSON
FROM dbo.Search s
FROM dbo.Search2 s
WHERE s.ID = @id";
/// <summary>
@@ -143,7 +143,7 @@ namespace DataModel.Process
/// </summary>
private const string SQL_GET_SEARCH_RESULTS = @"
SELECT s.Results
FROM dbo.Search AS s
FROM dbo.Search2 AS s
WHERE s.ID = @id";
/// <summary>
@@ -187,7 +187,7 @@ namespace DataModel.Process
using (SqlConnection connection = GetConnection())
{
using (SqlCommand command = new SqlCommand("SubmitSearch", connection))
using (SqlCommand command = new SqlCommand("SubmitSearch2", connection))
{
command.CommandType = CommandType.StoredProcedure;
+4 -4
View File
@@ -29,7 +29,7 @@ namespace WorkerService.Process
s.StartDT,
s.EndDT,
s.Criteria AS CriteriaJSON
FROM dbo.Search s
FROM dbo.Search2 s
WHERE s.Status = 1
ORDER BY s.SubmitDT";
@@ -71,7 +71,7 @@ namespace WorkerService.Process
{
using (SqlConnection connection = GetConnection())
{
connection.Execute("ResetPartialSearches", commandType: CommandType.StoredProcedure);
connection.Execute("ResetPartialSearches2", commandType: CommandType.StoredProcedure);
}
}
catch (Exception error)
@@ -94,7 +94,7 @@ namespace WorkerService.Process
using (SqlConnection connection = GetConnection())
{
connection.Execute("StartSearch", new { p_SearchID = search.ID }, commandType: CommandType.StoredProcedure);
connection.Execute("StartSearch2", new { p_SearchID = search.ID }, commandType: CommandType.StoredProcedure);
}
}
catch (Exception error)
@@ -117,7 +117,7 @@ namespace WorkerService.Process
using (SqlConnection connection = GetConnection())
{
connection.Execute("CompleteSearch", new { p_SearchID = search.ID, p_WasSuccessful = wasSuccessful, p_Results = search.Results }, commandType: CommandType.StoredProcedure);
connection.Execute("CompleteSearch2", new { p_SearchID = search.ID, p_WasSuccessful = wasSuccessful, p_Results = search.Results }, commandType: CommandType.StoredProcedure);
}
}
catch (Exception error)
+22
View File
@@ -0,0 +1,22 @@
CREATE PROCEDURE [dbo].[CompleteSearch2] (
@p_SearchID INT,
@p_WasSuccessful BIT,
@p_Results VARBINARY(MAX)
)
AS
DECLARE @v_Status INT;
BEGIN
--Determine status code
SET @v_Status = CASE @p_WasSuccessful
WHEN 1 THEN 3
ELSE 4
END;
--Update search status and results
UPDATE dbo.Search2
SET Status = @v_Status,
Results = @p_Results,
EndDT = GETDATE()
WHERE ID = @p_SearchID;
END
+10
View File
@@ -0,0 +1,10 @@
CREATE PROCEDURE [dbo].[ResetPartialSearches2]
AS
BEGIN
--Reset status and start timestamp for searches begun but not finished
UPDATE dbo.Search2
SET Status = 1,
StartDT = NULL
WHERE StartDT IS NOT NULL AND
EndDT IS NULL;
END
+17
View File
@@ -0,0 +1,17 @@
CREATE TABLE [dbo].[Search2]
(
[ID] INT IDENTITY(1,1) NOT NULL,
[UserName] VARCHAR(128) NOT NULL,
[Name] VARCHAR(128) NULL,
[Status] SMALLINT NOT NULL,
[SubmitDT] DATETIME NULL,
[StartDT] DATETIME NULL,
[EndDT] DATETIME NULL,
[Criteria] VARCHAR(MAX) NULL,
[Results] VARBINARY(MAX) NULL,
CONSTRAINT [PK_Search2] PRIMARY KEY CLUSTERED([ID])
)
GO
CREATE INDEX [IX_Search2_UserName] ON [dbo].[Search2] ([UserName])
+9
View File
@@ -0,0 +1,9 @@
CREATE PROCEDURE [dbo].[StartSearch2] (@p_SearchID INT)
AS
BEGIN
--Update search status and start timestamp
UPDATE dbo.Search2
SET Status = 2,
StartDT = GETDATE()
WHERE ID = @p_SearchID;
END
+28
View File
@@ -0,0 +1,28 @@
CREATE PROCEDURE [dbo].[SubmitSearch2] (
@p_UserName VARCHAR(128),
@p_Name VARCHAR(128),
@p_Criteria VARCHAR(MAX),
@o_SearchID INT OUTPUT
)
AS
BEGIN
--Insert new search record
INSERT INTO Search2
(
UserName,
Name,
Status,
SubmitDT,
Criteria
)
VALUES (
@p_UserName,
@p_Name,
1,
GETDATE(),
@p_Criteria
);
--Get assigned auto-ID
SET @o_SearchID = SCOPE_IDENTITY();
END