Yes, working perfectly! Thank you very much! On Wednesday, November 30, 2022 at 10:52:31 AM UTC-5 Jeremy Evans wrote:
> On Wed, Nov 30, 2022 at 11:19 PM 'Maria Fradkin' via sequel-talk < > [email protected]> wrote: > >> Hello, >> >> I have discovered one additional problem related to the partitioned >> tables in Postgres. We use unique index and constraint definitions to >> handle insert on conflict behaviour in our code, but for some reason we >> cannot automatically detect indexes for partitioned tables. Here is the >> example: >> My table is partitioned by hash on some_id column, I have few partitions >> attached >> some_table_hash_p1 >> some_table_hash_p2 >> ... >> some_table_hash_p16 >> And we have indexes both unique and not unique on this table. >> When I try SomeTable.db.indexes(:some_table, include_partial: true) I am >> getting {} >> On the same structure on the table but without partitioning I see all >> indexes as defined in DB >> {:some_table_col1_id_col3_hash_col2_id_index=>{:columns=>[:col1_id, >> :col3_hash, :col2_id], :unique=>false, :deferrable=>nil}, >> :some_table_col1_id_col3_id_col2_id_index=>{:columns=>[:col1_id, >> :col3_id, :col2_id], :unique=>false, :deferrable=>nil}, ... } >> >> Can you please advise me again how to fix this issue with an actual model >> table? >> > > Looks like partitioned indexes use a different reltype. Can you try this > patch?: > > diff --git a/lib/sequel/adapters/shared/postgres.rb > b/lib/sequel/adapters/shared/postgres.rb > index bc9fc68a4..3ef326f4b 100644 > --- a/lib/sequel/adapters/shared/postgres.rb > +++ b/lib/sequel/adapters/shared/postgres.rb > @@ -919,7 +919,7 @@ module Sequel > join(Sequel[:pg_attribute].as(:att), > :attrelid=>Sequel[:tab][:oid], :attnum=>attnums). > left_join(Sequel[:pg_constraint].as(:con), > :conname=>Sequel[:indc][:relname]). > where{{ > - indc[:relkind]=>'i', > + indc[:relkind]=>%w'i I', > ind[:indisprimary]=>false, > :indexprs=>nil, > :indisvalid=>true}}. > > Thanks, > Jeremy > -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sequel-talk/363efcda-0bbf-4d03-ad02-e027e1c2e5a4n%40googlegroups.com.
