feat: read/write works in distributed mode 🎉 (#2327)

* add do_get method to RegionRequestHandler

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* move RegionRequestHandler to client crate

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* use RegionRequestHandler in MergeScan

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* minor fix

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* ignore tests

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

* fix format

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>

---------

Signed-off-by: Ruihang Xia <waynestxia@gmail.com>
This commit is contained in:
Ruihang Xia
2023-09-05 07:39:14 -05:00
parent 5f7d48f107
commit eb7116ab56
34 changed files with 309 additions and 137 deletions

View File

@@ -52,7 +52,7 @@ where
pub(crate) fn sample_script_engine() -> PyEngine {
let catalog_manager =
MemoryCatalogManager::new_with_table(NumbersTable::table(NUMBERS_TABLE_ID));
let query_engine = QueryEngineFactory::new(catalog_manager, false).query_engine();
let query_engine = QueryEngineFactory::new(catalog_manager, None, false).query_engine();
PyEngine::new(query_engine.clone())
}

View File

@@ -41,7 +41,7 @@ impl ScriptManager {
Ok(Self {
compiled: RwLock::new(HashMap::default()),
py_engine: PyEngine::new(query_engine.clone()),
table: ScriptsTable::new(catalog_manager, query_engine).await?,
table: ScriptsTable::new_empty(catalog_manager, query_engine)?,
})
}
@@ -139,6 +139,7 @@ mod tests {
type DefaultEngine = MitoEngine<EngineImpl<RaftEngineLogStore>>;
#[ignore = "script engine is temporary disabled"]
#[tokio::test]
async fn test_insert_find_compile_script() {
let wal_dir = create_temp_dir("test_insert_find_compile_script_wal");
@@ -168,7 +169,7 @@ mod tests {
.unwrap(),
);
let factory = QueryEngineFactory::new(catalog_manager.clone(), false);
let factory = QueryEngineFactory::new(catalog_manager.clone(), None, false);
let query_engine = factory.query_engine();
let mgr = ScriptManager::new(catalog_manager.clone(), query_engine)
.await

View File

@@ -372,7 +372,7 @@ mod tests {
pub(crate) fn sample_script_engine() -> PyEngine {
let catalog_manager =
MemoryCatalogManager::new_with_table(NumbersTable::table(NUMBERS_TABLE_ID));
let query_engine = QueryEngineFactory::new(catalog_manager, false).query_engine();
let query_engine = QueryEngineFactory::new(catalog_manager, None, false).query_engine();
PyEngine::new(query_engine.clone())
}

View File

@@ -131,6 +131,22 @@ impl ScriptsTable {
}
Ok(())
}
pub fn new_empty(
catalog_manager: CatalogManagerRef,
query_engine: QueryEngineRef,
) -> Result<Self> {
Ok(Self {
catalog_manager,
query_engine,
name: format_full_table_name(
DEFAULT_CATALOG_NAME,
DEFAULT_SCHEMA_NAME,
SCRIPTS_TABLE_NAME,
),
})
}
pub async fn new(
catalog_manager: CatalogManagerRef,
query_engine: QueryEngineRef,