7
7
import json
8
8
import os
9
9
import re
10
+ import sqlite3
10
11
import string
11
12
import subprocess
12
13
import sys
26
27
import ibis .expr .operations as ops
27
28
from ibis .backends .conftest import ALL_BACKENDS
28
29
from ibis .backends .tests .errors import (
30
+ ClickHouseDatabaseError ,
29
31
DatabricksServerOperationError ,
30
32
ExaQueryError ,
31
33
ImpalaHiveServer2Error ,
34
+ MySQLProgrammingError ,
32
35
OracleDatabaseError ,
33
36
PsycoPg2InternalError ,
34
37
PsycoPgUndefinedObject ,
@@ -668,12 +671,32 @@ def _emp(a, b, c, d):
668
671
pyspark_merge_exception = None
669
672
670
673
674
+ @pytest .mark .notyet (
675
+ ["clickhouse" ], raises = ClickHouseDatabaseError , reason = "MERGE INTO is not supported"
676
+ )
677
+ @pytest .mark .notyet (["datafusion" ], reason = "MERGE INTO is not supported" )
678
+ @pytest .mark .notyet (
679
+ ["impala" ],
680
+ raises = ImpalaHiveServer2Error ,
681
+ reason = "target table must be an Iceberg table" ,
682
+ )
683
+ @pytest .mark .notyet (
684
+ ["mysql" ], raises = MySQLProgrammingError , reason = "MERGE INTO is not supported"
685
+ )
671
686
@pytest .mark .notimpl (["polars" ], reason = "`upsert` method not implemented" )
687
+ @pytest .mark .notyet (
688
+ ["postgres" , "risingwave" ],
689
+ raises = PsycoPg2InternalError ,
690
+ reason = "MERGE INTO is not supported" ,
691
+ )
672
692
@pytest .mark .notyet (
673
693
["pyspark" ],
674
694
raises = pyspark_merge_exception ,
675
695
reason = "MERGE INTO TABLE is not supported temporarily" ,
676
696
)
697
+ @pytest .mark .notyet (
698
+ ["sqlite" ], raises = sqlite3 .OperationalError , reason = "MERGE INTO is not supported"
699
+ )
677
700
@pytest .mark .notyet (
678
701
["trino" ],
679
702
raises = TrinoUserError ,
@@ -696,12 +719,32 @@ def test_upsert_from_dataframe(
696
719
)
697
720
698
721
722
+ @pytest .mark .notyet (
723
+ ["clickhouse" ], raises = ClickHouseDatabaseError , reason = "MERGE INTO is not supported"
724
+ )
725
+ @pytest .mark .notyet (["datafusion" ], reason = "MERGE INTO is not supported" )
726
+ @pytest .mark .notyet (
727
+ ["impala" ],
728
+ raises = ImpalaHiveServer2Error ,
729
+ reason = "target table must be an Iceberg table" ,
730
+ )
731
+ @pytest .mark .notyet (
732
+ ["mysql" ], raises = MySQLProgrammingError , reason = "MERGE INTO is not supported"
733
+ )
699
734
@pytest .mark .notimpl (["polars" ], reason = "`upsert` method not implemented" )
735
+ @pytest .mark .notyet (
736
+ ["postgres" , "risingwave" ],
737
+ raises = PsycoPg2InternalError ,
738
+ reason = "MERGE INTO is not supported" ,
739
+ )
700
740
@pytest .mark .notyet (
701
741
["pyspark" ],
702
742
raises = pyspark_merge_exception ,
703
743
reason = "MERGE INTO TABLE is not supported temporarily" ,
704
744
)
745
+ @pytest .mark .notyet (
746
+ ["sqlite" ], raises = sqlite3 .OperationalError , reason = "MERGE INTO is not supported"
747
+ )
705
748
@pytest .mark .notyet (
706
749
["trino" ],
707
750
raises = TrinoUserError ,
0 commit comments