A case for GIST supporting ORDER BY
Hi,
Some time ago I’ve provided some details with the issues we face when trying to use GIST and partitioning at the same time in the postgresql-general mailing list:
/messages/by-id/3FA1E0A9-8393-41F6-88BD-62EEEA1EC21F@kleczek.org%EF%BF%BC
GIST index and ORDER BY
postgresql.org
We decided to go with the solution to partition our table by:
RANGE (‘2100-01-01' <-> operation_date).
While it (somewhat) solves partition pruning issues described above there is another problem:
It is impossible to create a unique constraint on the partitioned table.
So now we cannot use INSERT … ON CONFLICT (…) DO UPDATE
My question to hackers:
Would it be feasible to implement ORDER BY column GIST index (only) scan for types with total order and sensible greatest and least values?
Thanks,
Michal
Attachments:
elephant.pngimage/png; name=elephant.png; x-unix-mode=0666Download
�PNG
IHDR � � es� pHYs �� tEXtComment Created with The GIMP�d%n IDATx���_Hi�?�g��������cOj
�$7���E���.�t���zv����=����e���U6B��F!���3�2��iR�8X�SIw2���x�����"V����U��V���N���Lbw}�}�����7o �g�7�b���k]�{K��_~!�0>��b�H�aL�u]���E���t����4m�����(J������� @��B�e���}�+
un9������������G w ��{�e�Z��#���^!�-�����zzz�_�l�����$B �
��>],/�|��)Y�e��O{���eTU��(����7�� #B ����t]��C�a��b���k����:�����(���UE�u� �6�Y��g�0����v��N_
PU5�(
�����i3������� j�v��i{��0?���(qUU�� ��J����2���}P1UUKC"�M� ����������4M�A�S�"B �2����O x���03�]�e�t]�����O���iqD�B �=�K$����DDv��R���������J�~�����s�J~]s7��a|�������u]>����Qb
RB O���a��b�����X,��,��`i�^��YQ���u}Z���� X��o�@�B4m����h4�4� B�������eY��w���j!|�D�� �9p�)
�===D���I�kQ�`:�F �SU5�����C
�|�4��:{���s<q�aR�]��?���3��� o �'�=�)���a�F�t��N�2�g ����P�y�����(������������ ( ;�^O��r1G��eY!�0��a��� x����~P��jAQ��(�5&�N�caa!�N���
�������B8�!�4Jw~���]8n�iZ��}h�Ux�|x�}lyy�A>e?���������@`��D(��!���]i�{��)Z�Kd�'�n��Am@C g!��U( �;,��j��EQ��9k`3��t:} �}v8DC�
!8
%a�I����(���N�����T<� @������)�}��pT�P�b�H���caa!��:�>a{G��,�`z��x��}�� HH��x?�B��l��M���e�8�(?]��������� ���R(!g�����qM���S�qI�0�o����t:�RP �SU5>88�]C�!�`���?�A��I���)����3�3������� ��@ p!����!��@;C`F�JQ; ���A�e�����d2� PC4M�b| �*�&pjj
g��4M�o���i��2�����LMM���4M����eYx��Q���GFFPNZ�kH�X�t:�&�L"�/�g{zz�`YV(�L>K�R(�EQ���Q UU��^{{{!<(��?(����"���L��z������{�������V���=�5 �J�A9(�"EQ��H����\:��G2��1�<TU�R������3CD��z[���d�H��z�>}J�b����cb�X|dd�f�7k
�O�C ��E�G����A,��J���l �v���iD�>�i����WA�������kF�2:/�����qn��}%� Gc��~��W�y��,+4::�� ��iZ�.�<~�8)�2��'�aW-�����r���/���i�����W�N�>�@ gh�����H�4��B�u}zjj�7�J���A�@�����vigOO���g��p�AQ�u�(V ���=�� �c�?�����./�u}ztt�� �SU5��*�_��u}faa��0�����@0�B���BGGG���H��CA��h�WU����Q� ;X���aY{'���C0�B�(�t���7�de� ���r�E8:��p{{;��z��;xBet]�1�waa�t]���.�h4>>>����@(9��_4�w]{3D(��(qUU����TU����0�����F@� �*� �PRvD� oQU5����Xi�a�
�F�a�
�MUU���aT,?��v�|��V�>�W2og���aW���%���_�v�7�����%� �������#�C�T��I�3������� g��b�x���X,^X^^����:m����]����S�F�����_:�.����fZ�?��@����H��k�~#�Z�`��(�4::����5��!EQ����9�����r�V�����7���;�������GJ��}�����jMu���eY�O�>�_[|�3�===��D_�����SSS���<
EQ����h<#1B��,�y��
��������y [S����,�/%��}������w�������h���4�T�����l�`w�<~�x���j��+��������@ pA������F�(�I�Rt��}J�����A�����$�J�P ��U�>�c����_��~q�u}�hg���#����p�=���n�b?���YPU���vX\XX��wE�}��@���+4���R��pdd$���rA @������^���.��4��?�QU��K`���tD+�� r0��eY�g���`)����^-�CEQ�������`o��,�
=���r��,�}iaa��>��n�4�>��u�=����h�h�Y@���R)����}�R������D�g���;Jw����F(:B��aW
�����@�<#T���/�����R)_?��' t#��e�t�CCCA?�����]
vU�&.PE�� PZ{��taaa!h}��Wt��5������LMM���i_�@7Rq]R,i``�M-������`��u}������e2���.�A�T� �,�JQ2�����k���GFF�t����C}���Z�C��:�@ �0���d���v
������4���@� ��B���#�k�6n�b�e}���3�$zB ��n��A�d�Wg
��h|rr��.C t��wUU����� ��0�����^^^&]�}���eh
��t��L&�~y���B�!V����vD)(��N�v���~�d�(J|pp� eY�����R��/�;�[��*���l�eW7�����,,,�n���rW^�X,�����@ ��GW��q�����D��
�Ez��'.�@�B,k���G9(x�]f�����X!EQ��X�����0 ��FGG���H��@xD�a|s����^?��iZ���g��w���j|pp� 5 k��������[���J�htt��g�UU�ONN^UU�o��������o���<��c�b j�]b�3��i�AY(�������] [�h������y���x�|uj���pKp���B���|��������Pp��
���p||<~������/C ,����c ��t:]XXX��!z�g�R�X,>22�B ���j����_��^�|��f^��qknj���w�G;8b�]^�h8S�C������m/�8F����� v �a�B�����K��_�|��|��vG��-2s���I���w���������$��sR�
y��0\�w��c4�9:�x��(n� *�������{��{�� f���������<i����������p575R��F�>��X9/7��' ���>�����Q���| ��Jw�V.� �3W�z��j����]��?��I�>�x���>kjXok ���b�FGG)�Hx�=���Y�{�����L��x��` �p���������k�t�p���������@� �d���j��4s/�����;��w��:��B��c3�z�����{EQ����C�2 ��,+t���g^)�v�Z|||\�e ��0�NMM�����dP/nj *41��Vs2�w���475R8����t:���]���>3::���������X,�� n3��s����j�Q ���H��������a �022�z��5�e|)k�oe'�DoKM;�-�{�bG�X,���D(�!y�y��i���IA I��p�k��o�� pO"5G����)
�}�;D_��v�PU����q�p5S�������2���R�9��F������UUUo;�=a'�cd��6_ou���Gz
��i���sW��!��#}y
�B��M��n!Mm��3��e}100��+e��@������
w��@({'Q���G*��d2YqY)^��5�����t����������I��_�nky���-���c���`���5�{�N�CCCA����\�N5���-i��Y�e���v�*� z#������Ur�0��������yZ�8{��A�-�����-�n��v7�+�B0�r�CA�t���p844D7n���������B��@(sDy�s���v�H�6��M��YS��_�7zDD�55�775&�$����/�����R�=�+�/D�������n��`��:�-�P_Gm�����v8�����H�z�"�'k�1�aWn����0�h4>99Y��
k.��D����� �\!�m�.AsS#5k���_�-Dy���,R��z�X|��1o�����<��n��d����
���r�p��s8::J7n�X��i#���P ,�t���72zUU5>99�&��������207���t[�����I��ZyR�E�a���Afqe=���5k��s�(
RsS#������xD���V/�P�p(H}���H��V���&�4���f35��"�;w���[����t7 ��}v�jiX�� pB ���E1:���2a\T"�}���Jo��A���R�����
�h��D_7�BY� v���e����\����@ ��p��RT��S�\�K_^_zh����u�[�t[�[�����Z�7gI7�D_xLsS#E�<E�K������bR��s��IW&Z�g�� ��j�����Mg����HtcmF7�{1���� �~;�q�����y���Tb��/��0�~dd$�H$j&�:��@�d+�&:�;�����H�P������d� �u������D�q+�`��M��{^�]#/t"�W����P�0�iZ�����/�u� Bb�1s���yc ?�@���ig��4����3����P���:��OP"vQ��8J����X,>>>�������A�7��,����z+�K�a�����������s�p�p(H�������<����T�3�B�F���=4�N6em8Sc)|���������%����L"� yK��f��c7�P {X�������(�f~���<J��T�o�+��;G�����=�*�R�7R�E�cQ�@�`�"v�}��79?�y(p�]
����{��B��QF
Uinj�x��/�3en8��P��@(S�F��{����G��BWf�����
��@�Rg�s:n��R3���<"�����(�}�"�'k�gc*� ~ ����\�|���%����������(9���$_B�0�9w�����/#%2�+���F+�Y@6��p� D��J���}),�f~0��Kb����`���A2v!
>|�_���M��8������PGG�.C�d)�2��.h�5v�JL��5����F; ���:���c���s.�����]H�
=��"�;w����^o���'����i�D�OQ����nFc�
]#SsK��'x=�R)Z�a����B���������i�ap�/������j�=(��[�g��k�:�������� ���YO>L1�����o[�%�n�_B�g��%��IAj�K?�3��~�5���%�g�S:�-41��������)�
=e�(��j���'"/��v
���>Y��ip^���g
�[N�t��D����8���J�R��\ ������ � �����~���9�P����|�/�})��n!8�������x��:�J������
=��"utt�Y?��0�r0���G[hj�ov�\����<Z��$��H�)�;���
�H�i�M���]�T����
����~������{*�n"��0�7 �lw-��T^ ����6r�S7�A'Rp������.������lFU������P��@�H$����"B7�f��<�E9�;�tF ��>�n���'=�3\��;�hz^���/���6��k���P���s��m�Z�+a�
��P_G�����g#p0��f+�5���7g�h8N
��4�Q��;����I�8�R^
��B����-����n��$��z�z P?C<7|��L�&�:�n�������HE��=�� /�A4���_������H�e��xi������U^*��'''��R�7n��.<y�DS�����& |d�f��5|sv g���n���5��w�����}��m,���P�@hYV���C�J�d��m������ |d�x8�?t%E )��+ge�����k��I
�
�oDuz��a��i�
��� ~c�]�vP=��3�B�_������������T�����e�U899��b��B)���P"�>��K�.Jy��E�OQ"vQ�eT�����sw ��4/<01���s��S�P����'�:JI
�����C���k������E,}������1 �d
�x� NC}����~Wd?�* 74��Q�����4Dr����i}-6���R�h4�w���B�(����y 9475����R� ����-����
�����(�*�*�q�v ���
� �����������n�����;�Z���&{��B�L��� ��e�~���~�����%p^@�p(H3�KU���� kU�A0���P_G�W�Jy��H�P(�8
i��s������;([GQ� �!c�,��'RsR���N^8G��+��ZqC$W(��a"4JE
�O$����e��0 ���1_����uq7T&�[d|�j�)�G!<�E��o�����iZ�����K�������O�0��3 �����R�H �4����w�;�-I����,�Pt�Q��p``�M*�b����J���0 �l�%�I�?�� ���Y)o���3��&��om2�BQ�G�B]����;����,��� �l�P6�O^j:�f3�&��wm�����$�mO>`/E���� J3 ���\� ��575R"v�3��xM����kK�R400���d7�G��T*���?�,��j��#}�w�/��x�/��<3�E�y���B�&3B��F2��������]O<�+��� ����F���4�CA(�����H�P�����\Mf>�Xd�7n��>�922�*:n��#4|�,����0P�^l�����K��E_�������o�|�E����2�+����T,�X,}��nX�b�!�,+�����{�5e1�n� ��t�a ��=O������������/c��������v�q�t�}�ptt�u�.\�����s����n� �2�a �3s���J�����>�:1��`C}��K����9������$i�&t�P���7n��{��C(b����x���k�K~ 7 ��rn� �M=Ac�]}�Cnp�L�<������P�ch=k <w��]�����P*��? �d)E�� �
g
�M����Z�e������[9�����l%���Os�A""�����n� ��R����]� ����3����d�'
.����p((�R���f�z�O���>|�_�@����
��H$��������^������Utb�1�4�P_'E�U"5GY3/�2 �C��<�����/�@3��!�+�\A�P����������L&�-�
���Y!����(�����>�k3�2�Vz ����.
�����J��E�8If��%�Z��Pn�-F�������&3�b�����+�],�phh�uwp||\X]��+t%��X�}�C}�;�3�"t�gfqea �a�������"[(�v������O���8�}]o*�J������ IDATL#4� ����2z
��63|s� �12v`,�{ p�l�:EvU%��O?9�`�����)���Ad#4��C"vQh�(* �
���vKv�N!�E���'O���&3�e9�`��@�}v���k���4@�F������E;v p�=�>k�����B!�E�P(��h2�\/��}?W!gg�@ pa||�k��\�k���V!��;�P����������b���k �|�E���IY�"�[d
����r�_,��q��]B����Aa�ldj� ��(����S"5��H����=!�[d
��XLX�'w ]����"�LL�>�
���wP86�e� Bfq��cwE_��
�-2����I�4�=:�K�J �,+��;(*f�� �
����H�W�
[����9���Y3ow��n^!B!�E�P���C!Mf��%t%����5vQ%�����!���� ��Ut��,��Pf�@�����P���h����� "�����5��%t<�EJ�R�����# $��'�v�9�� ����-i��#�[tc�d8K�F��h��t4�LV���x t���aD���B����u`���:���������n� [ `/��\���)����������{����b�A*��*9�H���;825��0 �1�=nF�� ��H���f�����:��>�Y\!v�E��H&�+�r4�R�7�b����s?�v�����(��� ����>�
��d�5�m����B(7$Rs��Ca,c�:j����w�q4V�N�B�� ��W�
k$�s� ���i:1����B!�e���V���FFFf������x��o��q���a�ttt��o)�����8��!��#�/�}���B��������lsV �i��>�����+t�^�F�8����&���.���/_�L�t���&�?���o�������d2y���u��Y3?�0 ^C}��0HD���C ��g���9)�����|��l����c||��5��tE;}��b�H�t��:\qv���<��A �<7�K����� P
gF�O�"��\��cw���(��X,�z����{��t:��L���k��{2�+�h$ ^sS������O(k���
����[R�B�����f^hc����]B�0&,�
�� �~o&3�y�B�C��aO��P
�B�P8|�,E�O���!��(Ey�=�>�N?;��T-�
��r`�{����M � ��n�H�)!gP*
~#c(L�.Rg�E�e�%Rs�Y3/�;��� k�����#M��0�L9�Vjpp�*�Z���'�K�����B�RQ �+;��{���LM�PP�e�
���D��^UU�6�*)�:�R)�-XM�����u2%z�;�] �:�-�n�B�RQ ����[4|s�W�0�R3��f��6_o ��98��L��e�U�t:��f2�������A 9L-d����x( 5!��k�)bp=����4���b.p�w��������Y��E���� �D5����X�6 �2��p(�4|�����Y\!e��h���a�b����8�EJ�R\�d�I`w@�����y�� Ps��VY�F�O�~���
�Hbj��=�������(C�+�GY�Z����3<�; Q���. �,15�+K����3G��>;����i����5�YXX(�s+������K�D����(l�L��; ���:a���2KB� ��l#)���<
���5�E�F��J��e�\W��"��i�rQ�f2���u���w�C�����B� ��l��G�
�2�Y;�������+�������(r��
i&�y,d�5 ��P_G�Kg������ xK�P8��_Kq�Y3��K���m��Q]���WQ �*���C��f�� ��;�F2 ;�
���R"v�G�Q���.��ilk�{������\�������A �D��� ��6_o������#��Z�d��=b����*p���zYP���EE�k���P* ��~B��h& �?3W�����/���d�7v��Z�h��/o��������]x���9�� `o":���y�Q3 ��)��8)������iR�#�d���v������] U��A �����4�����:2 �k�����Q5�s�����~��a:��G�X|P��IQ����eu�qFM �A���,76 ^�Y\����3���rV�e�O��:�Q�����i���s�@����R��].:=o`��`"v�f~��L �2�+41�X�eP���T1g��_8�9���qh3���V~5G�].j���� �>"_�d/��H �'�2K�Y\>b��K���(�2��6_o��$d>Gx�����eY!��\7�].��U ��n��pk8���At �N"5��y����. �����l�"��r-E�q�h��a:�~V����\�{� |����:s��� N�9�=�>
.�<!T���===l%�O�>=����\�&8�����Q����H�z�{�(v ��z��o�
\���P-�cd��vr�uXc����^..pk��& {�G���?�� ��^l��bF!�B����*��R}ID����9��@x�AD�D�Q�n��= VC}E�O���cw ���(�yB���{�v_��X����~�Wn d�I����X�����b� �X"FM`w �=2����K�F� �2��9�X����~��@�u~0���C�rQ p7 �� ��dG�t�:�-"/<��������:������X,Zw�UU��L�P.
����� �1v�Q�����_SC}��K �����|]������wh �u��^�>8�M�\@���*��*� ����h��"�X#���\����il�U|
�`��������rQ �����g��#v ��xE���B�ASO��8��f�^���U�C�q~0\�L�(��<�!j[fq�}M �Z�5�4v���kH�.b�j��!W�Q�0�=XN����5Mck��5��(��|�z2�A �U��O�7�I�.�S o�l,�i�]�!��A�q�(HD�v ��d�3���~ PM���2c�lwX d)��4�*�:D��E �C�/O�>�= �h23|�,�C,�1��:����@���������v}�m~���d���p. �x����o�
������Xe���Y�WXk���w�������E���:�f2���u� ��n� }P��� ��j��a�@hYV�X,>p�T��Q7���'