ColumnMetadata class

Metadata for a single column in a query result.

Pure domain entity — carries only the column name and the protocol type discriminant (mirror of the Rust OdbcType enum at native/odbc_engine/src/protocol/types.rs). The numeric value is the wire protocol discriminant, not the ODBC SQL_* type code.

The richer typed view (OdbcType enum) lives in the infrastructure layer and is exposed as an extension on ColumnMetadata so the domain stays free of FFI / protocol dependencies. Consumers who need the typed view import the extension explicitly:

import 'package:odbc_fast/odbc_fast.dart';

for (final col in qr.columnsMetadata ?? const <ColumnMetadata>[]) {
  print('${col.name} -> discriminant=${col.odbcType}');
}

Discriminant table (truncated):

Discriminant Wire type
1 varchar (UTF-8)
2 integer (i32 LE)
3 bigInt (i64 LE)
4 decimal (UTF-8)
5 date (UTF-8)
6 timestamp (UTF-8)
7 binary (raw)

See the OdbcType enum for the full mapping.

Available extensions
Annotations
  • @immutable

Constructors

ColumnMetadata({required String name, required int odbcType})
Creates a new ColumnMetadata instance.
const

Properties

hashCode → int
The hash code for this object.
no setteroverride
name → String
Column name.
final
odbcType → int
Protocol type discriminant (matches OdbcType.discriminant). Unknown discriminants degrade to varchar (1) for forward compatibility — see the typed view extension.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
type → OdbcType

Available on ColumnMetadata, provided by the ColumnMetadataTypedView extension

no setter

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
override