Remove hashbrown dependency

Hashbrown is now the hashmap used in the standard library, so no need to
pull in an external dependency. This switches to using `AHashMap`
directly.
This commit is contained in:
Joshua Nelson
2020-10-14 09:48:17 -04:00
committed by Austin Bonander
parent 0ad121ba59
commit 20d65a8248
19 changed files with 47 additions and 28 deletions

View File

@@ -2,7 +2,7 @@ use crate::error::Error;
use crate::query_as::query_as;
use crate::sqlite::type_info::DataType;
use crate::sqlite::{SqliteConnection, SqliteTypeInfo};
use hashbrown::HashMap;
use crate::HashMap;
use std::str::from_utf8;
// affinity
@@ -136,7 +136,8 @@ pub(super) async fn explain(
} else if let Some(v) = r.get(&p2).copied() {
// r[p3] = AGG ( r[p2] )
r.insert(p3, v);
n.insert(p3, n.get(&p2).copied().unwrap_or(true));
let val = n.get(&p2).copied().unwrap_or(true);
n.insert(p3, val);
}
}
@@ -151,7 +152,8 @@ pub(super) async fn explain(
// r[p2] = r[p1]
if let Some(v) = r.get(&p1).copied() {
r.insert(p2, v);
n.insert(p2, n.get(&p1).copied().unwrap_or(true));
let val = n.get(&p1).copied().unwrap_or(true);
n.insert(p2, val);
}
}
@@ -165,7 +167,8 @@ pub(super) async fn explain(
// r[p2] = NOT r[p1]
if let Some(a) = r.get(&p1).copied() {
r.insert(p2, a);
n.insert(p2, n.get(&p1).copied().unwrap_or(true));
let val = n.get(&p1).copied().unwrap_or(true);
n.insert(p2, val);
}
}

View File

@@ -3,7 +3,7 @@ use std::slice;
use std::sync::atomic::{AtomicPtr, Ordering};
use std::sync::{Arc, Weak};
use hashbrown::HashMap;
use crate::HashMap;
use crate::column::ColumnIndex;
use crate::error::Error;

View File

@@ -3,8 +3,8 @@ use crate::error::Error;
use crate::ext::ustr::UStr;
use crate::sqlite::{Sqlite, SqliteArguments, SqliteColumn, SqliteTypeInfo};
use crate::statement::Statement;
use crate::HashMap;
use either::Either;
use hashbrown::HashMap;
use std::borrow::Cow;
use std::sync::Arc;

View File

@@ -3,8 +3,8 @@ use crate::ext::ustr::UStr;
use crate::sqlite::connection::ConnectionHandle;
use crate::sqlite::statement::StatementHandle;
use crate::sqlite::{SqliteColumn, SqliteError, SqliteRow, SqliteValue};
use crate::HashMap;
use bytes::{Buf, Bytes};
use hashbrown::HashMap;
use libsqlite3_sys::{
sqlite3, sqlite3_clear_bindings, sqlite3_finalize, sqlite3_prepare_v3, sqlite3_reset,
sqlite3_stmt, SQLITE_OK, SQLITE_PREPARE_PERSISTENT,