-
Notifications
You must be signed in to change notification settings - Fork 414
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: move unity catalog integration into its own crate
Signed-off-by: Stephen Carman <[email protected]>
- Loading branch information
Showing
48 changed files
with
841 additions
and
940 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ resolver = "2" | |
|
||
[workspace.package] | ||
authors = ["Qingping Hou <[email protected]>"] | ||
rust-version = "1.85" | ||
rust-version = "1.80" | ||
keywords = ["deltalake", "delta", "datalake"] | ||
readme = "README.md" | ||
edition = "2021" | ||
|
@@ -26,7 +26,7 @@ debug = true | |
debug = "line-tables-only" | ||
|
||
[workspace.dependencies] | ||
delta_kernel = { version = "0.4.1", features = ["sync-engine"] } | ||
delta_kernel = { version = "0.5.0", features = ["default-engine"] } | ||
#delta_kernel = { path = "../delta-kernel-rs/kernel", features = ["sync-engine"] } | ||
|
||
# arrow | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,94 +0,0 @@ | ||
use std::collections::VecDeque; | ||
use std::convert::Infallible; | ||
use std::net::SocketAddr; | ||
use std::sync::Arc; | ||
|
||
use hyper::service::{make_service_fn, service_fn}; | ||
use hyper::{Body, Request, Response, Server}; | ||
use parking_lot::Mutex; | ||
use tokio::sync::oneshot; | ||
use tokio::task::JoinHandle; | ||
|
||
pub type ResponseFn = Box<dyn FnOnce(Request<Body>) -> Response<Body> + Send>; | ||
|
||
/// A mock server | ||
pub struct MockServer { | ||
responses: Arc<Mutex<VecDeque<ResponseFn>>>, | ||
shutdown: oneshot::Sender<()>, | ||
handle: JoinHandle<()>, | ||
url: String, | ||
} | ||
|
||
impl Default for MockServer { | ||
fn default() -> Self { | ||
Self::new() | ||
} | ||
} | ||
|
||
impl MockServer { | ||
pub fn new() -> Self { | ||
let responses: Arc<Mutex<VecDeque<ResponseFn>>> = | ||
Arc::new(Mutex::new(VecDeque::with_capacity(10))); | ||
|
||
let r = Arc::clone(&responses); | ||
let make_service = make_service_fn(move |_conn| { | ||
let r = Arc::clone(&r); | ||
async move { | ||
Ok::<_, Infallible>(service_fn(move |req| { | ||
let r = Arc::clone(&r); | ||
async move { | ||
Ok::<_, Infallible>(match r.lock().pop_front() { | ||
Some(r) => r(req), | ||
None => Response::new(Body::from("Hello World")), | ||
}) | ||
} | ||
})) | ||
} | ||
}); | ||
|
||
let (shutdown, rx) = oneshot::channel::<()>(); | ||
let server = Server::bind(&SocketAddr::from(([127, 0, 0, 1], 0))).serve(make_service); | ||
|
||
let url = format!("http://{}", server.local_addr()); | ||
|
||
let handle = tokio::spawn(async move { | ||
server | ||
.with_graceful_shutdown(async { | ||
rx.await.ok(); | ||
}) | ||
.await | ||
.unwrap() | ||
}); | ||
|
||
Self { | ||
responses, | ||
shutdown, | ||
handle, | ||
url, | ||
} | ||
} | ||
|
||
/// The url of the mock server | ||
pub fn url(&self) -> &str { | ||
&self.url | ||
} | ||
|
||
/// Add a response | ||
pub fn push(&self, response: Response<Body>) { | ||
self.push_fn(|_| response) | ||
} | ||
|
||
/// Add a response function | ||
pub fn push_fn<F>(&self, f: F) | ||
where | ||
F: FnOnce(Request<Body>) -> Response<Body> + Send + 'static, | ||
{ | ||
self.responses.lock().push_back(Box::new(f)) | ||
} | ||
|
||
/// Shutdown the mock server | ||
pub async fn shutdown(self) { | ||
let _ = self.shutdown.send(()); | ||
self.handle.await.unwrap() | ||
} | ||
} | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.