Пример #1
0
 def test_keyranges_for_tasks(self):
   for global_shard_count in (16,32,64):
     num_tasks = global_shard_count
     stm = keyrange.create_streaming_task_map(num_tasks, global_shard_count)
     self.assertEqual(len(stm.keyrange_list), num_tasks)
     num_tasks = global_shard_count*2
     stm = keyrange.create_streaming_task_map(num_tasks, global_shard_count)
     self.assertEqual(len(stm.keyrange_list), num_tasks)
     num_tasks = global_shard_count*8
     stm = keyrange.create_streaming_task_map(num_tasks, global_shard_count)
     self.assertEqual(len(stm.keyrange_list), num_tasks)
Пример #2
0
 def test_keyranges_for_tasks(self):
     for global_shard_count in (16, 32, 64):
         num_tasks = global_shard_count
         stm = keyrange.create_streaming_task_map(num_tasks,
                                                  global_shard_count)
         self.assertEqual(len(stm.keyrange_list), num_tasks)
         num_tasks = global_shard_count * 2
         stm = keyrange.create_streaming_task_map(num_tasks,
                                                  global_shard_count)
         self.assertEqual(len(stm.keyrange_list), num_tasks)
         num_tasks = global_shard_count * 8
         stm = keyrange.create_streaming_task_map(num_tasks,
                                                  global_shard_count)
         self.assertEqual(len(stm.keyrange_list), num_tasks)
Пример #3
0
 def test_bind_values_for_unsharded_keyspace(self):
     stm = keyrange.create_streaming_task_map(1, 1)
     self.assertEqual(len(stm.keyrange_list), 1)
     where_clause, bind_vars = keyrange._create_where_clause_for_keyrange(
         stm.keyrange_list[0])
     self.assertEqual(where_clause, "")
     self.assertEqual(bind_vars, {})
Пример #4
0
 def test_bind_values_for_str_keyspace(self):
     stm = keyrange.create_streaming_task_map(16, 16)
     for i, kr in enumerate(stm.keyrange_list):
         kr_parts = kr.split('-')
         where_clause, bind_vars = keyrange._create_where_clause_for_keyrange(
             kr, keyspace_col_type=keyrange_constants.KIT_BYTES)
         if len(bind_vars.keys()) == 1:
             if kr_parts[0] == '':
                 self.assertNotEqual(where_clause.find('<'), -1)
             else:
                 self.assertNotEqual(where_clause.find('>='), -1)
         else:
             self.assertNotEqual(where_clause.find('>='), -1)
             self.assertNotEqual(where_clause.find('>='), -1)
             self.assertNotEqual(where_clause.find('AND'), -1)
         kid_list = str_shard_kid_map[kr]
         for keyspace_id in kid_list:
             if len(bind_vars.keys()) == 1:
                 if kr_parts[0] == '':
                     self.assertLess(keyspace_id.encode('hex'),
                                     bind_vars['keyspace_id0'])
                 else:
                     self.assertGreaterEqual(keyspace_id.encode('hex'),
                                             bind_vars['keyspace_id0'])
             else:
                 self.assertGreaterEqual(keyspace_id.encode('hex'),
                                         bind_vars['keyspace_id0'])
                 self.assertLess(keyspace_id.encode('hex'),
                                 bind_vars['keyspace_id1'])
Пример #5
0
 def test_bind_values_for_str_keyspace(self):
   stm = keyrange.create_streaming_task_map(16, 16)
   for i, kr in enumerate(stm.keyrange_list):
     where_clause, bind_vars = keyrange.create_where_clause_for_keyrange(kr, keyspace_col_type=keyrange.KIT_BYTES)
     if len(bind_vars.keys()) == 1:
       if kr[0] == '':
         self.assertNotEqual(where_clause.find('<'), -1)
       else:
         self.assertNotEqual(where_clause.find('>='), -1)
     else:
         self.assertNotEqual(where_clause.find('>='), -1)
         self.assertNotEqual(where_clause.find('>='), -1)
         self.assertNotEqual(where_clause.find('AND'), -1)
     kid_list = str_shard_kid_map[kr]
     for keyspace_id in kid_list:
       if len(bind_vars.keys()) == 1:
         if kr[0] == '':
           self.assertLess(keyspace_id.encode('hex'), bind_vars['keyspace_id0'])
         else:
           self.assertGreaterEqual(keyspace_id.encode('hex'), bind_vars['keyspace_id0'])
       else:
         self.assertGreaterEqual(keyspace_id.encode('hex'), bind_vars['keyspace_id0'])
         self.assertLess(keyspace_id.encode('hex'), bind_vars['keyspace_id1'])
Пример #6
0
 def test_bind_values_for_int_keyspace(self):
   stm = keyrange.create_streaming_task_map(16, 16)
   for i, kr in enumerate(stm.keyrange_list):
     kr_parts = kr.split('-')
     where_clause, bind_vars = keyrange.create_where_clause_for_keyrange(kr)
     if len(bind_vars.keys()) == 1:
       if kr_parts[0] == '':
         self.assertNotEqual(where_clause.find('<'), -1)
       else:
         self.assertNotEqual(where_clause.find('>='), -1)
     else:
         self.assertNotEqual(where_clause.find('>='), -1)
         self.assertNotEqual(where_clause.find('>='), -1)
         self.assertNotEqual(where_clause.find('AND'), -1)
     kid_list = int_shard_kid_map[kr]
     for keyspace_id in kid_list:
       if len(bind_vars.keys()) == 1:
         if kr_parts[0] == '':
           self.assertLess(keyspace_id, bind_vars['keyspace_id0'])
         else:
           self.assertGreaterEqual(keyspace_id, bind_vars['keyspace_id0'])
       else:
         self.assertGreaterEqual(keyspace_id, bind_vars['keyspace_id0'])
         self.assertLess(keyspace_id, bind_vars['keyspace_id1'])
Пример #7
0
 def test_incorrect_tasks(self):
   global_shard_count = 16
   with self.assertRaises(dbexceptions.ProgrammingError):
     stm = keyrange.create_streaming_task_map(4, global_shard_count)
Пример #8
0
 def test_bind_values_for_unsharded_keyspace(self):
   stm = keyrange.create_streaming_task_map(1, 1)
   self.assertEqual(len(stm.keyrange_list), 1)
   where_clause, bind_vars = keyrange.create_where_clause_for_keyrange(stm.keyrange_list[0])
   self.assertEqual(where_clause, "")
   self.assertEqual(bind_vars, {})
Пример #9
0
 def test_incorrect_tasks(self):
     global_shard_count = 16
     with self.assertRaises(dbexceptions.ProgrammingError):
         stm = keyrange.create_streaming_task_map(4, global_shard_count)