2 using System.Collections.Generic;
4 namespace kinetica.SchemaBuilder;
22 private readonly Dictionary<string, IList<string>> _properties;
29 _properties =
new Dictionary<string, IList<string>>(StringComparer.OrdinalIgnoreCase);
39 _properties[name] = props.
Build();
50 if (!_properties.TryGetValue(name, out var propList))
52 propList =
new List<string>();
53 _properties[name] = propList;
56 if (!propList.Contains(property))
57 propList.Add(property);
198 _ =>
throw new ArgumentException($
"Invalid char length: {n}", nameof(n))
206 public IReadOnlyDictionary<string, IList<string>>
Build()
208 return new Dictionary<string, IList<string>>(_properties, StringComparer.OrdinalIgnoreCase);
TypePropertiesBuilder CharN(string name, int n)
Marks a column as char(N) type.
TypePropertiesBuilder()
Creates a new TypePropertiesBuilder.
TypePropertiesBuilder Ipv4(string name)
Marks a column as IPv4 type.
IReadOnlyDictionary< string, IList< string > > Build()
Builds the properties dictionary.
TypePropertiesBuilder Boolean(string name)
Marks a column as boolean type.
TypePropertiesBuilder DateTime(string name)
Marks a column as datetime type.
TypePropertiesBuilder Timestamp(string name)
Marks a column as timestamp type.
TypePropertiesBuilder Wkt(string name)
Marks a column as WKT (geometry) type.
TypePropertiesBuilder Column(string name, KineticaColumnProperties props)
Adds properties for a column.
Builder for Kinetica column properties.
TypePropertiesBuilder Nullable(string name)
Marks a column as nullable.
TypePropertiesBuilder PrimaryKey(string name)
Marks a column as primary key.
TypePropertiesBuilder Decimal(string name)
Marks a column as decimal type.
TypePropertiesBuilder ColumnProperty(string name, string property)
Adds a single property to a column.
TypePropertiesBuilder Uuid(string name)
Marks a column as UUID type.
TypePropertiesBuilder Data(string name)
Marks a column as data column (text search enabled).
Builder for constructing type properties dictionaries.
TypePropertiesBuilder Int8(string name)
Marks a column as int8 type.
TypePropertiesBuilder Date(string name)
Marks a column as date type.
TypePropertiesBuilder ShardKey(string name)
Marks a column as shard key.
IList< string > Build()
Builds the list of properties.
TypePropertiesBuilder Int16(string name)
Marks a column as int16 type.
TypePropertiesBuilder Time(string name)
Marks a column as time type.