@@ -262,3 +262,53 @@ class Singer(Base):
262262 singer .name = "New Name"
263263 session .add (singer )
264264 session .commit ()
265+
266+ def test_select_table_in_named_schema (self ):
267+ class Base (DeclarativeBase ):
268+ pass
269+
270+ class Singer (Base ):
271+ __tablename__ = "singers"
272+ __table_args__ = {"schema" : "my_schema" }
273+ id : Mapped [int ] = mapped_column (BigInteger , primary_key = True )
274+ name : Mapped [str ] = mapped_column (String )
275+
276+ query = (
277+ "SELECT"
278+ " singers_1.id AS my_schema_singers_id,"
279+ " singers_1.name AS my_schema_singers_name\n "
280+ "FROM my_schema.singers AS singers_1\n "
281+ "WHERE singers_1.id = @a0\n "
282+ " LIMIT @a1"
283+ )
284+ add_singer_query_result (query )
285+ engine = create_engine (
286+ "spanner:///projects/p/instances/i/databases/d" ,
287+ connect_args = {"client" : self .client , "pool" : FixedSizePool (size = 10 )},
288+ )
289+
290+ insert = "INSERT INTO my_schema.singers (name) VALUES (@a0) THEN RETURN id"
291+ add_single_result (insert , "id" , TypeCode .INT64 , [("1" ,)])
292+ with Session (engine ) as session :
293+ singer = Singer (name = "New Name" )
294+ session .add (singer )
295+ session .commit ()
296+
297+ update = (
298+ "UPDATE my_schema.singers AS singers_1 "
299+ "SET name=@a0 "
300+ "WHERE singers_1.id = @a1"
301+ )
302+ add_update_count (update , 1 )
303+ with Session (engine ) as session :
304+ singer = session .query (Singer ).filter (Singer .id == 1 ).first ()
305+ singer .name = "New Name"
306+ session .add (singer )
307+ session .commit ()
308+
309+ delete = "DELETE FROM my_schema.singers AS singers_1 WHERE singers_1.id = @a0"
310+ add_update_count (delete , 1 )
311+ with Session (engine ) as session :
312+ singer = session .query (Singer ).filter (Singer .id == 1 ).first ()
313+ session .delete (singer )
314+ session .commit ()
0 commit comments