/* 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