in src/Microsoft.Kusto.ServiceLayer/DataSource/Kusto/KustoIntellisenseClient.cs [128:197]
private ScalarSymbol GetKustoType(string clrTypeName)
{
switch (clrTypeName)
{
case "System.Byte":
case "Byte":
case "byte":
case "System.SByte":
case "SByte":
case "sbyte":
case "System.Int16":
case "Int16":
case "short":
case "System.UInt16":
case "UInt16":
case "ushort":
case "System.Int32":
case "System.Single":
case "Int32":
case "int":
return ScalarTypes.Int;
case "System.UInt32": // unsigned ints don't fit into int, use long
case "UInt32":
case "uint":
case "System.Int64":
case "Int64":
case "long":
return ScalarTypes.Long;
case "System.Double":
case "Double":
case "double":
case "float":
return ScalarTypes.Real;
case "System.UInt64": // unsigned longs do not fit into long, use decimal
case "UInt64":
case "ulong":
case "System.Decimal":
case "Decimal":
case "decimal":
case "System.Data.SqlTypes.SqlDecimal":
case "SqlDecimal":
return ScalarTypes.Decimal;
case "System.Guid":
case "Guid":
return ScalarTypes.Guid;
case "System.DateTime":
case "DateTime":
return ScalarTypes.DateTime;
case "System.TimeSpan":
case "TimeSpan":
return ScalarTypes.TimeSpan;
case "System.String":
case "String":
case "string":
return ScalarTypes.String;
case "System.Boolean":
case "Boolean":
case "bool":
return ScalarTypes.Bool;
case "System.Object":
case "Object":
case "object":
return ScalarTypes.Dynamic;
case "System.Type":
case "Type":
return ScalarTypes.Type;
default:
throw new InvalidOperationException($"Unhandled clr type: {clrTypeName}");
}
}