From 16488d9053b1d29e86def8b5262a289d14f4ce5c Mon Sep 17 00:00:00 2001 From: Stewart Douglas Date: Thu, 13 Aug 2015 22:57:30 -0400 Subject: [PATCH] ENH: Base new sid creation on existing sids in database --- zipline/assets/asset_writer.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/zipline/assets/asset_writer.py b/zipline/assets/asset_writer.py index 51cadacb..b61e88f4 100644 --- a/zipline/assets/asset_writer.py +++ b/zipline/assets/asset_writer.py @@ -537,7 +537,16 @@ class AssetDBWriterFromList(AssetDBWriter): _equities, _futures, _exchanges, _root_symbols = {}, {}, {}, {} # 1) Populate dictionaries - id_counter = 0 + # Return the largest sid in our dataset, if one exists. + id_counter = sa.select( + [sa.func.max(self.asset_router.c.sid)] + ).execute().scalar() + # Base sid creation on largest sid in dataset, or 0 if + # no sids exist. + if id_counter is None: + id_counter = 0 + else: + id_counter += 1 for output, data in [(_equities, self._equities), (_futures, self._futures), ]: for identifier in data: