@@ -17,7 +17,7 @@ fn main() {}
1717#[ cfg( test) ]
1818mod test {
1919 use kite_sql:: catalog:: column:: { ColumnCatalog , ColumnDesc , ColumnRef , ColumnRelation } ;
20- use kite_sql:: db:: { DataBaseBuilder , ResultIter } ;
20+ use kite_sql:: db:: { DataBaseBuilder , Database , ResultIter } ;
2121 use kite_sql:: errors:: DatabaseError ;
2222 use kite_sql:: expression:: function:: scala:: ScalarFunctionImpl ;
2323 use kite_sql:: expression:: function:: table:: TableFunctionImpl ;
@@ -29,10 +29,12 @@ mod test {
2929 use kite_sql:: types:: tuple:: { SchemaRef , Tuple } ;
3030 use kite_sql:: types:: value:: { DataValue , Utf8Type } ;
3131 use kite_sql:: types:: LogicalType ;
32+ use kite_sql:: storage:: rocksdb:: RocksStorage ;
3233 use kite_sql:: { from_tuple, scala_function, table_function, Model , Projection } ;
3334 use rust_decimal:: Decimal ;
3435 use sqlparser:: ast:: { CharLengthUnits , DataType as SqlDataType } ;
3536 use std:: sync:: Arc ;
37+ use tempfile:: TempDir ;
3638
3739 fn build_tuple ( ) -> ( Tuple , SchemaRef ) {
3840 let schema_ref = Arc :: new ( vec ! [
@@ -65,6 +67,13 @@ mod test {
6567 ( Tuple :: new ( None , values) , schema_ref)
6668 }
6769
70+ fn build_test_database ( ) -> Result < ( TempDir , Database < RocksStorage > ) , DatabaseError > {
71+ let temp_dir = TempDir :: new ( ) . expect ( "create temp dir for ORM test" ) ;
72+ let database = DataBaseBuilder :: path ( temp_dir. path ( ) ) . build_rocksdb ( ) ?;
73+
74+ Ok ( ( temp_dir, database) )
75+ }
76+
6877 #[ derive( Default , Debug , PartialEq ) ]
6978 struct MyStruct {
7079 c1 : i32 ,
@@ -299,7 +308,7 @@ mod test {
299308
300309 #[ test]
301310 fn test_result_iter_to_orm_iter ( ) -> Result < ( ) , DatabaseError > {
302- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
311+ let ( _temp_dir , database) = build_test_database ( ) ?;
303312
304313 database
305314 . run ( "create table users (c1 int primary key, c2 varchar, age int)" ) ?
@@ -336,7 +345,7 @@ mod test {
336345
337346 #[ test]
338347 fn test_model_decimal_ddl ( ) -> Result < ( ) , DatabaseError > {
339- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
348+ let ( _temp_dir , database) = build_test_database ( ) ?;
340349
341350 database. create_table :: < Wallet > ( ) ?;
342351 for id in 1 ..=101 {
@@ -371,7 +380,7 @@ mod test {
371380
372381 #[ test]
373382 fn test_model_char_ddl ( ) -> Result < ( ) , DatabaseError > {
374- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
383+ let ( _temp_dir , database) = build_test_database ( ) ?;
375384
376385 database. create_table :: < CountryCode > ( ) ?;
377386
@@ -399,7 +408,7 @@ mod test {
399408
400409 #[ test]
401410 fn test_model_migrate ( ) -> Result < ( ) , DatabaseError > {
402- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
411+ let ( _temp_dir , database) = build_test_database ( ) ?;
403412
404413 database. create_table :: < MigratingUserV1 > ( ) ?;
405414 database. insert ( & MigratingUserV1 {
@@ -458,9 +467,10 @@ mod test {
458467
459468 #[ test]
460469 fn test_orm_query_builder ( ) -> Result < ( ) , DatabaseError > {
461- let database = DataBaseBuilder :: path ( "." )
470+ let temp_dir = TempDir :: new ( ) . expect ( "create temp dir for ORM test" ) ;
471+ let database = DataBaseBuilder :: path ( temp_dir. path ( ) )
462472 . register_scala_function ( MyOrmFunction :: new ( ) )
463- . build_in_memory ( ) ?;
473+ . build_rocksdb ( ) ?;
464474
465475 database. create_table :: < User > ( ) ?;
466476 database. run ( "drop index users.users_age_index" ) ?. done ( ) ?;
@@ -988,7 +998,7 @@ mod test {
988998
989999 #[ test]
9901000 fn test_orm_expression_and_set_query_helpers ( ) -> Result < ( ) , DatabaseError > {
991- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
1001+ let ( _temp_dir , database) = build_test_database ( ) ?;
9921002
9931003 database. create_table :: < User > ( ) ?;
9941004 database. insert ( & User {
@@ -1292,7 +1302,7 @@ mod test {
12921302
12931303 #[ test]
12941304 fn test_orm_group_by_builder ( ) -> Result < ( ) , DatabaseError > {
1295- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
1305+ let ( _temp_dir , database) = build_test_database ( ) ?;
12961306
12971307 database. create_table :: < EventLog > ( ) ?;
12981308 database. insert ( & EventLog {
@@ -1413,7 +1423,7 @@ mod test {
14131423
14141424 #[ test]
14151425 fn test_orm_model_lifecycle ( ) -> Result < ( ) , DatabaseError > {
1416- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
1426+ let ( _temp_dir , database) = build_test_database ( ) ?;
14171427
14181428 database. create_table :: < User > ( ) ?;
14191429 database. run ( "drop index users.users_age_index" ) ?. done ( ) ?;
@@ -1521,7 +1531,7 @@ mod test {
15211531
15221532 #[ test]
15231533 fn test_orm_update_delete_builder ( ) -> Result < ( ) , DatabaseError > {
1524- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
1534+ let ( _temp_dir , database) = build_test_database ( ) ?;
15251535 database. create_table :: < User > ( ) ?;
15261536
15271537 for ( id, name, age) in [
@@ -1591,7 +1601,7 @@ mod test {
15911601
15921602 #[ test]
15931603 fn test_orm_insert_query_builder ( ) -> Result < ( ) , DatabaseError > {
1594- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
1604+ let ( _temp_dir , database) = build_test_database ( ) ?;
15951605 database. create_table :: < User > ( ) ?;
15961606 database. create_table :: < ArchivedUser > ( ) ?;
15971607
@@ -1674,7 +1684,7 @@ mod test {
16741684
16751685 #[ test]
16761686 fn test_orm_extended_write_and_ddl_helpers ( ) -> Result < ( ) , DatabaseError > {
1677- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
1687+ let ( _temp_dir , database) = build_test_database ( ) ?;
16781688 database. create_table :: < User > ( ) ?;
16791689
16801690 database. insert_many ( [
@@ -1792,7 +1802,7 @@ mod test {
17921802
17931803 #[ test]
17941804 fn test_orm_introspection_helpers ( ) -> Result < ( ) , DatabaseError > {
1795- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
1805+ let ( _temp_dir , database) = build_test_database ( ) ?;
17961806 database. create_table :: < User > ( ) ?;
17971807 database. create_table :: < Wallet > ( ) ?;
17981808 database. create_view (
@@ -1856,7 +1866,7 @@ mod test {
18561866
18571867 #[ test]
18581868 fn test_orm_drop_index ( ) -> Result < ( ) , DatabaseError > {
1859- let database = DataBaseBuilder :: path ( "." ) . build_in_memory ( ) ?;
1869+ let ( _temp_dir , database) = build_test_database ( ) ?;
18601870
18611871 database. create_table :: < User > ( ) ?;
18621872 database. insert ( & User {
0 commit comments