1 namespace kinetica.Records;
27 public enum ColumnType
111 return columnType
switch 113 ColumnType.Integer or ColumnType.Boolean or ColumnType.Int8 or ColumnType.Int16
116 ColumnType.Long or ColumnType.Timestamp
125 ColumnType.String or ColumnType.Date or ColumnType.DateTime or ColumnType.Time or
126 ColumnType.Decimal or ColumnType.Ipv4 or ColumnType.Uuid or
127 ColumnType.Char1 or ColumnType.Char2 or ColumnType.Char4 or ColumnType.Char8 or
128 ColumnType.Char16 or ColumnType.Char32 or ColumnType.Char64 or ColumnType.Char128 or
129 ColumnType.Char256 or ColumnType.Array or ColumnType.Vector or ColumnType.Json
132 ColumnType.Bytes or ColumnType.Wkt
145 return baseType
switch 162 return columnType.GetBaseType().GetAvroTypeName();
171 if (properties !=
null)
173 foreach (var prop
in properties)
175 var result = prop.ToLowerInvariant()
switch 177 "boolean" => ColumnType.Boolean,
178 "int8" => ColumnType.Int8,
179 "int16" => ColumnType.Int16,
180 "timestamp" => ColumnType.Timestamp,
181 "date" => ColumnType.Date,
182 "datetime" => ColumnType.DateTime,
183 "time" => ColumnType.Time,
184 "decimal" => ColumnType.Decimal,
185 "ipv4" => ColumnType.Ipv4,
186 "uuid" => ColumnType.Uuid,
187 "char1" => ColumnType.Char1,
188 "char2" => ColumnType.Char2,
189 "char4" => ColumnType.Char4,
190 "char8" => ColumnType.Char8,
191 "char16" => ColumnType.Char16,
192 "char32" => ColumnType.Char32,
193 "char64" => ColumnType.Char64,
194 "char128" => ColumnType.Char128,
195 "char256" => ColumnType.Char256,
196 "wkt" => ColumnType.Wkt,
197 "array" => ColumnType.Array,
198 "vector" => ColumnType.Vector,
199 "json" => ColumnType.Json,
200 _ => (ColumnType?)
null 209 return avroType.ToLowerInvariant()
switch 211 "int" => ColumnType.Integer,
212 "long" => ColumnType.Long,
213 "float" => ColumnType.Float,
214 "double" => ColumnType.Double,
215 "string" => ColumnType.String,
216 "bytes" => ColumnType.Bytes,
217 _ => ColumnType.String
226 return columnType
switch 228 ColumnType.Boolean =>
"boolean",
229 ColumnType.Int8 =>
"int8",
230 ColumnType.Int16 =>
"int16",
231 ColumnType.Timestamp =>
"timestamp",
232 ColumnType.Date =>
"date",
233 ColumnType.DateTime =>
"datetime",
234 ColumnType.Time =>
"time",
235 ColumnType.Decimal =>
"decimal",
236 ColumnType.Ipv4 =>
"ipv4",
237 ColumnType.Uuid =>
"uuid",
238 ColumnType.Char1 =>
"char1",
239 ColumnType.Char2 =>
"char2",
240 ColumnType.Char4 =>
"char4",
241 ColumnType.Char8 =>
"char8",
242 ColumnType.Char16 =>
"char16",
243 ColumnType.Char32 =>
"char32",
244 ColumnType.Char64 =>
"char64",
245 ColumnType.Char128 =>
"char128",
246 ColumnType.Char256 =>
"char256",
247 ColumnType.Wkt =>
"wkt",
248 ColumnType.Array =>
"array",
249 ColumnType.Vector =>
"vector",
250 ColumnType.Json =>
"json",
ColumnBaseType
Base column types that map to Avro primitive types.
static ? string GetPropertyName(this ColumnType columnType)
Gets the Kinetica property name for this column type (if it has one).
Date in YYYY-MM-DD format
Time in HH:MM:SS.mmm format
static string GetAvroTypeName(this ColumnBaseType baseType)
Gets the Avro type name for this base type.
static ColumnBaseType GetBaseType(this ColumnType columnType)
Gets the base type for this column type.
Extension methods for ColumnType.
IPv4 address in dotted-quad format
static ColumnType FromAvroAndProperties(string avroType, IEnumerable< string >? properties)
Parse column type from Avro type and properties.
static string GetAvroTypeName(this ColumnType columnType)
Gets the Avro type name for this column type.
Timestamp as milliseconds since Unix epoch
DateTime in YYYY-MM-DD HH:MM:SS.mmm format
Boolean stored as integer (0 or 1)