agent_patch
runs/2026-02-28__18-27-22__gpt-5-3-codex/flux-pr-1759/flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/agent-logs/agent.patch
27300 bytes
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/mod.rs b/app/src/ast/mod.rs
index d658898..bf421a2 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/mod.rs
+++ b/app/src/ast/mod.rs
@@ -72,7 +72,8 @@ pub use self::query::{
JsonTableColumn, JsonTableColumnErrorHandling, JsonTableNamedColumn, JsonTableNestedColumn,
LateralView, LimitClause, LockClause, LockType, MatchRecognizePattern, MatchRecognizeSymbol,
Measure, NamedWindowDefinition, NamedWindowExpr, NonBlock, Offset, OffsetRows,
- OpenJsonTableColumn, OrderBy, OrderByExpr, OrderByKind, OrderByOptions, PivotValueSource,
+ OpenJsonTableColumn, OrderBy, OrderByExpr, OrderByKind, OrderByOptions, PipeOperator,
+ PivotValueSource,
ProjectionSelect, Query, RenameSelectItem, RepetitionQuantifier, ReplaceSelectElement,
ReplaceSelectItem, RowsPerMatch, Select, SelectFlavor, SelectInto, SelectItem,
SelectItemQualifiedWildcardKind, SetExpr, SetOperator, SetQuantifier, Setting,
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/query.rs b/app/src/ast/query.rs
index 982985e..c57ae86 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/query.rs
+++ b/app/src/ast/query.rs
@@ -41,6 +41,8 @@ pub struct Query {
pub with: Option<With>,
/// SELECT or UNION / EXCEPT / INTERSECT
pub body: Box<SetExpr>,
+ /// BigQuery pipe operators (`|>`).
+ pub pipe_operators: Vec<PipeOperator>,
/// ORDER BY
pub order_by: Option<OrderBy>,
/// `LIMIT ... OFFSET ... | LIMIT <offset>, <limit>`
@@ -70,6 +72,9 @@ impl fmt::Display for Query {
write!(f, "{with} ")?;
}
write!(f, "{}", self.body)?;
+ for pipe_operator in &self.pipe_operators {
+ write!(f, " |> {pipe_operator}")?;
+ }
if let Some(ref order_by) = self.order_by {
write!(f, " {order_by}")?;
}
@@ -96,6 +101,54 @@ impl fmt::Display for Query {
}
}
+/// BigQuery pipe operators.
+#[derive(Debug, Clone, PartialEq, PartialOrd, Eq, Ord, Hash)]
+#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
+#[cfg_attr(feature = "visitor", derive(Visit, VisitMut))]
+pub enum PipeOperator {
+ Where(Expr),
+ Select(Vec<SelectItem>),
+ Extend(Vec<SelectItem>),
+ Set(Vec<Assignment>),
+ Drop(Vec<Expr>),
+ As(Ident),
+ Limit(Expr),
+ OrderBy(Vec<OrderByExpr>),
+ Aggregate {
+ aggregate: Vec<ExprWithAlias>,
+ group_by: GroupByExpr,
+ },
+ Rename(Vec<IdentWithAlias>),
+}
+
+impl fmt::Display for PipeOperator {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ match self {
+ Self::Where(expr) => write!(f, "WHERE {expr}"),
+ Self::Select(items) => write!(f, "SELECT {}", display_comma_separated(items)),
+ Self::Extend(items) => write!(f, "EXTEND {}", display_comma_separated(items)),
+ Self::Set(assignments) => write!(f, "SET {}", display_comma_separated(assignments)),
+ Self::Drop(items) => write!(f, "DROP {}", display_comma_separated(items)),
+ Self::As(alias) => write!(f, "AS {alias}"),
+ Self::Limit(limit) => write!(f, "LIMIT {limit}"),
+ Self::OrderBy(order_by) => write!(f, "ORDER BY {}", display_comma_separated(order_by)),
+ Self::Aggregate {
+ aggregate,
+ group_by,
+ } => {
+ write!(f, "AGGREGATE {}", display_comma_separated(aggregate))?;
+ match group_by {
+ GroupByExpr::Expressions(exprs, modifiers)
+ if exprs.is_empty() && modifiers.is_empty() => {}
+ _ => write!(f, " {group_by}")?,
+ }
+ Ok(())
+ }
+ Self::Rename(items) => write!(f, "RENAME {}", display_comma_separated(items)),
+ }
+ }
+}
+
/// Query syntax for ClickHouse ADD PROJECTION statement.
/// Its syntax is similar to SELECT statement, but it is used to add a new projection to a table.
/// Syntax is `SELECT <COLUMN LIST EXPR> [GROUP BY] [ORDER BY]`
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/spans.rs b/app/src/ast/spans.rs
index 28d479f..1aa0a1f 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/ast/spans.rs
+++ b/app/src/ast/spans.rs
@@ -95,6 +95,7 @@ impl Spanned for Query {
let Query {
with,
body,
+ pipe_operators: _, // todo, bigquery specific
order_by,
limit_clause,
fetch,
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/dialect/bigquery.rs b/app/src/dialect/bigquery.rs
index 49fb24f..05d132f 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/dialect/bigquery.rs
+++ b/app/src/dialect/bigquery.rs
@@ -123,6 +123,11 @@ impl Dialect for BigQueryDialect {
true
}
+ /// See <https://cloud.google.com/bigquery/docs/reference/standard-sql/pipe-syntax>
+ fn supports_pipe_operators(&self) -> bool {
+ true
+ }
+
// See <https://cloud.google.com/bigquery/docs/access-historical-data>
fn supports_timestamp_versioning(&self) -> bool {
true
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/dialect/mod.rs b/app/src/dialect/mod.rs
index b2dff06..9747039 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/dialect/mod.rs
+++ b/app/src/dialect/mod.rs
@@ -293,6 +293,11 @@ pub trait Dialect: Debug + Any {
false
}
+ /// Returns true if the dialect supports BigQuery-style pipe operators (`|>`).
+ fn supports_pipe_operators(&self) -> bool {
+ false
+ }
+
/// Returns true if the dialect supports the MATCH_RECOGNIZE operation.
fn supports_match_recognize(&self) -> bool {
false
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/keywords.rs b/app/src/keywords.rs
index 15a6f91..5d7aca9 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/keywords.rs
+++ b/app/src/keywords.rs
@@ -83,6 +83,7 @@ define_keywords!(
ADMIN,
AFTER,
AGAINST,
+ AGGREGATE,
AGGREGATION,
ALERT,
ALGORITHM,
@@ -338,6 +339,7 @@ define_keywords!(
EXPLAIN,
EXPLICIT,
EXPORT,
+ EXTEND,
EXTENDED,
EXTENSION,
EXTERNAL,
@@ -1008,6 +1010,8 @@ pub const RESERVED_FOR_TABLE_ALIAS: &[Keyword] = &[
Keyword::EXPLAIN,
Keyword::ANALYZE,
Keyword::SELECT,
+ Keyword::AGGREGATE,
+ Keyword::EXTEND,
Keyword::WHERE,
Keyword::GROUP,
Keyword::SORT,
@@ -1075,6 +1079,8 @@ pub const RESERVED_FOR_COLUMN_ALIAS: &[Keyword] = &[
Keyword::EXPLAIN,
Keyword::ANALYZE,
Keyword::SELECT,
+ Keyword::AGGREGATE,
+ Keyword::EXTEND,
Keyword::WHERE,
Keyword::GROUP,
Keyword::SORT,
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/parser/mod.rs b/app/src/parser/mod.rs
index 03ea91f..219deb9 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/parser/mod.rs
+++ b/app/src/parser/mod.rs
@@ -10564,6 +10564,7 @@ impl<'a> Parser<'a> {
Ok(Query {
with,
body: self.parse_insert_setexpr_boxed()?,
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -10577,6 +10578,7 @@ impl<'a> Parser<'a> {
Ok(Query {
with,
body: self.parse_update_setexpr_boxed()?,
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -10590,6 +10592,7 @@ impl<'a> Parser<'a> {
Ok(Query {
with,
body: self.parse_delete_setexpr_boxed()?,
+ pipe_operators: vec![],
limit_clause: None,
order_by: None,
fetch: None,
@@ -10601,6 +10604,11 @@ impl<'a> Parser<'a> {
.into())
} else {
let body = self.parse_query_body(self.dialect.prec_unknown())?;
+ let pipe_operators = if self.dialect.supports_pipe_operators() {
+ self.parse_pipe_operators()?
+ } else {
+ vec![]
+ };
let order_by = self.parse_optional_order_by()?;
@@ -10640,6 +10648,7 @@ impl<'a> Parser<'a> {
Ok(Query {
with,
body,
+ pipe_operators,
order_by,
limit_clause,
fetch,
@@ -10652,6 +10661,59 @@ impl<'a> Parser<'a> {
}
}
+ fn parse_pipe_operators(&mut self) -> Result<Vec<PipeOperator>, ParserError> {
+ let mut operators = vec![];
+ while self.consume_token(&Token::PipeRight) {
+ operators.push(self.parse_pipe_operator()?);
+ }
+ Ok(operators)
+ }
+
+ fn parse_pipe_operator(&mut self) -> Result<PipeOperator, ParserError> {
+ if self.parse_keyword(Keyword::WHERE) {
+ Ok(PipeOperator::Where(self.parse_expr()?))
+ } else if self.parse_keyword(Keyword::SELECT) {
+ Ok(PipeOperator::Select(self.parse_projection()?))
+ } else if self.parse_keyword(Keyword::EXTEND) {
+ Ok(PipeOperator::Extend(self.parse_projection()?))
+ } else if self.parse_keyword(Keyword::SET) {
+ Ok(PipeOperator::Set(
+ self.parse_comma_separated(Self::parse_assignment)?,
+ ))
+ } else if self.parse_keyword(Keyword::DROP) {
+ Ok(PipeOperator::Drop(self.parse_comma_separated(Self::parse_expr)?))
+ } else if self.parse_keyword(Keyword::AS) {
+ Ok(PipeOperator::As(self.parse_identifier()?))
+ } else if self.parse_keyword(Keyword::LIMIT) {
+ let Some(limit) = self.parse_limit()? else {
+ return self.expected("a LIMIT value", self.peek_token());
+ };
+ Ok(PipeOperator::Limit(limit))
+ } else if self.parse_keywords(&[Keyword::ORDER, Keyword::BY]) {
+ Ok(PipeOperator::OrderBy(
+ self.parse_comma_separated(Self::parse_order_by_expr)?,
+ ))
+ } else if self.parse_keyword(Keyword::AGGREGATE) {
+ let aggregate = self.parse_comma_separated(Self::parse_expr_with_alias)?;
+ let group_by = self
+ .parse_optional_group_by()?
+ .unwrap_or_else(|| GroupByExpr::Expressions(vec![], vec![]));
+ Ok(PipeOperator::Aggregate {
+ aggregate,
+ group_by,
+ })
+ } else if self.parse_keyword(Keyword::RENAME) {
+ Ok(PipeOperator::Rename(
+ self.parse_comma_separated(Self::parse_identifier_with_alias)?,
+ ))
+ } else {
+ self.expected(
+ "a BigQuery pipe operator after |>",
+ self.peek_token().clone(),
+ )
+ }
+ }
+
fn parse_settings(&mut self) -> Result<Option<Vec<Setting>>, ParserError> {
let settings = if dialect_of!(self is ClickHouseDialect|GenericDialect)
&& self.parse_keyword(Keyword::SETTINGS)
@@ -12115,6 +12177,7 @@ impl<'a> Parser<'a> {
subquery: Box::new(Query {
with: None,
body: Box::new(values),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/tokenizer.rs b/app/src/tokenizer.rs
index 13bce0c..b96835a 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/src/tokenizer.rs
+++ b/app/src/tokenizer.rs
@@ -162,6 +162,8 @@ pub enum Token {
Ampersand,
/// Pipe `|`
Pipe,
+ /// Pipe right `|>` used by BigQuery pipe syntax.
+ PipeRight,
/// Caret `^`
Caret,
/// Left brace `{`
@@ -331,6 +333,7 @@ impl fmt::Display for Token {
Token::Ampersand => f.write_str("&"),
Token::Caret => f.write_str("^"),
Token::Pipe => f.write_str("|"),
+ Token::PipeRight => f.write_str("|>"),
Token::LBrace => f.write_str("{"),
Token::RBrace => f.write_str("}"),
Token::RArrow => f.write_str("=>"),
@@ -1371,6 +1374,9 @@ impl<'a> Tokenizer<'a> {
'|' => {
chars.next(); // consume the '|'
match chars.peek() {
+ Some('>') if self.dialect.supports_pipe_operators() => {
+ self.consume_for_binop(chars, "|>", Token::PipeRight)
+ }
Some('/') => self.consume_for_binop(chars, "|/", Token::PGSquareRoot),
Some('|') => {
chars.next(); // consume the second '|'
@@ -2593,6 +2599,30 @@ mod tests {
compare(expected, tokens);
}
+ #[test]
+ fn tokenize_bigquery_pipe_operator() {
+ let sql = String::from("FROM t |> WHERE x > 0");
+ let dialect = BigQueryDialect {};
+ let tokens = Tokenizer::new(&dialect, &sql).tokenize().unwrap();
+
+ let expected = vec![
+ Token::make_keyword("FROM"),
+ Token::Whitespace(Whitespace::Space),
+ Token::make_word("t", None),
+ Token::Whitespace(Whitespace::Space),
+ Token::PipeRight,
+ Token::Whitespace(Whitespace::Space),
+ Token::make_keyword("WHERE"),
+ Token::Whitespace(Whitespace::Space),
+ Token::make_word("x", None),
+ Token::Whitespace(Whitespace::Space),
+ Token::Gt,
+ Token::Whitespace(Whitespace::Space),
+ Token::Number(String::from("0"), false),
+ ];
+ compare(expected, tokens);
+ }
+
#[test]
fn tokenize_logical_xor() {
let sql =
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_bigquery.rs b/app/tests/sqlparser_bigquery.rs
index 416d2e4..b1cddb5 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_bigquery.rs
+++ b/app/tests/sqlparser_bigquery.rs
@@ -2311,6 +2311,34 @@ fn bigquery_select_expr_star() {
bigquery().verified_only_select("SELECT myfunc()[0].* FROM T");
}
+#[test]
+fn parse_bigquery_pipe_operators_basic() {
+ let sql = "FROM t |> WHERE x > 0 |> SELECT x |> LIMIT 10";
+ let query = bigquery().verified_query(sql);
+ assert_eq!(query.pipe_operators.len(), 3);
+ assert!(matches!(query.pipe_operators[0], PipeOperator::Where(_)));
+ assert!(matches!(query.pipe_operators[1], PipeOperator::Select(_)));
+ assert!(matches!(query.pipe_operators[2], PipeOperator::Limit(_)));
+}
+
+#[test]
+fn parse_bigquery_pipe_operator_aggregate() {
+ let sql = "FROM t |> AGGREGATE SUM(y) AS total GROUP BY z |> ORDER BY total DESC";
+ let query = bigquery().verified_query(sql);
+ assert_eq!(query.pipe_operators.len(), 2);
+ match &query.pipe_operators[0] {
+ PipeOperator::Aggregate {
+ aggregate,
+ group_by,
+ } => {
+ assert_eq!(aggregate.len(), 1);
+ assert!(matches!(group_by, GroupByExpr::Expressions(exprs, _) if exprs.len() == 1));
+ }
+ other => panic!("Expected AGGREGATE pipe operator, found {other:?}"),
+ }
+ assert!(matches!(query.pipe_operators[1], PipeOperator::OrderBy(_)));
+}
+
#[test]
fn test_select_as_struct() {
bigquery().verified_only_select("SELECT * FROM (SELECT AS VALUE STRUCT(123 AS a, false AS b))");
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_common.rs b/app/tests/sqlparser_common.rs
index fa2346c..59cb35e 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_common.rs
+++ b/app/tests/sqlparser_common.rs
@@ -482,6 +482,7 @@ fn parse_update_set_from() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -4303,6 +4304,7 @@ fn parse_create_table_as_table() {
table_name: Some("old_table".to_string()),
schema_name: None,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -4328,6 +4330,7 @@ fn parse_create_table_as_table() {
table_name: Some("old_table".to_string()),
schema_name: Some("schema_name".to_string()),
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -6325,6 +6328,7 @@ fn parse_interval_and_or_xor() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -9460,6 +9464,7 @@ fn parse_merge() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -11341,6 +11346,7 @@ fn parse_unload() {
fetch: None,
locks: vec![],
for_clause: None,
+ pipe_operators: vec![],
order_by: None,
settings: None,
format_clause: None,
@@ -12557,6 +12563,7 @@ fn test_extract_seconds_ok() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -14634,6 +14641,7 @@ fn test_select_from_first() {
connect_by: None,
flavor,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_mssql.rs b/app/tests/sqlparser_mssql.rs
index ef61034..fb4ef46 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_mssql.rs
+++ b/app/tests/sqlparser_mssql.rs
@@ -111,6 +111,7 @@ fn parse_create_procedure() {
fetch: None,
locks: vec![],
for_clause: None,
+ pipe_operators: vec![],
order_by: None,
settings: None,
format_clause: None,
@@ -1245,6 +1246,7 @@ fn parse_substring_in_select() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1351,6 +1353,7 @@ fn parse_mssql_declare() {
fetch: None,
locks: vec![],
for_clause: None,
+ pipe_operators: vec![],
order_by: None,
settings: None,
format_clause: None,
@@ -1679,6 +1682,7 @@ fn parse_create_table_with_valid_options() {
on_commit: None,
on_cluster: None,
primary_key: None,
+ pipe_operators: vec![],
order_by: None,
partition_by: None,
cluster_by: None,
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_mysql.rs b/app/tests/sqlparser_mysql.rs
index f74248b..0d5bf99 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_mysql.rs
+++ b/app/tests/sqlparser_mysql.rs
@@ -1106,6 +1106,7 @@ fn parse_escaped_quote_identifiers_with_escape() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1158,6 +1159,7 @@ fn parse_escaped_quote_identifiers_with_no_escape() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1204,6 +1206,7 @@ fn parse_escaped_backticks_with_escape() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1254,6 +1257,7 @@ fn parse_escaped_backticks_with_no_escape() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1429,6 +1433,7 @@ fn parse_simple_insert() {
]
]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1477,6 +1482,7 @@ fn parse_ignore_insert() {
Expr::value(number("1"))
]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1525,6 +1531,7 @@ fn parse_priority_insert() {
Expr::value(number("1"))
]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1570,6 +1577,7 @@ fn parse_priority_insert() {
Expr::value(number("1"))
]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1617,6 +1625,7 @@ fn parse_insert_as() {
(Value::SingleQuotedString("2024-01-01".to_string())).with_empty_span()
)]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1679,6 +1688,7 @@ fn parse_insert_as() {
)
]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1728,6 +1738,7 @@ fn parse_replace_insert() {
Expr::value(number("1"))
]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1768,6 +1779,7 @@ fn parse_empty_row_insert() {
explicit_row: false,
rows: vec![vec![], vec![]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -1832,6 +1844,7 @@ fn parse_insert_with_on_duplicate_update() {
Expr::Value((Value::Boolean(true)).with_empty_span()),
]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -2738,6 +2751,7 @@ fn parse_substring_in_select() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -3044,6 +3058,7 @@ fn parse_hex_string_introducer() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
diff --git a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_postgres.rs b/app/tests/sqlparser_postgres.rs
index 27fc7fa..fa6b8bb 100644
--- a/tmp/agent-patch-flux-pr-1759.1-of-1.2026-02-28__18-27-22__gpt-5-3-codex/app/tests/sqlparser_postgres.rs
+++ b/app/tests/sqlparser_postgres.rs
@@ -1319,6 +1319,7 @@ fn parse_copy_to() {
connect_by: None,
flavor: SelectFlavor::Standard,
}))),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -2987,6 +2988,7 @@ fn parse_array_subquery_expr() {
flavor: SelectFlavor::Standard,
}))),
}),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -4778,6 +4780,7 @@ fn test_simple_postgres_insert_with_alias() {
Expr::Value((Value::Number("123".to_string(), false)).with_empty_span())
]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -4849,6 +4852,7 @@ fn test_simple_postgres_insert_with_alias() {
)
]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,
@@ -4918,6 +4922,7 @@ fn test_simple_insert_with_quoted_alias() {
)
]]
})),
+ pipe_operators: vec![],
order_by: None,
limit_clause: None,
fetch: None,