@@ -392,25 +392,6 @@ def test_can_introspect_spec(self):
392392class TestCustomReader :
393393 """Tests for custom Python reader support."""
394394
395- def test_simple_custom_reader (self ):
396- """Custom reader with execute_sql() method works."""
397-
398- class SimpleReader :
399- def __init__ (self ):
400- self .conn = duckdb .connect ()
401- self .conn .execute (
402- "CREATE TABLE data AS SELECT * FROM ("
403- "VALUES (1, 10), (2, 20), (3, 30)"
404- ") AS t(x, y)"
405- )
406-
407- def execute_sql (self , sql : str ) -> pl .DataFrame :
408- return self .conn .execute (sql ).pl ()
409-
410- reader = SimpleReader ()
411- spec = ggsql .execute ("SELECT * FROM data VISUALISE x, y DRAW point" , reader )
412- assert spec .metadata ()["rows" ] == 3
413-
414395 def test_custom_reader_with_register (self ):
415396 """Custom reader with register() support."""
416397
@@ -421,7 +402,7 @@ def __init__(self):
421402 def execute_sql (self , sql : str ) -> pl .DataFrame :
422403 return self .conn .execute (sql ).pl ()
423404
424- def register (self , name : str , df : pl .DataFrame ) -> None :
405+ def register (self , name : str , df : pl .DataFrame , _replace : bool ) -> None :
425406 self .conn .register (name , df )
426407
427408 reader = RegisterReader ()
@@ -472,6 +453,9 @@ def __init__(self):
472453 def execute_sql (self , sql : str ) -> pl .DataFrame :
473454 return self .conn .execute (sql ).pl ()
474455
456+ def register (self , name : str , df : pl .DataFrame , _replace : bool ) -> None :
457+ self .conn .register (name , df )
458+
475459 reader = DuckDBBackedReader ()
476460 spec = ggsql .execute (
477461 "SELECT * FROM data VISUALISE x, y, category AS color DRAW point" ,
@@ -500,6 +484,9 @@ def execute_sql(self, sql: str) -> pl.DataFrame:
500484 self .execute_calls .append (sql )
501485 return self .conn .execute (sql ).pl ()
502486
487+ def register (self , name : str , df : pl .DataFrame , _replace : bool ) -> None :
488+ self .conn .register (name , df )
489+
503490 reader = RecordingReader ()
504491 ggsql .execute (
505492 "SELECT * FROM data VISUALISE x, y DRAW point" ,
@@ -522,8 +509,10 @@ def __init__(self):
522509 def execute_sql (self , sql : str ) -> pl .DataFrame :
523510 return self .con .con .execute (sql ).pl ()
524511
525- def register (self , name : str , df : pl .DataFrame ) -> None :
526- self .con .create_table (name , df .to_arrow (), overwrite = True )
512+ def register (
513+ self , name : str , df : pl .DataFrame , replace : bool = True
514+ ) -> None :
515+ self .con .create_table (name , df .to_arrow (), overwrite = replace )
527516
528517 def unregister (self , name : str ) -> None :
529518 self .con .drop_table (name )
0 commit comments