1 parent
f3d2b6cb01
commit
355f34f3c7
3 files changed
+30
-3
No files matched your search
@@ -2288,8 +2288,10 @@ impl OraclePlSqlBlock {
|
||||
}
|
||||
|
||||
match object_kind {
|
||||
// Specs complete on outer END [name]; without requiring BEGIN.
|
||||
Some(OraclePlSqlCreateObjectKind::Spec) => complete,
|
||||
// Package/type objects complete on their outer END [name]; a package
|
||||
// body may omit an initialization BEGIN when it has no executable
|
||||
// initialization section.
|
||||
Some(OraclePlSqlCreateObjectKind::Body | OraclePlSqlCreateObjectKind::Spec) => complete,
|
||||
_ => saw_begin && complete,
|
||||
}
|
||||
}
|
||||
@@ -3927,6 +3929,22 @@ SELECT 1;";
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn oracle_like_split_declaration_only_package_body_before_following_dml() {
|
||||
let package_body = "CREATE OR REPLACE PACKAGE BODY packageName IS\nnull;\nEND packageName;";
|
||||
assert_eq!(
|
||||
split_sql_statements_for_database(&format!("{package_body}\nSELECT * FROM goods;"), DatabaseType::Oracle),
|
||||
vec![package_body, "SELECT * FROM goods"]
|
||||
);
|
||||
assert_eq!(
|
||||
split_sql_statements_for_database(
|
||||
&format!("{package_body}\n/\nSELECT * FROM goods;"),
|
||||
DatabaseType::Oracle
|
||||
),
|
||||
vec![package_body, "SELECT * FROM goods"]
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn xugu_split_keeps_create_type_body_together() {
|
||||
let sql = "\
|
||||
|
||||
Reference in new issue
Block a user