I am using SQLAlchemy and the load_only
option.
After I read load_only
docs, I expect that if I use load_only
, I can get some specified columns. But the result is not. There were all columns, not some columns. I don't know why. Can you give me some advice?
ps. I need row-entity, so I don't use query like this:
session.query(table.columnA, table.columnB)
I am using SQLAlchemy 1.3.4
class Language(Base):
__tablename__ = 'language'
IDX = Column(INTEGER(11), primary_key=True)
DH_INDEX = Column(ForeignKey('dryhop.DH_INDEX', ondelete='CASCADE', onupdate='CASCADE'), index=True)
EP_INDEX = Column(ForeignKey('expendables.EP_INDEX', ondelete='CASCADE', onupdate='CASCADE'), index=True)
LANG_CLASS = Column(String(20), nullable=False)
LANG_NATION = Column(String(15), nullable=False)
LANG_COMMENT = Column(Text)
UPDATE_TIME = Column(DateTime, server_default=text("CURRENT_TIMESTAMP"))
query= session.query(db_model.Language).options(load_only("LANG_COMMENT", "LANG_NATION"))
dir(query.first()) # 'DH_INDEX', 'EP_INDEX', 'IDX','LANG_CLASS', 'LANG_COMMENT', 'LANG_NATION', 'UPDATE_TIME'... ETC
When dir(query.first())
, I expected only two columns
'LANG_COMMENT', 'LANG_NATION')
but result is
'DH_INDEX', 'EP_INDEX', 'IDX','LANG_CLASS', 'LANG_COMMENT', 'LANG_NATION', 'UPDATE_TIME'