You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
5.0 KiB
142 lines
5.0 KiB
/*
|
|
Adds a crash instance to CrashDb
|
|
Returns isBucket, igBucket if successfull
|
|
*/
|
|
CREATE PROCEDURE sp_AddCrashInstance2 (
|
|
@ip_retriageBucket bit,
|
|
@ip_BucketId varchar(100),
|
|
@ip_Path varchar(256),
|
|
@ip_FollowUp varchar(50),
|
|
@ip_BuildNo int,
|
|
@ip_Source int,
|
|
@ip_CpuId bigint,
|
|
@ip_OverClocked bit,
|
|
@ip_IncidentId bigint,
|
|
@ip_gBucketId varchar(100),
|
|
@ip_DriverName varchar (100),
|
|
@ip_Type int
|
|
)
|
|
AS
|
|
BEGIN
|
|
DECLARE @i_sBucket int
|
|
DECLARE @i_gBucket int
|
|
DECLARE @i_Followup int
|
|
DECLARE @i_OldFollowup int
|
|
DECLARE @i_DriverName int
|
|
DECLARE @i_OldDriverName int
|
|
|
|
SET NOCOUNT ON
|
|
|
|
-- Find the specific bucket
|
|
SELECT @i_sBucket = iBucket,
|
|
@i_OldFollowup = iFollowup,
|
|
@i_OldDriverName = iDriverName
|
|
FROM BucketToInt WHERE BucketId = @ip_BucketId
|
|
|
|
-- If the specifc bucket does not exist, or we want to update the
|
|
-- fields
|
|
IF ( @i_sBucket IS NULL OR @ip_retriageBucket = 1)
|
|
BEGIN
|
|
|
|
SELECT @i_Followup = iFollowup FROM FollowupIds
|
|
WHERE Followup = @ip_FollowUp
|
|
|
|
--get (or add) the followup information.
|
|
-- IF NOT EXISTS (SELECT * FROM FollowupIds
|
|
-- WHERE Followup = @ip_FollowUp)
|
|
|
|
if (@i_Followup is null)
|
|
BEGIN
|
|
INSERT INTO FollowupIds VALUES (@ip_FollowUp, NULL)
|
|
SELECT @i_Followup = @@IDENTITY
|
|
END
|
|
-- ELSE
|
|
-- BEGIN
|
|
-- SELECT @i_Followup = iFollowup FROM FollowupIds
|
|
-- WHERE Followup = @ip_FollowUp
|
|
-- END
|
|
|
|
--get (or add) the driver name.
|
|
|
|
SELECT @i_DriverName = iDriverName FROM DrNames
|
|
WHERE DriverName = @ip_DriverName
|
|
|
|
if (@i_DriverName is null)
|
|
-- IF NOT EXISTS (SELECT * FROM DrNames
|
|
-- WHERE DriverName = @ip_DriverName)
|
|
BEGIN
|
|
INSERT INTO DrNames (DriverName)
|
|
VALUES (@ip_DriverName)
|
|
SELECT @i_DriverName = @@IDENTITY
|
|
END
|
|
-- ELSE
|
|
-- BEGIN
|
|
-- SELECT @i_DriverName = iDriverName FROM DrNames
|
|
-- WHERE DriverName = @ip_DriverName
|
|
-- END
|
|
END
|
|
|
|
IF ( @i_sBucket IS NULL)
|
|
BEGIN
|
|
INSERT INTO BucketToInt (BucketId, iFollowup, iDriverName, Platform) -- added platfrom param sbeer 02/20/02
|
|
VALUES (@ip_BucketId, @i_Followup, @i_DriverName, @ip_Type)
|
|
SELECT @i_sBucket = @@IDENTITY
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
-- Bucket exists in bucket table. Update it if necessary
|
|
IF @ip_RetriageBucket = 1
|
|
BEGIN
|
|
IF ( (@i_OldFollowup != @i_Followup) OR
|
|
(@i_OldDriverName != @i_DriverName) )
|
|
BEGIN
|
|
UPDATE BucketToInt
|
|
SET iFollowup = @i_Followup, iDriverName = @i_DriverName, Platform = @ip_Type -- added platfrom param sbeer 02/20/02
|
|
WHERE iBucket = @i_sBucket
|
|
END
|
|
END
|
|
END
|
|
|
|
|
|
-- Add generic bucket
|
|
SELECT @i_gBucket = iBucket FROM BucketToInt
|
|
WHERE BucketId = @ip_gBucketId
|
|
|
|
IF (@i_gBucket IS NULL)
|
|
BEGIN
|
|
INSERT BucketToInt ( BucketID, iBucket, iFollowUp,Platform) VALUES (@ip_gBucketId,0,0,@ip_Type) --added explicit column names solson 02/14/02
|
|
SELECT @i_gBucket = @@IDENTITY
|
|
END
|
|
|
|
-- Add the Crash Instance to the crash instance table and the mapping
|
|
-- table
|
|
|
|
IF NOT EXISTS (SELECT IncidentId FROM CrashInstances
|
|
WHERE IncidentId = @ip_IncidentId)
|
|
BEGIN
|
|
INSERT INTO CrashInstances
|
|
VALUES ( @ip_Path,
|
|
@ip_BuildNo,
|
|
@ip_CpuId,
|
|
@ip_IncidentId,
|
|
@i_sBucket,
|
|
@i_gBucket,
|
|
GetDate(),
|
|
@ip_Source)
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
IF (@ip_retriageBucket = 1)
|
|
BEGIN
|
|
UPDATE CrashInstances
|
|
SET sBucket = @i_sBucket, gBucket = @i_gBucket
|
|
WHERE IncidentId = @ip_IncidentId
|
|
END
|
|
END
|
|
|
|
SET NOCOUNT OFF
|
|
|
|
SELECT @i_sBucket AS sBucket, @i_gBucket AS gBucket
|
|
|
|
END
|
|
GO
|