Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion src/execute/layer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -566,13 +566,19 @@ where
}
}

// Geom-required ordering carried by the stat transform (e.g. line
// ordering along the domain axis). Applied on the final query below.
let mut stat_order_by: Vec<String> = Vec::new();

let final_query = match stat_result {
StatResult::Transformed {
query: transformed_query,
stat_columns,
dummy_columns,
consumed_aesthetics,
order_by: stat_order,
} => {
stat_order_by = stat_order;
// Build stat column -> aesthetic mappings from geom defaults for renaming
let mut final_remappings: HashMap<String, String> = HashMap::new();

Expand Down Expand Up @@ -726,9 +732,14 @@ where
normalize_mapping_column_names(layer);
}

// Apply explicit ORDER BY if provided
// Apply ORDER BY. An explicit clause ORDER BY takes precedence over
// geom-required ordering carried by the stat transform. Ordering is only
// ever applied here, on the final outermost query — nested ORDER BY is
// rejected by some backends (T-SQL error 1033).
let final_query = if let Some(ref o) = order_by {
format!("{} ORDER BY {}", final_query, o.as_str())
} else if !stat_order_by.is_empty() {
format!("{} ORDER BY {}", final_query, stat_order_by.join(", "))
Comment on lines +741 to +742

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If user has set ORDER BY group and stat has ORDER BY x, shouldn't we get ORDER BY group, x here? It seems like we're ignoring the stat order if user has set an explicit order.

For example if you have some timeseries where timestamps are in arbitrary order, you might want to order by something that brings out a foreground vs background. But because arbitrary order of the timestamps, we do not get that secondary order and lines are all connected all over the place.

} else {
final_query
};
Expand Down
19 changes: 19 additions & 0 deletions src/execute/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1628,6 +1628,25 @@ pub fn prepare_data_with_reader(query: &str, reader: &dyn Reader) -> Result<Prep
// Extract VISUALISE text for PreparedData (SQL already extracted earlier)
let visual_part = source_tree.extract_visualise().unwrap_or_default();

// Best-effort cleanup of internal tables that outlive the session
// (regular-table dialects — MySQL, MSSQL, Oracle; see
// SqlDialect::internal_tables_need_cleanup). Temp tables are reclaimed
// by the backend at disconnect and cache-staged tables live in-process,
// so neither needs this. Failures are ignored: a lost connection must
// not mask a successful execution.
if dialect.internal_tables_need_cleanup() {
let mut tables: Vec<String> = materialized_ctes
.iter()
.map(|name| naming::cte_table(name))
.collect();
if has_global_table {
tables.push(naming::global_table());
}
for table in tables {
let _ = reader.execute_sql(&dialect.drop_table_sql(&table));
}
}

Ok(PreparedData {
data: data_map,
specs,
Expand Down
2 changes: 1 addition & 1 deletion src/golden/ansi.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, "__ggsql_stat_type" AS "__ggsql_aes_type__", "__ggsql_stat_value" AS "
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
WITH "__ggsql_source__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT MIN("id") AS "__ggsql_min_id", MAX("id") AS "__ggsql_max_id", MIN("val") AS "__ggsql_min_val", MAX("val") AS "__ggsql_max_val", MIN("grp") AS "__ggsql_min_grp", MAX("grp") AS "__ggsql_max_grp", MIN("day") AS "__ggsql_min_day", MAX("day") AS "__ggsql_max_day", MIN("mixed Case") AS "__ggsql_min_mixed Case", MAX("mixed Case") AS "__ggsql_max_mixed Case" FROM "__ggsql_source__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_ord__" ORDER BY "__ggsql_aes_pos1__") AS "__ggsql_stat__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_stat__" ORDER BY "__ggsql_aes_pos1__";

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
Expand Down
2 changes: 1 addition & 1 deletion src/golden/bigquery.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, `__ggsql_stat_type` AS `__ggsql_aes_type__`, `__ggsql_stat_value` AS `
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS `__schema__` LIMIT 1;
WITH `__ggsql_source__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT MIN(`id`) AS `__ggsql_min_id`, MAX(`id`) AS `__ggsql_max_id`, MIN(`val`) AS `__ggsql_min_val`, MAX(`val`) AS `__ggsql_max_val`, MIN(`grp`) AS `__ggsql_min_grp`, MAX(`grp`) AS `__ggsql_max_grp`, MIN(`day`) AS `__ggsql_min_day`, MAX(`day`) AS `__ggsql_max_day`, MIN(`mixed Case`) AS `__ggsql_min_mixed Case`, MAX(`mixed Case`) AS `__ggsql_max_mixed Case` FROM `__ggsql_source__`;
SELECT *, `__ggsql_stat_pos2` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM (WITH `__ggsql_stat_src__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT `__ggsql_aes_pos1__`, AVG(`__ggsql_aes_pos2__`) AS `__ggsql_stat_pos2` FROM `__ggsql_stat_src__` AS `__ggsql_qt__` GROUP BY `__ggsql_aes_pos1__`) AS `__ggsql_ord__` ORDER BY `__ggsql_aes_pos1__`) AS `__ggsql_stat__`;
SELECT *, `__ggsql_stat_pos2` AS `__ggsql_aes_pos2__` FROM (WITH `__ggsql_stat_src__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT `__ggsql_aes_pos1__`, AVG(`__ggsql_aes_pos2__`) AS `__ggsql_stat_pos2` FROM `__ggsql_stat_src__` AS `__ggsql_qt__` GROUP BY `__ggsql_aes_pos1__`) AS `__ggsql_stat__` ORDER BY `__ggsql_aes_pos1__`;

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS `__schema__` LIMIT 1;
Expand Down
2 changes: 1 addition & 1 deletion src/golden/clickhouse.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, `__ggsql_stat_type` AS `__ggsql_aes_type__`, `__ggsql_stat_value` AS `
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS `__schema__` LIMIT 1;
WITH `__ggsql_source__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT MIN(`id`) AS `__ggsql_min_id`, MAX(`id`) AS `__ggsql_max_id`, MIN(`val`) AS `__ggsql_min_val`, MAX(`val`) AS `__ggsql_max_val`, MIN(`grp`) AS `__ggsql_min_grp`, MAX(`grp`) AS `__ggsql_max_grp`, MIN(`day`) AS `__ggsql_min_day`, MAX(`day`) AS `__ggsql_max_day`, MIN(`mixed Case`) AS `__ggsql_min_mixed Case`, MAX(`mixed Case`) AS `__ggsql_max_mixed Case` FROM `__ggsql_source__`;
SELECT *, `__ggsql_stat_pos2` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM (WITH `__ggsql_stat_src__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT `__ggsql_aes_pos1__`, AVG(`__ggsql_aes_pos2__`) AS `__ggsql_stat_pos2` FROM `__ggsql_stat_src__` AS `__ggsql_qt__` GROUP BY `__ggsql_aes_pos1__`) AS `__ggsql_ord__` ORDER BY `__ggsql_aes_pos1__`) AS `__ggsql_stat__`;
SELECT *, `__ggsql_stat_pos2` AS `__ggsql_aes_pos2__` FROM (WITH `__ggsql_stat_src__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT `__ggsql_aes_pos1__`, AVG(`__ggsql_aes_pos2__`) AS `__ggsql_stat_pos2` FROM `__ggsql_stat_src__` AS `__ggsql_qt__` GROUP BY `__ggsql_aes_pos1__`) AS `__ggsql_stat__` ORDER BY `__ggsql_aes_pos1__`;

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS `__schema__` LIMIT 1;
Expand Down
2 changes: 1 addition & 1 deletion src/golden/databricks.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, `__ggsql_stat_type` AS `__ggsql_aes_type__`, `__ggsql_stat_value` AS `
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS `__schema__` LIMIT 1;
WITH `__ggsql_source__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT MIN(`id`) AS `__ggsql_min_id`, MAX(`id`) AS `__ggsql_max_id`, MIN(`val`) AS `__ggsql_min_val`, MAX(`val`) AS `__ggsql_max_val`, MIN(`grp`) AS `__ggsql_min_grp`, MAX(`grp`) AS `__ggsql_max_grp`, MIN(`day`) AS `__ggsql_min_day`, MAX(`day`) AS `__ggsql_max_day`, MIN(`mixed Case`) AS `__ggsql_min_mixed Case`, MAX(`mixed Case`) AS `__ggsql_max_mixed Case` FROM `__ggsql_source__`;
SELECT *, `__ggsql_stat_pos2` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM (WITH `__ggsql_stat_src__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT `__ggsql_aes_pos1__`, AVG(`__ggsql_aes_pos2__`) AS `__ggsql_stat_pos2` FROM `__ggsql_stat_src__` AS `__ggsql_qt__` GROUP BY `__ggsql_aes_pos1__`) AS `__ggsql_ord__` ORDER BY `__ggsql_aes_pos1__`) AS `__ggsql_stat__`;
SELECT *, `__ggsql_stat_pos2` AS `__ggsql_aes_pos2__` FROM (WITH `__ggsql_stat_src__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT `__ggsql_aes_pos1__`, AVG(`__ggsql_aes_pos2__`) AS `__ggsql_stat_pos2` FROM `__ggsql_stat_src__` AS `__ggsql_qt__` GROUP BY `__ggsql_aes_pos1__`) AS `__ggsql_stat__` ORDER BY `__ggsql_aes_pos1__`;

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS `__schema__` LIMIT 1;
Expand Down
2 changes: 1 addition & 1 deletion src/golden/datafusion.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, "__ggsql_stat_type" AS "__ggsql_aes_type__", "__ggsql_stat_value" AS "
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
WITH "__ggsql_source__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT MIN("id") AS "__ggsql_min_id", MAX("id") AS "__ggsql_max_id", MIN("val") AS "__ggsql_min_val", MAX("val") AS "__ggsql_max_val", MIN("grp") AS "__ggsql_min_grp", MAX("grp") AS "__ggsql_max_grp", MIN("day") AS "__ggsql_min_day", MAX("day") AS "__ggsql_max_day", MIN("mixed Case") AS "__ggsql_min_mixed Case", MAX("mixed Case") AS "__ggsql_max_mixed Case" FROM "__ggsql_source__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_ord__" ORDER BY "__ggsql_aes_pos1__") AS "__ggsql_stat__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_stat__" ORDER BY "__ggsql_aes_pos1__";

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
Expand Down
2 changes: 1 addition & 1 deletion src/golden/drill.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, `__ggsql_stat_type` AS `__ggsql_aes_type__`, `__ggsql_stat_value` AS `
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS `__schema__` LIMIT 1;
WITH `__ggsql_source__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT MIN(`id`) AS `__ggsql_min_id`, MAX(`id`) AS `__ggsql_max_id`, MIN(`val`) AS `__ggsql_min_val`, MAX(`val`) AS `__ggsql_max_val`, MIN(`grp`) AS `__ggsql_min_grp`, MAX(`grp`) AS `__ggsql_max_grp`, MIN(`day`) AS `__ggsql_min_day`, MAX(`day`) AS `__ggsql_max_day`, MIN(`mixed Case`) AS `__ggsql_min_mixed Case`, MAX(`mixed Case`) AS `__ggsql_max_mixed Case` FROM `__ggsql_source__`;
SELECT *, `__ggsql_stat_pos2` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM (WITH `__ggsql_stat_src__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT `__ggsql_aes_pos1__`, AVG(`__ggsql_aes_pos2__`) AS `__ggsql_stat_pos2` FROM `__ggsql_stat_src__` AS `__ggsql_qt__` GROUP BY `__ggsql_aes_pos1__`) AS `__ggsql_ord__` ORDER BY `__ggsql_aes_pos1__`) AS `__ggsql_stat__`;
SELECT *, `__ggsql_stat_pos2` AS `__ggsql_aes_pos2__` FROM (WITH `__ggsql_stat_src__` AS (SELECT *, `grp` AS `__ggsql_aes_pos1__`, `val` AS `__ggsql_aes_pos2__` FROM (SELECT * FROM ggsql_live_test) AS `__ggsql_src__`) SELECT `__ggsql_aes_pos1__`, AVG(`__ggsql_aes_pos2__`) AS `__ggsql_stat_pos2` FROM `__ggsql_stat_src__` AS `__ggsql_qt__` GROUP BY `__ggsql_aes_pos1__`) AS `__ggsql_stat__` ORDER BY `__ggsql_aes_pos1__`;

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS `__schema__` LIMIT 1;
Expand Down
2 changes: 1 addition & 1 deletion src/golden/druid.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, "__ggsql_stat_type" AS "__ggsql_aes_type__", "__ggsql_stat_value" AS "
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
WITH "__ggsql_source__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT MIN("id") AS "__ggsql_min_id", MAX("id") AS "__ggsql_max_id", MIN("val") AS "__ggsql_min_val", MAX("val") AS "__ggsql_max_val", MIN("grp") AS "__ggsql_min_grp", MAX("grp") AS "__ggsql_max_grp", MIN("day") AS "__ggsql_min_day", MAX("day") AS "__ggsql_max_day", MIN("mixed Case") AS "__ggsql_min_mixed Case", MAX("mixed Case") AS "__ggsql_max_mixed Case" FROM "__ggsql_source__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_ord__" ORDER BY "__ggsql_aes_pos1__") AS "__ggsql_stat__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_stat__" ORDER BY "__ggsql_aes_pos1__";

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
Expand Down
2 changes: 1 addition & 1 deletion src/golden/duckdb.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, "__ggsql_stat_type" AS "__ggsql_aes_type__", "__ggsql_stat_value" AS "
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
WITH "__ggsql_source__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT MIN("id") AS "__ggsql_min_id", MAX("id") AS "__ggsql_max_id", MIN("val") AS "__ggsql_min_val", MAX("val") AS "__ggsql_max_val", MIN("grp") AS "__ggsql_min_grp", MAX("grp") AS "__ggsql_max_grp", MIN("day") AS "__ggsql_min_day", MAX("day") AS "__ggsql_max_day", MIN("mixed Case") AS "__ggsql_min_mixed Case", MAX("mixed Case") AS "__ggsql_max_mixed Case" FROM "__ggsql_source__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_ord__" ORDER BY "__ggsql_aes_pos1__") AS "__ggsql_stat__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_stat__" ORDER BY "__ggsql_aes_pos1__";

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
Expand Down
2 changes: 1 addition & 1 deletion src/golden/exasol.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, "__ggsql_stat_type" AS "__ggsql_aes_type__", "__ggsql_stat_value" AS "
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
WITH "__ggsql_source__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT MIN("id") AS "__ggsql_min_id", MAX("id") AS "__ggsql_max_id", MIN("val") AS "__ggsql_min_val", MAX("val") AS "__ggsql_max_val", MIN("grp") AS "__ggsql_min_grp", MAX("grp") AS "__ggsql_max_grp", MIN("day") AS "__ggsql_min_day", MAX("day") AS "__ggsql_max_day", MIN("mixed Case") AS "__ggsql_min_mixed Case", MAX("mixed Case") AS "__ggsql_max_mixed Case" FROM "__ggsql_source__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_ord__" ORDER BY "__ggsql_aes_pos1__") AS "__ggsql_stat__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_stat__" ORDER BY "__ggsql_aes_pos1__";

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
Expand Down
2 changes: 1 addition & 1 deletion src/golden/monetdb.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ SELECT *, "__ggsql_stat_type" AS "__ggsql_aes_type__", "__ggsql_stat_value" AS "
-- case: line_aggregate
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
WITH "__ggsql_source__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT MIN("id") AS "__ggsql_min_id", MAX("id") AS "__ggsql_max_id", MIN("val") AS "__ggsql_min_val", MAX("val") AS "__ggsql_max_val", MIN("grp") AS "__ggsql_min_grp", MAX("grp") AS "__ggsql_max_grp", MIN("day") AS "__ggsql_min_day", MAX("day") AS "__ggsql_max_day", MIN("mixed Case") AS "__ggsql_min_mixed Case", MAX("mixed Case") AS "__ggsql_max_mixed Case" FROM "__ggsql_source__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_ord__" ORDER BY "__ggsql_aes_pos1__") AS "__ggsql_stat__";
SELECT *, "__ggsql_stat_pos2" AS "__ggsql_aes_pos2__" FROM (WITH "__ggsql_stat_src__" AS (SELECT *, "grp" AS "__ggsql_aes_pos1__", "val" AS "__ggsql_aes_pos2__" FROM (SELECT * FROM ggsql_live_test) AS "__ggsql_src__") SELECT "__ggsql_aes_pos1__", AVG("__ggsql_aes_pos2__") AS "__ggsql_stat_pos2" FROM "__ggsql_stat_src__" AS "__ggsql_qt__" GROUP BY "__ggsql_aes_pos1__") AS "__ggsql_stat__" ORDER BY "__ggsql_aes_pos1__";

-- case: density_grouped
SELECT * FROM (SELECT * FROM ggsql_live_test) AS "__schema__" LIMIT 1;
Expand Down
Loading
Loading