From 6938e16444a37747d74bdbde86269ea0fa7c1b09 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Mon, 8 Feb 2021 11:26:57 -0500 Subject: [PATCH 1/4] Add deregister_table --- rust/datafusion/src/execution/context.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/rust/datafusion/src/execution/context.rs b/rust/datafusion/src/execution/context.rs index 4b8a4f71fe62..9fb3a0d68fb4 100644 --- a/rust/datafusion/src/execution/context.rs +++ b/rust/datafusion/src/execution/context.rs @@ -287,6 +287,21 @@ impl ExecutionContext { .insert(name.to_string(), provider.into()); } + /// Deregisters the named table. + /// + /// Returns true if the table was successfully de-reregistered. + pub fn deregister_table( + &mut self, + name: &str + ) -> bool { + self.state + .lock() + .unwrap() + .datasources + .remove(&name.to_string()) + .is_some() + } + /// Retrieves a DataFrame representing a table previously registered by calling the /// register_table function. /// @@ -720,6 +735,9 @@ mod tests { ]; assert_batches_eq!(expected, &results); + assert_eq!(ctx.deregister_table("dual"), true); + assert_eq!(ctx.deregister_table("dual"), false); + Ok(()) } @@ -1668,6 +1686,8 @@ mod tests { assert_eq!(a.value(i) + b.value(i), sum.value(i)); } + ctx.deregister_table("t"); + Ok(()) } From 1e14c4fc385cf2c9f9d54c71e7568cc6ef69fd8d Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Mon, 8 Feb 2021 11:56:09 -0500 Subject: [PATCH 2/4] Update context.rs --- rust/datafusion/src/execution/context.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/rust/datafusion/src/execution/context.rs b/rust/datafusion/src/execution/context.rs index 9fb3a0d68fb4..fdfbe9cc85b9 100644 --- a/rust/datafusion/src/execution/context.rs +++ b/rust/datafusion/src/execution/context.rs @@ -288,12 +288,9 @@ impl ExecutionContext { } /// Deregisters the named table. - /// + /// /// Returns true if the table was successfully de-reregistered. - pub fn deregister_table( - &mut self, - name: &str - ) -> bool { + pub fn deregister_table(&mut self, name: &str) -> bool { self.state .lock() .unwrap() From 5538aea9e1ded843fb226444a8845ef265319c26 Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Mon, 8 Feb 2021 12:00:48 -0500 Subject: [PATCH 3/4] Update context.rs --- rust/datafusion/src/execution/context.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/rust/datafusion/src/execution/context.rs b/rust/datafusion/src/execution/context.rs index fdfbe9cc85b9..6bae96ca1522 100644 --- a/rust/datafusion/src/execution/context.rs +++ b/rust/datafusion/src/execution/context.rs @@ -732,6 +732,18 @@ mod tests { ]; assert_batches_eq!(expected, &results); + Ok(()) + } + + #[tokio::test] + async fn register_deregister() -> Result<()> { + let tmp_dir = TempDir::new()?; + let partition_count = 4; + let mut ctx = create_ctx(&tmp_dir, partition_count)?; + + let provider = test::create_table_dual(); + ctx.register_table("dual", provider); + assert_eq!(ctx.deregister_table("dual"), true); assert_eq!(ctx.deregister_table("dual"), false); From 58a1f6cbc7ae2abdddcfeb134d1c0361ca20c85d Mon Sep 17 00:00:00 2001 From: Marc Prud'hommeaux Date: Mon, 8 Feb 2021 12:46:54 -0500 Subject: [PATCH 4/4] Update context.rs --- rust/datafusion/src/execution/context.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/datafusion/src/execution/context.rs b/rust/datafusion/src/execution/context.rs index 6bae96ca1522..766d74ed58ef 100644 --- a/rust/datafusion/src/execution/context.rs +++ b/rust/datafusion/src/execution/context.rs @@ -734,7 +734,7 @@ mod tests { Ok(()) } - + #[tokio::test] async fn register_deregister() -> Result<()> { let tmp_dir = TempDir::new()?;