Добавьте файлы проекта.
This commit is contained in:
310
SQLLinter/Core/Constants.cs
Normal file
310
SQLLinter/Core/Constants.cs
Normal file
@@ -0,0 +1,310 @@
|
||||
namespace SQLLinter.Core;
|
||||
|
||||
public static class Constants
|
||||
{
|
||||
public static readonly string[] _TSqlKeywords =
|
||||
{
|
||||
"ADD",
|
||||
"ALL",
|
||||
"ALTER",
|
||||
"AND",
|
||||
"ANY",
|
||||
"AS",
|
||||
"ASC",
|
||||
"AUTHORIZATION",
|
||||
"BACKUP",
|
||||
"BEGIN",
|
||||
"BETWEEN",
|
||||
"BREAK",
|
||||
"BROWSE",
|
||||
"BULK",
|
||||
"BY",
|
||||
"CASCADE",
|
||||
"CASE",
|
||||
"CHECK",
|
||||
"CHECKPOINT",
|
||||
"CLOSE",
|
||||
"CLUSTERED",
|
||||
"COALESCE",
|
||||
"COLLATE",
|
||||
"COLUMN",
|
||||
"COMMIT",
|
||||
"COMPUTE",
|
||||
"CONSTRAINT",
|
||||
"CONTAINS",
|
||||
"CONTAINSTABLE",
|
||||
"CONTINUE",
|
||||
"CONVERT",
|
||||
"CREATE",
|
||||
"CROSS",
|
||||
"CURRENT",
|
||||
"CURRENT_DATE",
|
||||
"CURRENT_TIME",
|
||||
"CURRENT_TIMESTAMP",
|
||||
"CURRENT_USER",
|
||||
"CURSOR",
|
||||
"DATABASE",
|
||||
"DBCC",
|
||||
"DEALLOCATE",
|
||||
"DECLARE",
|
||||
"DEFAULT",
|
||||
"DELETE",
|
||||
"DENY",
|
||||
"DESC",
|
||||
"DISK",
|
||||
"DISTINCT",
|
||||
"DISTRIBUTED",
|
||||
"DOUBLE",
|
||||
"DROP",
|
||||
"DUMP",
|
||||
"ELSE",
|
||||
"END",
|
||||
"ERRLVL",
|
||||
"ESCAPE",
|
||||
"EXCEPT",
|
||||
"EXEC",
|
||||
"EXECUTE",
|
||||
"EXISTS",
|
||||
"EXIT",
|
||||
"EXTERNAL",
|
||||
"FETCH",
|
||||
"FILE",
|
||||
"FILLFACTOR",
|
||||
"FOR",
|
||||
"FOREIGN",
|
||||
"FREETEXT",
|
||||
"FREETEXTTABLE",
|
||||
"FROM",
|
||||
"FULL",
|
||||
"FUNCTION",
|
||||
"GOTO",
|
||||
"GRANT",
|
||||
"GROUP",
|
||||
"HAVING",
|
||||
"HOLDLOCK",
|
||||
"IDENTITY",
|
||||
"IDENTITYCOL",
|
||||
"IDENTITY_INSERT",
|
||||
"IF",
|
||||
"IN",
|
||||
"INDEX",
|
||||
"INNER",
|
||||
"INSERT",
|
||||
"INTERSECT",
|
||||
"INTO",
|
||||
"IS",
|
||||
"JOIN",
|
||||
"KEY",
|
||||
"KILL",
|
||||
"LEFT",
|
||||
"LIKE",
|
||||
"LINENO",
|
||||
"LOAD",
|
||||
"MERGE",
|
||||
"NATIONAL",
|
||||
"NOCHECK",
|
||||
"NONCLUSTERED",
|
||||
"NOT",
|
||||
"NULL",
|
||||
"NULLIF",
|
||||
"OF",
|
||||
"OFF",
|
||||
"OFFSETS",
|
||||
"ON",
|
||||
"OPEN",
|
||||
"OPENDATASOURCE",
|
||||
"OPENQUERY",
|
||||
"OPENROWSET",
|
||||
"OPENXML",
|
||||
"OPTION",
|
||||
"OR",
|
||||
"ORDER",
|
||||
"OUTER",
|
||||
"OVER",
|
||||
"PERCENT",
|
||||
"PIVOT",
|
||||
"PLAN",
|
||||
"PRECISION",
|
||||
"PRIMARY",
|
||||
"PRINT",
|
||||
"PROC",
|
||||
"PROCEDURE",
|
||||
"PUBLIC",
|
||||
"RAISERROR",
|
||||
"READ",
|
||||
"READTEXT",
|
||||
"RECONFIGURE",
|
||||
"REFERENCES",
|
||||
"REPLICATION",
|
||||
"RESTORE",
|
||||
"RESTRICT",
|
||||
"RETURN",
|
||||
"REVERT",
|
||||
"REVOKE",
|
||||
"RIGHT",
|
||||
"ROLLBACK",
|
||||
"ROWCOUNT",
|
||||
"ROWGUIDCOL",
|
||||
"RULE",
|
||||
"SAVE",
|
||||
"SCHEMA",
|
||||
"SECURITYAUDIT",
|
||||
"SELECT",
|
||||
"SEMANTICKEYPHRASETABLE",
|
||||
"SEMANTICSIMILARITYDETAILSTABLE",
|
||||
"SEMANTICSIMILARITYTABLE",
|
||||
"SESSION_USER",
|
||||
"SET",
|
||||
"SETUSER",
|
||||
"SHUTDOWN",
|
||||
"SOME",
|
||||
"STATISTICS",
|
||||
"SYSTEM_USER",
|
||||
"TABLE",
|
||||
"TABLESAMPLE",
|
||||
"TEXTSIZE",
|
||||
"THEN",
|
||||
"TO",
|
||||
"TOP",
|
||||
"TRAN",
|
||||
"TRANSACTION",
|
||||
"TRIGGER",
|
||||
"TRUNCATE",
|
||||
"TRY_CONVERT",
|
||||
"TSEQUAL",
|
||||
"UNION",
|
||||
"UNIQUE",
|
||||
"UNPIVOT",
|
||||
"UPDATE",
|
||||
"UPDATETEXT",
|
||||
"USE",
|
||||
"USER",
|
||||
"VALUES",
|
||||
"VARYING",
|
||||
"VIEW",
|
||||
"WAITFOR",
|
||||
"WHEN",
|
||||
"WHERE",
|
||||
"WHILE",
|
||||
"WITH",
|
||||
"WITHIN GROUP",
|
||||
"WRITETEXT"
|
||||
};
|
||||
|
||||
public static readonly string[] _TSqlDataTypes =
|
||||
{
|
||||
"BIGINT",
|
||||
"BIT",
|
||||
"DECIMAL",
|
||||
"INT",
|
||||
"MONEY",
|
||||
"NUMERIC",
|
||||
"SMALLINT",
|
||||
"SMALLMONEY",
|
||||
"TINYINT",
|
||||
"FLOAT",
|
||||
"REAL",
|
||||
"DATE",
|
||||
"DATETIME2",
|
||||
"DATETIME",
|
||||
"DATETIMEOFFSET",
|
||||
"SMALLDATETIME",
|
||||
"TIME",
|
||||
"CHAR",
|
||||
"TEXT",
|
||||
"VARCHAR",
|
||||
"NCHAR",
|
||||
"NTEXT",
|
||||
"NVARCHAR",
|
||||
"BINARY",
|
||||
"IMAGE",
|
||||
"VARBINARY",
|
||||
"CURSOR",
|
||||
"ROWVERSION",
|
||||
"UNIQUEIDENTIFIER",
|
||||
"XML"
|
||||
};
|
||||
|
||||
public static readonly HashSet<string> TSqlKeywords = new HashSet<string>(_TSqlKeywords);
|
||||
|
||||
public static readonly HashSet<string> TSqlDataTypes = new HashSet<string>(_TSqlDataTypes);
|
||||
|
||||
public static int TabWidth => 4;
|
||||
|
||||
public static int DefaultCompatabilityLevel => 120;
|
||||
|
||||
public static int MaxLineWidthForRegexEval => 300;
|
||||
|
||||
public static HashSet<string> SystemFunctions = new(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
// Метаданные
|
||||
"APP_NAME", "HOST_NAME", "HOST_ID", "CONNECTIONPROPERTY", "SESSION_CONTEXT",
|
||||
"CURRENT_USER", "SYSTEM_USER", "SUSER_NAME", "SUSER_SID", "USER_NAME", "USER_ID",
|
||||
|
||||
// Ошибки
|
||||
"@@ERROR", "ERROR_MESSAGE", "ERROR_LINE", "ERROR_NUMBER", "ERROR_SEVERITY", "ERROR_STATE", "FORMATMESSAGE",
|
||||
|
||||
// Идентификаторы
|
||||
"@@IDENTITY", "SCOPE_IDENTITY", "IDENT_CURRENT", "@@ROWCOUNT", "ROWCOUNT_BIG",
|
||||
"@@TRANCOUNT", "XACT_STATE", "CURRENT_TRANSACTION_ID",
|
||||
|
||||
// Дата/время
|
||||
"GETDATE", "SYSDATETIME", "SYSUTCDATETIME", "SYSDATETIMEOFFSET", "CURRENT_TIMESTAMP", "GETUTCDATE",
|
||||
"DATEADD", "DATEDIFF", "DATENAME", "DATEPART", "EOMONTH",
|
||||
|
||||
// Строковые/бинарные
|
||||
"ISNULL", "NULLIF", "COALESCE", "DATALENGTH", "COMPRESS", "DECOMPRESS",
|
||||
"BINARY_CHECKSUM", "CHECKSUM", "PARSENAME",
|
||||
|
||||
// Уникальные идентификаторы
|
||||
"NEWID", "NEWSEQUENTIALID",
|
||||
|
||||
// Системные переменные
|
||||
"@@VERSION", "@@SERVERNAME", "@@SPID", "@@LANGUAGE", "@@MAX_CONNECTIONS",
|
||||
|
||||
// Database Functions
|
||||
"DB_ID", "DB_NAME", "OBJECT_ID", "OBJECT_NAME", "OBJECT_SCHEMA_NAME",
|
||||
"COL_LENGTH", "COL_NAME", "FILE_ID", "FILE_NAME", "SCHEMA_ID", "SCHEMA_NAME", "TYPE_ID", "TYPE_NAME",
|
||||
|
||||
// Математические
|
||||
"ABS", "ACOS", "ASIN", "ATAN", "ATN2", "CEILING", "COS", "COT", "DEGREES",
|
||||
"EXP", "FLOOR", "LOG", "LOG10", "PI", "POWER", "RADIANS", "RAND", "ROUND", "SIGN", "SIN", "SQRT", "SQUARE", "TAN",
|
||||
|
||||
// Агрегатные
|
||||
"AVG", "COUNT", "COUNT_BIG", "MIN", "MAX", "SUM",
|
||||
|
||||
// Курсоры
|
||||
"CURSOR_STATUS",
|
||||
|
||||
// Конфигурационные и серверные
|
||||
"@@OPTIONS", "SESSIONPROPERTY", "INDEXPROPERTY", "INDEX_COL", "COLLATIONPROPERTY",
|
||||
"SERVERPROPERTY", "DATABASEPROPERTYEX", "OBJECTPROPERTY", "OBJECTPROPERTYEX",
|
||||
|
||||
// Безопасность
|
||||
"HAS_DBACCESS", "IS_MEMBER", "IS_ROLEMEMBER", "IS_SRVROLEMEMBER", "PERMISSIONS", "PWDCOMPARE", "PWDENCRYPT",
|
||||
|
||||
// JSON
|
||||
"JSON_VALUE", "JSON_QUERY", "JSON_MODIFY",
|
||||
|
||||
// Аналитические (оконные)
|
||||
"CUME_DIST", "RANK", "DENSE_RANK", "NTILE", "ROW_NUMBER",
|
||||
"LEAD", "LAG", "FIRST_VALUE", "LAST_VALUE",
|
||||
"PERCENT_RANK", "PERCENTILE_CONT", "PERCENTILE_DISC",
|
||||
|
||||
// XML
|
||||
"nodes", "value", "query", "exist", "modify",
|
||||
|
||||
// CLR
|
||||
"FORMAT", "TRY_CONVERT", "TRY_CAST", "TRY_PARSE", "PARSE",
|
||||
|
||||
// Spatial (geometry/geography)
|
||||
"STArea", "STLength", "STDistance", "STIntersects", "STBuffer", "STUnion", "STDifference", "STIntersection",
|
||||
"STGeomFromText", "STGeomFromWKB", "STPointFromText", "STPointFromWKB",
|
||||
"STAsText", "STAsBinary", "STEnvelope", "STCentroid", "STIsEmpty", "STIsValid",
|
||||
|
||||
// Statistical
|
||||
"STDEV", "STDEVP", "VAR", "VARP", "CHECKSUM_AGG", "COLUMNS_UPDATED"
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user