feat: support Oracle package sources
This commit is contained in:
1 parent
76378f3a65
commit
7eca75b325
22 files changed
+429
-36
No files matched your search
@@ -231,6 +231,8 @@ fn object_type_keyword(object_type: &ObjectSourceKind) -> &'static str {
|
||||
ObjectSourceKind::View => "VIEW",
|
||||
ObjectSourceKind::Procedure => "PROCEDURE",
|
||||
ObjectSourceKind::Function => "FUNCTION",
|
||||
ObjectSourceKind::Package => "PACKAGE",
|
||||
ObjectSourceKind::PackageBody => "PACKAGE BODY",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -376,6 +378,10 @@ fn parse_object_source_kind(value: &str) -> Option<ObjectSourceKind> {
|
||||
Some(ObjectSourceKind::Procedure)
|
||||
} else if value.eq_ignore_ascii_case("FUNCTION") {
|
||||
Some(ObjectSourceKind::Function)
|
||||
} else if value.eq_ignore_ascii_case("PACKAGE") {
|
||||
Some(ObjectSourceKind::Package)
|
||||
} else if value.eq_ignore_ascii_case("PACKAGE BODY") || value.eq_ignore_ascii_case("PACKAGE_BODY") {
|
||||
Some(ObjectSourceKind::PackageBody)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
@@ -479,6 +485,20 @@ mod tests {
|
||||
assert_eq!(sql, "CREATE VIEW `reporting`.`active_users` AS\nSELECT id FROM users;");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn oracle_package_source_saves_as_single_create_or_replace_statement() {
|
||||
let sql = build_executable_object_source_sql(EditableObjectSourceSqlInput {
|
||||
database_type: DatabaseType::Oracle,
|
||||
object_type: ObjectSourceKind::PackageBody,
|
||||
schema: Some("HR".to_string()),
|
||||
name: "PAYROLL".to_string(),
|
||||
source: "CREATE OR REPLACE PACKAGE BODY PAYROLL AS\nEND PAYROLL;".to_string(),
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(sql, "CREATE OR REPLACE PACKAGE BODY PAYROLL AS\nEND PAYROLL;");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn postgres_procedure_rename_adds_drop_cleanup() {
|
||||
let statements = build_executable_object_source_statements(input(
|
||||
|
||||
Reference in new issue
Block a user