getSafeColumns method
Generates a safe column list (with CAST for LOBs), ready to be used in SELECTs.
Supports alias for use in JOINs (e.g., "c.Nome, CAST(c.Obs...)").
Implementation
Future<Result<String>> getSafeColumns(String tableName,
{String? alias, int maxLobSize = 4000}) async {
if (_cache.containsKey(tableName)) {
final entry = _cache[tableName]!;
if (entry.isValid) {
return Success(_buildColumnsString(entry.columns, maxLobSize, alias));
} else {
_cache.remove(tableName);
}
}
final columnsResult = await metadata.getColumns(tableName);
return columnsResult.map((columns) {
_cache[tableName] = _CacheEntry(columns);
return _buildColumnsString(columns, maxLobSize, alias);
});
}