paradedb / pg_analytics

DuckDB-powered analytics for Postgres
https://paradedb.com
PostgreSQL License
389 stars 15 forks source link

Queries without schema specification fail to fully push down in DuckDB #55

Closed kysshsy closed 3 months ago

kysshsy commented 3 months ago

What happens?

Create two foreign tables in different schemas, one in tpch and one in public. Queries that don't specify a schema will fail to fully push down to DuckDB.

To Reproduce

This issue is unrelated to specific data.

pg_lakehouse=# create schema tpch;
CREATE SCHEMA
pg_lakehouse=# CREATE FOREIGN TABLE tpch.t1 (
    boolean_col       boolean,
        int8_col          smallint,
        int16_col         smallint,
        int32_col         integer,
        int64_col         bigint,
        uint8_col         smallint,
        uint16_col        integer,
        uint32_col        bigint,
        uint64_col        numeric(20),
        float32_col       real,
        float64_col       double precision,
        date32_col        date,
        date64_col        date,
        binary_col        bytea,
        large_binary_col  bytea,
        utf8_col          text,
        large_utf8_col    text
)
SERVER parquet_server
OPTIONS (files '/home/kyss/labs/paradedb/test_arrow_types.parquet');
pg_lakehouse=# CREATE FOREIGN TABLE t2 (
    boolean_col       boolean,
        int8_col          smallint,
        int16_col         smallint,
        int32_col         integer,
        int64_col         bigint,
        uint8_col         smallint,
        uint16_col        integer,
        uint32_col        bigint,
        uint64_col        numeric(20),
        float32_col       real,
        float64_col       double precision,
        date32_col        date,
        date64_col        date,
        binary_col        bytea,
        large_binary_col  bytea,
        utf8_col          text,
        large_utf8_col    text
)
SERVER parquet_server
OPTIONS (files '/home/kyss/labs/paradedb/test_arrow_types.parquet');
CREATE FOREIGN TABLE
pg_lakehouse=# select * from t2 LEFT JOIN tpch.t1 ON TRUE;
WARNING:  This query was not fully pushed down to DuckDB because DuckDB returned an error. Query times may be impacted. If you would like to see this query pushed down, please submit a request to https://github.com/paradedb/paradedb/issues with the following context:
Catalog Error: Table with name t2 does not exist!
Did you mean "public.t2"?
LINE 1: select * from t2 LEFT JOIN tpch.t1 ON TRUE

OS:

linux

ParadeDB Version:

0.8.6

Are you using ParadeDB Docker, Helm, or the extension(s) standalone?

ParadeDB Docker Image

Full Name:

kyss

Affiliation:

NA

Did you include all relevant data sets for reproducing the issue?

N/A - The reproduction does not require a data set

Did you include the code required to reproduce the issue?

Did you include all relevant configurations (e.g., CPU architecture, PostgreSQL version, Linux distribution) to reproduce the issue?

kysshsy commented 3 months ago

Please assign to me. Working on it!

philippemnoel commented 3 months ago

Please assign to me. Working on it!

Thank you!