Skip to content

Commit b5938ac

Browse files
authored
Merge pull request #39 from sendbird/release-1.2.1
Release 1.2.1
2 parents d076d00 + dc6f7e5 commit b5938ac

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

src/sbosc/controller/controller.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,17 @@ def create_bulk_import_chunks(self):
6161
# Remove old chunks
6262
self.redis_data.remove_all_chunks()
6363

64+
# Get max pk
6465
metadata = self.redis_data.metadata
65-
max_pk = metadata.max_pk
66+
with self.db.cursor(role="reader") as cursor:
67+
cursor.execute('''
68+
SELECT MIN(%s), MAX(%s) FROM %s.%s
69+
''' % (metadata.pk_column, metadata.pk_column, metadata.source_db, metadata.source_table))
70+
max_pk = cursor.fetchone()[0]
71+
if max_pk is None:
72+
raise Exception("No data in source table")
73+
metadata.max_pk = max_pk
74+
self.logger.info("Saved total rows to Redis")
6675

6776
# chunk_count is determined by min_chunk_size and max_chunk_count
6877
# Each chunk will have min_chunk_size rows and the number of chunks should not exceed max_chunk_count

src/sbosc/controller/initializer.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,6 @@ def fetch_metadata(self, redis_data):
185185
metadata.pk_column = f"`{cursor.fetchone()[0]}`"
186186
self.logger.info("Saved primary key column to Redis")
187187

188-
# Get max PK
189-
cursor.execute('''
190-
SELECT MAX(%s) FROM %s.%s
191-
''' % (metadata.pk_column, metadata.source_db, metadata.source_table))
192-
max_pk = cursor.fetchone()[0]
193-
if max_pk is None:
194-
raise Exception("No data in source table")
195-
metadata.max_pk = max_pk
196-
self.logger.info("Saved total rows to Redis")
197-
198188
metadata.start_datetime = datetime.now()
199189
if not config.DISABLE_EVENTHANDLER:
200190
redis_data.set_current_stage(Stage.START_EVENT_HANDLER)

tests/test_controller.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@ def test_chunk_creation(controller, setup_table, redis_data):
104104

105105
@pytest.mark.parametrize('setup_table', ['with_data'], indirect=True)
106106
@pytest.mark.parametrize('controller', ['object'], indirect=True)
107-
def test_bulk_import_validation(controller: Controller, setup_table, cursor, override_operation_class):
107+
def test_bulk_import_validation(controller: Controller, setup_table, cursor, override_operation_class, redis_data):
108+
redis_data.metadata.max_pk = TABLE_SIZE
108109
assert controller.validator.bulk_import_validation()
109110
delete_pks = random.sample(range(1, TABLE_SIZE), 10)
110111
cursor.execute(f'''

0 commit comments

Comments
 (0)