Skip to content

SQL Server Input - Arithmetic overflow error converting numeric to data type int. #2077

Closed
@Kebus1

Description

Bug report

I think there a bug within the SQL code for big databases.

file concerned : sqlserver.go
Lines : 406 and 407

SELECT
    DB_NAME(mf.database_id) AS database_name ,
    mf.size as database_size_8k_pages,
    mf.max_size  as database_max_size_8k_pages,
    size_on_disk_bytes,
	type_desc as datafile_type,
    GETDATE() AS baselineDate
INTO #baseline

With patching : add a cast operation for forcing in a BIGINT datatype

SELECT
    DB_NAME(mf.database_id) AS database_name ,
    CAST(mf.size AS BIGINT) as database_size_8k_pages,
    CAST(mf.max_size AS BIGINT)  as database_max_size_8k_pages,
    size_on_disk_bytes,
	type_desc as datafile_type,
    GETDATE() AS baselineDate
INTO #baseline

The bug is generated by query on lines 479 to 486.

SELECT measurement = ''Logs max size (8KB pages)'', servername = REPLACE(@@SERVERNAME, ''\'', '':''), type = ''Database size''
, ' + @ColumnName + '  FROM
(
SELECT database_name, database_max_size_8k_pages
FROM #baseline
WHERE datafile_type = ''LOG''
) as V
PIVOT(SUM(database_max_size_8k_pages) FOR database_name IN (' + @ColumnName + ')) AS PVTTable

I test all queries in file sqlserver.go on my databases and the only error is generated by query above.
I can't release windows binaries so i can't test on my system the binaries.

Metadata

Assignees

No one assigned

    Labels

    bugunexpected problem or unintended behavior

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions