On Thu, Dec 1, 2022 at 2:28 AM 'Maria Fradkin' via sequel-talk < sequel-talk@googlegroups.com> wrote:
> Yes, working perfectly! Thank you very much! > Thanks for the feedback. This won't make the December 2022 release (release testing had already finished), but I will include it in the January 2023 release. Thanks, Jeremy 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 < >> seque...@googlegroups.com> 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 sequel-talk+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sequel-talk/363efcda-0bbf-4d03-ad02-e027e1c2e5a4n%40googlegroups.com > <https://groups.google.com/d/msgid/sequel-talk/363efcda-0bbf-4d03-ad02-e027e1c2e5a4n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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 sequel-talk+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sequel-talk/CADGZSSe_nNB-DZ8G5o70y9agj8nKESGXiHzzv%2Bkzga6WZPhcTw%40mail.gmail.com.