Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
6d7ecf6
feat(linux): edit query results that read one table with its key
datlechin Nov 5, 2026
02b38eb
fix(linux): keep stored keys, one database and one alias meaning for …
datlechin Nov 5, 2026
d2d7304
fix(linux): refuse unknown transactions and save result rows apart fr…
datlechin Nov 5, 2026
cf466f8
docs(linux): note editable query results in the changelog
datlechin Nov 5, 2026
86ef66b
fix(linux): keep result reads to their own result and one close choic…
datlechin Nov 5, 2026
5d4e108
fix(linux): settle stopped reads, hidden owner pages and refreshed co…
datlechin Nov 5, 2026
70f6518
refactor(linux): edit only a run's one result and read it again as a run
datlechin Nov 5, 2026
cd28c00
fix(linux): hold result rows still while they save and re-read them a…
datlechin Nov 5, 2026
a76b680
fix(linux): commit result cell edits before close prompts and run the…
datlechin Nov 5, 2026
491c717
fix(linux): leave an unchanged SQL file alone when its tab's rows are…
datlechin Nov 5, 2026
4005c40
fix(linux): satisfy clippy and the PostgreSQL origin test
datlechin Nov 5, 2026
50b6036
fix(core): read back only PostgreSQL text that names its value exactly
datlechin Nov 5, 2026
ff1062c
fix(linux): hold Ctrl+S in editable results and refuse duplicating te…
datlechin Nov 5, 2026
78072eb
Merge remote-tracking branch 'origin/main' into feat/linux-edit-query…
datlechin Nov 6, 2026
cbae5d5
Merge remote-tracking branch 'origin/main' into feat/linux-edit-query…
datlechin Nov 6, 2026
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
17 changes: 17 additions & 0 deletions core/crates/core/src/column/column_origin.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
use crate::meta::TableRef;

// Set only for a direct column of a permanent base table, qualified so the window's connection names the same table.
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct ColumnOrigin {
pub table: TableRef,
pub column: String,
}

impl ColumnOrigin {
pub fn new(table: TableRef, column: impl Into<String>) -> Self {
Self {
table,
column: column.into(),
}
}
}
2 changes: 2 additions & 0 deletions core/crates/core/src/column/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
mod catalog_type;
mod classify;
mod column_info;
mod column_origin;
mod column_type;
mod default;
mod integer_kind;
Expand All @@ -13,6 +14,7 @@ mod sql_type_expr;
pub use catalog_type::CatalogType;
pub use classify::{classify_type_name, has_dynamic_storage};
pub use column_info::ColumnInfo;
pub use column_origin::ColumnOrigin;
pub use column_type::ColumnType;
pub use default::ColumnDefault;
pub use integer_kind::{IntegerKind, IntegerWidth};
Expand Down
16 changes: 9 additions & 7 deletions core/crates/core/src/column/result_column.rs
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
use super::ColumnType;
use super::{ColumnOrigin, ColumnType};

/// A column of a result set, which is all a driver can say about an
/// arbitrary query's output.
///
/// Browse uses `ColumnInfo` from `fetch_columns`, which knows about
/// keys and defaults. A result column knows only its name and type,
/// because that is all a `SELECT` over an expression has.
// Browse reads keys and defaults from `ColumnInfo`; an arbitrary query's output has only a name, a type and maybe an origin.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ResultColumn {
pub name: String,
pub column_type: ColumnType,
pub origin: Option<ColumnOrigin>,
}

impl ResultColumn {
pub fn new(name: impl Into<String>, column_type: ColumnType) -> Self {
Self {
name: name.into(),
column_type,
origin: None,
}
}

pub fn with_origin(mut self, origin: Option<ColumnOrigin>) -> Self {
self.origin = origin;
self
}
}
4 changes: 4 additions & 0 deletions core/crates/core/src/edit/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ mod is_unchanged;
mod new_draft_cell;
mod parse_edit_text;
mod parse_literal_text;
mod result_target;
mod temporal_parts;

pub use cell_expression::{CellExpression, MomentKind, cell_expressions, typed_cell_expression};
Expand All @@ -25,4 +26,7 @@ pub use parse_edit_text::parse_edit_text;
pub use parse_literal_text::{
parse_filter_text, parse_literal_text, parse_time_with_offset, parse_timestamp_with_offset,
};
pub use result_target::{
ResultLock, ResultSource, ResultTarget, parsed_origins, result_source, result_target, value_for_column,
};
pub use temporal_parts::{TemporalParts, temporal_parts};
Loading
Loading