BulkInsertBuilder class

Builder for creating bulk insert data buffers.

Provides a fluent API to define table structure, columns, and rows for efficient bulk insert operations. build returns a Uint8List that can be passed straight to bulkInsert / bulkInsertParallel without an extra copy.

Prefer columnar addColumnInt32 / addColumnInt64 / addColumnText when source data is already column-shaped (medium and large batches).

Rows passed to addRow are stored by reference; do not mutate a row list after it is added (wrap with List.unmodifiable when the same list instance might be reused elsewhere).

Row-oriented example:

final builder = BulkInsertBuilder()
  ..table('users')
  ..addColumn('id', BulkColumnType.i32)
  ..addColumn('name', BulkColumnType.text, maxLen: 100)
  ..addRow([1, 'Alice'])
  ..addRow([2, 'Bob']);
final buffer = builder.build();

Columnar example (avoids per-row List<dynamic> and bulk-copies fixed-width primitives):

final builder = BulkInsertBuilder()
  ..table('users')
  ..addColumnInt32('id', Int32List.fromList([1, 2]))
  ..addColumnText('name', ['Alice', 'Bob'], maxLen: 100);
final buffer = builder.build();

Constructors

BulkInsertBuilder()
Creates a new BulkInsertBuilder instance.

Properties

columnNames → List<String>
Gets the list of column names in the order they were added.
no setterinherited
hashCode → int
The hash code for this object.
no setterinherited
rowCount → int
Gets the number of rows in the builder (row- or column-oriented).
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
tableName → String
Gets the table name.
no setterinherited

Methods

addColumn(String name, BulkColumnType colType, {bool nullable = false, int maxLen = 0}) → BulkInsertBuilder
Adds a column definition to the bulk insert.
inherited
addColumnBinary(String name, List<Uint8List> values, {bool nullable = false, int maxLen = 0, List<bool>? isNull}) → BulkInsertBuilder
Adds a binary column from Uint8List cells (columnar mode).
inherited
addColumnDecimal(String name, List<String> values, {bool nullable = false, int maxLen = 0, List<bool>? isNull}) → BulkInsertBuilder
Adds a decimal column from string literals (columnar mode).
inherited
addColumnInt32(String name, Int32List values, {bool nullable = false, List<bool>? isNull}) → BulkInsertBuilder
Adds an i32 column from a typed Int32List (columnar mode).
inherited
addColumnInt64(String name, Int64List values, {bool nullable = false, List<bool>? isNull}) → BulkInsertBuilder
Adds an i64 column from a typed Int64List (columnar mode).
inherited
addColumnText(String name, List<String> values, {bool nullable = false, int maxLen = 0, List<bool>? isNull}) → BulkInsertBuilder
Adds a text column from a List of UTF-8 strings (columnar mode).
inherited
addColumnTimestamp(String name, List<Object> values, {bool nullable = false, List<bool>? isNull}) → BulkInsertBuilder
Adds a timestamp column from DateTime or BulkTimestamp values.
inherited
addRow(List values) → BulkInsertBuilder
Adds a row of data to the bulk insert.
inherited
build({BulkPayloadVersion version = BulkPayloadVersion.v2}) → Uint8List
Builds the binary data buffer for bulk insert.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
table(String name) → BulkInsertBuilder
Sets the target table name for the bulk insert.
inherited
toString() → String
A string representation of this object.
inherited

Operators

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