executeQueryNamed method
Executes sql on connectionId using named parameters.
Supports @name and :name syntax, converting placeholders to
positional order before sending the query to the worker.
Throws AsyncError with AsyncErrorCode.invalidParameter when any required named parameter is missing.
Implementation
Future<Uint8List?> executeQueryNamed(
int connectionId,
String sql,
Map<String, Object?> namedParams, {
int? maxBufferBytes,
}) async {
try {
final extract = NamedParameterParser.extract(sql);
final positional = NamedParameterParser.toPositionalParams(
namedParams: namedParams,
paramNames: extract.paramNames,
);
final paramValues = paramValuesFromObjects(positional);
return executeQueryParams(
connectionId,
extract.cleanedSql,
paramValues,
maxBufferBytes: maxBufferBytes,
);
} on ParameterMissingException catch (e) {
throw AsyncError(
code: AsyncErrorCode.invalidParameter,
message: e.message,
);
}
}