77import json
88import os
99import re
10+ import sqlite3
1011import string
1112import subprocess
1213import sys
2627import ibis .expr .operations as ops
2728from ibis .backends .conftest import ALL_BACKENDS
2829from ibis .backends .tests .errors import (
30+ ClickHouseDatabaseError ,
2931 DatabricksServerOperationError ,
3032 ExaQueryError ,
3133 ImpalaHiveServer2Error ,
34+ MySQLProgrammingError ,
3235 OracleDatabaseError ,
3336 PsycoPg2InternalError ,
3437 PsycoPgUndefinedObject ,
@@ -668,12 +671,32 @@ def _emp(a, b, c, d):
668671 pyspark_merge_exception = None
669672
670673
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+ )
671686@pytest .mark .notimpl (["polars" ], reason = "`upsert` method not implemented" )
672687@pytest .mark .notyet (
673688 ["pyspark" ],
674689 raises = pyspark_merge_exception ,
675690 reason = "MERGE INTO TABLE is not supported temporarily" ,
676691)
692+ @pytest .mark .notyet (
693+ ["risingwave" ],
694+ raises = PsycoPg2InternalError ,
695+ reason = "MERGE INTO is not supported" ,
696+ )
697+ @pytest .mark .notyet (
698+ ["sqlite" ], raises = sqlite3 .OperationalError , reason = "MERGE INTO is not supported"
699+ )
677700@pytest .mark .notyet (
678701 ["trino" ],
679702 raises = TrinoUserError ,
@@ -696,12 +719,32 @@ def test_upsert_from_dataframe(
696719 )
697720
698721
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+ )
699734@pytest .mark .notimpl (["polars" ], reason = "`upsert` method not implemented" )
700735@pytest .mark .notyet (
701736 ["pyspark" ],
702737 raises = pyspark_merge_exception ,
703738 reason = "MERGE INTO TABLE is not supported temporarily" ,
704739)
740+ @pytest .mark .notyet (
741+ ["risingwave" ],
742+ raises = PsycoPg2InternalError ,
743+ reason = "MERGE INTO is not supported" ,
744+ )
745+ @pytest .mark .notyet (
746+ ["sqlite" ], raises = sqlite3 .OperationalError , reason = "MERGE INTO is not supported"
747+ )
705748@pytest .mark .notyet (
706749 ["trino" ],
707750 raises = TrinoUserError ,
0 commit comments