namespace ZB.MOM.WW.OtOpcUa.Driver.Sql.Contracts;
/// Which ADO.NET provider/dialect backs a Sql driver instance. v1 constructs only SqlServer.
public enum SqlProvider
{
/// Microsoft SQL Server via Microsoft.Data.SqlClient — the only provider v1 constructs.
SqlServer,
/// PostgreSQL (Npgsql) — reserved for P2; not constructed in v1.
Postgres,
/// MySQL / MariaDB — reserved; not constructed in v1.
MySql,
/// Generic ODBC — reserved for P2; not constructed in v1.
Odbc,
/// Oracle — reserved; not constructed in v1.
Oracle,
}
/// Tag→value mapping model. v1 ships KeyValue + WideRow; Query is deferred (design §5.4 / P3).
public enum SqlTagModel
{
///
/// Key-value (EAV) table: one row per tag, selected by keyColumn = keyValue, value read from
/// valueColumn.
///
KeyValue,
///
/// Wide row: one row holds many signals as columns; the tag names its columnName and the row is
/// picked by a row selector (a whereColumn/whereValue pair, or newest-by-timestamp).
///
WideRow,
/// Named arbitrary-SELECT query (design §5.4). Deferred to P3 — not accepted by v1's parser.
Query,
}