Allow memory as an address endpoint in CLI sql command (#1563)

This commit is contained in:
Rushmore Mushambi 2022-12-31 01:53:45 +02:00 committed by GitHub
parent 7c199ff586
commit a24bb4f4b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 8 deletions

View file

@ -115,8 +115,12 @@ pub trait IntoEndpoint {
impl IntoEndpoint for &str {
fn into_endpoint(self) -> Result<Endpoint> {
let url = match self {
"memory" => "mem://",
_ => self,
};
Ok(Endpoint {
endpoint: Url::parse(self).map_err(|_| Error::InvalidUrl(self.to_owned()))?,
endpoint: Url::parse(url).map_err(|_| Error::InvalidUrl(self.to_owned()))?,
strict: false,
#[cfg(any(feature = "native-tls", feature = "rustls"))]
tls_config: None,
@ -132,12 +136,7 @@ impl IntoEndpoint for &String {
impl IntoEndpoint for String {
fn into_endpoint(self) -> Result<Endpoint> {
Ok(Endpoint {
endpoint: Url::parse(&self).map_err(|_| Error::InvalidUrl(self))?,
strict: false,
#[cfg(any(feature = "native-tls", feature = "rustls"))]
tls_config: None,
})
self.as_str().into_endpoint()
}
}

View file

@ -93,6 +93,7 @@ mod http {
#[cfg(feature = "kv-mem")]
mod mem {
use super::*;
use surrealdb::engines::any;
use surrealdb::engines::local::Db;
use surrealdb::engines::local::Mem;
@ -100,6 +101,11 @@ mod mem {
Surreal::new::<Mem>(()).await.unwrap()
}
#[tokio::test]
async fn memory_allowed_as_address() {
any::connect("memory").await.unwrap();
}
include!("api/mod.rs");
include!("api/backup.rs");
}

View file

@ -28,7 +28,13 @@ We would love it if you could star the repository (https://github.com/surrealdb/
";
fn split_endpoint(v: &str) -> (&str, &str) {
v.split_once("://").unwrap_or_default()
match v {
"memory" => ("mem", ""),
v => match v.split_once("://") {
Some(parts) => parts,
None => v.split_once(':').unwrap_or_default(),
},
}
}
fn file_valid(v: &str) -> Result<(), String> {