Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
24 changes: 20 additions & 4 deletions 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,
layer_order: 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,11 +732,21 @@ where
normalize_mapping_column_names(layer);
}

// Apply explicit ORDER BY if provided
let final_query = if let Some(ref o) = order_by {
format!("{} ORDER BY {}", final_query, o.as_str())
} else {
// Apply ORDER BY. An explicit clause ORDER BY takes precedence, so it
// comes first; geom-required ordering carried by the stat transform is
// appended as a tiebreaker so e.g. lines stay connected along the domain
// axis within each group. Ordering is only ever applied here, on the
// final outermost query — nested ORDER BY is rejected by some backends
// (T-SQL error 1033).
let mut ordering: Vec<String> = Vec::new();
if let Some(ref o) = order_by {
ordering.push(o.as_str().to_string());
}
ordering.extend(stat_order_by.iter().cloned());
let final_query = if ordering.is_empty() {
final_query
} else {
format!("{} ORDER BY {}", final_query, ordering.join(", "))
};

Ok(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