buildUpsertSql method

String? buildUpsertSql({
  1. required String connectionString,
  2. required String table,
  3. required List<String> columns,
  4. required List<String> conflictColumns,
  5. List<String>? updateColumns,
})

Build an UPSERT statement for the dialect implied by connectionString.

Returns null when the FFI is missing or the underlying call fails. On success returns the dialect-specific SQL (with ? placeholders).

Implementation

String? buildUpsertSql({
  required String connectionString,
  required String table,
  required List<String> columns,
  required List<String> conflictColumns,
  List<String>? updateColumns,
}) {
  if (!supportsApi) return null;
  final payload = <String, Object?>{
    'columns': columns,
    'conflict': conflictColumns,
    if (updateColumns != null) 'update': updateColumns,
  };
  final data = _backend.buildUpsertSql(
    connectionString,
    table,
    jsonEncode(payload),
  );
  if (data == null) return null;
  return utf8.decode(data);
}