Merge branch 'main' into quoting-fix-attempt-2

This commit is contained in:
Nikita Sivukhin
2025-09-29 10:58:51 +04:00
106 changed files with 4130 additions and 988 deletions

View File

@@ -2676,11 +2676,11 @@ impl<'a> Parser<'a> {
let columns = self.parse_eid_list(false)?;
peek_expect!(self, TK_REFERENCES);
let clause = self.parse_foreign_key_clause()?;
let deref_clause = self.parse_defer_subclause()?;
let defer_clause = self.parse_defer_subclause()?;
Ok(TableConstraint::ForeignKey {
columns,
clause,
deref_clause,
defer_clause,
})
}
@@ -3288,10 +3288,10 @@ impl<'a> Parser<'a> {
fn parse_reference_column_constraint(&mut self) -> Result<ColumnConstraint> {
let clause = self.parse_foreign_key_clause()?;
let deref_clause = self.parse_defer_subclause()?;
let defer_clause = self.parse_defer_subclause()?;
Ok(ColumnConstraint::ForeignKey {
clause,
deref_clause,
defer_clause,
})
}
@@ -3434,10 +3434,6 @@ impl<'a> Parser<'a> {
pub fn parse_column_definition(&mut self, in_alter: bool) -> Result<ColumnDefinition> {
let col_name = self.parse_nm()?;
if !in_alter && col_name.as_str().eq_ignore_ascii_case("rowid") {
return Err(Error::Custom("cannot use reserved word: ROWID".to_owned()));
}
let col_type = self.parse_type()?;
let constraints = self.parse_named_column_constraints(in_alter)?;
Ok(ColumnDefinition {
@@ -4027,7 +4023,6 @@ mod tests {
"ALTER TABLE my_table ADD COLUMN my_column PRIMARY KEY",
"ALTER TABLE my_table ADD COLUMN my_column UNIQUE",
"CREATE TEMP TABLE baz.foo(bar)",
"CREATE TABLE foo(rowid)",
"CREATE TABLE foo(d INT AS (a*abs(b)))",
"CREATE TABLE foo(d INT AS (a*abs(b)))",
"CREATE TABLE foo(bar UNKNOWN_INT) STRICT",
@@ -9413,7 +9408,7 @@ mod tests {
columns: vec![],
args: vec![]
},
deref_clause: None
defer_clause: None
},
},
],
@@ -9453,7 +9448,7 @@ mod tests {
RefArg::OnInsert(RefAct::SetNull),
]
},
deref_clause: None
defer_clause: None
},
},
],
@@ -9493,7 +9488,7 @@ mod tests {
RefArg::OnUpdate(RefAct::SetNull),
]
},
deref_clause: None
defer_clause: None
},
},
],
@@ -9533,7 +9528,7 @@ mod tests {
RefArg::OnDelete(RefAct::SetNull),
]
},
deref_clause: None
defer_clause: None
},
},
],
@@ -9573,7 +9568,7 @@ mod tests {
RefArg::OnDelete(RefAct::SetDefault),
]
},
deref_clause: None
defer_clause: None
},
},
],
@@ -9613,7 +9608,7 @@ mod tests {
RefArg::OnDelete(RefAct::Cascade),
]
},
deref_clause: None
defer_clause: None
},
},
],
@@ -9653,7 +9648,7 @@ mod tests {
RefArg::OnDelete(RefAct::Restrict),
]
},
deref_clause: None
defer_clause: None
},
},
],
@@ -9693,7 +9688,7 @@ mod tests {
RefArg::OnDelete(RefAct::NoAction),
]
},
deref_clause: None
defer_clause: None
},
},
],
@@ -9719,7 +9714,7 @@ mod tests {
columns: vec![],
args: vec![]
},
deref_clause: Some(DeferSubclause {
defer_clause: Some(DeferSubclause {
deferrable: true,
init_deferred: None,
})
@@ -9748,7 +9743,7 @@ mod tests {
columns: vec![],
args: vec![]
},
deref_clause: Some(DeferSubclause {
defer_clause: Some(DeferSubclause {
deferrable: false,
init_deferred: Some(InitDeferredPred::InitiallyImmediate),
})
@@ -9777,7 +9772,7 @@ mod tests {
columns: vec![],
args: vec![]
},
deref_clause: Some(DeferSubclause {
defer_clause: Some(DeferSubclause {
deferrable: false,
init_deferred: Some(InitDeferredPred::InitiallyDeferred),
})
@@ -9806,7 +9801,7 @@ mod tests {
columns: vec![],
args: vec![]
},
deref_clause: Some(DeferSubclause {
defer_clause: Some(DeferSubclause {
deferrable: false,
init_deferred: Some(InitDeferredPred::InitiallyDeferred),
})
@@ -10200,7 +10195,7 @@ mod tests {
],
args: vec![],
},
deref_clause: None,
defer_clause: None,
},
},
NamedTableConstraint {