mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-17 08:29:28 +00:00
resolve sqldocstore postgres compatibility issue
This commit is contained in:
parent
91b0ea385c
commit
40979a0063
@ -184,9 +184,8 @@ class SQLStore(BaseStore[str, bytes]):
|
|||||||
LangchainKeyValueStores.namespace == self.namespace,
|
LangchainKeyValueStores.namespace == self.namespace,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
for v in await session.scalars(stmt):
|
results = session.execute(stmt).all()
|
||||||
result[v.key] = v.value
|
return [result[0].value for result in results]
|
||||||
return [result.get(key) for key in keys]
|
|
||||||
|
|
||||||
def mget(self, keys: Sequence[str]) -> List[Optional[bytes]]:
|
def mget(self, keys: Sequence[str]) -> List[Optional[bytes]]:
|
||||||
result = {}
|
result = {}
|
||||||
@ -198,28 +197,27 @@ class SQLStore(BaseStore[str, bytes]):
|
|||||||
LangchainKeyValueStores.namespace == self.namespace,
|
LangchainKeyValueStores.namespace == self.namespace,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
for v in session.scalars(stmt):
|
results = session.execute(stmt).all()
|
||||||
result[v.key] = v.value
|
return [result[0].value for result in results]
|
||||||
return [result.get(key) for key in keys]
|
|
||||||
|
|
||||||
async def amset(self, key_value_pairs: Sequence[Tuple[str, bytes]]) -> None:
|
async def amset(self, key_value_pairs: Sequence[Tuple[str, bytes]], encoding: str = 'utf8') -> None:
|
||||||
async with self._make_async_session() as session:
|
async with self._make_async_session() as session:
|
||||||
await self._amdelete([key for key, _ in key_value_pairs], session)
|
await self._amdelete([key for key, _ in key_value_pairs], session)
|
||||||
session.add_all(
|
session.add_all(
|
||||||
[
|
[
|
||||||
LangchainKeyValueStores(namespace=self.namespace, key=k, value=v)
|
LangchainKeyValueStores(namespace=self.namespace, key=k, value=bytearray(v, encoding))
|
||||||
for k, v in key_value_pairs
|
for k, v in key_value_pairs
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
await session.commit()
|
await session.commit()
|
||||||
|
|
||||||
def mset(self, key_value_pairs: Sequence[Tuple[str, bytes]]) -> None:
|
def mset(self, key_value_pairs: Sequence[Tuple[str, bytes]], , encoding: str = 'utf8') -> None:
|
||||||
values: Dict[str, bytes] = dict(key_value_pairs)
|
values: Dict[str, bytes] = dict(key_value_pairs)
|
||||||
with self._make_sync_session() as session:
|
with self._make_sync_session() as session:
|
||||||
self._mdelete(list(values.keys()), session)
|
self._mdelete(list(values.keys()), session)
|
||||||
session.add_all(
|
session.add_all(
|
||||||
[
|
[
|
||||||
LangchainKeyValueStores(namespace=self.namespace, key=k, value=v)
|
LangchainKeyValueStores(namespace=self.namespace, key=k, value=bytearray(v, encoding))
|
||||||
for k, v in values.items()
|
for k, v in values.items()
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user