Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sp_BitzIndex throw ArithmeticOverflowException for clustered columnstore indexes with >100 columns #2076

Closed
Scotti85 opened this issue Aug 1, 2019 · 2 comments · Fixed by #2085

Comments

@Scotti85
Copy link

Scotti85 commented Aug 1, 2019

Latly the "sp_BlitzIndex" raise an Exceptions on one of our servers if we want to save the result in an Outputtable. The source of our problem is an table with ClusteredColumnstoreIndex and 143 columns. Because of this setup the "index_definition" for the resulttable becomes greater then 4000 Letters and throw an ArithmeticOverflowException.

A possible solution would be to truncate the "index_defintion"

"left(index_definition, 4000) AS [Definition: [Property]] ColumnName {datatype maxbytes}],"

@BrentOzar BrentOzar changed the title sp_BitzIndex throw ArithmeticOverflowException sp_BitzIndex throw ArithmeticOverflowException for clustered columnstore indexes with >100 columns Aug 18, 2019
@BrentOzar BrentOzar self-assigned this Aug 18, 2019
@BrentOzar BrentOzar added this to the 2019-08 Release milestone Aug 18, 2019
@BrentOzar
Copy link
Member

Thanks! Repro script:

/* Build a numbers table */
DECLARE @RunDate datetime
SET @RunDate=GETDATE()
SELECT TOP 10000 IDENTITY(int,1,1) AS Number
    INTO dbo.Numbers
    FROM sys.objects s1       --use sys.columns if you don't get enough rows returned to generate all the numbers you need
    CROSS JOIN sys.objects s2 --use sys.columns if you don't get enough rows returned to generate all the numbers you need
ALTER TABLE Numbers ADD CONSTRAINT PK_NumbersTest PRIMARY KEY CLUSTERED (Number)
PRINT CONVERT(varchar(20),datediff(ms,@RunDate,GETDATE()))+' milliseconds'
SELECT COUNT(*) FROM Numbers

/* Generate the column names */
SELECT 'Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool' + CAST(Number AS VARCHAR(5)) + ' INT,'
  FROM dbo.Numbers
  WHERE Number < 1025
  ORDER BY Number

/* Build that into a table: */
CREATE TABLE dbo.BadIdea(
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool2 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool3 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool4 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool5 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool6 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool7 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool8 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool9 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool10 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool11 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool12 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool13 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool14 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool15 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool16 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool17 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool18 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool19 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool20 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool21 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool22 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool23 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool24 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool25 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool26 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool27 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool28 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool29 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool30 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool31 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool32 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool33 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool34 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool35 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool36 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool37 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool38 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool39 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool40 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool41 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool42 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool43 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool44 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool45 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool46 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool47 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool48 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool49 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool50 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool51 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool52 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool53 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool54 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool55 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool56 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool57 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool58 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool59 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool60 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool61 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool62 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool63 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool64 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool65 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool66 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool67 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool68 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool69 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool70 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool71 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool72 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool73 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool74 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool75 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool76 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool77 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool78 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool79 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool80 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool81 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool82 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool83 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool84 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool85 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool86 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool87 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool88 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool89 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool90 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool91 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool92 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool93 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool94 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool95 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool96 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool97 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool98 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool99 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool100 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool101 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool102 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool103 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool104 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool105 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool106 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool107 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool108 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool109 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool110 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool111 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool112 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool113 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool114 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool115 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool116 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool117 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool118 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool119 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool120 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool121 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool122 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool123 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool124 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool125 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool126 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool127 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool128 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool129 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool130 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool131 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool132 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool133 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool134 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool135 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool136 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool137 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool138 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool139 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool140 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool141 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool142 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool143 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool144 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool145 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool146 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool147 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool148 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool149 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool150 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool151 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool152 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool153 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool154 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool155 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool156 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool157 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool158 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool159 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool160 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool161 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool162 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool163 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool164 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool165 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool166 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool167 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool168 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool169 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool170 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool171 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool172 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool173 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool174 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool175 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool176 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool177 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool178 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool179 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool180 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool181 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool182 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool183 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool184 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool185 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool186 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool187 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool188 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool189 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool190 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool191 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool192 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool193 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool194 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool195 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool196 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool197 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool198 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool199 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool200 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool201 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool202 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool203 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool204 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool205 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool206 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool207 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool208 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool209 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool210 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool211 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool212 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool213 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool214 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool215 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool216 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool217 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool218 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool219 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool220 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool221 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool222 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool223 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool224 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool225 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool226 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool227 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool228 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool229 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool230 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool231 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool232 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool233 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool234 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool235 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool236 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool237 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool238 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool239 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool240 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool241 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool242 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool243 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool244 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool245 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool246 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool247 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool248 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool249 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool250 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool251 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool252 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool253 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool254 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool255 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool256 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool257 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool258 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool259 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool260 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool261 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool262 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool263 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool264 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool265 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool266 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool267 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool268 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool269 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool270 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool271 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool272 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool273 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool274 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool275 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool276 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool277 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool278 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool279 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool280 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool281 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool282 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool283 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool284 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool285 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool286 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool287 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool288 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool289 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool290 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool291 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool292 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool293 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool294 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool295 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool296 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool297 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool298 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool299 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool300 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool301 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool302 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool303 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool304 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool305 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool306 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool307 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool308 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool309 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool310 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool311 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool312 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool313 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool314 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool315 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool316 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool317 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool318 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool319 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool320 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool321 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool322 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool323 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool324 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool325 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool326 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool327 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool328 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool329 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool330 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool331 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool332 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool333 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool334 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool335 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool336 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool337 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool338 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool339 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool340 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool341 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool342 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool343 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool344 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool345 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool346 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool347 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool348 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool349 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool350 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool351 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool352 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool353 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool354 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool355 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool356 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool357 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool358 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool359 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool360 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool361 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool362 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool363 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool364 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool365 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool366 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool367 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool368 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool369 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool370 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool371 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool372 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool373 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool374 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool375 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool376 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool377 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool378 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool379 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool380 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool381 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool382 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool383 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool384 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool385 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool386 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool387 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool388 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool389 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool390 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool391 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool392 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool393 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool394 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool395 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool396 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool397 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool398 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool399 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool400 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool401 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool402 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool403 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool404 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool405 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool406 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool407 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool408 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool409 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool410 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool411 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool412 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool413 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool414 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool415 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool416 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool417 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool418 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool419 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool420 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool421 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool422 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool423 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool424 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool425 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool426 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool427 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool428 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool429 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool430 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool431 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool432 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool433 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool434 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool435 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool436 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool437 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool438 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool439 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool440 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool441 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool442 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool443 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool444 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool445 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool446 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool447 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool448 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool449 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool450 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool451 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool452 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool453 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool454 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool455 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool456 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool457 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool458 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool459 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool460 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool461 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool462 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool463 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool464 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool465 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool466 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool467 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool468 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool469 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool470 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool471 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool472 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool473 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool474 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool475 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool476 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool477 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool478 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool479 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool480 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool481 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool482 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool483 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool484 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool485 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool486 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool487 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool488 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool489 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool490 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool491 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool492 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool493 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool494 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool495 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool496 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool497 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool498 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool499 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool500 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool501 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool502 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool503 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool504 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool505 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool506 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool507 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool508 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool509 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool510 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool511 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool512 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool513 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool514 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool515 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool516 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool517 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool518 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool519 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool520 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool521 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool522 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool523 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool524 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool525 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool526 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool527 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool528 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool529 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool530 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool531 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool532 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool533 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool534 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool535 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool536 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool537 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool538 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool539 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool540 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool541 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool542 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool543 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool544 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool545 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool546 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool547 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool548 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool549 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool550 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool551 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool552 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool553 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool554 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool555 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool556 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool557 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool558 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool559 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool560 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool561 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool562 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool563 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool564 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool565 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool566 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool567 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool568 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool569 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool570 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool571 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool572 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool573 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool574 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool575 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool576 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool577 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool578 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool579 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool580 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool581 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool582 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool583 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool584 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool585 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool586 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool587 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool588 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool589 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool590 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool591 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool592 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool593 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool594 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool595 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool596 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool597 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool598 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool599 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool600 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool601 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool602 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool603 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool604 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool605 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool606 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool607 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool608 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool609 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool610 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool611 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool612 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool613 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool614 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool615 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool616 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool617 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool618 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool619 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool620 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool621 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool622 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool623 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool624 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool625 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool626 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool627 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool628 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool629 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool630 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool631 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool632 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool633 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool634 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool635 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool636 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool637 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool638 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool639 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool640 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool641 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool642 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool643 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool644 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool645 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool646 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool647 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool648 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool649 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool650 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool651 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool652 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool653 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool654 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool655 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool656 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool657 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool658 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool659 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool660 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool661 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool662 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool663 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool664 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool665 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool666 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool667 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool668 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool669 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool670 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool671 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool672 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool673 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool674 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool675 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool676 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool677 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool678 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool679 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool680 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool681 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool682 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool683 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool684 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool685 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool686 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool687 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool688 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool689 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool690 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool691 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool692 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool693 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool694 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool695 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool696 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool697 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool698 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool699 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool700 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool701 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool702 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool703 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool704 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool705 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool706 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool707 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool708 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool709 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool710 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool711 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool712 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool713 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool714 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool715 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool716 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool717 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool718 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool719 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool720 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool721 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool722 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool723 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool724 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool725 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool726 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool727 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool728 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool729 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool730 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool731 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool732 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool733 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool734 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool735 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool736 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool737 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool738 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool739 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool740 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool741 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool742 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool743 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool744 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool745 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool746 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool747 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool748 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool749 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool750 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool751 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool752 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool753 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool754 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool755 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool756 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool757 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool758 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool759 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool760 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool761 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool762 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool763 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool764 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool765 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool766 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool767 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool768 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool769 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool770 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool771 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool772 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool773 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool774 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool775 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool776 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool777 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool778 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool779 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool780 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool781 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool782 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool783 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool784 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool785 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool786 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool787 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool788 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool789 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool790 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool791 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool792 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool793 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool794 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool795 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool796 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool797 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool798 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool799 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool800 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool801 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool802 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool803 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool804 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool805 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool806 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool807 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool808 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool809 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool810 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool811 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool812 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool813 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool814 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool815 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool816 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool817 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool818 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool819 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool820 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool821 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool822 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool823 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool824 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool825 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool826 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool827 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool828 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool829 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool830 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool831 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool832 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool833 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool834 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool835 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool836 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool837 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool838 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool839 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool840 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool841 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool842 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool843 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool844 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool845 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool846 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool847 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool848 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool849 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool850 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool851 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool852 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool853 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool854 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool855 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool856 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool857 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool858 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool859 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool860 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool861 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool862 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool863 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool864 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool865 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool866 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool867 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool868 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool869 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool870 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool871 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool872 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool873 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool874 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool875 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool876 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool877 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool878 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool879 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool880 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool881 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool882 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool883 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool884 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool885 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool886 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool887 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool888 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool889 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool890 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool891 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool892 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool893 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool894 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool895 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool896 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool897 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool898 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool899 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool900 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool901 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool902 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool903 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool904 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool905 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool906 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool907 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool908 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool909 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool910 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool911 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool912 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool913 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool914 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool915 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool916 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool917 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool918 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool919 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool920 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool921 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool922 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool923 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool924 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool925 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool926 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool927 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool928 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool929 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool930 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool931 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool932 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool933 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool934 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool935 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool936 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool937 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool938 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool939 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool940 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool941 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool942 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool943 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool944 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool945 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool946 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool947 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool948 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool949 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool950 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool951 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool952 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool953 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool954 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool955 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool956 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool957 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool958 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool959 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool960 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool961 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool962 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool963 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool964 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool965 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool966 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool967 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool968 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool969 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool970 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool971 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool972 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool973 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool974 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool975 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool976 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool977 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool978 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool979 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool980 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool981 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool982 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool983 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool984 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool985 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool986 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool987 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool988 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool989 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool990 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool991 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool992 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool993 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool994 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool995 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool996 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool997 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool998 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool999 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1000 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1001 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1002 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1003 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1004 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1005 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1006 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1007 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1008 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1009 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1010 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1011 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1012 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1013 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1014 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1015 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1016 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1017 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1018 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1019 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1020 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1021 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1022 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1023 INT,
Cooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooool1024 INT
)

