From 9f764a8f96056a976ea1bfd2a4f51375e55d21ea Mon Sep 17 00:00:00 2001 From: shankai Date: Tue, 27 Apr 2021 10:25:11 +0800 Subject: [PATCH 1/3] Fix 'exactly once' MySQL execution error --- rgsync/Connectors/sql_connectors.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rgsync/Connectors/sql_connectors.py b/rgsync/Connectors/sql_connectors.py index 51af634..bccc230 100644 --- a/rgsync/Connectors/sql_connectors.py +++ b/rgsync/Connectors/sql_connectors.py @@ -117,6 +117,7 @@ def WriteData(self, data): WriteBehindLog('Warning, got an empty batch') return query = None + shardId = 'shard-%s' % hashtag() try: if not self.conn: @@ -124,8 +125,7 @@ def WriteData(self, data): self.sqlText = text self.conn = self.connection.Connect() if self.exactlyOnceTableName is not None: - shardId = 'shard-%s' % hashtag() - result = self.conn.execute(self.sqlText('select val from %s where id=:id' % self.exactlyOnceTableName, {'id':shardId})) + result = self.conn.execute(self.sqlText('select val from %s where id=:id' % self.exactlyOnceTableName), {'id':shardId}) res = result.first() if res is not None: self.exactlyOnceLastId = str(res['val']) @@ -207,7 +207,7 @@ def GetUpdateQuery(tableName, mappings, pk): self.addQuery = GetUpdateQuery(self.tableName, mappings, self.pk) self.delQuery = 'delete from %s where %s=:%s' % (self.tableName, self.pk, self.pk) if self.exactlyOnceTableName is not None: - self.exactlyOnceQuery = GetUpdateQuery(self.exactlyOnceTableName, {'val', 'val'}, 'id') + self.exactlyOnceQuery = GetUpdateQuery(self.exactlyOnceTableName, {'val': 'val'}, 'id') class SQLiteConnector(MySqlConnector): def __init__(self, connection, tableName, pk, exactlyOnceTableName=None): From 0679dfd07679c8ad9e7fd96d7de63e8d932c8633 Mon Sep 17 00:00:00 2001 From: "Meir Shpilraien (Spielrein)" Date: Sun, 23 May 2021 12:33:06 +0300 Subject: [PATCH 2/3] Update rgsync/Connectors/sql_connectors.py --- rgsync/Connectors/sql_connectors.py | 1 - 1 file changed, 1 deletion(-) diff --git a/rgsync/Connectors/sql_connectors.py b/rgsync/Connectors/sql_connectors.py index bccc230..e689c77 100644 --- a/rgsync/Connectors/sql_connectors.py +++ b/rgsync/Connectors/sql_connectors.py @@ -117,7 +117,6 @@ def WriteData(self, data): WriteBehindLog('Warning, got an empty batch') return query = None - shardId = 'shard-%s' % hashtag() try: if not self.conn: From 84bcee8144132a50019e391dc35977d3df9d2627 Mon Sep 17 00:00:00 2001 From: "Meir Shpilraien (Spielrein)" Date: Sun, 23 May 2021 12:33:27 +0300 Subject: [PATCH 3/3] Update rgsync/Connectors/sql_connectors.py --- rgsync/Connectors/sql_connectors.py | 1 + 1 file changed, 1 insertion(+) diff --git a/rgsync/Connectors/sql_connectors.py b/rgsync/Connectors/sql_connectors.py index e689c77..9b6f18a 100644 --- a/rgsync/Connectors/sql_connectors.py +++ b/rgsync/Connectors/sql_connectors.py @@ -124,6 +124,7 @@ def WriteData(self, data): self.sqlText = text self.conn = self.connection.Connect() if self.exactlyOnceTableName is not None: + shardId = 'shard-%s' % hashtag() result = self.conn.execute(self.sqlText('select val from %s where id=:id' % self.exactlyOnceTableName), {'id':shardId}) res = result.first() if res is not None: