buildSelectWithNestedData method
Builds an SQLite SqlStatement to select data from the primary table and its related tables, constructing a nested JSON structure similar to what Supabase PostgREST would return.
The resulting query will typically select a single column named jsobjects
containing the JSON string or an array of JSON strings.
This is useful for querying a local SQLite mirror of Supabase data in a way that mimics the nested structure of PostgREST responses.
Returns an SqlStatement ready for execution. The WHERE, ORDER BY, LIMIT,
and OFFSET clauses should be added to this statement by other builder methods
before execution.
Implementation
SqlStatement buildSelectWithNestedData() {
// Recursively build the JSON structure starting from this builder
final String topLevelJsonString = _buildRecursiveJson(tableAlias, 0);
// The final SQL will select this JSON structure.
// The alias 'AS jsobjects' is NOT added here. It should be added by the
// final query executor if needed, allowing this method to be used for subqueries.
return SqlStatement(
operationType: SqlOperationType.select,
tableName: primaryTableName, // Base table for the main FROM clause
selectColumns: topLevelJsonString, // The JSON result, without an alias
fromAlias: tableAlias, // Alias for the main table in the FROM clause
// Other parts like where, orderBy, limit, offset are typically added later
);
}