Hello,

ref:
https://github.com/adjust/parquet_fdw#basic-usage
and
https://github.com/adjust/parquet_fdw/issues/58

I came across this error/crash when using partitioning of a table with
foreign tables (parquet_fdw) as partitions.
It might be an issue with parquet_fdw nothing with postgresql, but I am not
able to figure out why it crashes around the sorted option set.


to reproduce,

vijay=# CREATE FOREIGN TABLE example1 (
    one     INT8,
    two     INT8[],
    three   TEXT,
    four    TIMESTAMP,
    five    DATE,
    six     BOOL,
    seven   FLOAT8)
SERVER parquet_srv
OPTIONS (filename '/tmp/parquet_fdw/data/simple/example1.parquet', sorted
'one');

CREATE FOREIGN TABLE example2 (
    one     INT8,
    two     INT8[],
    three   TEXT,
    four    TIMESTAMP,
    five    DATE,
    six     BOOL,
    seven   FLOAT8)
SERVER parquet_srv
OPTIONS (filename '/tmp/parquet_fdw/data/simple/example2.parquet', sorted
'one');
CREATE FOREIGN TABLE
CREATE FOREIGN TABLE
vijay=# select * from example1;
 one |    two     | three |        four         |    five    | six | seven
-----+------------+-------+---------------------+------------+-----+-------
   1 | {1,2,3}    | foo   | 2018-01-01 00:00:00 | 2018-01-01 | t   |   0.5
   2 | {NULL,5,6} | bar   | 2018-01-02 00:00:00 | 2018-01-02 | f   |
   3 | {7,8,9}    | baz   | 2018-01-03 00:00:00 | 2018-01-03 | t   |     1
   4 | {10,11,12} | uno   | 2018-01-04 00:00:10 | 2018-01-04 | f   |   1.5
   5 | {13,14,15} | dos   | 2018-01-05 00:00:00 | 2018-01-05 | f   |
   6 | {16,17,18} | tres  | 2018-01-06 00:00:00 | 2018-01-06 | f   |     2
(6 rows)

vijay=# select * from example2;
 one |   two   | three |        four         |    five    | six | seven
-----+---------+-------+---------------------+------------+-----+-------
   1 | {19,20} | eins  | 2018-01-01 00:00:00 | 2018-01-01 | t   |
   3 | {21,22} | zwei  | 2018-01-03 00:00:00 | 2018-01-03 | f   |
   5 | {23,24} | drei  | 2018-01-05 00:00:00 | 2018-01-05 | t   |
   7 | {25,26} | vier  | 2018-01-07 00:00:00 | 2018-01-07 | f   |
   9 | {27,28} | fünf  | 2018-01-09 00:00:00 | 2018-01-09 | t   |
(5 rows)

vijay=# create table example (
vijay(#     one     INT8,
vijay(#     two     INT8[],
vijay(#     three   TEXT,
vijay(#     four    TIMESTAMP,
vijay(#     five    DATE,
vijay(#     six     BOOL,
vijay(#     seven   FLOAT8)
vijay-# partition by list(three);
CREATE TABLE
vijay=# alter table example attach partition example1 for values in ('foo',
'bar', 'baz', 'uno', 'dos', 'tres');
ALTER TABLE
vijay=# explain analyze select * from example where three = 'foo';
ERROR:  could not find pathkey item to sort
vijay=# alter table example1 options (drop sorted);
ALTER TABLE
vijay=# alter table example2 options (drop sorted);
ALTER TABLE
vijay=# explain analyze select * from example where three = 'foo';
                                              QUERY PLAN

-------------------------------------------------------------------------------------------------------
 Foreign Scan on example1  (cost=0.00..0.06 rows=1 width=93) (actual
time=0.537..0.912 rows=1 loops=1)
   Filter: (three = 'foo'::text)
   Rows Removed by Filter: 5
   Reader: Single File
   Row groups: 1, 2
 Planning Time: 0.888 ms
 Execution Time: 1.399 ms

--

*Vijaykumar Jain*

Database Engineer



+91 9769545966

vijaykumar.sampat.j...@adjust.com <ad...@adjust.com> | www.adjust.com



Adjust GmbH

Saarbrücker Str. 37A | 10405 Berlin | Germany

Registration Number: Local Court Berlin-Charlottenburg, HRB 140616 B

Representatives (Geschäftsführer): Simon Dussart

Seat of the company: Berlin, Germany ______________________________________
The protection of your personal data is particularly important to Adjust.
To find out more about how Adjust processes such personal data and what
your rights are, please see our Privacy Policy
<https://www.adjust.com/terms/privacy-policy/>.

Reply via email to