Update join relationship of orders table to selectin

closes #6791 by slightly improving performance in this area.
This commit is contained in:
Matthias 2022-11-12 16:09:58 +01:00
parent e6172a68d7
commit ee0e59157c
2 changed files with 7 additions and 5 deletions

View File

@ -1144,7 +1144,8 @@ class Trade(_DECL_BASE, LocalTrade):
id = Column(Integer, primary_key=True)
orders = relationship("Order", order_by="Order.id", cascade="all, delete-orphan", lazy="joined")
orders = relationship("Order", order_by="Order.id", cascade="all, delete-orphan",
lazy="selectin", innerjoin=True)
exchange = Column(String(25), nullable=False)
pair = Column(String(25), nullable=False, index=True)

View File

@ -2197,15 +2197,16 @@ def test_get_trades__query(fee, is_short):
# without orders there should be no join issued.
query1 = Trade.get_trades([], include_orders=False)
assert "JOIN orders" in str(query)
assert "JOIN orders" not in str(query1)
# Empty "with-options -> default - selectin"
assert query._with_options == ()
assert query1._with_options != ()
create_mock_trades(fee, is_short)
query = Trade.get_trades([])
query1 = Trade.get_trades([], include_orders=False)
assert "JOIN orders" in str(query)
assert "JOIN orders" not in str(query1)
assert query._with_options == ()
assert query1._with_options != ()
def test_get_trades_backtest():