CREATE CLUSTERED COLUMNSTORE INDEX CCI ON dbo.BadIdea;  
GO  

/* Run sp_BlitzIndex, and it fails: */
sp_BlitzIndex @Mode = 2, @OutputDatabaseName = 'master', @OutputSchemaName = 'dbo', @OutputTableName = 'BlitzIndexResults';

/* Check the output table: */
SELECT * FROM master.dbo.BlitzIndexResults;

BrentOzar added a commit that referenced this issue Aug 18, 2019
When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes #2076.
BrentOzar added a commit that referenced this issue Aug 18, 2019
When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes #2076.
@BrentOzar
Copy link
Member

Fixed in the dev branch, will be in August's release. Thanks!

BrentOzar added a commit that referenced this issue Aug 26, 2019
* #2005 sp_Blitz version numbers (#2006)

Working on #2005.

* #2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes #2005.

* #2010 sp_Blitz paused online index operations (#2011)

Add warning for rows in sys.index_resumable_operations. Closes #2010.

* Fix collation error. (#2014)

* #2015 sp_BlitzCache sorting in Azure SQL DB (#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes #2015.

* #2024 sp_BlitzQueryStore s.is_cursor error (#2025)

Changed alias on a temp table to match other nearby aliases. Closes #2024.

* First responder consistency check (#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* #1994 sp_Blitz version checking (#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes #1994.

* #1944 sp_BlitzIndex ignore databases (#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes #1944.

* #2009 sp_BlitzFirst call BC differently (#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes #2009.

* #2026 sp_BlitzCache show multiple plan count (#2031)

Closes #2026.

* #2017 sp_Blitz Evaluation Edition expiration check (#2032)

Closes #2017.

* #2018 sp_BlitzCache arith overflow (#2033)

Changing MONEY on totals to BIGINT. Closes #2018.

* #2019 sp_BlitzCache air_quote_actual plans (#2034)

Closes #2019.

* Add END in the right spot for IF @Help = 1 (#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* #2037 sp_BlitzLock support for AWS RDS (#2038)

Skips update stats with options that RDS doesn't support. Closes #2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (#2040)

* #2042 implicit transaction troubleshooting (#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes #2042.

* edit hyperlink (#2056)

* add @OutputType = 'XML' (#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue #2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* #2067 Updating directory "/" fixing to work with URLs (#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* #2076 sp_BlitzIndex columnstore to table (#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes #2076.

* @2060 sp_BlitzFirst 2TB RAM (#2086)

Casting RAM as a BIGINT instead of INT. Closes #2060.

* #2053 sp_BlitzIndex ignoring databases (#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes #2053.

* #2022 sp_BlitzCache disabling air_quote_actuals (#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes #2022.

* #2044 sp_Blitz new power mode (#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes #2044.

* #2062 sp_BlitzFirst false alarm on index reorgs (#2091)

Filtering for sql_text not like %alter index%'. Closes #2062 with duct tape.

* #2052 sp_BlitzCache prioritization (#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes #2052.

* #2070 sp_BlitzCache duplicated index count (#2093)

Filters index recommendations by spid. Closes #2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.
BrentOzar added a commit that referenced this issue Aug 26, 2019
* #2005 sp_Blitz version numbers (#2006)

Working on #2005.

* #2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes #2005.

* #2010 sp_Blitz paused online index operations (#2011)

Add warning for rows in sys.index_resumable_operations. Closes #2010.

* Fix collation error. (#2014)

* #2015 sp_BlitzCache sorting in Azure SQL DB (#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes #2015.

* #2024 sp_BlitzQueryStore s.is_cursor error (#2025)

Changed alias on a temp table to match other nearby aliases. Closes #2024.

* First responder consistency check (#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* #1994 sp_Blitz version checking (#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes #1994.

* #1944 sp_BlitzIndex ignore databases (#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes #1944.

* #2009 sp_BlitzFirst call BC differently (#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes #2009.

* #2026 sp_BlitzCache show multiple plan count (#2031)

Closes #2026.

* #2017 sp_Blitz Evaluation Edition expiration check (#2032)

Closes #2017.

* #2018 sp_BlitzCache arith overflow (#2033)

Changing MONEY on totals to BIGINT. Closes #2018.

* #2019 sp_BlitzCache air_quote_actual plans (#2034)

Closes #2019.

* Add END in the right spot for IF @Help = 1 (#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* #2037 sp_BlitzLock support for AWS RDS (#2038)

Skips update stats with options that RDS doesn't support. Closes #2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (#2040)

* #2042 implicit transaction troubleshooting (#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes #2042.

* edit hyperlink (#2056)

* add @OutputType = 'XML' (#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue #2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* #2067 Updating directory "/" fixing to work with URLs (#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* #2076 sp_BlitzIndex columnstore to table (#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes #2076.

* @2060 sp_BlitzFirst 2TB RAM (#2086)

Casting RAM as a BIGINT instead of INT. Closes #2060.

* #2053 sp_BlitzIndex ignoring databases (#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes #2053.

* #2022 sp_BlitzCache disabling air_quote_actuals (#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes #2022.

* #2044 sp_Blitz new power mode (#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes #2044.

* #2062 sp_BlitzFirst false alarm on index reorgs (#2091)

Filtering for sql_text not like %alter index%'. Closes #2062 with duct tape.

* #2052 sp_BlitzCache prioritization (#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes #2052.

* #2070 sp_BlitzCache duplicated index count (#2093)

Filters index recommendations by spid. Closes #2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.
luporpi added a commit to luporpi/_rpiNET_SSFRK-luporpi that referenced this issue Sep 9, 2019
BrentOzar added a commit that referenced this issue Sep 22, 2019
* #2005 sp_Blitz version numbers (#2006)

Working on #2005.

* #2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes #2005.

* #2010 sp_Blitz paused online index operations (#2011)

Add warning for rows in sys.index_resumable_operations. Closes #2010.

* Fix collation error. (#2014)

* #2015 sp_BlitzCache sorting in Azure SQL DB (#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes #2015.

* #2024 sp_BlitzQueryStore s.is_cursor error (#2025)

Changed alias on a temp table to match other nearby aliases. Closes #2024.

* First responder consistency check (#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* #1994 sp_Blitz version checking (#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes #1994.

* #1944 sp_BlitzIndex ignore databases (#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes #1944.

* #2009 sp_BlitzFirst call BC differently (#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes #2009.

* #2026 sp_BlitzCache show multiple plan count (#2031)

Closes #2026.

* #2017 sp_Blitz Evaluation Edition expiration check (#2032)

Closes #2017.

* #2018 sp_BlitzCache arith overflow (#2033)

Changing MONEY on totals to BIGINT. Closes #2018.

* #2019 sp_BlitzCache air_quote_actual plans (#2034)

Closes #2019.

* Add END in the right spot for IF @Help = 1 (#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* #2037 sp_BlitzLock support for AWS RDS (#2038)

Skips update stats with options that RDS doesn't support. Closes #2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (#2040)

* #2042 implicit transaction troubleshooting (#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes #2042.

* edit hyperlink (#2056)

* add @OutputType = 'XML' (#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue #2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* #2067 Updating directory "/" fixing to work with URLs (#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* #2076 sp_BlitzIndex columnstore to table (#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes #2076.

* @2060 sp_BlitzFirst 2TB RAM (#2086)

Casting RAM as a BIGINT instead of INT. Closes #2060.

* #2053 sp_BlitzIndex ignoring databases (#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes #2053.

* #2022 sp_BlitzCache disabling air_quote_actuals (#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes #2022.

* #2044 sp_Blitz new power mode (#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes #2044.

* #2062 sp_BlitzFirst false alarm on index reorgs (#2091)

Filtering for sql_text not like %alter index%'. Closes #2062 with duct tape.

* #2052 sp_BlitzCache prioritization (#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes #2052.

* #2070 sp_BlitzCache duplicated index count (#2093)

Filters index recommendations by spid. Closes #2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.

* #2097 sp_DatabaseRestore sysname caps (#2100)

Change from uppercase to lowercase for case-sensitive systems. Closes #2097.

* Issue 2063 selects with writes (#2101)

* Update sp_BlitzCache.sql

Adds check for selects that cause writes.

* Update BC docs

Adds a line to the documentation for BlitzCache, tidies up warning table message.

* Fix compression query perf (#2103)

Breaking this up into #temp tables has made it much faster on servers with many partitions.

* Issue 2051 query hash sort (#2102)

* Add query hash sort order

Grabs top10 highest cpu consuming plans with highest count of query hashes (multiple plans), and runs BlitsCache to find them.

* add a word

why not?

* Tweaks for query hash

* URL housekeeping (#2098)

* New Zealand is a real place and it's offensive for you to suggest otherwise 🥝

* revert edits to Install* scripts

* #2111 sp_BlitzCache missing union all (#2112)

Cleans up the documentation, closes #2111.

* Added Uninstaller Script (#2105)

* Added Uninstaller Script

Fulfills request #2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Remove stray semicolon (#2115)

Closes #2114 

Semicolon throws syntax error.

* Fix roll up where clause (#2116)

Closes #2113 

Where clause should only look at flagged lines.

* #2096 sp_BlitzFirst BST compatibility (#2117)

Not really about BST, heh, but just using the wrong date/time format. Closes #2096.

* 2109_sp_BlitzCache_AirQuoteActuals (#2118)

If the AirQuoteActual plan is longer than the regular plan, use it. Closes #2109.

* #2119 2019-09 release prep (#2120)

Bumping version numbers, dates, install scripts. Closes #2119.
BrentOzar added a commit that referenced this issue Oct 24, 2019
* #2005 sp_Blitz version numbers (#2006)

Working on #2005.

* #2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes #2005.

* #2010 sp_Blitz paused online index operations (#2011)

Add warning for rows in sys.index_resumable_operations. Closes #2010.

* Fix collation error. (#2014)

* #2015 sp_BlitzCache sorting in Azure SQL DB (#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes #2015.

* #2024 sp_BlitzQueryStore s.is_cursor error (#2025)

Changed alias on a temp table to match other nearby aliases. Closes #2024.

* First responder consistency check (#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* #1994 sp_Blitz version checking (#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes #1994.

* #1944 sp_BlitzIndex ignore databases (#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes #1944.

* #2009 sp_BlitzFirst call BC differently (#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes #2009.

* #2026 sp_BlitzCache show multiple plan count (#2031)

Closes #2026.

* #2017 sp_Blitz Evaluation Edition expiration check (#2032)

Closes #2017.

* #2018 sp_BlitzCache arith overflow (#2033)

Changing MONEY on totals to BIGINT. Closes #2018.

* #2019 sp_BlitzCache air_quote_actual plans (#2034)

Closes #2019.

* Add END in the right spot for IF @Help = 1 (#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* #2037 sp_BlitzLock support for AWS RDS (#2038)

Skips update stats with options that RDS doesn't support. Closes #2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (#2040)

* #2042 implicit transaction troubleshooting (#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes #2042.

* edit hyperlink (#2056)

* add @OutputType = 'XML' (#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue #2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* #2067 Updating directory "/" fixing to work with URLs (#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* #2076 sp_BlitzIndex columnstore to table (#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes #2076.

* @2060 sp_BlitzFirst 2TB RAM (#2086)

Casting RAM as a BIGINT instead of INT. Closes #2060.

* #2053 sp_BlitzIndex ignoring databases (#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes #2053.

* #2022 sp_BlitzCache disabling air_quote_actuals (#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes #2022.

* #2044 sp_Blitz new power mode (#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes #2044.

* #2062 sp_BlitzFirst false alarm on index reorgs (#2091)

Filtering for sql_text not like %alter index%'. Closes #2062 with duct tape.

* #2052 sp_BlitzCache prioritization (#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes #2052.

* #2070 sp_BlitzCache duplicated index count (#2093)

Filters index recommendations by spid. Closes #2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.

* #2097 sp_DatabaseRestore sysname caps (#2100)

Change from uppercase to lowercase for case-sensitive systems. Closes #2097.

* Issue 2063 selects with writes (#2101)

* Update sp_BlitzCache.sql

Adds check for selects that cause writes.

* Update BC docs

Adds a line to the documentation for BlitzCache, tidies up warning table message.

* Fix compression query perf (#2103)

Breaking this up into #temp tables has made it much faster on servers with many partitions.

* Issue 2051 query hash sort (#2102)

* Add query hash sort order

Grabs top10 highest cpu consuming plans with highest count of query hashes (multiple plans), and runs BlitsCache to find them.

* add a word

why not?

* Tweaks for query hash

* URL housekeeping (#2098)

* New Zealand is a real place and it's offensive for you to suggest otherwise 🥝

* revert edits to Install* scripts

* #2111 sp_BlitzCache missing union all (#2112)

Cleans up the documentation, closes #2111.

* Added Uninstaller Script (#2105)

* Added Uninstaller Script

Fulfills request #2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Remove stray semicolon (#2115)

Closes #2114 

Semicolon throws syntax error.

* Fix roll up where clause (#2116)

Closes #2113 

Where clause should only look at flagged lines.

* #2096 sp_BlitzFirst BST compatibility (#2117)

Not really about BST, heh, but just using the wrong date/time format. Closes #2096.

* 2109_sp_BlitzCache_AirQuoteActuals (#2118)

If the AirQuoteActual plan is longer than the regular plan, use it. Closes #2109.

* #2119 2019-09 release prep (#2120)

Bumping version numbers, dates, install scripts. Closes #2119.

* #2122 deprecating sp_foreachdb (#2123)

Moving into the deprecated folder. Closes #2122.

* #2124 Fix BlitzQueryStore Edition Check Comparison (#2125)

* Issue 2127/fvanderhaegen (#2129)

* #2127 sp_DatabaseRestore added parameters

Blocksize, buffercount and maxtransfersize are added

* Update sp_DatabaseRestore.sql

* Update sp_BlitzIndex.sql (#2126)

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* #2130 sp_Blitz blocked due to DMV bug (#2131)

Added new SkipBlockingChecks parameter. Closes #2130.

* Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3. (#2133)

* Update sp_BlitzIndex.sql

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* Update sp_BlitzIndex.sql

Fix Conversion failed when converting the varchar value 'x' to data type int.

* #2135 sp_BlitzFirst log message dates (#2138)

Closes #2135.

* #2136 Fix BlitzQS DB Name Comparison for Query Store Check. (#2137)

* #2141 sp_Blitz UNC backup check (#2142)

Closes #2141.

* #2143 sp_BlitzIndex missing index sort (#2144)

Now ignores the old is_low column. Closes #2143.

* corrected fix for issue #2149 (#2151)

* fix for issue #2149

unused heaps were reported as used, see #2149

* corrected fix for issue #2149

* README.md clarifying StopAt parameter

Clarifying sp_DatabaseRestore's StopAt parameter for #2152.

* #2156 sp_BlitzCache query hash sorting (#2157)

Can now sort by query hash plus a second sort field, and avoids calling the proc again. Closes #2156.

* #2147 sp_BlitzLock in local time (#2158)

Filters & displays local time instead of UTC. Closes #2147.

* #2159 sp_BlitzFirst calling sp_BlitzWho (#2160)

Fixes a few different related bugs - see the issue for details. Closes #2159.

* #2155 sp_BlitzFirst adding SkipAnalysis param (#2161)

Passes BlitzCacheSkipAnalysis parameter to sp_BlitzCache. Closes #2155.

* #2162 add JoinKey columns to output tables (#2163)

Closes #2162.

* #2164 sp_BlitzFirst prepping BlitzCache joins (#2165)

Adding query hash to outputs to join to sp_BlitzCache data. Also updating 2017 Hekaton counters while I'm in here. Closes #2162.

* #2166 sp_BlitzWho alter table order (#2167)

Create the table, THEN alter it, you moron. Closes #2166.

* #2168 sp_BlitzCache MinutesBack (#2171)

Now works with SortOrder = 'all'. Closes #2168.

* #2170 sp_BlitzCache SortOrder All Dupes (#2173)

Plans from the SortOrder = 'spills' were being classified as 'memory grant'. Closes #2170.

* Updating README.md for SortOrder = all

Clarifying how sp_BlitzCache SortOrder All works. Related to #2170.

* 2019-10 Release

Bumping version numbers.
BrentOzar added a commit that referenced this issue Dec 2, 2019
* #2005 sp_Blitz version numbers (#2006)

Working on #2005.

* #2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes #2005.

* #2010 sp_Blitz paused online index operations (#2011)

Add warning for rows in sys.index_resumable_operations. Closes #2010.

* Fix collation error. (#2014)

* #2015 sp_BlitzCache sorting in Azure SQL DB (#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes #2015.

* #2024 sp_BlitzQueryStore s.is_cursor error (#2025)

Changed alias on a temp table to match other nearby aliases. Closes #2024.

* First responder consistency check (#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* #1994 sp_Blitz version checking (#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes #1994.

* #1944 sp_BlitzIndex ignore databases (#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes #1944.

* #2009 sp_BlitzFirst call BC differently (#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes #2009.

* #2026 sp_BlitzCache show multiple plan count (#2031)

Closes #2026.

* #2017 sp_Blitz Evaluation Edition expiration check (#2032)

Closes #2017.

* #2018 sp_BlitzCache arith overflow (#2033)

Changing MONEY on totals to BIGINT. Closes #2018.

* #2019 sp_BlitzCache air_quote_actual plans (#2034)

Closes #2019.

* Add END in the right spot for IF @Help = 1 (#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* #2037 sp_BlitzLock support for AWS RDS (#2038)

Skips update stats with options that RDS doesn't support. Closes #2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (#2040)

* #2042 implicit transaction troubleshooting (#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes #2042.

* edit hyperlink (#2056)

* add @OutputType = 'XML' (#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue #2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* #2067 Updating directory "/" fixing to work with URLs (#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* #2076 sp_BlitzIndex columnstore to table (#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes #2076.

* @2060 sp_BlitzFirst 2TB RAM (#2086)

Casting RAM as a BIGINT instead of INT. Closes #2060.

* #2053 sp_BlitzIndex ignoring databases (#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes #2053.

* #2022 sp_BlitzCache disabling air_quote_actuals (#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes #2022.

* #2044 sp_Blitz new power mode (#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes #2044.

* #2062 sp_BlitzFirst false alarm on index reorgs (#2091)

Filtering for sql_text not like %alter index%'. Closes #2062 with duct tape.

* #2052 sp_BlitzCache prioritization (#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes #2052.

* #2070 sp_BlitzCache duplicated index count (#2093)

Filters index recommendations by spid. Closes #2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.

* #2097 sp_DatabaseRestore sysname caps (#2100)

Change from uppercase to lowercase for case-sensitive systems. Closes #2097.

* Issue 2063 selects with writes (#2101)

* Update sp_BlitzCache.sql

Adds check for selects that cause writes.

* Update BC docs

Adds a line to the documentation for BlitzCache, tidies up warning table message.

* Fix compression query perf (#2103)

Breaking this up into #temp tables has made it much faster on servers with many partitions.

* Issue 2051 query hash sort (#2102)

* Add query hash sort order

Grabs top10 highest cpu consuming plans with highest count of query hashes (multiple plans), and runs BlitsCache to find them.

* add a word

why not?

* Tweaks for query hash

* URL housekeeping (#2098)

* New Zealand is a real place and it's offensive for you to suggest otherwise 🥝

* revert edits to Install* scripts

* #2111 sp_BlitzCache missing union all (#2112)

Cleans up the documentation, closes #2111.

* Added Uninstaller Script (#2105)

* Added Uninstaller Script

Fulfills request #2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Remove stray semicolon (#2115)

Closes #2114 

Semicolon throws syntax error.

* Fix roll up where clause (#2116)

Closes #2113 

Where clause should only look at flagged lines.

* #2096 sp_BlitzFirst BST compatibility (#2117)

Not really about BST, heh, but just using the wrong date/time format. Closes #2096.

* 2109_sp_BlitzCache_AirQuoteActuals (#2118)

If the AirQuoteActual plan is longer than the regular plan, use it. Closes #2109.

* #2119 2019-09 release prep (#2120)

Bumping version numbers, dates, install scripts. Closes #2119.

* #2122 deprecating sp_foreachdb (#2123)

Moving into the deprecated folder. Closes #2122.

* #2124 Fix BlitzQueryStore Edition Check Comparison (#2125)

* Issue 2127/fvanderhaegen (#2129)

* #2127 sp_DatabaseRestore added parameters

Blocksize, buffercount and maxtransfersize are added

* Update sp_DatabaseRestore.sql

* Update sp_BlitzIndex.sql (#2126)

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* #2130 sp_Blitz blocked due to DMV bug (#2131)

Added new SkipBlockingChecks parameter. Closes #2130.

* Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3. (#2133)

* Update sp_BlitzIndex.sql

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* Update sp_BlitzIndex.sql

Fix Conversion failed when converting the varchar value 'x' to data type int.

* #2135 sp_BlitzFirst log message dates (#2138)

Closes #2135.

* #2136 Fix BlitzQS DB Name Comparison for Query Store Check. (#2137)

* #2141 sp_Blitz UNC backup check (#2142)

Closes #2141.

* #2143 sp_BlitzIndex missing index sort (#2144)

Now ignores the old is_low column. Closes #2143.

* corrected fix for issue #2149 (#2151)

* fix for issue #2149

unused heaps were reported as used, see #2149

* corrected fix for issue #2149

* README.md clarifying StopAt parameter

Clarifying sp_DatabaseRestore's StopAt parameter for #2152.

* #2156 sp_BlitzCache query hash sorting (#2157)

Can now sort by query hash plus a second sort field, and avoids calling the proc again. Closes #2156.

* #2147 sp_BlitzLock in local time (#2158)

Filters & displays local time instead of UTC. Closes #2147.

* #2159 sp_BlitzFirst calling sp_BlitzWho (#2160)

Fixes a few different related bugs - see the issue for details. Closes #2159.

* #2155 sp_BlitzFirst adding SkipAnalysis param (#2161)

Passes BlitzCacheSkipAnalysis parameter to sp_BlitzCache. Closes #2155.

* #2162 add JoinKey columns to output tables (#2163)

Closes #2162.

* #2164 sp_BlitzFirst prepping BlitzCache joins (#2165)

Adding query hash to outputs to join to sp_BlitzCache data. Also updating 2017 Hekaton counters while I'm in here. Closes #2162.

* #2166 sp_BlitzWho alter table order (#2167)

Create the table, THEN alter it, you moron. Closes #2166.

* #2168 sp_BlitzCache MinutesBack (#2171)

Now works with SortOrder = 'all'. Closes #2168.

* #2170 sp_BlitzCache SortOrder All Dupes (#2173)

Plans from the SortOrder = 'spills' were being classified as 'memory grant'. Closes #2170.

* Updating README.md for SortOrder = all

Clarifying how sp_BlitzCache SortOrder All works. Related to #2170.

* 2019-10 Release

Bumping version numbers.

* #2190 update readme (#2192)

To show sp_BlitzIndex support for OutputTableName is only for Mode = 2. Closes #2190.

* Various Typo Fixes (#2186)

* Added Uninstaller Script

Fulfills request #2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Update SqlServerVersions.sql

Fixes #2181

* Fix Typo in BlitzFirst

FIxes #2184

* Fixed dumb decisions

* Update SqlServerVersions.sql (#2195)

Adding SQL 2019 GDR for #2181.

* #2183 sp_BlitzIndex ginormous index support (#2196)

When logging to table, use MAX data sizes for drop_tsql, create_tsql, index_definition. Closes #2183.

* sp_Blitz - removing sp_foreachdb

Since we no longer need to check whether it's outdated.

* #2177 sp_BlitzIndex add drop T-SQL (#2197)

To table-level output. Closes #2177.

* #2172 sp_BlitzCache BringThePain (#2201)

If you use SortOrder = all and Top > 10, you now have to set BringThePain = 1. Closes #2172.

* sp_BlitzCache tweaks to Unicode string building

* #2203 prepping 2019_12 release (#2204)

Bumping version numbers, dates, building combined installer script. Closes #2203.
BrentOzar added a commit that referenced this issue Dec 2, 2019
* #2005 sp_Blitz version numbers (#2006)

Working on #2005.

* #2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes #2005.

* #2010 sp_Blitz paused online index operations (#2011)

Add warning for rows in sys.index_resumable_operations. Closes #2010.

* Fix collation error. (#2014)

* #2015 sp_BlitzCache sorting in Azure SQL DB (#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes #2015.

* #2024 sp_BlitzQueryStore s.is_cursor error (#2025)

Changed alias on a temp table to match other nearby aliases. Closes #2024.

* First responder consistency check (#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* #1994 sp_Blitz version checking (#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes #1994.

* #1944 sp_BlitzIndex ignore databases (#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes #1944.

* #2009 sp_BlitzFirst call BC differently (#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes #2009.

* #2026 sp_BlitzCache show multiple plan count (#2031)

Closes #2026.

* #2017 sp_Blitz Evaluation Edition expiration check (#2032)

Closes #2017.

* #2018 sp_BlitzCache arith overflow (#2033)

Changing MONEY on totals to BIGINT. Closes #2018.

* #2019 sp_BlitzCache air_quote_actual plans (#2034)

Closes #2019.

* Add END in the right spot for IF @Help = 1 (#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* #2037 sp_BlitzLock support for AWS RDS (#2038)

Skips update stats with options that RDS doesn't support. Closes #2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (#2040)

* #2042 implicit transaction troubleshooting (#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes #2042.

* edit hyperlink (#2056)

* add @OutputType = 'XML' (#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue #2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* #2067 Updating directory "/" fixing to work with URLs (#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* #2076 sp_BlitzIndex columnstore to table (#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes #2076.

* @2060 sp_BlitzFirst 2TB RAM (#2086)

Casting RAM as a BIGINT instead of INT. Closes #2060.

* #2053 sp_BlitzIndex ignoring databases (#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes #2053.

* #2022 sp_BlitzCache disabling air_quote_actuals (#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes #2022.

* #2044 sp_Blitz new power mode (#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes #2044.

* #2062 sp_BlitzFirst false alarm on index reorgs (#2091)

Filtering for sql_text not like %alter index%'. Closes #2062 with duct tape.

* #2052 sp_BlitzCache prioritization (#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes #2052.

* #2070 sp_BlitzCache duplicated index count (#2093)

Filters index recommendations by spid. Closes #2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.

* #2097 sp_DatabaseRestore sysname caps (#2100)

Change from uppercase to lowercase for case-sensitive systems. Closes #2097.

* Issue 2063 selects with writes (#2101)

* Update sp_BlitzCache.sql

Adds check for selects that cause writes.

* Update BC docs

Adds a line to the documentation for BlitzCache, tidies up warning table message.

* Fix compression query perf (#2103)

Breaking this up into #temp tables has made it much faster on servers with many partitions.

* Issue 2051 query hash sort (#2102)

* Add query hash sort order

Grabs top10 highest cpu consuming plans with highest count of query hashes (multiple plans), and runs BlitsCache to find them.

* add a word

why not?

* Tweaks for query hash

* URL housekeeping (#2098)

* New Zealand is a real place and it's offensive for you to suggest otherwise 🥝

* revert edits to Install* scripts

* #2111 sp_BlitzCache missing union all (#2112)

Cleans up the documentation, closes #2111.

* Added Uninstaller Script (#2105)

* Added Uninstaller Script

Fulfills request #2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Remove stray semicolon (#2115)

Closes #2114 

Semicolon throws syntax error.

* Fix roll up where clause (#2116)

Closes #2113 

Where clause should only look at flagged lines.

* #2096 sp_BlitzFirst BST compatibility (#2117)

Not really about BST, heh, but just using the wrong date/time format. Closes #2096.

* 2109_sp_BlitzCache_AirQuoteActuals (#2118)

If the AirQuoteActual plan is longer than the regular plan, use it. Closes #2109.

* #2119 2019-09 release prep (#2120)

Bumping version numbers, dates, install scripts. Closes #2119.

* #2122 deprecating sp_foreachdb (#2123)

Moving into the deprecated folder. Closes #2122.

* #2124 Fix BlitzQueryStore Edition Check Comparison (#2125)

* Issue 2127/fvanderhaegen (#2129)

* #2127 sp_DatabaseRestore added parameters

Blocksize, buffercount and maxtransfersize are added

* Update sp_DatabaseRestore.sql

* Update sp_BlitzIndex.sql (#2126)

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* #2130 sp_Blitz blocked due to DMV bug (#2131)

Added new SkipBlockingChecks parameter. Closes #2130.

* Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3. (#2133)

* Update sp_BlitzIndex.sql

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* Update sp_BlitzIndex.sql

Fix Conversion failed when converting the varchar value 'x' to data type int.

* #2135 sp_BlitzFirst log message dates (#2138)

Closes #2135.

* #2136 Fix BlitzQS DB Name Comparison for Query Store Check. (#2137)

* #2141 sp_Blitz UNC backup check (#2142)

Closes #2141.

* #2143 sp_BlitzIndex missing index sort (#2144)

Now ignores the old is_low column. Closes #2143.

* corrected fix for issue #2149 (#2151)

* fix for issue #2149

unused heaps were reported as used, see #2149

* corrected fix for issue #2149

* README.md clarifying StopAt parameter

Clarifying sp_DatabaseRestore's StopAt parameter for #2152.

* #2156 sp_BlitzCache query hash sorting (#2157)

Can now sort by query hash plus a second sort field, and avoids calling the proc again. Closes #2156.

* #2147 sp_BlitzLock in local time (#2158)

Filters & displays local time instead of UTC. Closes #2147.

* #2159 sp_BlitzFirst calling sp_BlitzWho (#2160)

Fixes a few different related bugs - see the issue for details. Closes #2159.

* #2155 sp_BlitzFirst adding SkipAnalysis param (#2161)

Passes BlitzCacheSkipAnalysis parameter to sp_BlitzCache. Closes #2155.

* #2162 add JoinKey columns to output tables (#2163)

Closes #2162.

* #2164 sp_BlitzFirst prepping BlitzCache joins (#2165)

Adding query hash to outputs to join to sp_BlitzCache data. Also updating 2017 Hekaton counters while I'm in here. Closes #2162.

* #2166 sp_BlitzWho alter table order (#2167)

Create the table, THEN alter it, you moron. Closes #2166.

* #2168 sp_BlitzCache MinutesBack (#2171)

Now works with SortOrder = 'all'. Closes #2168.

* #2170 sp_BlitzCache SortOrder All Dupes (#2173)

Plans from the SortOrder = 'spills' were being classified as 'memory grant'. Closes #2170.

* Updating README.md for SortOrder = all

Clarifying how sp_BlitzCache SortOrder All works. Related to #2170.

* 2019-10 Release

Bumping version numbers.

* #2190 update readme (#2192)

To show sp_BlitzIndex support for OutputTableName is only for Mode = 2. Closes #2190.

* Various Typo Fixes (#2186)

* Added Uninstaller Script

Fulfills request #2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Update SqlServerVersions.sql

Fixes #2181

* Fix Typo in BlitzFirst

FIxes #2184

* Fixed dumb decisions

* Update SqlServerVersions.sql (#2195)

Adding SQL 2019 GDR for #2181.

* #2183 sp_BlitzIndex ginormous index support (#2196)

When logging to table, use MAX data sizes for drop_tsql, create_tsql, index_definition. Closes #2183.

* sp_Blitz - removing sp_foreachdb

Since we no longer need to check whether it's outdated.

* #2177 sp_BlitzIndex add drop T-SQL (#2197)

To table-level output. Closes #2177.

* #2172 sp_BlitzCache BringThePain (#2201)

If you use SortOrder = all and Top > 10, you now have to set BringThePain = 1. Closes #2172.

* sp_BlitzCache tweaks to Unicode string building

* #2203 prepping 2019_12 release (#2204)

Bumping version numbers, dates, building combined installer script. Closes #2203.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Dec 26, 2019
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Dec 26, 2019
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Dec 26, 2019
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.

* BrentOzarULTD#2097 sp_DatabaseRestore sysname caps (BrentOzarULTD#2100)

Change from uppercase to lowercase for case-sensitive systems. Closes BrentOzarULTD#2097.

* Issue 2063 selects with writes (BrentOzarULTD#2101)

* Update sp_BlitzCache.sql

Adds check for selects that cause writes.

* Update BC docs

Adds a line to the documentation for BlitzCache, tidies up warning table message.

* Fix compression query perf (BrentOzarULTD#2103)

Breaking this up into #temp tables has made it much faster on servers with many partitions.

* Issue 2051 query hash sort (BrentOzarULTD#2102)

* Add query hash sort order

Grabs top10 highest cpu consuming plans with highest count of query hashes (multiple plans), and runs BlitsCache to find them.

* add a word

why not?

* Tweaks for query hash

* URL housekeeping (BrentOzarULTD#2098)

* New Zealand is a real place and it's offensive for you to suggest otherwise 🥝

* revert edits to Install* scripts

* BrentOzarULTD#2111 sp_BlitzCache missing union all (BrentOzarULTD#2112)

Cleans up the documentation, closes BrentOzarULTD#2111.

* Added Uninstaller Script (BrentOzarULTD#2105)

* Added Uninstaller Script

Fulfills request BrentOzarULTD#2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Remove stray semicolon (BrentOzarULTD#2115)

Closes BrentOzarULTD#2114 

Semicolon throws syntax error.

* Fix roll up where clause (BrentOzarULTD#2116)

Closes BrentOzarULTD#2113 

Where clause should only look at flagged lines.

* BrentOzarULTD#2096 sp_BlitzFirst BST compatibility (BrentOzarULTD#2117)

Not really about BST, heh, but just using the wrong date/time format. Closes BrentOzarULTD#2096.

* 2109_sp_BlitzCache_AirQuoteActuals (BrentOzarULTD#2118)

If the AirQuoteActual plan is longer than the regular plan, use it. Closes BrentOzarULTD#2109.

* BrentOzarULTD#2119 2019-09 release prep (BrentOzarULTD#2120)

Bumping version numbers, dates, install scripts. Closes BrentOzarULTD#2119.

* BrentOzarULTD#2122 deprecating sp_foreachdb (BrentOzarULTD#2123)

Moving into the deprecated folder. Closes BrentOzarULTD#2122.

* BrentOzarULTD#2124 Fix BlitzQueryStore Edition Check Comparison (BrentOzarULTD#2125)

* Issue 2127/fvanderhaegen (BrentOzarULTD#2129)

* BrentOzarULTD#2127 sp_DatabaseRestore added parameters

Blocksize, buffercount and maxtransfersize are added

* Update sp_DatabaseRestore.sql

* Update sp_BlitzIndex.sql (BrentOzarULTD#2126)

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* BrentOzarULTD#2130 sp_Blitz blocked due to DMV bug (BrentOzarULTD#2131)

Added new SkipBlockingChecks parameter. Closes BrentOzarULTD#2130.

* Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3. (BrentOzarULTD#2133)

* Update sp_BlitzIndex.sql

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* Update sp_BlitzIndex.sql

Fix Conversion failed when converting the varchar value 'x' to data type int.

* BrentOzarULTD#2135 sp_BlitzFirst log message dates (BrentOzarULTD#2138)

Closes BrentOzarULTD#2135.

* BrentOzarULTD#2136 Fix BlitzQS DB Name Comparison for Query Store Check. (BrentOzarULTD#2137)

* BrentOzarULTD#2141 sp_Blitz UNC backup check (BrentOzarULTD#2142)

Closes BrentOzarULTD#2141.

* BrentOzarULTD#2143 sp_BlitzIndex missing index sort (BrentOzarULTD#2144)

Now ignores the old is_low column. Closes BrentOzarULTD#2143.

* corrected fix for issue BrentOzarULTD#2149 (BrentOzarULTD#2151)

* fix for issue BrentOzarULTD#2149

unused heaps were reported as used, see BrentOzarULTD#2149

* corrected fix for issue BrentOzarULTD#2149

* README.md clarifying StopAt parameter

Clarifying sp_DatabaseRestore's StopAt parameter for BrentOzarULTD#2152.

* BrentOzarULTD#2156 sp_BlitzCache query hash sorting (BrentOzarULTD#2157)

Can now sort by query hash plus a second sort field, and avoids calling the proc again. Closes BrentOzarULTD#2156.

* BrentOzarULTD#2147 sp_BlitzLock in local time (BrentOzarULTD#2158)

Filters & displays local time instead of UTC. Closes BrentOzarULTD#2147.

* BrentOzarULTD#2159 sp_BlitzFirst calling sp_BlitzWho (BrentOzarULTD#2160)

Fixes a few different related bugs - see the issue for details. Closes BrentOzarULTD#2159.

* BrentOzarULTD#2155 sp_BlitzFirst adding SkipAnalysis param (BrentOzarULTD#2161)

Passes BlitzCacheSkipAnalysis parameter to sp_BlitzCache. Closes BrentOzarULTD#2155.

* BrentOzarULTD#2162 add JoinKey columns to output tables (BrentOzarULTD#2163)

Closes BrentOzarULTD#2162.

* BrentOzarULTD#2164 sp_BlitzFirst prepping BlitzCache joins (BrentOzarULTD#2165)

Adding query hash to outputs to join to sp_BlitzCache data. Also updating 2017 Hekaton counters while I'm in here. Closes BrentOzarULTD#2162.

* BrentOzarULTD#2166 sp_BlitzWho alter table order (BrentOzarULTD#2167)

Create the table, THEN alter it, you moron. Closes BrentOzarULTD#2166.

* BrentOzarULTD#2168 sp_BlitzCache MinutesBack (BrentOzarULTD#2171)

Now works with SortOrder = 'all'. Closes BrentOzarULTD#2168.

* BrentOzarULTD#2170 sp_BlitzCache SortOrder All Dupes (BrentOzarULTD#2173)

Plans from the SortOrder = 'spills' were being classified as 'memory grant'. Closes BrentOzarULTD#2170.

* Updating README.md for SortOrder = all

Clarifying how sp_BlitzCache SortOrder All works. Related to BrentOzarULTD#2170.

* 2019-10 Release

Bumping version numbers.

* BrentOzarULTD#2190 update readme (BrentOzarULTD#2192)

To show sp_BlitzIndex support for OutputTableName is only for Mode = 2. Closes BrentOzarULTD#2190.

* Various Typo Fixes (BrentOzarULTD#2186)

* Added Uninstaller Script

Fulfills request BrentOzarULTD#2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Update SqlServerVersions.sql

Fixes BrentOzarULTD#2181

* Fix Typo in BlitzFirst

FIxes BrentOzarULTD#2184

* Fixed dumb decisions

* Update SqlServerVersions.sql (BrentOzarULTD#2195)

Adding SQL 2019 GDR for BrentOzarULTD#2181.

* BrentOzarULTD#2183 sp_BlitzIndex ginormous index support (BrentOzarULTD#2196)

When logging to table, use MAX data sizes for drop_tsql, create_tsql, index_definition. Closes BrentOzarULTD#2183.

* sp_Blitz - removing sp_foreachdb

Since we no longer need to check whether it's outdated.

* BrentOzarULTD#2177 sp_BlitzIndex add drop T-SQL (BrentOzarULTD#2197)

To table-level output. Closes BrentOzarULTD#2177.

* BrentOzarULTD#2172 sp_BlitzCache BringThePain (BrentOzarULTD#2201)

If you use SortOrder = all and Top > 10, you now have to set BringThePain = 1. Closes BrentOzarULTD#2172.

* sp_BlitzCache tweaks to Unicode string building

* BrentOzarULTD#2203 prepping 2019_12 release (BrentOzarULTD#2204)

Bumping version numbers, dates, building combined installer script. Closes BrentOzarULTD#2203.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Dec 26, 2019
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Dec 26, 2019
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Dec 26, 2019
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Dec 26, 2019
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Jan 8, 2020
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Jan 8, 2020
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Jan 8, 2020
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.

* BrentOzarULTD#2097 sp_DatabaseRestore sysname caps (BrentOzarULTD#2100)

Change from uppercase to lowercase for case-sensitive systems. Closes BrentOzarULTD#2097.

* Issue 2063 selects with writes (BrentOzarULTD#2101)

* Update sp_BlitzCache.sql

Adds check for selects that cause writes.

* Update BC docs

Adds a line to the documentation for BlitzCache, tidies up warning table message.

* Fix compression query perf (BrentOzarULTD#2103)

Breaking this up into #temp tables has made it much faster on servers with many partitions.

* Issue 2051 query hash sort (BrentOzarULTD#2102)

* Add query hash sort order

Grabs top10 highest cpu consuming plans with highest count of query hashes (multiple plans), and runs BlitsCache to find them.

* add a word

why not?

* Tweaks for query hash

* URL housekeeping (BrentOzarULTD#2098)

* New Zealand is a real place and it's offensive for you to suggest otherwise 🥝

* revert edits to Install* scripts

* BrentOzarULTD#2111 sp_BlitzCache missing union all (BrentOzarULTD#2112)

Cleans up the documentation, closes BrentOzarULTD#2111.

* Added Uninstaller Script (BrentOzarULTD#2105)

* Added Uninstaller Script

Fulfills request BrentOzarULTD#2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Remove stray semicolon (BrentOzarULTD#2115)

Closes BrentOzarULTD#2114 

Semicolon throws syntax error.

* Fix roll up where clause (BrentOzarULTD#2116)

Closes BrentOzarULTD#2113 

Where clause should only look at flagged lines.

* BrentOzarULTD#2096 sp_BlitzFirst BST compatibility (BrentOzarULTD#2117)

Not really about BST, heh, but just using the wrong date/time format. Closes BrentOzarULTD#2096.

* 2109_sp_BlitzCache_AirQuoteActuals (BrentOzarULTD#2118)

If the AirQuoteActual plan is longer than the regular plan, use it. Closes BrentOzarULTD#2109.

* BrentOzarULTD#2119 2019-09 release prep (BrentOzarULTD#2120)

Bumping version numbers, dates, install scripts. Closes BrentOzarULTD#2119.

* BrentOzarULTD#2122 deprecating sp_foreachdb (BrentOzarULTD#2123)

Moving into the deprecated folder. Closes BrentOzarULTD#2122.

* BrentOzarULTD#2124 Fix BlitzQueryStore Edition Check Comparison (BrentOzarULTD#2125)

* Issue 2127/fvanderhaegen (BrentOzarULTD#2129)

* BrentOzarULTD#2127 sp_DatabaseRestore added parameters

Blocksize, buffercount and maxtransfersize are added

* Update sp_DatabaseRestore.sql

* Update sp_BlitzIndex.sql (BrentOzarULTD#2126)

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* BrentOzarULTD#2130 sp_Blitz blocked due to DMV bug (BrentOzarULTD#2131)

Added new SkipBlockingChecks parameter. Closes BrentOzarULTD#2130.

* Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3. (BrentOzarULTD#2133)

* Update sp_BlitzIndex.sql

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* Update sp_BlitzIndex.sql

Fix Conversion failed when converting the varchar value 'x' to data type int.

* BrentOzarULTD#2135 sp_BlitzFirst log message dates (BrentOzarULTD#2138)

Closes BrentOzarULTD#2135.

* BrentOzarULTD#2136 Fix BlitzQS DB Name Comparison for Query Store Check. (BrentOzarULTD#2137)

* BrentOzarULTD#2141 sp_Blitz UNC backup check (BrentOzarULTD#2142)

Closes BrentOzarULTD#2141.

* BrentOzarULTD#2143 sp_BlitzIndex missing index sort (BrentOzarULTD#2144)

Now ignores the old is_low column. Closes BrentOzarULTD#2143.

* corrected fix for issue BrentOzarULTD#2149 (BrentOzarULTD#2151)

* fix for issue BrentOzarULTD#2149

unused heaps were reported as used, see BrentOzarULTD#2149

* corrected fix for issue BrentOzarULTD#2149

* README.md clarifying StopAt parameter

Clarifying sp_DatabaseRestore's StopAt parameter for BrentOzarULTD#2152.

* BrentOzarULTD#2156 sp_BlitzCache query hash sorting (BrentOzarULTD#2157)

Can now sort by query hash plus a second sort field, and avoids calling the proc again. Closes BrentOzarULTD#2156.

* BrentOzarULTD#2147 sp_BlitzLock in local time (BrentOzarULTD#2158)

Filters & displays local time instead of UTC. Closes BrentOzarULTD#2147.

* BrentOzarULTD#2159 sp_BlitzFirst calling sp_BlitzWho (BrentOzarULTD#2160)

Fixes a few different related bugs - see the issue for details. Closes BrentOzarULTD#2159.

* BrentOzarULTD#2155 sp_BlitzFirst adding SkipAnalysis param (BrentOzarULTD#2161)

Passes BlitzCacheSkipAnalysis parameter to sp_BlitzCache. Closes BrentOzarULTD#2155.

* BrentOzarULTD#2162 add JoinKey columns to output tables (BrentOzarULTD#2163)

Closes BrentOzarULTD#2162.

* BrentOzarULTD#2164 sp_BlitzFirst prepping BlitzCache joins (BrentOzarULTD#2165)

Adding query hash to outputs to join to sp_BlitzCache data. Also updating 2017 Hekaton counters while I'm in here. Closes BrentOzarULTD#2162.

* BrentOzarULTD#2166 sp_BlitzWho alter table order (BrentOzarULTD#2167)

Create the table, THEN alter it, you moron. Closes BrentOzarULTD#2166.

* BrentOzarULTD#2168 sp_BlitzCache MinutesBack (BrentOzarULTD#2171)

Now works with SortOrder = 'all'. Closes BrentOzarULTD#2168.

* BrentOzarULTD#2170 sp_BlitzCache SortOrder All Dupes (BrentOzarULTD#2173)

Plans from the SortOrder = 'spills' were being classified as 'memory grant'. Closes BrentOzarULTD#2170.

* Updating README.md for SortOrder = all

Clarifying how sp_BlitzCache SortOrder All works. Related to BrentOzarULTD#2170.

* 2019-10 Release

Bumping version numbers.

* BrentOzarULTD#2190 update readme (BrentOzarULTD#2192)

To show sp_BlitzIndex support for OutputTableName is only for Mode = 2. Closes BrentOzarULTD#2190.

* Various Typo Fixes (BrentOzarULTD#2186)

* Added Uninstaller Script

Fulfills request BrentOzarULTD#2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Update SqlServerVersions.sql

Fixes BrentOzarULTD#2181

* Fix Typo in BlitzFirst

FIxes BrentOzarULTD#2184

* Fixed dumb decisions

* Update SqlServerVersions.sql (BrentOzarULTD#2195)

Adding SQL 2019 GDR for BrentOzarULTD#2181.

* BrentOzarULTD#2183 sp_BlitzIndex ginormous index support (BrentOzarULTD#2196)

When logging to table, use MAX data sizes for drop_tsql, create_tsql, index_definition. Closes BrentOzarULTD#2183.

* sp_Blitz - removing sp_foreachdb

Since we no longer need to check whether it's outdated.

* BrentOzarULTD#2177 sp_BlitzIndex add drop T-SQL (BrentOzarULTD#2197)

To table-level output. Closes BrentOzarULTD#2177.

* BrentOzarULTD#2172 sp_BlitzCache BringThePain (BrentOzarULTD#2201)

If you use SortOrder = all and Top > 10, you now have to set BringThePain = 1. Closes BrentOzarULTD#2172.

* sp_BlitzCache tweaks to Unicode string building

* BrentOzarULTD#2203 prepping 2019_12 release (BrentOzarULTD#2204)

Bumping version numbers, dates, building combined installer script. Closes BrentOzarULTD#2203.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Jan 9, 2020
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Jan 9, 2020
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Jan 9, 2020
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.

* BrentOzarULTD#2097 sp_DatabaseRestore sysname caps (BrentOzarULTD#2100)

Change from uppercase to lowercase for case-sensitive systems. Closes BrentOzarULTD#2097.

* Issue 2063 selects with writes (BrentOzarULTD#2101)

* Update sp_BlitzCache.sql

Adds check for selects that cause writes.

* Update BC docs

Adds a line to the documentation for BlitzCache, tidies up warning table message.

* Fix compression query perf (BrentOzarULTD#2103)

Breaking this up into #temp tables has made it much faster on servers with many partitions.

* Issue 2051 query hash sort (BrentOzarULTD#2102)

* Add query hash sort order

Grabs top10 highest cpu consuming plans with highest count of query hashes (multiple plans), and runs BlitsCache to find them.

* add a word

why not?

* Tweaks for query hash

* URL housekeeping (BrentOzarULTD#2098)

* New Zealand is a real place and it's offensive for you to suggest otherwise 🥝

* revert edits to Install* scripts

* BrentOzarULTD#2111 sp_BlitzCache missing union all (BrentOzarULTD#2112)

Cleans up the documentation, closes BrentOzarULTD#2111.

* Added Uninstaller Script (BrentOzarULTD#2105)

* Added Uninstaller Script

Fulfills request BrentOzarULTD#2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Remove stray semicolon (BrentOzarULTD#2115)

Closes BrentOzarULTD#2114 

Semicolon throws syntax error.

* Fix roll up where clause (BrentOzarULTD#2116)

Closes BrentOzarULTD#2113 

Where clause should only look at flagged lines.

* BrentOzarULTD#2096 sp_BlitzFirst BST compatibility (BrentOzarULTD#2117)

Not really about BST, heh, but just using the wrong date/time format. Closes BrentOzarULTD#2096.

* 2109_sp_BlitzCache_AirQuoteActuals (BrentOzarULTD#2118)

If the AirQuoteActual plan is longer than the regular plan, use it. Closes BrentOzarULTD#2109.

* BrentOzarULTD#2119 2019-09 release prep (BrentOzarULTD#2120)

Bumping version numbers, dates, install scripts. Closes BrentOzarULTD#2119.

* BrentOzarULTD#2122 deprecating sp_foreachdb (BrentOzarULTD#2123)

Moving into the deprecated folder. Closes BrentOzarULTD#2122.

* BrentOzarULTD#2124 Fix BlitzQueryStore Edition Check Comparison (BrentOzarULTD#2125)

* Issue 2127/fvanderhaegen (BrentOzarULTD#2129)

* BrentOzarULTD#2127 sp_DatabaseRestore added parameters

Blocksize, buffercount and maxtransfersize are added

* Update sp_DatabaseRestore.sql

* Update sp_BlitzIndex.sql (BrentOzarULTD#2126)

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* BrentOzarULTD#2130 sp_Blitz blocked due to DMV bug (BrentOzarULTD#2131)

Added new SkipBlockingChecks parameter. Closes BrentOzarULTD#2130.

* Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3. (BrentOzarULTD#2133)

* Update sp_BlitzIndex.sql

Fix Cannot resolve collation conflict between "Language_A" and "Language_B" in add operator occurring in ORDER BY statement column 3.

* Update sp_BlitzIndex.sql

Fix Conversion failed when converting the varchar value 'x' to data type int.

* BrentOzarULTD#2135 sp_BlitzFirst log message dates (BrentOzarULTD#2138)

Closes BrentOzarULTD#2135.

* BrentOzarULTD#2136 Fix BlitzQS DB Name Comparison for Query Store Check. (BrentOzarULTD#2137)

* BrentOzarULTD#2141 sp_Blitz UNC backup check (BrentOzarULTD#2142)

Closes BrentOzarULTD#2141.

* BrentOzarULTD#2143 sp_BlitzIndex missing index sort (BrentOzarULTD#2144)

Now ignores the old is_low column. Closes BrentOzarULTD#2143.

* corrected fix for issue BrentOzarULTD#2149 (BrentOzarULTD#2151)

* fix for issue BrentOzarULTD#2149

unused heaps were reported as used, see BrentOzarULTD#2149

* corrected fix for issue BrentOzarULTD#2149

* README.md clarifying StopAt parameter

Clarifying sp_DatabaseRestore's StopAt parameter for BrentOzarULTD#2152.

* BrentOzarULTD#2156 sp_BlitzCache query hash sorting (BrentOzarULTD#2157)

Can now sort by query hash plus a second sort field, and avoids calling the proc again. Closes BrentOzarULTD#2156.

* BrentOzarULTD#2147 sp_BlitzLock in local time (BrentOzarULTD#2158)

Filters & displays local time instead of UTC. Closes BrentOzarULTD#2147.

* BrentOzarULTD#2159 sp_BlitzFirst calling sp_BlitzWho (BrentOzarULTD#2160)

Fixes a few different related bugs - see the issue for details. Closes BrentOzarULTD#2159.

* BrentOzarULTD#2155 sp_BlitzFirst adding SkipAnalysis param (BrentOzarULTD#2161)

Passes BlitzCacheSkipAnalysis parameter to sp_BlitzCache. Closes BrentOzarULTD#2155.

* BrentOzarULTD#2162 add JoinKey columns to output tables (BrentOzarULTD#2163)

Closes BrentOzarULTD#2162.

* BrentOzarULTD#2164 sp_BlitzFirst prepping BlitzCache joins (BrentOzarULTD#2165)

Adding query hash to outputs to join to sp_BlitzCache data. Also updating 2017 Hekaton counters while I'm in here. Closes BrentOzarULTD#2162.

* BrentOzarULTD#2166 sp_BlitzWho alter table order (BrentOzarULTD#2167)

Create the table, THEN alter it, you moron. Closes BrentOzarULTD#2166.

* BrentOzarULTD#2168 sp_BlitzCache MinutesBack (BrentOzarULTD#2171)

Now works with SortOrder = 'all'. Closes BrentOzarULTD#2168.

* BrentOzarULTD#2170 sp_BlitzCache SortOrder All Dupes (BrentOzarULTD#2173)

Plans from the SortOrder = 'spills' were being classified as 'memory grant'. Closes BrentOzarULTD#2170.

* Updating README.md for SortOrder = all

Clarifying how sp_BlitzCache SortOrder All works. Related to BrentOzarULTD#2170.

* 2019-10 Release

Bumping version numbers.

* BrentOzarULTD#2190 update readme (BrentOzarULTD#2192)

To show sp_BlitzIndex support for OutputTableName is only for Mode = 2. Closes BrentOzarULTD#2190.

* Various Typo Fixes (BrentOzarULTD#2186)

* Added Uninstaller Script

Fulfills request BrentOzarULTD#2080

Deletes all the FirstResponderKit procedures from the current DB or all DBs via parameter

* Case sensitive collation fixes

Gotta love those case sensitive servers.

* Update SqlServerVersions.sql

Fixes BrentOzarULTD#2181

* Fix Typo in BlitzFirst

FIxes BrentOzarULTD#2184

* Fixed dumb decisions

* Update SqlServerVersions.sql (BrentOzarULTD#2195)

Adding SQL 2019 GDR for BrentOzarULTD#2181.

* BrentOzarULTD#2183 sp_BlitzIndex ginormous index support (BrentOzarULTD#2196)

When logging to table, use MAX data sizes for drop_tsql, create_tsql, index_definition. Closes BrentOzarULTD#2183.

* sp_Blitz - removing sp_foreachdb

Since we no longer need to check whether it's outdated.

* BrentOzarULTD#2177 sp_BlitzIndex add drop T-SQL (BrentOzarULTD#2197)

To table-level output. Closes BrentOzarULTD#2177.

* BrentOzarULTD#2172 sp_BlitzCache BringThePain (BrentOzarULTD#2201)

If you use SortOrder = all and Top > 10, you now have to set BringThePain = 1. Closes BrentOzarULTD#2172.

* sp_BlitzCache tweaks to Unicode string building

* BrentOzarULTD#2203 prepping 2019_12 release (BrentOzarULTD#2204)

Bumping version numbers, dates, building combined installer script. Closes BrentOzarULTD#2203.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Jan 9, 2020
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.
CubsRep pushed a commit to CubsRep/SQL-Server-First-Responder-Kit that referenced this issue Jan 9, 2020
* BrentOzarULTD#2005 sp_Blitz version numbers (BrentOzarULTD#2006)

Working on BrentOzarULTD#2005.

* BrentOzarULTD#2005 easier merges for versions

Putting Version, VersionDate variables on a single line. Closes BrentOzarULTD#2005.

* BrentOzarULTD#2010 sp_Blitz paused online index operations (BrentOzarULTD#2011)

Add warning for rows in sys.index_resumable_operations. Closes BrentOzarULTD#2010.

* Fix collation error. (BrentOzarULTD#2014)

* BrentOzarULTD#2015 sp_BlitzCache sorting in Azure SQL DB (BrentOzarULTD#2016)

Instead of checking version numbers, look at sys.all_columns for the grant and spill columns. Closes BrentOzarULTD#2015.

* BrentOzarULTD#2024 sp_BlitzQueryStore s.is_cursor error (BrentOzarULTD#2025)

Changed alias on a temp table to match other nearby aliases. Closes BrentOzarULTD#2024.

* First responder consistency check (BrentOzarULTD#1997)

* sp_Blitz update compile and runs on MSSQL 2014

* Update sp_Blitz.sql

Added @debug handling - bug found for missing mandatory component

* Update sp_Blitz.sql

* Update sp_Blitz.sql


CheckId familly:

226 - FRK consistency

Messages:
2260 - First Responder kit consistency check has been unexpectedly modified (check names)
2261 - First Responder kit consistency check has been unexpectedly modified (dynamic query failure)
2262 - First Responder kit mandatory component called %s is missing
2263 - First Responder kit consistency check has been unexpectedly modified (checks ordering)
2264 - Component %s is not at the minimum version required to run this procedure
2265 - First Responder kit consistency check (Failed dynamic SP call to %s)
2266 - First Responder kit consistency: outdated component (%s)

removed "everything ok message"

* Resolves almost all Brent's comments except CHAR(92) change

removed 2264 - Component %s is not at the minimum version required to run this procedure
changed detailled finding message for previous 2264 message

Checked compilation on SQL Server 2014

* BrentOzarULTD#1994 sp_Blitz version checking (BrentOzarULTD#2028)

Changed wording from "consistency check" to "version check," updated check IDs, removed mandatory scripts. Closes BrentOzarULTD#1994.

* BrentOzarULTD#1944 sp_BlitzIndex ignore databases (BrentOzarULTD#2029)

Adds new IgnoreDatabases parameter, and skips databases with >100 partitions. Closes BrentOzarULTD#1944.

* BrentOzarULTD#2009 sp_BlitzFirst call BC differently (BrentOzarULTD#2030)

Use SkipAnalysis = 1, SortOrder = all when calling sp_BlitzCache. Closes BrentOzarULTD#2009.

* BrentOzarULTD#2026 sp_BlitzCache show multiple plan count (BrentOzarULTD#2031)

Closes BrentOzarULTD#2026.

* BrentOzarULTD#2017 sp_Blitz Evaluation Edition expiration check (BrentOzarULTD#2032)

Closes BrentOzarULTD#2017.

* BrentOzarULTD#2018 sp_BlitzCache arith overflow (BrentOzarULTD#2033)

Changing MONEY on totals to BIGINT. Closes BrentOzarULTD#2018.

* BrentOzarULTD#2019 sp_BlitzCache air_quote_actual plans (BrentOzarULTD#2034)

Closes BrentOzarULTD#2019.

* Add END in the right spot for IF @Help = 1 (BrentOzarULTD#2035)

The END for IF @Help = 1 was in the wrong place, making the procedure a no-op *unless* you also specify @Help = 1.

* BrentOzarULTD#2037 sp_BlitzLock support for AWS RDS (BrentOzarULTD#2038)

Skips update stats with options that RDS doesn't support. Closes BrentOzarULTD#2037.

* 2019_04_release_prep

Bumping version numbers, building installation scripts.

* Moved SQL header build outside of If block (BrentOzarULTD#2040)

* BrentOzarULTD#2042 implicit transaction troubleshooting (BrentOzarULTD#2043)

Clarify warnings in sp_Blitz, sp_BlitzFirst. Closes BrentOzarULTD#2042.

* edit hyperlink (BrentOzarULTD#2056)

* add @OutputType = 'XML' (BrentOzarULTD#2048)

* Update sp_blitzcache to avoid arithmetic overflow errors (BrentOzarULTD#2046)

Updated sp_blitzcache to avoid arithmetic overflow errors - tabel definitions had changed to BIGINT but the actual logic in this section still casted values as money which was breaking the ceiling for this on our setup.  I've pretty much blanket chantged everything except averages to be bigint and have been running for a few days with no failrues since so looks ok and worth someone who knows what they're doing casting an eye over it!

* Update sp_ineachdb.sql (BrentOzarULTD#2061)

Added 2 Variables 
@SQLVersion: This was implemented so that large organizations with SQL Server 2008 and R2 can use this sproc.  Currently without this change SQL Server versions 2008 and 2008R2 will error with the following.  Msg 208, Level 16, State 1, Procedure sp_ineachdb, Line 176
Invalid object name 'sys.dm_hadr_database_replica_states'.

@ServerName:  This was added to account for VMware SnapShots at times @@ServerName will either come up NULL or with old server name.  CONVERT(sysname, SERVERPROPERTY('ServerName')) is a better option and reduces minor nuisances.  

Feel free to blend in the code if you feel this brings value to the project.

* ignore readable secondaries in sp_blitzcache (BrentOzarULTD#2049)

* ignore readable secondaries in sp_blitzcache

this is a fix for issue BrentOzarULTD#2027

* Checking for is_primary_replica column

In sys.dm_hadr_database_replica_states.

* 2019_07 Release

Bumping version numbers and updating install scripts.

* Set DBOwner after restoring database (BrentOzarULTD#2082)

* Default @RestoreDiff = NULL
If @RestoreDiff IS NULL and @BackupPathDiff != null: treat RestoreDiff=1

* Set database owner after restore

* Revert restorediff change from dev branch

* Exclude Readable secondary DBs (BrentOzarULTD#2073)

Temp table added (#ReadableDBs) this table is populated with all read intent database id's which is used to filter out these database when querying against dm_exec_requests or sessions with a cross apply against a plan cache function.

* BrentOzarULTD#2067 Updating directory "/" fixing to work with URLs (BrentOzarULTD#2071)

* Updating directory "/" fixing to work with URLs

Also correcting incorrect logging message for fixing @MoveLogDrive slashes

* Fixing variable typo

Data should be log

* BrentOzarULTD#2076 sp_BlitzIndex columnstore to table (BrentOzarULTD#2085)

When saving columnstore definitions to table, trim them to 4000 characters to avoid an overflow. Closes BrentOzarULTD#2076.

* @2060 sp_BlitzFirst 2TB RAM (BrentOzarULTD#2086)

Casting RAM as a BIGINT instead of INT. Closes BrentOzarULTD#2060.

* BrentOzarULTD#2053 sp_BlitzIndex ignoring databases (BrentOzarULTD#2087)

Strip out CR/LF from @IgnoreDatabases, trim spaces afterwards. Closes BrentOzarULTD#2053.

* BrentOzarULTD#2022 sp_BlitzCache disabling air_quote_actuals (BrentOzarULTD#2088)

This SQL 2019 & Azure SQL DB feature isn't ready yet, so disabling til Microsoft is ready. Closes BrentOzarULTD#2022.

* BrentOzarULTD#2044 sp_Blitz new power mode (BrentOzarULTD#2089)

Adds Windows 10's new Ultimate Performance Power Mode, whatever that is. Closes BrentOzarULTD#2044.

* BrentOzarULTD#2062 sp_BlitzFirst false alarm on index reorgs (BrentOzarULTD#2091)

Filtering for sql_text not like %alter index%'. Closes BrentOzarULTD#2062 with duct tape.

* BrentOzarULTD#2052 sp_BlitzCache prioritization (BrentOzarULTD#2092)

Fixes bug in AirQuoteActual plans, plus if plan cache is 75% new as of today, raise priority 1 warning. Closes BrentOzarULTD#2052.

* BrentOzarULTD#2070 sp_BlitzCache duplicated index count (BrentOzarULTD#2093)

Filters index recommendations by spid. Closes BrentOzarULTD#2070.

* sp_DatabaseRestore case bug

Inconsistent case sensitivity.

* 2019-09 release prep

Bumping version numbers and dates.

* 2019-08 release

Updating multi-script installs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants