From e25a5aae20a4e44b44e7afab2c6e5e86c8bd93a7 Mon Sep 17 00:00:00 2001 From: Andrew nuark G Date: Sun, 12 Mar 2023 01:34:54 +0700 Subject: [PATCH] Add filtering option --- src/based/db.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/based/db.py b/src/based/db.py index da35bf4..c3480eb 100644 --- a/src/based/db.py +++ b/src/based/db.py @@ -101,7 +101,6 @@ class DBConnector: ).format(Literal(table_name)) with self.connection() as conn: result = conn.execute(stmt).fetchone() - print(result) return False if result is None else result["exists"] def createTable( @@ -149,6 +148,17 @@ class DBConnector: with self.connection() as conn: return conn.execute(stmt).fetchall() + def filterFromTable( + self, table_name: str, columns: list[str], where: list[ColumnCondition] + ) -> list[dict[str, Any]]: + stmt = SQL("SELECT {} FROM {} WHERE {}").format( + SQL(", ").join(map(lambda c: Identifier(c), columns)), + Identifier(table_name), + SQL(", ").join(map(lambda cp: cp.sql(), where)), + ) + with self.connection() as conn: + return conn.execute(stmt).fetchall() + def updateDataInTable( self, table_name: str, columns: list[ColumnUpdate], where: list[ColumnCondition] ):