diff --git a/ci/schema/risingwave.sql b/ci/schema/risingwave.sql index cedfa8449d60..6c6abadfaa95 100644 --- a/ci/schema/risingwave.sql +++ b/ci/schema/risingwave.sql @@ -16,7 +16,7 @@ CREATE TABLE diamonds ( ) WITH ( connector = 'posix_fs', match_pattern = 'diamonds.csv', - posix_fs.root = '/data', + posix_fs.root = '/Users/kexiang/workspace/ibis-rw/ci/ibis-testing-data/csv', ) FORMAT PLAIN ENCODE CSV ( without_header = 'false', delimiter = ',' ); DROP TABLE IF EXISTS astronauts CASCADE; @@ -49,7 +49,7 @@ CREATE TABLE astronauts ( ) WITH ( connector = 'posix_fs', match_pattern = 'astronauts.csv', - posix_fs.root = '/data', + posix_fs.root = '/Users/kexiang/workspace/ibis-rw/ci/ibis-testing-data/csv', ) FORMAT PLAIN ENCODE CSV ( without_header = 'false', delimiter = ',' ); DROP TABLE IF EXISTS batting CASCADE; @@ -80,7 +80,7 @@ CREATE TABLE batting ( ) WITH ( connector = 'posix_fs', match_pattern = 'batting.csv', - posix_fs.root = '/data', + posix_fs.root = '/Users/kexiang/workspace/ibis-rw/ci/ibis-testing-data/csv', ) FORMAT PLAIN ENCODE CSV ( without_header = 'false', delimiter = ',' ); DROP TABLE IF EXISTS awards_players CASCADE; @@ -95,7 +95,7 @@ CREATE TABLE awards_players ( ) WITH ( connector = 'posix_fs', match_pattern = 'awards_players.csv', - posix_fs.root = '/data', + posix_fs.root = '/Users/kexiang/workspace/ibis-rw/ci/ibis-testing-data/csv', ) FORMAT PLAIN ENCODE CSV ( without_header = 'false', delimiter = ',' ); DROP TABLE IF EXISTS functional_alltypes CASCADE; @@ -117,7 +117,7 @@ CREATE TABLE functional_alltypes ( ) WITH ( connector = 'posix_fs', match_pattern = 'functional_alltypes.csv', - posix_fs.root = '/data', + posix_fs.root = '/Users/kexiang/workspace/ibis-rw/ci/ibis-testing-data/csv', ) FORMAT PLAIN ENCODE CSV ( without_header = 'false', delimiter = ',' ); DROP TABLE IF EXISTS tzone CASCADE; diff --git a/ibis/backends/risingwave/registry.py b/ibis/backends/risingwave/registry.py index 3fee5bd415bc..ee9b3d600dfd 100644 --- a/ibis/backends/risingwave/registry.py +++ b/ibis/backends/risingwave/registry.py @@ -747,7 +747,7 @@ def _range(t, op): # array operations ops.ArrayLength: unary(sa.func.cardinality), ops.ArrayCollect: reduction(sa.func.array_agg), - ops.ArrayColumn: (lambda t, op: pg.array(list(map(t.translate, op.cols)))), + ops.Array: (lambda t, op: pg.array(list(map(t.translate, op.exprs)))), ops.ArraySlice: _array_slice( index_converter=_neg_idx_to_pos, array_length=sa.func.cardinality, diff --git a/ibis/backends/tests/test_array.py b/ibis/backends/tests/test_array.py index a9f55aa81068..28ec720f0237 100644 --- a/ibis/backends/tests/test_array.py +++ b/ibis/backends/tests/test_array.py @@ -1171,6 +1171,11 @@ def test_repr_timestamp_array(con, monkeypatch): ["dask", "datafusion", "flink", "pandas", "polars"], raises=com.OperationNotDefinedError, ) +@pytest.mark.broken( + ["risingwave"], + raises=sa.exc.OperationalError, + reason="Refer to https://github.com/risingwavelabs/risingwave/issues/14734", +) def test_unnest_range(con): expr = ibis.range(2).unnest().name("x").as_table().mutate({"y": 1.0}) result = con.execute(expr) diff --git a/ibis/backends/tests/test_examples.py b/ibis/backends/tests/test_examples.py index e4dd592a33b3..d4f6505e36d9 100644 --- a/ibis/backends/tests/test_examples.py +++ b/ibis/backends/tests/test_examples.py @@ -72,6 +72,7 @@ def test_load_examples(con, example, columns): "pandas", "polars", "postgres", + "risingwave", "pyspark", "snowflake", "sqlite", diff --git a/ibis/backends/tests/test_generic.py b/ibis/backends/tests/test_generic.py index a56f19067405..50a62bf23e0c 100644 --- a/ibis/backends/tests/test_generic.py +++ b/ibis/backends/tests/test_generic.py @@ -1376,6 +1376,7 @@ def test_try_cast_expected_null(con, from_val, to_type): "mysql", "oracle", "postgres", + "risingwave", "pyspark", "snowflake", "sqlite", diff --git a/ibis/backends/tests/test_window.py b/ibis/backends/tests/test_window.py index 69fed4254a69..1b43317a52c9 100644 --- a/ibis/backends/tests/test_window.py +++ b/ibis/backends/tests/test_window.py @@ -1381,6 +1381,11 @@ def test_rank_followed_by_over_call_merge_frames(backend, alltypes, df): @pytest.mark.broken( ["pyspark"], reason="pyspark requires CURRENT ROW", raises=PySparkAnalysisException ) +@pytest.mark.notimpl( + ["risingwave"], + raises=sa.exc.InternalError, + reason="Feature is not yet implemented: Window function with empty PARTITION BY is not supported yet", +) def test_ordering_order(con): table = ibis.memtable({"bool_col": [True, False, False, None, True]}) window = ibis.window(