discontinuedPackage connect_database has been discontinued.
interceptSelect method
Implementation
Future<Result<String>> interceptSelect(String query) async {
final trimmedQuery = query.trim();
if (trimmedQuery.length < _CacheConstants.minQueryLength) {
return Success(query);
}
try {
final selectInfo = _parseSelect(trimmedQuery);
if (selectInfo == null) {
return Success(query);
}
final result = selectInfo.isSelectAll
? await _applyCastToAllColumns(
selectInfo.tableName,
selectInfo.restOfQuery,
selectInfo.topClause,
)
: await _applyCastToColumns(
selectInfo.columns,
selectInfo.tableName,
selectInfo.restOfQuery,
selectInfo.topClause,
);
if (result.isSuccess()) {
final interceptedQuery = result.getOrThrow();
if (interceptedQuery.length > _CacheConstants.maxSqlLengthWarning) {
debugPrint(
'SqlSelectInterceptor: SQL gerado muito grande (${interceptedQuery.length} caracteres)');
}
}
return result;
} catch (e, stackTrace) {
return Failure(
Exception('Error intercepting SELECT: $e\nStack trace: $stackTrace'));
}
}