@@ -461,15 +461,15 @@ def test_size_benchmark(self):
461461 bf .write (json .dumps (data , indent = 4 ))
462462
463463 def test_query_performance (self ):
464- has_any_flag_count = {}
465- has_all_flag_count = {}
466- has_any_flag_load = {}
467- has_all_flag_load = {}
464+ any_flag_count = {}
465+ all_flag_count = {}
466+ any_flag_load = {}
467+ all_flag_load = {}
468468
469- has_any_bool_count = {}
470- has_all_bool_count = {}
471- has_any_bool_load = {}
472- has_all_bool_load = {}
469+ any_bool_count = {}
470+ all_bool_count = {}
471+ any_bool_load = {}
472+ all_bool_load = {}
473473
474474 with connection .cursor () as cursor :
475475 for FlagModel , BoolModel in zip (self .FLAG_MODELS , self .BOOL_MODELS ):
@@ -480,8 +480,8 @@ def test_query_performance(self):
480480 mask = 1
481481 mask_en = FlagModel ._meta .get_field ("flags" ).enum (mask )
482482
483- flag_any_q = FlagModel .objects .filter (flags__has_any = mask_en )
484- flag_all_q = FlagModel .objects .filter (flags__has_all = mask_en )
483+ flag_any_q = FlagModel .objects .filter (flags__any = mask_en )
484+ flag_all_q = FlagModel .objects .filter (flags__all = mask_en )
485485
486486 bool_q = [
487487 Q (** {f"flg_{ flg } " : bool (mask & (1 << flg ) != 0 )})
@@ -502,11 +502,11 @@ def test_query_performance(self):
502502
503503 start = perf_counter ()
504504 flag_any_count = flag_any_q .count ()
505- has_any_flag_count [FlagModel .num_flags ] = perf_counter () - start
505+ any_flag_count [FlagModel .num_flags ] = perf_counter () - start
506506
507507 start = perf_counter ()
508508 bool_any_count = bool_any_q .count ()
509- has_any_bool_count [BoolModel .num_flags ] = perf_counter () - start
509+ any_bool_count [BoolModel .num_flags ] = perf_counter () - start
510510
511511 try :
512512 # make sure our queries are equivalent
@@ -518,83 +518,75 @@ def test_query_performance(self):
518518
519519 start = perf_counter ()
520520 flag_all_count = flag_all_q .count ()
521- has_all_flag_count [FlagModel .num_flags ] = perf_counter () - start
521+ all_flag_count [FlagModel .num_flags ] = perf_counter () - start
522522
523523 start = perf_counter ()
524524 bool_all_count = bool_all_q .count ()
525- has_all_bool_count [BoolModel .num_flags ] = perf_counter () - start
525+ all_bool_count [BoolModel .num_flags ] = perf_counter () - start
526526
527527 # make sure our queries are equivalent
528528 self .assertEqual (flag_all_count , bool_all_count )
529529
530530 start = perf_counter ()
531531 flag_any_list = list (flag_any_q .all ())
532- has_any_flag_load [FlagModel .num_flags ] = perf_counter () - start
532+ any_flag_load [FlagModel .num_flags ] = perf_counter () - start
533533
534534 start = perf_counter ()
535535 bool_any_list = list (bool_any_q .all ())
536- has_any_bool_load [BoolModel .num_flags ] = perf_counter () - start
536+ any_bool_load [BoolModel .num_flags ] = perf_counter () - start
537537
538538 # make sure our queries are equivalent
539539 self .assertEqual (len (flag_any_list ), len (bool_any_list ))
540540
541541 start = perf_counter ()
542542 flag_all_list = list (flag_all_q .all ())
543- has_all_flag_load [FlagModel .num_flags ] = perf_counter () - start
543+ all_flag_load [FlagModel .num_flags ] = perf_counter () - start
544544
545545 start = perf_counter ()
546546 bool_all_list = list (bool_all_q .all ())
547- has_all_bool_load [BoolModel .num_flags ] = perf_counter () - start
547+ all_bool_load [BoolModel .num_flags ] = perf_counter () - start
548548
549549 # make sure our queries are equivalent
550550 self .assertEqual (len (flag_all_list ), len (bool_all_list ))
551551
552- num_flags = sorted (has_any_flag_count .keys ())
552+ num_flags = sorted (any_flag_count .keys ())
553553
554- has_any_count_diff = [
555- has_any_bool_count [flg ] - has_any_flag_count [flg ] for flg in num_flags
554+ any_count_diff = [
555+ any_bool_count [flg ] - any_flag_count [flg ] for flg in num_flags
556556 ]
557- has_all_count_diff = [
558- has_all_bool_count [flg ] - has_all_flag_count [flg ] for flg in num_flags
557+ all_count_diff = [
558+ all_bool_count [flg ] - all_flag_count [flg ] for flg in num_flags
559559 ]
560560
561- has_any_load_diff = [
562- has_any_bool_load [flg ] - has_any_flag_load [flg ] for flg in num_flags
563- ]
564- has_all_load_diff = [
565- has_all_bool_load [flg ] - has_all_flag_load [flg ] for flg in num_flags
566- ]
561+ any_load_diff = [any_bool_load [flg ] - any_flag_load [flg ] for flg in num_flags ]
562+ all_load_diff = [all_bool_load [flg ] - all_flag_load [flg ] for flg in num_flags ]
567563
568- # print(has_any_count_diff )
564+ # print(any_count_diff )
569565 # print('--------------------------------')
570- # print(has_all_count_diff )
566+ # print(all_count_diff )
571567 # print('--------------------------------')
572- # print(has_any_load_diff )
568+ # print(any_load_diff )
573569 # print('--------------------------------')
574- # print(has_all_load_diff )
570+ # print(all_load_diff )
575571
576- has_any_count_tpl = [
577- (has_any_bool_count [flg ], has_any_flag_count [flg ]) for flg in num_flags
572+ any_count_tpl = [
573+ (any_bool_count [flg ], any_flag_count [flg ]) for flg in num_flags
578574 ]
579- has_all_count_tpl = [
580- (has_all_bool_count [flg ], has_all_flag_count [flg ]) for flg in num_flags
575+ all_count_tpl = [
576+ (all_bool_count [flg ], all_flag_count [flg ]) for flg in num_flags
581577 ]
582578
583- has_any_load_tpl = [
584- (has_any_bool_load [flg ], has_any_flag_load [flg ]) for flg in num_flags
585- ]
586- has_all_load_tpl = [
587- (has_all_bool_load [flg ], has_all_flag_load [flg ]) for flg in num_flags
588- ]
579+ any_load_tpl = [(any_bool_load [flg ], any_flag_load [flg ]) for flg in num_flags ]
580+ all_load_tpl = [(all_bool_load [flg ], all_flag_load [flg ]) for flg in num_flags ]
589581
590- print ("------------ has_any_cnt ----------------" )
591- print (has_any_count_tpl )
592- print ("------------ has_all_cnt ----------------" )
593- print (has_all_count_tpl )
594- print ("------------ has_any_load ---------------" )
595- print (has_any_load_tpl )
596- print ("------------ has_all_load ---------------" )
597- print (has_all_load_tpl )
582+ print ("------------ any_cnt ----------------" )
583+ print (any_count_tpl )
584+ print ("------------ all_cnt ----------------" )
585+ print (all_count_tpl )
586+ print ("------------ any_load ---------------" )
587+ print (any_load_tpl )
588+ print ("------------ all_load ---------------" )
589+ print (all_load_tpl )
598590
599591
600592class CreateRowMixin (BulkCreateMixin ):
@@ -717,11 +709,11 @@ def do_flag_query(self, masks):
717709 # dont change query order
718710
719711 start = perf_counter ()
720- flg_all .append (self .FlagModel .objects .filter (flags__has_all = mask ).count ())
712+ flg_all .append (self .FlagModel .objects .filter (flags__all = mask ).count ())
721713 flg_all_time += perf_counter () - start
722714
723715 all_explanation = json .loads (
724- self .FlagModel .objects .filter (flags__has_all = mask ).explain (
716+ self .FlagModel .objects .filter (flags__all = mask ).explain (
725717 format = "json" ,
726718 analyze = True ,
727719 buffers = True ,
@@ -736,11 +728,11 @@ def do_flag_query(self, masks):
736728 flg_all_ftr_time += all_explanation ["Execution Time" ]
737729
738730 start = perf_counter ()
739- flg_any .append (self .FlagModel .objects .filter (flags__has_any = mask ).count ())
731+ flg_any .append (self .FlagModel .objects .filter (flags__any = mask ).count ())
740732 flg_any_time += perf_counter () - start
741733
742734 any_explanation = json .loads (
743- self .FlagModel .objects .filter (flags__has_any = mask ).explain (
735+ self .FlagModel .objects .filter (flags__any = mask ).explain (
744736 format = "json" ,
745737 analyze = True ,
746738 buffers = True ,
@@ -834,7 +826,7 @@ def get_all_q(set_bits):
834826
835827 bq_all = reduce (and_ , get_all_q (set_bits ))
836828
837- # todo there is not a better way to formulate a has_any query
829+ # todo there is not a better way to formulate a any query
838830 # that will use the index ??
839831
840832 # bq_any = reduce(
@@ -1016,11 +1008,9 @@ def optimize():
10161008 any_ftr_time ,
10171009 exact_ftr_time ,
10181010 ) = query (masks )
1019- queries [f"{ name } has_all" ] = ctx .captured_queries [0 ]["sql" ]
1020- queries [f"{ name } has_any" ] = ctx .captured_queries [1 ]["sql" ]
1021- queries [f"{ name } has_exact" ] = ctx .captured_queries [2 ][
1022- "sql"
1023- ]
1011+ queries [f"{ name } all" ] = ctx .captured_queries [0 ]["sql" ]
1012+ queries [f"{ name } any" ] = ctx .captured_queries [1 ]["sql" ]
1013+ queries [f"{ name } exact" ] = ctx .captured_queries [2 ]["sql" ]
10241014
10251015 pbar .refresh ()
10261016
0 commit comments