@@ -418,110 +418,6 @@ fn count_rows_in_table(conn: &Arc<Connection>, table_name: &str) -> i64 {
418418 count
419419}
420420
421- #[ cfg( all( any( unix, target_os = "windows" ) , target_pointer_width = "64" ) ) ]
422- fn read_simple_kv_length ( db_path : & Path , table_name : & str , key : & str ) -> Option < i64 > {
423- let io: Arc < dyn IO > = multiprocess_test_io ( ) ;
424- let reopened = Database :: open_file_with_flags (
425- io,
426- db_path. to_str ( ) . expect ( "db path utf8" ) ,
427- OpenFlags :: ReadOnly ,
428- multiprocess_wal_db_opts ( ) ,
429- None ,
430- )
431- . expect ( "open observer database" ) ;
432- let conn = reopened. connect ( ) . expect ( "connect observer db" ) ;
433- let sql = format ! ( "select length(value) from {table_name} where key='{key}'" ) ;
434- for _ in 0 ..32 {
435- let mut stmt = match conn. prepare ( sql. clone ( ) ) {
436- Ok ( stmt) => stmt,
437- Err ( LimboError :: SchemaUpdated | LimboError :: SchemaConflict ) => {
438- conn. maybe_reparse_schema ( )
439- . expect ( "observer reparse after schema change" ) ;
440- continue ;
441- }
442- Err ( LimboError :: Busy | LimboError :: BusySnapshot | LimboError :: TableLocked ) => {
443- continue ;
444- }
445- Err ( err) => panic ! ( "observer prepare should succeed: {err}" ) ,
446- } ;
447- let mut result = None ;
448- match stmt. run_with_row_callback ( |row| {
449- result = Some ( row. get :: < i64 > ( 0 ) . expect ( "length column" ) ) ;
450- Ok ( ( ) )
451- } ) {
452- Ok ( ( ) ) => return result,
453- Err ( LimboError :: SchemaUpdated | LimboError :: SchemaConflict ) => {
454- drop ( stmt) ;
455- conn. maybe_reparse_schema ( )
456- . expect ( "observer reparse after schema change" ) ;
457- continue ;
458- }
459- Err ( LimboError :: Busy | LimboError :: BusySnapshot | LimboError :: TableLocked ) => {
460- continue ;
461- }
462- Err ( err) => panic ! ( "observer query should succeed: {err}" ) ,
463- }
464- }
465- panic ! ( "observer query did not stabilize after transient multiprocess errors" ) ;
466- }
467-
468- #[ cfg( all( any( unix, target_os = "windows" ) , target_pointer_width = "64" ) ) ]
469- fn probe_optional_int_via_fresh_worker ( whopper : & MultiprocessWhopper , sql : String ) -> Option < i64 > {
470- for _ in 0 ..8 {
471- let ( _startup, result) = whopper
472- . execute_sql_via_fresh_worker ( sql. clone ( ) )
473- . expect ( "probe via fresh worker should succeed" ) ;
474- match result {
475- Ok ( rows) => {
476- return match rows. as_slice ( ) {
477- [ ] => None ,
478- [ row] => Some ( row[ 0 ] . as_int ( ) . expect ( "probe column should be integer" ) ) ,
479- _ => panic ! ( "probe query should return at most one row, got {rows:?}" ) ,
480- } ;
481- }
482- Err (
483- LimboError :: SchemaUpdated
484- | LimboError :: SchemaConflict
485- | LimboError :: Busy
486- | LimboError :: BusySnapshot
487- | LimboError :: TableLocked ,
488- ) => continue ,
489- Err ( err) => panic ! ( "probe SQL should succeed: {err}" ) ,
490- }
491- }
492- panic ! ( "fresh-worker probe did not stabilize after transient multiprocess errors" ) ;
493- }
494-
495- #[ cfg( all( any( unix, target_os = "windows" ) , target_pointer_width = "64" ) ) ]
496- fn probe_table_rootpage_via_fresh_worker (
497- whopper : & MultiprocessWhopper ,
498- table_name : & str ,
499- ) -> Option < i64 > {
500- probe_optional_int_via_fresh_worker (
501- whopper,
502- format ! ( "select rootpage from sqlite_schema where type='table' and name='{table_name}'" ) ,
503- )
504- }
505-
506- #[ cfg( all( any( unix, target_os = "windows" ) , target_pointer_width = "64" ) ) ]
507- fn probe_simple_kv_length_via_fresh_worker (
508- whopper : & MultiprocessWhopper ,
509- table_name : & str ,
510- key : & str ,
511- ) -> Option < i64 > {
512- probe_optional_int_via_fresh_worker (
513- whopper,
514- format ! ( "select length(value) from {table_name} where key='{key}'" ) ,
515- )
516- }
517-
518- #[ cfg( all( any( unix, target_os = "windows" ) , target_pointer_width = "64" ) ) ]
519- fn advance_seeded_whopper_to_step ( whopper : & mut MultiprocessWhopper , step_after_execution : usize ) {
520- while whopper. current_step < step_after_execution {
521- whopper. step ( ) . expect ( "seeded whopper step" ) ;
522- }
523- }
524-
525421#[ cfg( all( any( unix, target_os = "windows" ) , target_pointer_width = "64" ) ) ]
526422#[ test]
527423fn multiprocess_restart_reuses_persisted_tshm_without_disk_scan ( ) {
0 commit comments