Add support for EXECUTE IMMEDIATE (#1717)

This commit is contained in:
Ifeanyi Ubah 2025-02-19 18:54:14 +01:00 committed by GitHub
parent 3e90a18f6d
commit b482562618
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 122 additions and 35 deletions

View file

@ -1659,10 +1659,12 @@ fn parse_execute() {
assert_eq!(
stmt,
Statement::Execute {
name: ObjectName::from(vec!["a".into()]),
name: Some(ObjectName::from(vec!["a".into()])),
parameters: vec![],
has_parentheses: false,
using: vec![]
using: vec![],
immediate: false,
into: vec![]
}
);
@ -1670,13 +1672,15 @@ fn parse_execute() {
assert_eq!(
stmt,
Statement::Execute {
name: ObjectName::from(vec!["a".into()]),
name: Some(ObjectName::from(vec!["a".into()])),
parameters: vec![
Expr::Value(number("1")),
Expr::Value(Value::SingleQuotedString("t".to_string()))
],
has_parentheses: true,
using: vec![]
using: vec![],
immediate: false,
into: vec![]
}
);
@ -1685,23 +1689,31 @@ fn parse_execute() {
assert_eq!(
stmt,
Statement::Execute {
name: ObjectName::from(vec!["a".into()]),
name: Some(ObjectName::from(vec!["a".into()])),
parameters: vec![],
has_parentheses: false,
using: vec![
Expr::Cast {
kind: CastKind::Cast,
expr: Box::new(Expr::Value(Value::Number("1337".parse().unwrap(), false))),
data_type: DataType::SmallInt(None),
format: None
ExprWithAlias {
expr: Expr::Cast {
kind: CastKind::Cast,
expr: Box::new(Expr::Value(Value::Number("1337".parse().unwrap(), false))),
data_type: DataType::SmallInt(None),
format: None
},
alias: None
},
Expr::Cast {
kind: CastKind::Cast,
expr: Box::new(Expr::Value(Value::Number("7331".parse().unwrap(), false))),
data_type: DataType::SmallInt(None),
format: None
ExprWithAlias {
expr: Expr::Cast {
kind: CastKind::Cast,
expr: Box::new(Expr::Value(Value::Number("7331".parse().unwrap(), false))),
data_type: DataType::SmallInt(None),
format: None
},
alias: None
},
]
],
immediate: false,
into: vec![]
}
);
}