Size vs size_t

Started by Thomas Munroalmost 9 years ago10 messages
#1Thomas Munro
thomas.munro@enterprisedb.com
1 attachment(s)

Hi,

Noticing that the assembled hackers don't seem to agree on $SUBJECT in
new patches, I decided to plot counts of lines matching \<Size\> and
\<size_t\> over time. After a very long run in the lead, size_t has
recently been left in the dust by Size.

--
Thomas Munro
http://www.enterprisedb.com

Attachments:

Size-vs-size_t.pngimage/png; name=Size-vs-size_t.pngDownload
�PNG


IHDR��,�5PLTE���������������@��Ai��� �@���0`��@�������**��@��333MMMfff�������������������22�������U����������������d�"�".�W��p��������������P����E��r��z�����k������� �����������P@Uk/���@�@��`��`�����@��@��`��p������������������������|�@�� ������???������___�s�l�	pHYs���+IDATx����y�:@aT��0��Kb���W����2Lb"��a3���<�����~�r�.�&�p��056��dej��Nf������d�0i���6����n��@8e�t����f���r�P���6@��#@(h���'kl����_0w<�w���B����gP�����u~;��^�0{s�%O�n��OLE��!�3��V��'�7�ux��~\~(����p�P��*�K�6&���x����P���#���D�px����d�G"@8�Z�&8kh��c&�dG"@8�����q�}@�9N�3��"�%�Wyo�^`j�z�l�+�C�S�U����,�z/k��������
��im}=����1��>i|�Bx�$@���_�v
��+�������cH�p��� ���}��?��������m	+e�|x(�jw���<�l�� 4��#@����������,�U�4��O ��T���bD(�����L������Kb<� z��_i/w������^ ����m��k�	��y�$�T���JY�;|6@�5��?[8F%@��������5 B�W������a����2�"��k��|����������/s��=	�����z�f:BBBB��?�)�������X����}�j�G��������G�ej��&����	03M�es��}�h�T�w5��
"��������m�i>NH
��`YN�0���"���
RC�����'R |B�<���8�2��W��'���
��r�@��"��W� ^A��]I�<��9
�O�
�K`��^'��2�l|�(����������������������UUUUUUUUU���Z���V� ^���\�����"q?! 4���BBB��� T T 4m��!������iKqM��#@�Z����!g��{����%9{�#@H��B
B���2v�G��A������U������
��ew��(�f��de��a�lBl(�����C�:REf������\RC!Z��TQ�4����nl��1!5��`Y&M�E���L9��
���F��w�?�1����:4�s$��Ep�x��<M��/�	����D��� �=�n������qBBB���G ���G��E��b��{��G��A�?�UUUUUM�� �#@�"@����3�b��:�#@��'��3?�;t�� v @���o�k 6�����mp�?�vM�[`�fU�[`�f�\8c ���r~����_������{C�V�g��^����?������|�og��>�b������->���B������DcGq?+������*4��3��#@�@�PE�P�	P�?�
��V��;@��D��L�����DV���LH�~~��O��wU�����o���PP�8�'��L}n�]&i>N��1����.�����f���r�
^�aO4>K����&xW�d(/���]�xWc���ITQ�����!�q�{(��p8M��=	�P�������{������XJT��V���lO���C�LM}��6@����DU�X��8}'�S=D����Hin�u���g�}��
��\�������J~�1w��1	����l���C��w[;	�s��!��S����B�Wg_G������>�e�}u���b��KE��m|d����k�nx`7dx[rW ��p��j�+����P�'z�2b+���D����.�H��D��C=*�t�<��]��o�B+@�!�W� @l$�.�m�_@�����{ 
����i	bY�$�0�Y�%��� ����� ����"@L
/^u�x��#�+i_\#~�c�7�r�i� zgV7A�h��G�hh��^a��d`�>'��s
�E���+�C���E����9�`�"���cx���3Zwe���o^{�k�9��>D�����)?g]�����G`�f`�^����s����x��������,L���d&+SSN&����h|�_(�wU��$���o���P�mg��:U���N��8!=��`K���t��E���L9LHu��w�3�gv������H������J��nq�b�E���P��P����.��}N��ZBE�}���u~��)QE>������4L?!=�����F~2U�����D������"���p�Cq���?��f��$��Hj������ex�O�r�"Z�����Y��g�)"�O�8�)�0���1ex
��"�p�4��Q#��0�s_K���G����^�`,�i>��A���"�8�X�C� ?�J��G��z@^�?��#@y���;5@Oi�:�.�g�?������P�T��l=f����k�����"@q��.�����&�O�+&(mg�����k�:~���Z��l
���������PJw�������������C�G|&���V�f����N"O�X���h�Fp�S-k��q��H�w�j5�C�?Lp��N�#��������3OC�;�
������w8 ��v�'��� ���f�%�&���,���l���Gn�������z�>���z��A��9����!��_X�L�9��C�>���|/��"@���E����K�^��g���w���[<y7 �*��~��V����jBU�����LM9�0T`"�/N���TQ�&�f5��&�C�A��d��S�\i�V7���C�$��
��Huj6����f�&��
J�������ITaWx8E��IT���`��������8N|e. <�Po�*�~�X����<M�
r?b�`P�h�?M�
x(nD�
�aD�
pD�
pD�
pD�
p �n@��@���p@�p@���.�
��
���G�[`K�?��[rG ��	6O��X6��+��z0X��������vyp������E�c��G}<4@��!��c���Kr�+����FyB����_��g"��Q[@Op�
a<0@��	.`/���������HqyV�[��S<,�
�%�S<*�����w�����������=���6�hyqU���`��������z�5��S�4��hw���_~���O�-��
��oBm��]�������7�����L��Q�Y�+����/&����r��<�K�q�S��i#���(�u��`\� �]BB�Hin��N(�a5�]�D��H2�%�C��r2!=�^�@����*O���'��dBx����&�*R�����D�������x�I�lt3Sa�r����������+N�$TEi����w���g�����/Z2��;'������yO�Y}p������"�"�f���q��ll'����1>��c&QE�_��i����'���yr[�����?_�O!BU4�_+�����_����O���@�i�'<��ck<��3-/�Z#|��a��]��G���=���/���z�g?�����n����\�j�
�;�����
���k������M�������I�v���A�]Q,z�W������D���I=���a7����\���Y���"���.���Z��Y����7�+�� T T T T� ��BBBU�� ����Y~?-V����Gf�����[N��|}���$�}��;�c� �=BBUd�����}��~)�)��b	��{��D �������������������������������*P���w���dej�B=�P��0U�U��]�1�-H����4?8����R4[��g|��g�VY
p���3�}������:?���T�}��g
0"@�Ap�<M��a��8OD�q=����q��?%8Lo�<T�z�Y���y6��|b��W��>�.�]=�{��/A�#�����{�fp/�������%8�����LVf���a�0Y���������w^�\�]�kg����������K���v����<����{�fp/�������8����o]���z��c���J��~����;��e��>�r��+k�?��oca��w��
g>C�#�,����%^����w������Y��0ij�E3�8Qz:���)������'\\3�_�p�<�����h���k��G�����/-�o�"�����<�����e���]�:�p�xghV��s��U������]�����������y�z���k��G�����%���_d��/�{��E�-m��Ybw��a"�������1����2�������������s��%��!��`��_���/,�g�";o����{�_���o]��������q������c�Y�H6��������k+g�/�o���0��������}3x�}����o�"�~�*7U������};G ����=�2O���O�xf����������p��]b���w��G�]d���K����������%�-�����q��/�����3���7��fXZ��n������i����w{��f~d�E��~q�������w��O�=�w�i�u��]���4�o��������������3,�����Y��������v�0������/������w��;���[�c�]��@'/'����3����������>����5������7�x�K���s�3�?2�"�o�^�����x�\�c��E>f��{�_��q ������
��d�g������o��{4[���;�9���k���w/���E����K38 ��Og,����IEND�B`��PNG


IHDR��,�8PLTE���������������@��Ai��� �@���0`��@�������**��@��333MMMfff�������������������22�������U����������������d�"�".�W��p��������������P����E��r��z�����k������� �����������P@Uk/���@�@��`��`�����@��@��`��p������������������������|�@�� ������???������___�s���k���	pHYs���+�IDATx���	�� ��'����o0�n���Uo&M�KR
��Ip��S�2��Vy1K������2f*+SUN��T/`��j0�&	�`*M;uj�+�iuS=&�Q�I'`���h�L�CBt�����
A�V����b�c���cb�Xr^���R�G'D�|��Al����{}����F������&]��'�D�� ���p} zw����s~\?w��@>�	.�AE�����x��
��`�PiYK��GB@�����TY�HZ
u��'2snA��o$���v�?4�qZK�y�l�u���:SU�-�IW~��YU��e'`a���9��y���LU��ew��ev���K7u_�0��&x.D@X���Tm
���^�4=�=Z�@��;�e�}�����>�Y��d�N�U��_�����:$����p�  ��� ��?��@�{`z�=�m�m���p�t�C�4���k�k �}�7��Q�����n�X@�%\���������v���z����~J�J��9���-��\���-Vg������������F��.N���FC���R��c
�/L�*�r��TZfs�L���e+l��>��l���s�#����R����:]$��@|(�\'=pX��5R?%^���w+*U��thO�g�w��z��Q@ss���+�*�\�����Y�6K�)���8?�T�Kk�6
���k��O�1`�)7�tV,��"�Ci�y�s��������b�v>�����k�Wf�����4�2OKUZ�@�
�����	�j�^�N���1`��X�1�~�0�t���2=a.����OevX-�������,��`�^p�k}&}��rZ�5�]��v/�l�F@��b:�iW�T��/L��D7%^��7}u�������������im��!�A���������?b�v�{?*���q��,W�\�I?n�(`ss�\M# ���>�l�0�=���	9
FN9���0A�c �*}�������9���# <QDA@����%  ��� 
�(�  ��� 
�(�,���u�~X
�!���n���h���/e3�qHx�&���j,��j���f���>9$|���B�B��+]�dkb����PpwBX��K���"�L�C�W(�;�:!���,�l.�C@pX�R��	z���<��T8�-���6���t�N�Z��7�07�0}�_(�5A��]m�;!���M9v���  ��� 
�(�  ��� 
�$N��AQDA@AQDA@A�����i�ZA�|�	�k�7��6B�6��  H��?�  ��� 
�$��C@�(�  H��?�  ��� 
�${�C@��$��C@����g+�X�{����K�q�?_������C@��$G�;iE�f_>��V��������M�Lee�<0}��
b��z��?9cE�ZuU���-�+D�	�'�(T����2�m�-	_� ^�,���h��L����P/r� ��9��9"����2�
�qF��F�	y=���N�n�e��
�$�~11���#+`���*����p
QDA@���g@@���D��Cxp����C@8�7���?�  ��� 
�(�  ��� �G���� 
�(��~�vsP@�~8"����h�/A@8�({t5����p�=���p�?��  H��F@�
�(>[`���pe�����]������=���n����sE��,\x��x=;��g��iu�����};�(8[�
�}��7�e�|�}����@@��g�h8`�����^��
\#��C@��(�8���b�V?��>��bE��$�����LU9I�"�
��=�{V�U��������
D��������n���T�	��@���������j����it3U	��@��w8��*����R*M��|���(���S|*�����aE���5U��cb�p>\F?���AB���������,���O�[�
���n��t} ���	���J��s�����->���c��8�@��.���X�_�X�j��y��{��%z�;�5������! �3���Sc"$B@�g���������v"�c�����7F�1�l��u�3# ��;Nc���:��_�3�Ud/��3�GX�G���!�C���o��~<N\A@�J��3�v����^����{A@�P��k�����"�3A@�Po�C��r��F�Gr�
��;h  ���
\���B[Y�}�U��=B�;-A@X���-�|�5�����`'��+��kA@�2����x��C�;��\#�|�c����}�����s�ud�C@h���>a/H2 `�|/��\>F��y�b��3 ������0N"���p��q���L@����7������|��(�C��c{<���i~k|f?��b,�`�������??V9OL�M���������I��2U�$�;���V�O{�F�U�R�$�U�����9D��UU_�+JUL��C=l�`E��c��it3U	���C���O�L���!�v������\7���H�[��Q�"�y7���p>���e���u�_�'#�^@:![�Z��c��B�0�-n�a���P�'^�$��c���dDo#?����+2m:�	���&
�}[�d����#)�����u��\�f���kA�k�W��|��H���x	Q�x
1�x	������T�"��H�C�p\{/�?��?G,�5 ����?��@�@D�_��� `�vlC�~(J������A�����!@�� ��o��Kt�����d�&�e�w�g���%n@@�����Y�cF�����;Oq��sL��A�o��*�E�b�������2�����6�.�+��^[�\"YLL�����������Uu����8��	G���U��>�?<��K=6j��
?<�����^=�?<����f�~�C��qX��t����8�_������@��?�A�;��8% �@����Gp?�?�*@� �.�	�_p�d�t�����2�=Q�!���orf�U�9@���v���@�?��� �:���D@��{���m���1\_t����^t��z��|'�>������BW���>����f<Y�*#`��2U�$ T`��_7���B56�`^M�C�N����B�F�R�V7�c"@��x{�n���jF��it3U	������~�6�||Xa*<�����aE�����V4�zS��<��|�� ��x2"W-��;!��x��i�5�}"D�` �^��@4
�����#(� �8�� �
����C� �J���� �J��(�p(� ����?����w��-�z ��l.��,6���!�x?��������;�����0 �!�+�W�h{�������T@�!��s�S@������R5���+��_�2#�^��l�<TB^( �����^x�'���t�N@���w	���]����.^����_����k@�	�t��K��"^ �8��G�V�q������y���������z�3y�Ky��cow�����s����x��F�A<�*�	�p�����!`$<M��GZ��F���0��A��x����p��^��'	��L����v���9��-A@A/V�Z��$X�����.�Le�y)SUN�C�A�{���R����I��:�W���P+0sO�Y����T��0�� �=�fE���it3U�0�l��M�eEQF- 3N����9��B@�����l�v�-~,u����y(��H�g�,����4���F� x1����������,�.��3B���aE�_��4��a���P?�������~~�� B|X�������6/����4�������L�����hi�G�����k2����P�f�P@��|Lw��'��X�6�u�g������o���w#.������F�f����p��=�F��"�Y�_�k���:�wGb�!�X!n��w#rG�����Y���EZ�-�m�m�<�;"'����"��p{����t�|2�  ��� 
�(���AQD�]@N?Y������{>bN��X4��Lxr5����l1���8�ov�!6��e  ��� Jd����C@s�z��$1���"�e{q���VDA@AQDA@AQDA@AQDA@A�@V�z`5<�0Vd*+S��������BW�K^]
�M+Je��T��7^`E��f?m��O��Xp���b�n���|7��{_#�|�XB@{'�*t�,�a��:
p�Sq�@��<_�	�"W���������:���Ll����u���r�9����K�d����%^�`/�{}�w���(��t��23���D������%U?{����pO�,[3��l]�&U�o���^��X
l��d�"����x%�������Z	�E>C���Ke��|L�����L��?�|�z+���ebc��������6V2XK����
g����Ev�o/�Zk�W���e�5+�)T�*��h������3��(C�W�O�Y&l�2���X_�����G��_)�,C������Z�]�Ev���E��e��>usS'	���3CS=g�"�U�e����+�w���j��}��G����2��c�{��;2��l�!w����|��iQ���C"3���g����4�Q�>��w6�o����5�J�;�*�<���/�������]d��+%v�����i6]��N]��Y��^�3t���:��Hv	h����y��xmcw�]��0|d�"��w����Yd��+��+���'h7]iU��m"���,��3���#�R������G�����7�����fp��Y{�3������%vep����;v��U�3�����(��7C�j������	qeX��l�������hYb���/2�����W�?[W��w��'g��,�)�M7j�|Hh�0�+C��?�G8��_&�fX���]K��=�J�����aX�^d�����2����C�����U�st�tuGG��D7�=�9,~�T}�y ������o�]~��{d)�{}k�-���Qd����d�yu�l��;������r�������	��}��Fa��,w�����Hl��{�(����[3~���^�^���"��C��x-������������@&IEND�B`��PNG


IHDR��,�8PLTE���������������@��Ai��� �@���0`��@�������**��@��333MMMfff�������������������22�������U����������������d�"�".�W��p��������������P����E��r��z�����k������� �����������P@Uk/���@�@��`��`�����@��@��`��p������������������������|�@�� ������???������___�s���k���	pHYs���++IDATx������ @��I���;XAA��x����v3�����Yp������E)�zG]js!,D�����Q-`-�����I ���A�2��5B��y9��4� `���V�n!�z|�|ze����^@��C@�%���M3���V���?!b����v��x���(��(�I�&^�<d���G��W�:���������^����O����d?�\���� `z�n��;��(:<u%D�6��~�G�R��y���|��iRm�a�u��l��N�����#{�������n[��EF@h��mK����f���Zv>u/e���*Q���Lz�m1���Y��((�1u�5U1I-�����M2�L9|.mY7�P����u���F�TItml1����)JeX.��7R����I-#���#�h��Z�X�.\w���9|,}�Y�4��N�_��������<��v_�]�W���0yW���s5k���X
��3�]��dmei���������f��Z�����<�''�jy
�o�����������t��O����d�������������f� `O���I��k@E���J�f8S�S�1�0k�TM�7�������K�06��Z�A��jnE���(a��g�f������!��(��V�<Y.D�d���e0���ZQ]6[�V�.\7
�}������Sw��i��0vC��s�jm�8��T��r���L[6���0���$�ZC#f���]u����T��zy`�,�qv����o
>5����M��w������r��������ZT�9��]�6�����U�6��t���g8# }�`��z���`4�z&��4�8��������C��(*�\�k���G@������X�C@�
�G����f��<��T�{�C���IX@��$\���|�\�Pwo�iC�J|���?�A'�$��&���f!V�����$��������#`��[���������0\4w��|L�S����e�+�+�
c
{��|L�s��b����{�����p����,�F�D8� ����v������,��L���%���!�}%�����K�0u�-����n��Z�?�e�|�%��<����������'�]���� ����R0qb/�G��|A~m�a���A@�
BTb��������  D!*QA@�J �>�������9��.U�������K�3�������J�F�W�W����r��	��
nNk�O�t����y9|ew'��M3������1_Y��	4��`! �-��t�E`�R^O����$����b�A�i#�K�����5��t^]���at�_Vpk�
X���0
vB
X�W�r*�������  D!*QA@�
BL��! \BT�����  D!*QA@�
BT.���������L�25���6B�6��  �d�!@@�
BTb��?�  D!*1�����������;1���_V?[A@����{��m_����#�! ����@@��1��p�??  ���'������T���wq��sV��J^�����oYA�|V�=�'g�(D/`�v/Uk��
���|�V�"�e�F��6/-_YA���i2%`���B4���� ]�	�������HH@K`���Tv�g<o����@
��y6��,���4IA@&�_L
r*���0���*����p
��  D!&��C@8B,N.D�  ��{
�#�����C@8�?�����  D!*QA@��G��������]lB@��A-�! ���_�~8 ����Q�+����  �f��+�! �f��k�! �!&>[`��  D�g����}�L�H��K�u���G���C@���FD@��R��g��A@���?Y�M�;�`����Rp�e���o��>�$�XpG�k@@��gP0��
|�[B/�
��p�����! l!*Qq��?�
�. �~8v}����B�Y���E��f��D�W���������j�������L�wV�����X�ukd-�����D�3���l�:��`��V�n!�����5�=��I�X�
!���73�%)`U�0G��2
��?V���^sa��$�����KM�$�����k�N:!����}��T�>�t��Tv�~F<gW���������������t���'a.���X�_�X��B�y��{_�����e;�5������! D�g�y���DH�������������v"�c�����7F�1�l6�u�3# ��;.c��}u�/���*R����.�V�Q���nH����[9����W���1��+�v��Q�z=^�.# ��f�z���;�M�	F��� `���F����g����F >�w�@@����  ���
�����(���=B�;-C@Xg��-�|�5��7��`'H�o	�����  L17��(���!���o��y>��
�f�s�e�! h��n�"�~�X��'�IL��E�}V��'A�d�g�����I������0M����{��%��L@�����J��������|�K�!���=��{�2�5>��A�h,L`�E�����??V�OL�M������(���E��f����HV�O�FVm���YV��o&�;����WU}�hD=
������@�V�b����-Dc��z��w?Q������?���kpp#�L�����u6�������|vw'��>+��~%��h��B���~������L���XM������O������rR0��d���0�XQ�r �q*�o��/�oX�p�>���#�|��^�7���$	�}=x
���$&�/!�b���$L�?��L�?��s����oh�"#E��!`8�������#��:S�/���
 ` �/q�z0;6��!H@?��Ud�o;� o�������� �.�aF�*.���"�n�LT����;���|��k��3��S�����9&�� ��ge��P^)���9��zYTf��u�v���z���+`o�K$����A@_+���7��n�>??��;�H����������r��F��������3���������"�������!�18��x���������
<�Q����<�)a��<���9( ��@��P�w������{�f��[i����1�{��C@�����+
�9@���v���@�?��� �:���D@�bx���}���a�/:����� ���������G\�_V��|}���7�(�OV�B
X���E3	�*0^�/����cE-�����I�V�a�q1~�(s�\#d���c @V!��t��+:����jt���������~�v�||X!+<�����a���!��m����7p�����. x-���DOs�A-p�ND�y64�:"�` `�
x��h���F0,FA� �FG08��@@�7�ph@� ��8h@� �c����Q@@
F����{@���!�����v���bLF��@@u�]������Y@/�6��!^,��q��^��G�{<������
������ �^/ ���a�'^)�n����G�N�o�- o�Pax���������O��<
x�����p�	����	�#.^����_7���k@�	�tr����"^ ����G�^�q������y���������z�3y�Ky���hw�����s���b�H�jF<{lK��	hj���Eo�O�����I�07��}�/%^' �����r���In:���i� ���E��x���wK���/V��(���j��'>���:+D���&�$�;+7xO<X�Y��e��m��I�sV+0sO�Y�����a�������U����-Dca���7��u�LZ@V���'+���B@�
���F6��%����F��<+�����Y������Wgs� x1B�����A����N6�w��!`���b�/��<�at�wV?��E�S�f??�M� >�P��$�D����e�/�L\n�<�(DOs�������x��+-o��#|����~@��qC�H������pR���v������Q�������FZ3(����R8����~����$#���f��xe������H*:�+�m���n$.�>��nx�n��C�-��~�w�=���p��p���Dp����L�&x�d�����  D%}���  D!*QI]@N?��~���E��|�	8]�b��/3�!��'v}g�1�M���������������$& ���4��{a��JR�^J*^v��o!*QA@�
BT�����  D!*QA@�
BT������"���i���E��G���
�M+��{��+��{��F��7/Of�7� �M���-~�����g��5���Nm����G}����N=��i�k�oKBh�\E�g�i���ND\��T<�Z������	��P�J6'��*v�����e`k�������vs{���@d�����$�����-�)�R��ES�s�&P�B���@��������'\��.�������;r��6�	�%^+�����#s��^���"��;���X�|�B�]7B��������
�	~�����^���e`c�������6VXK�W�E��L0|d�"���K�����+����_	l��aj��B��U6c�qx�L�0J����7��
[����e����G�=�J�g	�G�Zd[���8��>���<f�V�c4M��4�M���gU=�"uU�e����+	�;�������~D�^�=w�g	�G�X���VbGw���.�=��"&W-j���\m���Z: ��E[i�^�>�	�;���?`��aM�Rb��
<O �K@k��;��l��Rb���|��V�;�./(T>����`��Z���#�%�=�~gs|�_���]bW��$0�������8�l����2p����R���u(���E{��Ou�ci�j��X�H���_}��o���Ybg	��M`>2g���%v%p���;K�*����h��7A��M��	��������p1����#Z���Q�E�������Z�����~@�?9{g�O�v���5�	��iW��p�:�GhV�/[�����%���'%\���$0��Ev�_����^������"�c��u�������	dg��S�&d�D�;��5r�W�.���#����Z`K��9���o/�J{�W���8�|����Y���r'�'p~��0���Y���}Y� �}���k�-�&0~����o/�j�"�q@��x-����������d�r7IEND�B`��PNG


IHDR��,�8PLTE���������������@��Ai��� �@���0`��@�������**��@��333MMMfff�������������������22�������U����������������d�"�".�W��p��������������P����E��r��z�����k������� �����������P@Uk/���@�@��`��`�����@��@��`��p������������������������|�@�� ������???������___�s���k���	pHYs���++IDATx������ @��I���;XAA��x����v3�����Yp������E)�zG]js!,D�����Q-`-�����I ���A�2��5B��y9��4� `���V�n!�z|�|ze����^@��C@�%���M3���V���?!b����v��x���(��(�I�&^�<d���G��W�:���������^����O����d?�\���� `z�n��;��(:<u%D�6��~�G�R��y���|��iRm�a�u��l��N�����#{�������n[��EF@h��mK����f���Zv>u/e���*Q���Lz�m1���Y��((�1u�5U1I-�����M2�L9|.mY7�P����u���F�TItml1����)JeX.��7R����I-#���#�h��Z�X�.\w���9|,}�Y�4��N�_��������<��v_�]�W���0yW���s5k���X
��3�]��dmei���������f��Z�����<�''�jy
�o�����������t��O����d�������������f� `O���I��k@E���J�f8S�S�1�0k�TM�7�������K�06��Z�A��jnE���(a��g�f������!��(��V�<Y.D�d���e0���ZQ]6[�V�.\7
�}������Sw��i��0vC��s�jm�8��T��r���L[6���0���$�ZC#f���]u����T��zy`�,�qv����o
>5����M��w������r��������ZT�9��]�6�����U�6��t���g8# }�`��z���`4�z&��4�8��������C��(*�\�k���G@������X�C@�
�G����f��<��T�{�C���IX@��$\���|�\�Pwo�iC�J|���?�A'�$��&���f!V�����$��������#`��[���������0\4w��|L�S����e�+�+�
c
{��|L�s��b����{�����p����,�F�D8� ����v������,��L���%���!�}%�����K�0u�-����n��Z�?�e�|�%��<����������'�]���� ����R0qb/�G��|A~m�a���A@�
BTb��������  D!*QA@�J �>�������9��.U�������K�3�������J�F�W�W����r��	��
nNk�O�t����y9|ew'��M3������1_Y��	4��`! �-��t�E`�R^O����$����b�A�i#�K�����5��t^]���at�_Vpk�
X���0
vB
X�W�r*�������  D!*QA@�
BL��! \BT�����  D!*QA@�
BT.���������L�25���6B�6��  �d�!@@�
BTb��?�  D!*1�����������;1���_V?[A@����{��m_����#�! ����@@��1��p�??  ���'������T���wq��sV��J^�����oYA�|V�=�'g�(D/`�v/Uk��
���|�V�"�e�F��6/-_YA���i2%`���B4���� ]�	�������HH@K`���Tv�g<o����@
��y6��,���4IA@&�_L
r*���0���*����p
��  D!&��C@8B,N.D�  ��{
�#�����C@8�?�����  D!*QA@��G��������]lB@��A-�! ���_�~8 ����Q�+����  �f��+�! �f��k�! �!&>[`��  D�g����}�L�H��K�u���G���C@���FD@��R��g��A@���?Y�M�;�`����Rp�e���o��>�$�XpG�k@@��gP0��
|�[B/�
��p�����! l!*Qq��?�
�. �~8v}����B�Y���E��f��D�W���������j�������L�wV�����X�ukd-�����D�3���l�:��`��V�n!�����5�=��I�X�
!���73�%)`U�0G��2
��?V���^sa��$�����KM�$�����k�N:!����}��T�>�t��Tv�~F<gW���������������t���'a.���X�_�X��B�y��{_�����e;�5������! D�g�y���DH�������������v"�c�����7F�1�l6�u�3# ��;.c��}u�/���*R����.�V�Q���nH����[9����W���1��+�v��Q�z=^�.# ��f�z���;�M�	F��� `���F����g����F >�w�@@����  ���
�����(���=B�;-C@Xg��-�|�5��7��`'H�o	�����  L17��(���!���o��y>��
�f�s�e�! h��n�"�~�X��'�IL��E�}V��'A�d�g�����I������0M����{��%��L@�����J��������|�K�!���=��{�2�5>��A�h,L`�E�����??V�OL�M������(���E��f����HV�O�FVm���YV��o&�;����WU}�hD=
������@�V�b����-Dc��z��w?Q������?���kpp#�L�����u6�������|vw'��>+��~%��h��B���~������L���XM������O������rR0��d���0�XQ�r �q*�o��/�oX�p�>���#�|��^�7���$	�}=x
���$&�/!�b���$L�?��L�?��s����oh�"#E��!`8�������#��:S�/���
 ` �/q�z0;6��!H@?��Ud�o;� o�������� �.�aF�*.���"�n�LT����;���|��k��3��S�����9&�� ��ge��P^)���9��zYTf��u�v���z���+`o�K$����A@_+���7��n�>??��;�H����������r��F��������3���������"�������!�18��x���������
<�Q����<�)a��<���9( ��@��P�w������{�f��[i����1�{��C@�����+
�9@���v���@�?��� �:���D@�bx���}���a�/:����� ���������G\�_V��|}���7�(�OV�B
X���E3	�*0^�/����cE-�����I�V�a�q1~�(s�\#d���c @V!��t��+:����jt���������~�v�||X!+<�����a���!��m����7p�����. x-���DOs�A-p�ND�y64�:"�` `�
x��h���F0,FA� �FG08��@@�7�ph@� ��8h@� �c����Q@@
F����{@���!�����v���bLF��@@u�]������Y@/�6��!^,��q��^��G�{<������
������ �^/ ���a�'^)�n����G�N�o�- o�Pax���������O��<
x�����p�	����	�#.^����_7���k@�	�tr����"^ ����G�^�q������y���������z�3y�Ky���hw�����s���b�H�jF<{lK��	hj���Eo�O�����I�07��}�/%^' �����r���In:���i� ���E��x���wK���/V��(���j��'>���:+D���&�$�;+7xO<X�Y��e��m��I�sV+0sO�Y�����a�������U����-Dca���7��u�LZ@V���'+���B@�
���F6��%����F��<+�����Y������Wgs� x1B�����A����N6�w��!`���b�/��<�at�wV?��E�S�f??�M� >�P��$�D����e�/�L\n�<�(DOs�������x��+-o��#|����~@��qC�H������pR���v������Q�������FZ3(����R8����~����$#���f��xe������H*:�+�m���n$.�>��nx�n��C�-��~�w�=���p��p���Dp����L�&x�d�����  D%}���  D!*QI]@N?��~���E��|�	8]�b��/3�!��'v}g�1�M���������������$& ���4��{a��JR�^J*^v��o!*QA@�
BT�����  D!*QA@�
BT������"���i���E��G���
�M+��{��+��{��F��7/Of�7� �M���-~�����g��5���Nm����G}����N=��i�k�oKBh�\E�g�i���ND\��T<�Z������	��P�J6'��*v�����e`k�������vs{���@d�����$�����-�)�R��ES�s�&P�B���@��������'\��.�������;r��6�	�%^+�����#s��^���"��;���X�|�B�]7B��������
�	~�����^���e`c�������6VXK�W�E��L0|d�"���K�����+����_	l��aj��B��U6c�qx�L�0J����7��
[����e����G�=�J�g	�G�Zd[���8��>���<f�V�c4M��4�M���gU=�"uU�e����+	�;�������~D�^�=w�g	�G�X���VbGw���.�=��"&W-j���\m���Z: ��E[i�^�>�	�;���?`��aM�Rb��
<O �K@k��;��l��Rb���|��V�;�./(T>����`��Z���#�%�=�~gs|�_���]bW��$0�������8�l����2p����R���u(���E{��Ou�ci�j��X�H���_}��o���Ybg	��M`>2g���%v%p���;K�*����h��7A��M��	��������p1����#Z���Q�E�������Z�����~@�?9{g�O�v���5�	��iW��p�:�GhV�/[�����%���'%\���$0��Ev�_����^������"�c��u�������	dg��S�&d�D�;��5r�W�.���#����Z`K��9���o/�J{�W���8�|����Y���r'�'p~��0���Y���}Y� �}���k�-�&0~����o/�j�"�q@��x-����������d�r7IEND�B`��PNG


IHDR��,�8PLTE���������������@��Ai��� �@���0`��@�������**��@��333MMMfff�������������������22�������U����������������d�"�".�W��p��������������P����E��r��z�����k������� �����������P@Uk/���@�@��`��`�����@��@��`��p������������������������|�@�� ������???������___�s���k���	pHYs���++IDATx������ @��I���;XAA��x����v3�����Yp������E)�zG]js!,D�����Q-`-�����I ���A�2��5B��y9��4� `���V�n!�z|�|ze����^@��C@�%���M3���V���?!b����v��x���(��(�I�&^�<d���G��W�:���������^����O����d?�\���� `z�n��;��(:<u%D�6��~�G�R��y���|��iRm�a�u��l��N�����#{�������n[��EF@h��mK����f���Zv>u/e���*Q���Lz�m1���Y��((�1u�5U1I-�����M2�L9|.mY7�P����u���F�TItml1����)JeX.��7R����I-#���#�h��Z�X�.\w���9|,}�Y�4��N�_��������<��v_�]�W���0yW���s5k���X
��3�]��dmei���������f��Z�����<�''�jy
�o�����������t��O����d�������������f� `O���I��k@E���J�f8S�S�1�0k�TM�7�������K�06��Z�A��jnE���(a��g�f������!��(��V�<Y.D�d���e0���ZQ]6[�V�.\7
�}������Sw��i��0vC��s�jm�8��T��r���L[6���0���$�ZC#f���]u����T��zy`�,�qv����o
>5����M��w������r��������ZT�9��]�6�����U�6��t���g8# }�`��z���`4�z&��4�8��������C��(*�\�k���G@������X�C@�
�G����f��<��T�{�C���IX@��$\���|�\�Pwo�iC�J|���?�A'�$��&���f!V�����$��������#`��[���������0\4w��|L�S����e�+�+�
c
{��|L�s��b����{�����p����,�F�D8� ����v������,��L���%���!�}%�����K�0u�-����n��Z�?�e�|�%��<����������'�]���� ����R0qb/�G��|A~m�a���A@�
BTb��������  D!*QA@�J �>�������9��.U�������K�3�������J�F�W�W����r��	��
nNk�O�t����y9|ew'��M3������1_Y��	4��`! �-��t�E`�R^O����$����b�A�i#�K�����5��t^]���at�_Vpk�
X���0
vB
X�W�r*�������  D!*QA@�
BL��! \BT�����  D!*QA@�
BT.���������L�25���6B�6��  �d�!@@�
BTb��?�  D!*1�����������;1���_V?[A@����{��m_����#�! ����@@��1��p�??  ���'������T���wq��sV��J^�����oYA�|V�=�'g�(D/`�v/Uk��
���|�V�"�e�F��6/-_YA���i2%`���B4���� ]�	�������HH@K`���Tv�g<o����@
��y6��,���4IA@&�_L
r*���0���*����p
��  D!&��C@8B,N.D�  ��{
�#�����C@8�?�����  D!*QA@��G��������]lB@��A-�! ���_�~8 ����Q�+����  �f��+�! �f��k�! �!&>[`��  D�g����}�L�H��K�u���G���C@���FD@��R��g��A@���?Y�M�;�`����Rp�e���o��>�$�XpG�k@@��gP0��
|�[B/�
��p�����! l!*Qq��?�
�. �~8v}����B�Y���E��f��D�W���������j�������L�wV�����X�ukd-�����D�3���l�:��`��V�n!�����5�=��I�X�
!���73�%)`U�0G��2
��?V���^sa��$�����KM�$�����k�N:!����}��T�>�t��Tv�~F<gW���������������t���'a.���X�_�X��B�y��{_�����e;�5������! D�g�y���DH�������������v"�c�����7F�1�l6�u�3# ��;.c��}u�/���*R����.�V�Q���nH����[9����W���1��+�v��Q�z=^�.# ��f�z���;�M�	F��� `���F����g����F >�w�@@����  ���
�����(���=B�;-C@Xg��-�|�5��7��`'H�o	�����  L17��(���!���o��y>��
�f�s�e�! h��n�"�~�X��'�IL��E�}V��'A�d�g�����I������0M����{��%��L@�����J��������|�K�!���=��{�2�5>��A�h,L`�E�����??V�OL�M������(���E��f����HV�O�FVm���YV��o&�;����WU}�hD=
������@�V�b����-Dc��z��w?Q������?���kpp#�L�����u6�������|vw'��>+��~%��h��B���~������L���XM������O������rR0��d���0�XQ�r �q*�o��/�oX�p�>���#�|��^�7���$	�}=x
���$&�/!�b���$L�?��L�?��s����oh�"#E��!`8�������#��:S�/���
 ` �/q�z0;6��!H@?��Ud�o;� o�������� �.�aF�*.���"�n�LT����;���|��k��3��S�����9&�� ��ge��P^)���9��zYTf��u�v���z���+`o�K$����A@_+���7��n�>??��;�H����������r��F��������3���������"�������!�18��x���������
<�Q����<�)a��<���9( ��@��P�w������{�f��[i����1�{��C@�����+
�9@���v���@�?��� �:���D@�bx���}���a�/:����� ���������G\�_V��|}���7�(�OV�B
X���E3	�*0^�/����cE-�����I�V�a�q1~�(s�\#d���c @V!��t��+:����jt���������~�v�||X!+<�����a���!��m����7p�����. x-���DOs�A-p�ND�y64�:"�` `�
x��h���F0,FA� �FG08��@@�7�ph@� ��8h@� �c����Q@@
F����{@���!�����v���bLF��@@u�]������Y@/�6��!^,��q��^��G�{<������
������ �^/ ���a�'^)�n����G�N�o�- o�Pax���������O��<
x�����p�	����	�#.^����_7���k@�	�tr����"^ ����G�^�q������y���������z�3y�Ky���hw�����s���b�H�jF<{lK��	hj���Eo�O�����I�07��}�/%^' �����r���In:���i� ���E��x���wK���/V��(���j��'>���:+D���&�$�;+7xO<X�Y��e��m��I�sV+0sO�Y�����a�������U����-Dca���7��u�LZ@V���'+���B@�
���F6��%����F��<+�����Y������Wgs� x1B�����A����N6�w��!`���b�/��<�at�wV?��E�S�f??�M� >�P��$�D����e�/�L\n�<�(DOs�������x��+-o��#|����~@��qC�H������pR���v������Q�������FZ3(����R8����~����$#���f��xe������H*:�+�m���n$.�>��nx�n��C�-��~�w�=���p��p���Dp����L�&x�d�����  D%}���  D!*QI]@N?��~���E��|�	8]�b��/3�!��'v}g�1�M���������������$& ���4��{a��JR�^J*^v��o!*QA@�
BT�����  D!*QA@�
BT������"���i���E��G���
�M+��{��+��{��F��7/Of�7� �M���-~�����g��5���Nm����G}����N=��i�k�oKBh�\E�g�i���ND\��T<�Z������	��P�J6'��*v�����e`k�������vs{���@d�����$�����-�)�R��ES�s�&P�B���@��������'\��.�������;r��6�	�%^+�����#s��^���"��;���X�|�B�]7B��������
�	~�����^���e`c�������6VXK�W�E��L0|d�"���K�����+����_	l��aj��B��U6c�qx�L�0J����7��
[����e����G�=�J�g	�G�Zd[���8��>���<f�V�c4M��4�M���gU=�"uU�e����+	�;�������~D�^�=w�g	�G�X���VbGw���.�=��"&W-j���\m���Z: ��E[i�^�>�	�;���?`��aM�Rb��
<O �K@k��;��l��Rb���|��V�;�./(T>����`��Z���#�%�=�~gs|�_���]bW��$0�������8�l����2p����R���u(���E{��Ou�ci�j��X�H���_}��o���Ybg	��M`>2g���%v%p���;K�*����h��7A��M��	��������p1����#Z���Q�E�������Z�����~@�?9{g�O�v���5�	��iW��p�:�GhV�/[�����%���'%\���$0��Ev�_����^������"�c��u�������	dg��S�&d�D�;��5r�W�.���#����Z`K��9���o/�J{�W���8�|����Y���r'�'p~��0���Y���}Y� �}���k�-�&0~����o/�j�"�q@��x-����������d�r7IEND�B`�
#2Robert Haas
robertmhaas@gmail.com
In reply to: Thomas Munro (#1)
Re: Size vs size_t

On Thu, Mar 16, 2017 at 4:40 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:

Noticing that the assembled hackers don't seem to agree on $SUBJECT in
new patches, I decided to plot counts of lines matching \<Size\> and
\<size_t\> over time. After a very long run in the lead, size_t has
recently been left in the dust by Size.

I guess I assumed that we wouldn't have defined PG-specific types if
we wanted to just use the OS-supplied ones.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Andres Freund
andres@anarazel.de
In reply to: Robert Haas (#2)
Re: Size vs size_t

On 2017-03-16 16:59:29 -0400, Robert Haas wrote:

On Thu, Mar 16, 2017 at 4:40 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:

Noticing that the assembled hackers don't seem to agree on $SUBJECT in
new patches, I decided to plot counts of lines matching \<Size\> and
\<size_t\> over time. After a very long run in the lead, size_t has
recently been left in the dust by Size.

I guess I assumed that we wouldn't have defined PG-specific types if
we wanted to just use the OS-supplied ones.

I think, in this case, defining Size in the first place was a bad call
on behalf of the project. It gains us absolutely nothing, but makes it
harder to read for people that don't know PG all that well. I think we
should slowly phase out Size usage, at least in new code.

Greetings,

Andres Freund

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#4Robert Haas
robertmhaas@gmail.com
In reply to: Andres Freund (#3)
Re: Size vs size_t

On Thu, Mar 16, 2017 at 5:01 PM, Andres Freund <andres@anarazel.de> wrote:

On 2017-03-16 16:59:29 -0400, Robert Haas wrote:

On Thu, Mar 16, 2017 at 4:40 PM, Thomas Munro
<thomas.munro@enterprisedb.com> wrote:

Noticing that the assembled hackers don't seem to agree on $SUBJECT in
new patches, I decided to plot counts of lines matching \<Size\> and
\<size_t\> over time. After a very long run in the lead, size_t has
recently been left in the dust by Size.

I guess I assumed that we wouldn't have defined PG-specific types if
we wanted to just use the OS-supplied ones.

I think, in this case, defining Size in the first place was a bad call
on behalf of the project. It gains us absolutely nothing, but makes it
harder to read for people that don't know PG all that well. I think we
should slowly phase out Size usage, at least in new code.

Well, I don't think we want to end up with a mix of Size and size_t in
related code. That buys nobody anything. I'm fine with replacing
Size with size_t if they are always equivalent, but there's no sense
in having a jumble of styles.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Robert Haas (#4)
Re: Size vs size_t

Robert Haas <robertmhaas@gmail.com> writes:

On Thu, Mar 16, 2017 at 5:01 PM, Andres Freund <andres@anarazel.de> wrote:

On 2017-03-16 16:59:29 -0400, Robert Haas wrote:

I guess I assumed that we wouldn't have defined PG-specific types if
we wanted to just use the OS-supplied ones.

I think, in this case, defining Size in the first place was a bad call
on behalf of the project.

The short answer to that is that "Size" predates the universal acceptance
of size_t. If we were making these decisions today, or anytime since the
early 2000s, we'd surely have just gone with size_t. But it wasn't a
realistic option in the 90s.

Well, I don't think we want to end up with a mix of Size and size_t in
related code. That buys nobody anything. I'm fine with replacing
Size with size_t if they are always equivalent, but there's no sense
in having a jumble of styles.

I'm not in a hurry to do "s/Size/size_t/g" because I'm afraid it'll create
a lot of merge pain for back-patching, while not actually buying anything
much concretely. I think this falls under the same policy we use for many
other stylistic details, ie make new code look like the code right around
it. But I'm fine with entirely-new files standardizing on size_t.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#6Andres Freund
andres@anarazel.de
In reply to: Tom Lane (#5)
Re: Size vs size_t

On 2017-03-16 17:24:17 -0400, Tom Lane wrote:

Robert Haas <robertmhaas@gmail.com> writes:

On Thu, Mar 16, 2017 at 5:01 PM, Andres Freund <andres@anarazel.de> wrote:

On 2017-03-16 16:59:29 -0400, Robert Haas wrote:

I guess I assumed that we wouldn't have defined PG-specific types if
we wanted to just use the OS-supplied ones.

I think, in this case, defining Size in the first place was a bad call
on behalf of the project.

The short answer to that is that "Size" predates the universal acceptance
of size_t. If we were making these decisions today, or anytime since the
early 2000s, we'd surely have just gone with size_t. But it wasn't a
realistic option in the 90s.

Just out of curiosity I checked when we switched to backing Size with
size_t:
1998 - 0ad5d2a3a886e72b429ea2b84bfcb36c0680f84d

Well, I don't think we want to end up with a mix of Size and size_t in
related code. That buys nobody anything. I'm fine with replacing
Size with size_t if they are always equivalent, but there's no sense
in having a jumble of styles.

I'm not in a hurry to do "s/Size/size_t/g" because I'm afraid it'll create
a lot of merge pain for back-patching, while not actually buying anything
much concretely. I think this falls under the same policy we use for many
other stylistic details, ie make new code look like the code right around
it. But I'm fine with entirely-new files standardizing on size_t.

That seems like sane policy. I'm a bit doubtful that the pain would be
all that bad, but I'm also not wild about trying.

Greetings,

Andres Freund

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#7Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andres Freund (#6)
Re: Size vs size_t

Andres Freund <andres@anarazel.de> writes:

On 2017-03-16 17:24:17 -0400, Tom Lane wrote:

The short answer to that is that "Size" predates the universal acceptance
of size_t. If we were making these decisions today, or anytime since the
early 2000s, we'd surely have just gone with size_t. But it wasn't a
realistic option in the 90s.

Just out of curiosity I checked when we switched to backing Size with
size_t:
1998 - 0ad5d2a3a886e72b429ea2b84bfcb36c0680f84d

Yeah. We inherited the previous definition (as "unsigned int") from
Berkeley. I wasn't involved then, of course, but I follow their reasoning
perfectly because I remember fighting the same type of portability battles
with libjpeg in the early 90s. "size_t" was invented by the ANSI C
committee (hence, 1989 or 1990) and had only very haphazard penetration
until the late 90s. If you wanted to write portable code you couldn't
depend on it.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#8Thomas Munro
thomas.munro@enterprisedb.com
In reply to: Andres Freund (#6)
2 attachment(s)
Re: Size vs size_t

On Fri, Mar 17, 2017 at 10:39 AM, Andres Freund <andres@anarazel.de> wrote:

On 2017-03-16 17:24:17 -0400, Tom Lane wrote:

Robert Haas <robertmhaas@gmail.com> writes:

On Thu, Mar 16, 2017 at 5:01 PM, Andres Freund <andres@anarazel.de> wrote:

On 2017-03-16 16:59:29 -0400, Robert Haas wrote:

Well, I don't think we want to end up with a mix of Size and size_t in
related code. That buys nobody anything. I'm fine with replacing
Size with size_t if they are always equivalent, but there's no sense
in having a jumble of styles.

I'm not in a hurry to do "s/Size/size_t/g" because I'm afraid it'll create
a lot of merge pain for back-patching, while not actually buying anything
much concretely. I think this falls under the same policy we use for many
other stylistic details, ie make new code look like the code right around
it. But I'm fine with entirely-new files standardizing on size_t.

That seems like sane policy. I'm a bit doubtful that the pain would be
all that bad, but I'm also not wild about trying.

Naive replacement in new files (present in master but not in 9.6) with
the attached script, followed by a couple of manual corrections where
Size was really an English word in a comment, gets the attached diff.

src/backend/access/hash/hash_xlog.c | 26 ++--
src/backend/replication/logical/launcher.c | 4 +-
src/backend/utils/misc/backend_random.c | 4 +-
src/backend/utils/mmgr/dsa.c | 94 ++++++-------
src/backend/utils/mmgr/freepage.c | 202 ++++++++++++++--------------
src/backend/utils/mmgr/slab.c | 34 ++---
src/include/lib/simplehash.h | 6 +-
src/include/replication/logicallauncher.h | 2 +-
src/include/utils/backend_random.h | 2 +-
src/include/utils/dsa.h | 10 +-
src/include/utils/freepage.h | 24 ++--
src/include/utils/relptr.h | 4 +-
12 files changed, 206 insertions(+), 206 deletions(-)

That might be just about enough for size_t to catch up...

--
Thomas Munro
http://www.enterprisedb.com

Attachments:

Size-to-size_t.shapplication/x-sh; name=Size-to-size_t.shDownload
Size-to-size_t.patchapplication/octet-stream; name=Size-to-size_t.patchDownload
diff --git a/src/backend/access/hash/hash_xlog.c b/src/backend/access/hash/hash_xlog.c
index 8647e8c..f823612 100644
--- a/src/backend/access/hash/hash_xlog.c
+++ b/src/backend/access/hash/hash_xlog.c
@@ -109,7 +109,7 @@ hash_xlog_insert(XLogReaderState *record)
 
 	if (XLogReadBufferForRedo(record, 0, &buffer) == BLK_NEEDS_REDO)
 	{
-		Size		datalen;
+		size_t		datalen;
 		char	   *datapos = XLogRecGetBlockData(record, 0, &datalen);
 
 		page = BufferGetPage(buffer);
@@ -161,7 +161,7 @@ hash_xlog_add_ovfl_page(XLogReaderState *record)
 	HashPageOpaque ovflopaque;
 	uint32	   *num_bucket;
 	char	   *data;
-	Size datalen PG_USED_FOR_ASSERTS_ONLY;
+	size_t datalen PG_USED_FOR_ASSERTS_ONLY;
 	bool		new_bmpage = false;
 
 	XLogRecGetBlockTag(record, 0, NULL, NULL, &rightblk);
@@ -293,7 +293,7 @@ hash_xlog_split_allocate_page(XLogReaderState *record)
 	Buffer		oldbuf;
 	Buffer		newbuf;
 	Buffer		metabuf;
-	Size datalen PG_USED_FOR_ASSERTS_ONLY;
+	size_t datalen PG_USED_FOR_ASSERTS_ONLY;
 	char	   *data;
 	XLogRedoAction action;
 
@@ -512,7 +512,7 @@ hash_xlog_move_page_contents(XLogReaderState *record)
 		Page		writepage;
 		char	   *begin;
 		char	   *data;
-		Size		datalen;
+		size_t		datalen;
 		uint16		ninserted = 0;
 
 		data = begin = XLogRecGetBlockData(record, 1, &datalen);
@@ -528,7 +528,7 @@ hash_xlog_move_page_contents(XLogReaderState *record)
 			while (data - begin < datalen)
 			{
 				IndexTuple	itup = (IndexTuple) data;
-				Size		itemsz;
+				size_t		itemsz;
 				OffsetNumber l;
 
 				itemsz = IndexTupleDSize(*itup);
@@ -559,7 +559,7 @@ hash_xlog_move_page_contents(XLogReaderState *record)
 	{
 		Page		page;
 		char	   *ptr;
-		Size		len;
+		size_t		len;
 
 		ptr = XLogRecGetBlockData(record, 2, &len);
 
@@ -640,7 +640,7 @@ hash_xlog_squeeze_page(XLogReaderState *record)
 		Page		writepage;
 		char	   *begin;
 		char	   *data;
-		Size		datalen;
+		size_t		datalen;
 		uint16		ninserted = 0;
 
 		data = begin = XLogRecGetBlockData(record, 1, &datalen);
@@ -656,7 +656,7 @@ hash_xlog_squeeze_page(XLogReaderState *record)
 			while (data - begin < datalen)
 			{
 				IndexTuple	itup = (IndexTuple) data;
-				Size		itemsz;
+				size_t		itemsz;
 				OffsetNumber l;
 
 				itemsz = IndexTupleDSize(*itup);
@@ -761,7 +761,7 @@ hash_xlog_squeeze_page(XLogReaderState *record)
 		uint32	   *freep = NULL;
 		char	   *data;
 		uint32	   *bitmap_page_bit;
-		Size		datalen;
+		size_t		datalen;
 
 		freep = HashPageGetBitmap(mappage);
 
@@ -787,7 +787,7 @@ hash_xlog_squeeze_page(XLogReaderState *record)
 			Page		page;
 			char	   *data;
 			uint32	   *firstfree_ovflpage;
-			Size		datalen;
+			size_t		datalen;
 
 			data = XLogRecGetBlockData(record, 6, &datalen);
 			firstfree_ovflpage = (uint32 *) data;
@@ -841,7 +841,7 @@ hash_xlog_delete(XLogReaderState *record)
 	if (action == BLK_NEEDS_REDO)
 	{
 		char	   *ptr;
-		Size		len;
+		size_t		len;
 
 		ptr = XLogRecGetBlockData(record, 1, &len);
 
@@ -945,7 +945,7 @@ hash_xlog_vacuum_get_latestRemovedXid(XLogReaderState *record)
 	TransactionId	latestRemovedXid = InvalidTransactionId;
 	int		i;
 	char *ptr;
-	Size len;
+	size_t len;
 
 	xlrec = (xl_hash_vacuum_one_page *) XLogRecGetData(record);
 
@@ -1108,7 +1108,7 @@ hash_xlog_vacuum_one_page(XLogReaderState *record)
 	if (action == BLK_NEEDS_REDO)
 	{
 		char *ptr;
-		Size len;
+		size_t len;
 
 		ptr = XLogRecGetBlockData(record, 0, &len);
 
diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c
index 20b4362..ffa1c01 100644
--- a/src/backend/replication/logical/launcher.c
+++ b/src/backend/replication/logical/launcher.c
@@ -461,10 +461,10 @@ logicalrep_worker_sigterm(SIGNAL_ARGS)
  * ApplyLauncherShmemSize
  *		Compute space needed for replication launcher shared memory
  */
-Size
+size_t
 ApplyLauncherShmemSize(void)
 {
-	Size		size;
+	size_t		size;
 
 	/*
 	 * Need the fixed struct and the array of LogicalRepWorker.
diff --git a/src/backend/utils/misc/backend_random.c b/src/backend/utils/misc/backend_random.c
index dcc2363..08dd45b 100644
--- a/src/backend/utils/misc/backend_random.c
+++ b/src/backend/utils/misc/backend_random.c
@@ -37,7 +37,7 @@
 
 #ifdef HAVE_STRONG_RANDOM
 
-Size
+size_t
 BackendRandomShmemSize(void)
 {
 	return 0;
@@ -73,7 +73,7 @@ typedef struct
 
 static BackendRandomShmemStruct *BackendRandomShmem;
 
-Size
+size_t
 BackendRandomShmemSize(void)
 {
 	return sizeof(BackendRandomShmemStruct);
diff --git a/src/backend/utils/mmgr/dsa.c b/src/backend/utils/mmgr/dsa.c
index 49e68b4..5f36392 100644
--- a/src/backend/utils/mmgr/dsa.c
+++ b/src/backend/utils/mmgr/dsa.c
@@ -65,7 +65,7 @@
  * double this size, and so on.  Larger segments may be created if necessary
  * to satisfy large requests.
  */
-#define DSA_INITIAL_SEGMENT_SIZE ((Size) (1 * 1024 * 1024))
+#define DSA_INITIAL_SEGMENT_SIZE ((size_t) (1 * 1024 * 1024))
 
 /*
  * How many segments to create before we double the segment size.  If this is
@@ -98,7 +98,7 @@
 #define DSA_OFFSET_BITMASK (((dsa_pointer) 1 << DSA_OFFSET_WIDTH) - 1)
 
 /* The maximum size of a DSM segment. */
-#define DSA_MAX_SEGMENT_SIZE ((Size) 1 << DSA_OFFSET_WIDTH)
+#define DSA_MAX_SEGMENT_SIZE ((size_t) 1 << DSA_OFFSET_WIDTH)
 
 /* Number of pages (see FPM_PAGE_SIZE) per regular superblock. */
 #define DSA_PAGES_PER_SUPERBLOCK		16
@@ -121,7 +121,7 @@
 #define DSA_EXTRACT_OFFSET(dp) ((dp) & DSA_OFFSET_BITMASK)
 
 /* The type used for index segment indexes (zero based). */
-typedef Size dsa_segment_index;
+typedef size_t dsa_segment_index;
 
 /* Sentinel value for dsa_segment_index indicating 'none' or 'end'. */
 #define DSA_SEGMENT_INDEX_NONE (~(dsa_segment_index)0)
@@ -153,9 +153,9 @@ typedef struct
 	/* Sanity check magic value. */
 	uint32		magic;
 	/* Total number of pages in this segment (excluding metadata area). */
-	Size		usable_pages;
+	size_t		usable_pages;
 	/* Total size of this segment in bytes. */
-	Size		size;
+	size_t		size;
 
 	/*
 	 * Index of the segment that precedes this one in the same segment bin, or
@@ -169,7 +169,7 @@ typedef struct
 	 */
 	dsa_segment_index next;
 	/* The index of the bin that contains this segment. */
-	Size		bin;
+	size_t		bin;
 
 	/*
 	 * A flag raised to indicate that this segment is being returned to the
@@ -197,7 +197,7 @@ typedef struct
 	dsa_pointer prevspan;		/* Previous span. */
 	dsa_pointer nextspan;		/* Next span. */
 	dsa_pointer start;			/* Starting address. */
-	Size		npages;			/* Length of span in pages. */
+	size_t		npages;			/* Length of span in pages. */
 	uint16		size_class;		/* Size class. */
 	uint16		ninitialized;	/* Maximum number of objects ever allocated. */
 	uint16		nallocatable;	/* Number of objects currently allocatable. */
@@ -308,9 +308,9 @@ typedef struct
 	/* The object pools for each size class. */
 	dsa_area_pool pools[DSA_NUM_SIZE_CLASSES];
 	/* The total size of all active segments. */
-	Size		total_segment_size;
+	size_t		total_segment_size;
 	/* The maximum total size of backing storage we are allowed. */
-	Size		max_total_segment_size;
+	size_t		max_total_segment_size;
 	/* Highest used segment index in the history of this area. */
 	dsa_segment_index high_segment_index;
 	/* The reference count for this area. */
@@ -318,7 +318,7 @@ typedef struct
 	/* A flag indicating that this area has been pinned. */
 	bool		pinned;
 	/* The number of times that segments have been freed. */
-	Size		freed_segment_counter;
+	size_t		freed_segment_counter;
 	/* The LWLock tranche ID. */
 	int			lwlock_tranche_id;
 	/* The general lock (protects everything except object pools). */
@@ -371,7 +371,7 @@ struct dsa_area
 	dsa_segment_index high_segment_index;
 
 	/* The last observed freed_segment_counter. */
-	Size		freed_segment_counter;
+	size_t		freed_segment_counter;
 };
 
 #define DSA_SPAN_NOTHING_FREE	((uint16) -1)
@@ -382,7 +382,7 @@ struct dsa_area
 	(segment_map_ptr - &area->segment_maps[0])
 
 static void init_span(dsa_area *area, dsa_pointer span_pointer,
-		  dsa_area_pool *pool, dsa_pointer start, Size npages,
+		  dsa_area_pool *pool, dsa_pointer start, size_t npages,
 		  uint16 size_class);
 static bool transfer_first_span(dsa_area *area, dsa_area_pool *pool,
 					int fromclass, int toclass);
@@ -396,8 +396,8 @@ static void unlink_span(dsa_area *area, dsa_area_span *span);
 static void add_span_to_fullness_class(dsa_area *area, dsa_area_span *span,
 						   dsa_pointer span_pointer, int fclass);
 static void unlink_segment(dsa_area *area, dsa_segment_map *segment_map);
-static dsa_segment_map *get_best_segment(dsa_area *area, Size npages);
-static dsa_segment_map *make_new_segment(dsa_area *area, Size requested_pages);
+static dsa_segment_map *get_best_segment(dsa_area *area, size_t npages);
+static dsa_segment_map *make_new_segment(dsa_area *area, size_t requested_pages);
 static dsa_area *create_internal(void *place, size_t size,
 				int tranche_id,
 				dsm_handle control_handle,
@@ -661,7 +661,7 @@ dsa_pin_mapping(dsa_area *area)
  * flags.
  */
 dsa_pointer
-dsa_allocate_extended(dsa_area *area, Size size, int flags)
+dsa_allocate_extended(dsa_area *area, size_t size, int flags)
 {
 	uint16		size_class;
 	dsa_pointer start_pointer;
@@ -684,8 +684,8 @@ dsa_allocate_extended(dsa_area *area, Size size, int flags)
 	 */
 	if (size > dsa_size_classes[lengthof(dsa_size_classes) - 1])
 	{
-		Size		npages = fpm_size_to_pages(size);
-		Size		first_page;
+		size_t		npages = fpm_size_to_pages(size);
+		size_t		first_page;
 		dsa_pointer span_pointer;
 		dsa_area_pool *pool = &area->control->pools[DSA_SCLASS_SPAN_LARGE];
 
@@ -817,7 +817,7 @@ dsa_free(dsa_area *area, dsa_pointer dp)
 	dsa_area_span *span;
 	char	   *superblock;
 	char	   *object;
-	Size		size;
+	size_t		size;
 	int			size_class;
 
 	/* Make sure we don't have a stale segment in the slot 'dp' refers to. */
@@ -924,7 +924,7 @@ void *
 dsa_get_address(dsa_area *area, dsa_pointer dp)
 {
 	dsa_segment_index index;
-	Size		offset;
+	size_t		offset;
 
 	/* Convert InvalidDsaPointer to NULL. */
 	if (!DsaPointerIsValid(dp))
@@ -997,7 +997,7 @@ dsa_unpin(dsa_area *area)
  * backends that have attached to them.
  */
 void
-dsa_set_size_limit(dsa_area *area, Size limit)
+dsa_set_size_limit(dsa_area *area, size_t limit)
 {
 	LWLockAcquire(DSA_AREA_LOCK(area), LW_EXCLUSIVE);
 	area->control->max_total_segment_size = limit;
@@ -1056,7 +1056,7 @@ dsa_trim(dsa_area *area)
 void
 dsa_dump(dsa_area *area)
 {
-	Size		i,
+	size_t		i,
 				j;
 
 	/*
@@ -1156,10 +1156,10 @@ dsa_dump(dsa_area *area)
  * Return the smallest size that you can successfully provide to
  * dsa_create_in_place.
  */
-Size
+size_t
 dsa_minimum_size(void)
 {
-	Size		size;
+	size_t		size;
 	int			pages = 0;
 
 	size = MAXALIGN(sizeof(dsa_area_control)) +
@@ -1187,9 +1187,9 @@ create_internal(void *place, size_t size,
 	dsa_area_control *control;
 	dsa_area   *area;
 	dsa_segment_map *segment_map;
-	Size		usable_pages;
-	Size		total_pages;
-	Size		metadata_bytes;
+	size_t		usable_pages;
+	size_t		total_pages;
+	size_t		metadata_bytes;
 	int			i;
 
 	/* Sanity check on the space we have to work in. */
@@ -1222,7 +1222,7 @@ create_internal(void *place, size_t size,
 	control->segment_header.freed = false;
 	control->segment_header.size = DSA_INITIAL_SEGMENT_SIZE;
 	control->handle = control_handle;
-	control->max_total_segment_size = (Size) -1;
+	control->max_total_segment_size = (size_t) -1;
 	control->total_segment_size = size;
 	memset(&control->segment_handles[0], 0,
 		   sizeof(dsm_handle) * DSA_MAX_SEGMENTS);
@@ -1326,11 +1326,11 @@ attach_internal(void *place, dsm_segment *segment, dsa_handle handle)
 static void
 init_span(dsa_area *area,
 		  dsa_pointer span_pointer,
-		  dsa_area_pool *pool, dsa_pointer start, Size npages,
+		  dsa_area_pool *pool, dsa_pointer start, size_t npages,
 		  uint16 size_class)
 {
 	dsa_area_span *span = dsa_get_address(area, span_pointer);
-	Size		obsize = dsa_size_classes[size_class];
+	size_t		obsize = dsa_size_classes[size_class];
 
 	/*
 	 * The per-pool lock must be held because we manipulate the span list for
@@ -1426,7 +1426,7 @@ alloc_object(dsa_area *area, int size_class)
 	dsa_pointer block;
 	dsa_pointer result;
 	char	   *object;
-	Size		size;
+	size_t		size;
 
 	/*
 	 * Even though ensure_active_superblock can in turn call alloc_object if
@@ -1512,12 +1512,12 @@ ensure_active_superblock(dsa_area *area, dsa_area_pool *pool,
 {
 	dsa_pointer span_pointer;
 	dsa_pointer start_pointer;
-	Size		obsize = dsa_size_classes[size_class];
-	Size		nmax;
+	size_t		obsize = dsa_size_classes[size_class];
+	size_t		nmax;
 	int			fclass;
-	Size		npages = 1;
-	Size		first_page;
-	Size		i;
+	size_t		npages = 1;
+	size_t		first_page;
+	size_t		i;
 	dsa_segment_map *segment_map;
 
 	Assert(LWLockHeldByMe(DSA_SCLASS_LOCK(area, size_class)));
@@ -1930,9 +1930,9 @@ unlink_segment(dsa_area *area, dsa_segment_map *segment_map)
  * pages map.
  */
 static dsa_segment_map *
-get_best_segment(dsa_area *area, Size npages)
+get_best_segment(dsa_area *area, size_t npages)
 {
-	Size		bin;
+	size_t		bin;
 
 	Assert(LWLockHeldByMe(DSA_AREA_LOCK(area)));
 
@@ -1948,7 +1948,7 @@ get_best_segment(dsa_area *area, Size npages)
 		 * The minimum contiguous size that any segment in this bin should
 		 * have.  We'll re-bin if we see segments with fewer.
 		 */
-		Size		threshold = (Size) 1 << (bin - 1);
+		size_t		threshold = (size_t) 1 << (bin - 1);
 		dsa_segment_index segment_index;
 
 		/* Search this bin for a segment with enough contiguous space. */
@@ -1957,7 +1957,7 @@ get_best_segment(dsa_area *area, Size npages)
 		{
 			dsa_segment_map *segment_map;
 			dsa_segment_index next_segment_index;
-			Size		contiguous_pages;
+			size_t		contiguous_pages;
 
 			segment_map = get_segment_by_index(area, segment_index);
 			next_segment_index = segment_map->header->next;
@@ -1973,7 +1973,7 @@ get_best_segment(dsa_area *area, Size npages)
 			/* Re-bin it if it's no longer in the appropriate bin. */
 			if (contiguous_pages < threshold)
 			{
-				Size		new_bin;
+				size_t		new_bin;
 
 				new_bin = contiguous_pages_to_segment_bin(contiguous_pages);
 
@@ -2021,13 +2021,13 @@ get_best_segment(dsa_area *area, Size npages)
  * segments would be exceeded.
  */
 static dsa_segment_map *
-make_new_segment(dsa_area *area, Size requested_pages)
+make_new_segment(dsa_area *area, size_t requested_pages)
 {
 	dsa_segment_index new_index;
-	Size		metadata_bytes;
-	Size		total_size;
-	Size		total_pages;
-	Size		usable_pages;
+	size_t		metadata_bytes;
+	size_t		total_size;
+	size_t		total_pages;
+	size_t		usable_pages;
 	dsa_segment_map *segment_map;
 	dsm_segment *segment;
 
@@ -2065,7 +2065,7 @@ make_new_segment(dsa_area *area, Size requested_pages)
 	 * pages we can fit.
 	 */
 	total_size = DSA_INITIAL_SEGMENT_SIZE *
-		((Size) 1 << (new_index / DSA_NUM_SEGMENTS_AT_EACH_SIZE));
+		((size_t) 1 << (new_index / DSA_NUM_SEGMENTS_AT_EACH_SIZE));
 	total_size = Min(total_size, DSA_MAX_SEGMENT_SIZE);
 	total_size = Min(total_size,
 					 area->control->max_total_segment_size -
@@ -2192,7 +2192,7 @@ make_new_segment(dsa_area *area, Size requested_pages)
 static void
 check_for_freed_segments(dsa_area *area)
 {
-	Size		freed_segment_counter;
+	size_t		freed_segment_counter;
 
 	/*
 	 * Any other process that has freed a segment has incremented
diff --git a/src/backend/utils/mmgr/freepage.c b/src/backend/utils/mmgr/freepage.c
index 2cd7581..9a96cb8 100644
--- a/src/backend/utils/mmgr/freepage.c
+++ b/src/backend/utils/mmgr/freepage.c
@@ -68,7 +68,7 @@
 struct FreePageSpanLeader
 {
 	int			magic;			/* always FREE_PAGE_SPAN_LEADER_MAGIC */
-	Size		npages;			/* number of pages in span */
+	size_t		npages;			/* number of pages in span */
 	RelptrFreePageSpanLeader prev;
 	RelptrFreePageSpanLeader next;
 };
@@ -78,22 +78,22 @@ typedef struct FreePageBtreeHeader
 {
 	int			magic;			/* FREE_PAGE_LEAF_MAGIC or
 								 * FREE_PAGE_INTERNAL_MAGIC */
-	Size		nused;			/* number of items used */
+	size_t		nused;			/* number of items used */
 	RelptrFreePageBtree parent; /* uplink */
 } FreePageBtreeHeader;
 
 /* Internal key; points to next level of btree. */
 typedef struct FreePageBtreeInternalKey
 {
-	Size		first_page;		/* low bound for keys on child page */
+	size_t		first_page;		/* low bound for keys on child page */
 	RelptrFreePageBtree child;	/* downlink */
 } FreePageBtreeInternalKey;
 
 /* Leaf key; no payload data. */
 typedef struct FreePageBtreeLeafKey
 {
-	Size		first_page;		/* first page in span */
-	Size		npages;			/* number of pages in span */
+	size_t		first_page;		/* first page in span */
+	size_t		npages;			/* number of pages in span */
 } FreePageBtreeLeafKey;
 
 /* Work out how many keys will fit on a page. */
@@ -119,7 +119,7 @@ struct FreePageBtree
 typedef struct FreePageBtreeSearchResult
 {
 	FreePageBtree *page;
-	Size		index;
+	size_t		index;
 	bool		found;
 	unsigned	split_pages;
 } FreePageBtreeSearchResult;
@@ -127,45 +127,45 @@ typedef struct FreePageBtreeSearchResult
 /* Helper functions */
 static void FreePageBtreeAdjustAncestorKeys(FreePageManager *fpm,
 								FreePageBtree *btp);
-static Size FreePageBtreeCleanup(FreePageManager *fpm);
+static size_t FreePageBtreeCleanup(FreePageManager *fpm);
 static FreePageBtree *FreePageBtreeFindLeftSibling(char *base,
 							 FreePageBtree *btp);
 static FreePageBtree *FreePageBtreeFindRightSibling(char *base,
 							  FreePageBtree *btp);
-static Size FreePageBtreeFirstKey(FreePageBtree *btp);
+static size_t FreePageBtreeFirstKey(FreePageBtree *btp);
 static FreePageBtree *FreePageBtreeGetRecycled(FreePageManager *fpm);
 static void FreePageBtreeInsertInternal(char *base, FreePageBtree *btp,
-						  Size index, Size first_page, FreePageBtree *child);
-static void FreePageBtreeInsertLeaf(FreePageBtree *btp, Size index,
-						Size first_page, Size npages);
-static void FreePageBtreeRecycle(FreePageManager *fpm, Size pageno);
+						  size_t index, size_t first_page, FreePageBtree *child);
+static void FreePageBtreeInsertLeaf(FreePageBtree *btp, size_t index,
+						size_t first_page, size_t npages);
+static void FreePageBtreeRecycle(FreePageManager *fpm, size_t pageno);
 static void FreePageBtreeRemove(FreePageManager *fpm, FreePageBtree *btp,
-					Size index);
+					size_t index);
 static void FreePageBtreeRemovePage(FreePageManager *fpm, FreePageBtree *btp);
-static void FreePageBtreeSearch(FreePageManager *fpm, Size first_page,
+static void FreePageBtreeSearch(FreePageManager *fpm, size_t first_page,
 					FreePageBtreeSearchResult *result);
-static Size FreePageBtreeSearchInternal(FreePageBtree *btp, Size first_page);
-static Size FreePageBtreeSearchLeaf(FreePageBtree *btp, Size first_page);
+static size_t FreePageBtreeSearchInternal(FreePageBtree *btp, size_t first_page);
+static size_t FreePageBtreeSearchLeaf(FreePageBtree *btp, size_t first_page);
 static FreePageBtree *FreePageBtreeSplitPage(FreePageManager *fpm,
 					   FreePageBtree *btp);
 static void FreePageBtreeUpdateParentPointers(char *base, FreePageBtree *btp);
 static void FreePageManagerDumpBtree(FreePageManager *fpm, FreePageBtree *btp,
 						 FreePageBtree *parent, int level, StringInfo buf);
 static void FreePageManagerDumpSpans(FreePageManager *fpm,
-						 FreePageSpanLeader *span, Size expected_pages,
+						 FreePageSpanLeader *span, size_t expected_pages,
 						 StringInfo buf);
-static bool FreePageManagerGetInternal(FreePageManager *fpm, Size npages,
-						   Size *first_page);
-static Size FreePageManagerPutInternal(FreePageManager *fpm, Size first_page,
-						   Size npages, bool soft);
-static void FreePagePopSpanLeader(FreePageManager *fpm, Size pageno);
-static void FreePagePushSpanLeader(FreePageManager *fpm, Size first_page,
-					   Size npages);
-static Size FreePageManagerLargestContiguous(FreePageManager *fpm);
+static bool FreePageManagerGetInternal(FreePageManager *fpm, size_t npages,
+						   size_t *first_page);
+static size_t FreePageManagerPutInternal(FreePageManager *fpm, size_t first_page,
+						   size_t npages, bool soft);
+static void FreePagePopSpanLeader(FreePageManager *fpm, size_t pageno);
+static void FreePagePushSpanLeader(FreePageManager *fpm, size_t first_page,
+					   size_t npages);
+static size_t FreePageManagerLargestContiguous(FreePageManager *fpm);
 static void FreePageManagerUpdateLargest(FreePageManager *fpm);
 
 #if FPM_EXTRA_ASSERTS
-static Size sum_free_pages(FreePageManager *fpm);
+static size_t sum_free_pages(FreePageManager *fpm);
 #endif
 
 /*
@@ -182,7 +182,7 @@ static Size sum_free_pages(FreePageManager *fpm);
 void
 FreePageManagerInitialize(FreePageManager *fpm, char *base)
 {
-	Size		f;
+	size_t		f;
 
 	relptr_store(base, fpm->self, fpm);
 	relptr_store(base, fpm->btree_root, (FreePageBtree *) NULL);
@@ -207,10 +207,10 @@ FreePageManagerInitialize(FreePageManager *fpm, char *base)
  * if true, the first page of the allocation is stored in *first_page.
  */
 bool
-FreePageManagerGet(FreePageManager *fpm, Size npages, Size *first_page)
+FreePageManagerGet(FreePageManager *fpm, size_t npages, size_t *first_page)
 {
 	bool		result;
-	Size		contiguous_pages;
+	size_t		contiguous_pages;
 
 	result = FreePageManagerGetInternal(fpm, npages, first_page);
 
@@ -249,7 +249,7 @@ FreePageManagerGet(FreePageManager *fpm, Size npages, Size *first_page)
 
 #ifdef FPM_EXTRA_ASSERTS
 static void
-sum_free_pages_recurse(FreePageManager *fpm, FreePageBtree *btp, Size *sum)
+sum_free_pages_recurse(FreePageManager *fpm, FreePageBtree *btp, size_t *sum)
 {
 	char	   *base = fpm_segment_base(fpm);
 
@@ -258,7 +258,7 @@ sum_free_pages_recurse(FreePageManager *fpm, FreePageBtree *btp, Size *sum)
 	++*sum;
 	if (btp->hdr.magic == FREE_PAGE_INTERNAL_MAGIC)
 	{
-		Size		index;
+		size_t		index;
 
 
 		for (index = 0; index < btp->hdr.nused; ++index)
@@ -270,12 +270,12 @@ sum_free_pages_recurse(FreePageManager *fpm, FreePageBtree *btp, Size *sum)
 		}
 	}
 }
-static Size
+static size_t
 sum_free_pages(FreePageManager *fpm)
 {
 	FreePageSpanLeader *recycle;
 	char	   *base = fpm_segment_base(fpm);
-	Size		sum = 0;
+	size_t		sum = 0;
 	int			list;
 
 	/* Count the spans by scanning the freelists. */
@@ -320,11 +320,11 @@ sum_free_pages(FreePageManager *fpm)
  * Compute the size of the largest run of pages that the user could
  * successfully get.
  */
-static Size
+static size_t
 FreePageManagerLargestContiguous(FreePageManager *fpm)
 {
 	char	   *base;
-	Size		largest;
+	size_t		largest;
 
 	base = fpm_segment_base(fpm);
 	largest = 0;
@@ -342,7 +342,7 @@ FreePageManagerLargestContiguous(FreePageManager *fpm)
 	}
 	else
 	{
-		Size		f = FPM_NUM_FREELISTS - 1;
+		size_t		f = FPM_NUM_FREELISTS - 1;
 
 		do
 		{
@@ -376,9 +376,9 @@ FreePageManagerUpdateLargest(FreePageManager *fpm)
  * Transfer a run of pages to the free page manager.
  */
 void
-FreePageManagerPut(FreePageManager *fpm, Size first_page, Size npages)
+FreePageManagerPut(FreePageManager *fpm, size_t first_page, size_t npages)
 {
-	Size		contiguous_pages;
+	size_t		contiguous_pages;
 
 	Assert(npages > 0);
 
@@ -392,7 +392,7 @@ FreePageManagerPut(FreePageManager *fpm, Size first_page, Size npages)
 	 */
 	if (contiguous_pages > npages)
 	{
-		Size		cleanup_contiguous_pages;
+		size_t		cleanup_contiguous_pages;
 
 		cleanup_contiguous_pages = FreePageBtreeCleanup(fpm);
 		if (cleanup_contiguous_pages > contiguous_pages)
@@ -427,7 +427,7 @@ FreePageManagerDump(FreePageManager *fpm)
 	StringInfoData buf;
 	FreePageSpanLeader *recycle;
 	bool		dumped_any_freelist = false;
-	Size		f;
+	size_t		f;
 
 	/* Initialize output buffer. */
 	initStringInfo(&buf);
@@ -501,7 +501,7 @@ static void
 FreePageBtreeAdjustAncestorKeys(FreePageManager *fpm, FreePageBtree *btp)
 {
 	char	   *base = fpm_segment_base(fpm);
-	Size		first_page;
+	size_t		first_page;
 	FreePageBtree *parent;
 	FreePageBtree *child;
 
@@ -523,7 +523,7 @@ FreePageBtreeAdjustAncestorKeys(FreePageManager *fpm, FreePageBtree *btp)
 	/* Loop until we find an ancestor that does not require adjustment. */
 	for (;;)
 	{
-		Size		s;
+		size_t		s;
 
 		parent = relptr_access(base, child->hdr.parent);
 		if (parent == NULL)
@@ -576,11 +576,11 @@ FreePageBtreeAdjustAncestorKeys(FreePageManager *fpm, FreePageBtree *btp)
  * Attempt to reclaim space from the free-page btree.  The return value is
  * the largest range of contiguous pages created by the cleanup operation.
  */
-static Size
+static size_t
 FreePageBtreeCleanup(FreePageManager *fpm)
 {
 	char	   *base = fpm_segment_base(fpm);
-	Size		max_contiguous_pages = 0;
+	size_t		max_contiguous_pages = 0;
 
 	/* Attempt to shrink the depth of the btree. */
 	while (!relptr_is_null(fpm->btree_root))
@@ -615,8 +615,8 @@ FreePageBtreeCleanup(FreePageManager *fpm)
 		else if (root->hdr.nused == 2 &&
 				 root->hdr.magic == FREE_PAGE_LEAF_MAGIC)
 		{
-			Size		end_of_first;
-			Size		start_of_second;
+			size_t		end_of_first;
+			size_t		start_of_second;
 
 			end_of_first = root->u.leaf_key[0].first_page +
 				root->u.leaf_key[0].npages;
@@ -624,7 +624,7 @@ FreePageBtreeCleanup(FreePageManager *fpm)
 
 			if (end_of_first + 1 == start_of_second)
 			{
-				Size		root_page = fpm_pointer_to_page(base, root);
+				size_t		root_page = fpm_pointer_to_page(base, root);
 
 				if (end_of_first == root_page)
 				{
@@ -666,8 +666,8 @@ FreePageBtreeCleanup(FreePageManager *fpm)
 	while (fpm->btree_recycle_count > 0)
 	{
 		FreePageBtree *btp;
-		Size		first_page;
-		Size		contiguous_pages;
+		size_t		first_page;
+		size_t		contiguous_pages;
 
 		btp = FreePageBtreeGetRecycled(fpm);
 		first_page = fpm_pointer_to_page(base, btp);
@@ -696,7 +696,7 @@ FreePageBtreeConsolidate(FreePageManager *fpm, FreePageBtree *btp)
 {
 	char	   *base = fpm_segment_base(fpm);
 	FreePageBtree *np;
-	Size		max;
+	size_t		max;
 
 	/*
 	 * We only try to consolidate pages that are less than a third full. We
@@ -779,8 +779,8 @@ FreePageBtreeFindLeftSibling(char *base, FreePageBtree *btp)
 	/* Move up until we can move left. */
 	for (;;)
 	{
-		Size		first_page;
-		Size		index;
+		size_t		first_page;
+		size_t		index;
 
 		first_page = FreePageBtreeFirstKey(p);
 		p = relptr_access(base, p->hdr.parent);
@@ -824,8 +824,8 @@ FreePageBtreeFindRightSibling(char *base, FreePageBtree *btp)
 	/* Move up until we can move right. */
 	for (;;)
 	{
-		Size		first_page;
-		Size		index;
+		size_t		first_page;
+		size_t		index;
 
 		first_page = FreePageBtreeFirstKey(p);
 		p = relptr_access(base, p->hdr.parent);
@@ -859,7 +859,7 @@ FreePageBtreeFindRightSibling(char *base, FreePageBtree *btp)
 /*
  * Get the first key on a btree page.
  */
-static Size
+static size_t
 FreePageBtreeFirstKey(FreePageBtree *btp)
 {
 	Assert(btp->hdr.nused > 0);
@@ -897,8 +897,8 @@ FreePageBtreeGetRecycled(FreePageManager *fpm)
  * Insert an item into an internal page.
  */
 static void
-FreePageBtreeInsertInternal(char *base, FreePageBtree *btp, Size index,
-							Size first_page, FreePageBtree *child)
+FreePageBtreeInsertInternal(char *base, FreePageBtree *btp, size_t index,
+							size_t first_page, FreePageBtree *child)
 {
 	Assert(btp->hdr.magic == FREE_PAGE_INTERNAL_MAGIC);
 	Assert(btp->hdr.nused <= FPM_ITEMS_PER_INTERNAL_PAGE);
@@ -914,8 +914,8 @@ FreePageBtreeInsertInternal(char *base, FreePageBtree *btp, Size index,
  * Insert an item into a leaf page.
  */
 static void
-FreePageBtreeInsertLeaf(FreePageBtree *btp, Size index, Size first_page,
-						Size npages)
+FreePageBtreeInsertLeaf(FreePageBtree *btp, size_t index, size_t first_page,
+						size_t npages)
 {
 	Assert(btp->hdr.magic == FREE_PAGE_LEAF_MAGIC);
 	Assert(btp->hdr.nused <= FPM_ITEMS_PER_LEAF_PAGE);
@@ -931,7 +931,7 @@ FreePageBtreeInsertLeaf(FreePageBtree *btp, Size index, Size first_page,
  * Put a page on the btree recycle list.
  */
 static void
-FreePageBtreeRecycle(FreePageManager *fpm, Size pageno)
+FreePageBtreeRecycle(FreePageManager *fpm, size_t pageno)
 {
 	char	   *base = fpm_segment_base(fpm);
 	FreePageSpanLeader *head = relptr_access(base, fpm->btree_recycle);
@@ -952,7 +952,7 @@ FreePageBtreeRecycle(FreePageManager *fpm, Size pageno)
  * Remove an item from the btree at the given position on the given page.
  */
 static void
-FreePageBtreeRemove(FreePageManager *fpm, FreePageBtree *btp, Size index)
+FreePageBtreeRemove(FreePageManager *fpm, FreePageBtree *btp, size_t index)
 {
 	Assert(btp->hdr.magic == FREE_PAGE_LEAF_MAGIC);
 	Assert(index < btp->hdr.nused);
@@ -988,8 +988,8 @@ FreePageBtreeRemovePage(FreePageManager *fpm, FreePageBtree *btp)
 {
 	char	   *base = fpm_segment_base(fpm);
 	FreePageBtree *parent;
-	Size		index;
-	Size		first_page;
+	size_t		index;
+	size_t		first_page;
 
 	for (;;)
 	{
@@ -1061,12 +1061,12 @@ FreePageBtreeRemovePage(FreePageManager *fpm, FreePageBtree *btp)
  * undefined on return.
  */
 static void
-FreePageBtreeSearch(FreePageManager *fpm, Size first_page,
+FreePageBtreeSearch(FreePageManager *fpm, size_t first_page,
 					FreePageBtreeSearchResult *result)
 {
 	char	   *base = fpm_segment_base(fpm);
 	FreePageBtree *btp = relptr_access(base, fpm->btree_root);
-	Size		index;
+	size_t		index;
 
 	result->split_pages = 1;
 
@@ -1136,19 +1136,19 @@ FreePageBtreeSearch(FreePageManager *fpm, Size first_page,
  * page number.  Returns the index of that key, or one greater than the number
  * of keys on the page if none.
  */
-static Size
-FreePageBtreeSearchInternal(FreePageBtree *btp, Size first_page)
+static size_t
+FreePageBtreeSearchInternal(FreePageBtree *btp, size_t first_page)
 {
-	Size		low = 0;
-	Size		high = btp->hdr.nused;
+	size_t		low = 0;
+	size_t		high = btp->hdr.nused;
 
 	Assert(btp->hdr.magic == FREE_PAGE_INTERNAL_MAGIC);
 	Assert(high > 0 && high <= FPM_ITEMS_PER_INTERNAL_PAGE);
 
 	while (low < high)
 	{
-		Size		mid = (low + high) / 2;
-		Size		val = btp->u.internal_key[mid].first_page;
+		size_t		mid = (low + high) / 2;
+		size_t		val = btp->u.internal_key[mid].first_page;
 
 		if (first_page == val)
 			return mid;
@@ -1166,19 +1166,19 @@ FreePageBtreeSearchInternal(FreePageBtree *btp, Size first_page)
  * page number.  Returns the index of that key, or one greater than the number
  * of keys on the page if none.
  */
-static Size
-FreePageBtreeSearchLeaf(FreePageBtree *btp, Size first_page)
+static size_t
+FreePageBtreeSearchLeaf(FreePageBtree *btp, size_t first_page)
 {
-	Size		low = 0;
-	Size		high = btp->hdr.nused;
+	size_t		low = 0;
+	size_t		high = btp->hdr.nused;
 
 	Assert(btp->hdr.magic == FREE_PAGE_LEAF_MAGIC);
 	Assert(high > 0 && high <= FPM_ITEMS_PER_LEAF_PAGE);
 
 	while (low < high)
 	{
-		Size		mid = (low + high) / 2;
-		Size		val = btp->u.leaf_key[mid].first_page;
+		size_t		mid = (low + high) / 2;
+		size_t		val = btp->u.leaf_key[mid].first_page;
 
 		if (first_page == val)
 			return mid;
@@ -1231,7 +1231,7 @@ FreePageBtreeSplitPage(FreePageManager *fpm, FreePageBtree *btp)
 static void
 FreePageBtreeUpdateParentPointers(char *base, FreePageBtree *btp)
 {
-	Size		i;
+	size_t		i;
 
 	Assert(btp->hdr.magic == FREE_PAGE_INTERNAL_MAGIC);
 	for (i = 0; i < btp->hdr.nused; ++i)
@@ -1251,8 +1251,8 @@ FreePageManagerDumpBtree(FreePageManager *fpm, FreePageBtree *btp,
 						 FreePageBtree *parent, int level, StringInfo buf)
 {
 	char	   *base = fpm_segment_base(fpm);
-	Size		pageno = fpm_pointer_to_page(base, btp);
-	Size		index;
+	size_t		pageno = fpm_pointer_to_page(base, btp);
+	size_t		index;
 	FreePageBtree *check_parent;
 
 	check_stack_depth();
@@ -1294,7 +1294,7 @@ FreePageManagerDumpBtree(FreePageManager *fpm, FreePageBtree *btp,
  */
 static void
 FreePageManagerDumpSpans(FreePageManager *fpm, FreePageSpanLeader *span,
-						 Size expected_pages, StringInfo buf)
+						 size_t expected_pages, StringInfo buf)
 {
 	char	   *base = fpm_segment_base(fpm);
 
@@ -1316,15 +1316,15 @@ FreePageManagerDumpSpans(FreePageManager *fpm, FreePageSpanLeader *span,
  * page manager.
  */
 static bool
-FreePageManagerGetInternal(FreePageManager *fpm, Size npages, Size *first_page)
+FreePageManagerGetInternal(FreePageManager *fpm, size_t npages, size_t *first_page)
 {
 	char	   *base = fpm_segment_base(fpm);
 	FreePageSpanLeader *victim = NULL;
 	FreePageSpanLeader *prev;
 	FreePageSpanLeader *next;
 	FreePageBtreeSearchResult result;
-	Size		victim_page = 0;	/* placate compiler */
-	Size		f;
+	size_t		victim_page = 0;	/* placate compiler */
+	size_t		f;
 
 	/*
 	 * Search for a free span.
@@ -1474,8 +1474,8 @@ FreePageManagerGetInternal(FreePageManager *fpm, Size npages, Size *first_page)
  * true if the btree allocated pages for internal purposes, which might
  * invalidate the current largest run requiring it to be recomputed.
  */
-static Size
-FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
+static size_t
+FreePageManagerPutInternal(FreePageManager *fpm, size_t first_page, size_t npages,
 						   bool soft)
 {
 	char	   *base = fpm_segment_base(fpm);
@@ -1483,7 +1483,7 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
 	FreePageBtreeLeafKey *prevkey = NULL;
 	FreePageBtreeLeafKey *nextkey = NULL;
 	FreePageBtree *np;
-	Size		nindex;
+	size_t		nindex;
 
 	Assert(npages > 0);
 
@@ -1521,7 +1521,7 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
 		else
 		{
 			/* Not contiguous; we need to initialize the btree. */
-			Size		root_page;
+			size_t		root_page;
 			FreePageBtree *root;
 
 			if (!relptr_is_null(fpm->btree_recycle))
@@ -1586,7 +1586,7 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
 	if (prevkey != NULL && prevkey->first_page + prevkey->npages >= first_page)
 	{
 		bool		remove_next = false;
-		Size		result;
+		size_t		result;
 
 		Assert(prevkey->first_page + prevkey->npages == first_page);
 		prevkey->npages = (first_page - prevkey->first_page) + npages;
@@ -1627,7 +1627,7 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
 	/* Consolidate with the next entry if possible. */
 	if (nextkey != NULL && first_page + npages >= nextkey->first_page)
 	{
-		Size		newpages;
+		size_t		newpages;
 
 		/* Compute new size for span. */
 		Assert(first_page + npages == nextkey->first_page);
@@ -1669,9 +1669,9 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
 		/* Check whether we need to allocate more btree pages to split. */
 		if (result.split_pages > fpm->btree_recycle_count)
 		{
-			Size		pages_needed;
-			Size		recycle_page;
-			Size		i;
+			size_t		pages_needed;
+			size_t		recycle_page;
+			size_t		i;
 
 			/*
 			 * Allocate the required number of pages and split each one in
@@ -1715,7 +1715,7 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
 		{
 			FreePageBtree *split_target = result.page;
 			FreePageBtree *child = NULL;
-			Size		key = first_page;
+			size_t		key = first_page;
 
 			for (;;)
 			{
@@ -1739,7 +1739,7 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
 				 */
 				if (child == NULL)
 				{
-					Size		index;
+					size_t		index;
 					FreePageBtree *insert_into;
 
 					insert_into = key < newsibling->u.leaf_key[0].first_page ?
@@ -1751,7 +1751,7 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
 				}
 				else
 				{
-					Size		index;
+					size_t		index;
 					FreePageBtree *insert_into;
 
 					insert_into =
@@ -1795,7 +1795,7 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
 				key = newsibling->u.internal_key[0].first_page;
 				if (parent->hdr.nused < FPM_ITEMS_PER_INTERNAL_PAGE)
 				{
-					Size		index;
+					size_t		index;
 
 					index = FreePageBtreeSearchInternal(parent, key);
 					FreePageBtreeInsertInternal(base, parent, index,
@@ -1840,7 +1840,7 @@ FreePageManagerPutInternal(FreePageManager *fpm, Size first_page, Size npages,
  * because we're changing the size of the span, or because we're allocating it.
  */
 static void
-FreePagePopSpanLeader(FreePageManager *fpm, Size pageno)
+FreePagePopSpanLeader(FreePageManager *fpm, size_t pageno)
 {
 	char	   *base = fpm_segment_base(fpm);
 	FreePageSpanLeader *span;
@@ -1857,7 +1857,7 @@ FreePagePopSpanLeader(FreePageManager *fpm, Size pageno)
 		relptr_copy(prev->next, span->next);
 	else
 	{
-		Size		f = Min(span->npages, FPM_NUM_FREELISTS) - 1;
+		size_t		f = Min(span->npages, FPM_NUM_FREELISTS) - 1;
 
 		Assert(fpm->freelist[f].relptr_off == pageno * FPM_PAGE_SIZE);
 		relptr_copy(fpm->freelist[f], span->next);
@@ -1868,10 +1868,10 @@ FreePagePopSpanLeader(FreePageManager *fpm, Size pageno)
  * Initialize a new FreePageSpanLeader and put it on the appropriate free list.
  */
 static void
-FreePagePushSpanLeader(FreePageManager *fpm, Size first_page, Size npages)
+FreePagePushSpanLeader(FreePageManager *fpm, size_t first_page, size_t npages)
 {
 	char	   *base = fpm_segment_base(fpm);
-	Size		f = Min(npages, FPM_NUM_FREELISTS) - 1;
+	size_t		f = Min(npages, FPM_NUM_FREELISTS) - 1;
 	FreePageSpanLeader *head = relptr_access(base, fpm->freelist[f]);
 	FreePageSpanLeader *span;
 
diff --git a/src/backend/utils/mmgr/slab.c b/src/backend/utils/mmgr/slab.c
index d6be4fe..6f9faac 100644
--- a/src/backend/utils/mmgr/slab.c
+++ b/src/backend/utils/mmgr/slab.c
@@ -64,9 +64,9 @@ typedef struct SlabContext
 {
 	MemoryContextData header;	/* Standard memory-context fields */
 	/* Allocation parameters for this context: */
-	Size		chunkSize;		/* chunk size */
-	Size		fullChunkSize;	/* chunk size including header and alignment */
-	Size		blockSize;		/* block size */
+	size_t		chunkSize;		/* chunk size */
+	size_t		fullChunkSize;	/* chunk size including header and alignment */
+	size_t		blockSize;		/* block size */
 	int			chunksPerBlock; /* number of chunks per block */
 	int			minFreeChunks;	/* min number of free chunks in any block */
 	int			nblocks;		/* number of blocks allocated */
@@ -117,13 +117,13 @@ typedef struct SlabChunk
 /*
  * These functions implement the MemoryContext API for Slab contexts.
  */
-static void *SlabAlloc(MemoryContext context, Size size);
+static void *SlabAlloc(MemoryContext context, size_t size);
 static void SlabFree(MemoryContext context, void *pointer);
-static void *SlabRealloc(MemoryContext context, void *pointer, Size size);
+static void *SlabRealloc(MemoryContext context, void *pointer, size_t size);
 static void SlabInit(MemoryContext context);
 static void SlabReset(MemoryContext context);
 static void SlabDelete(MemoryContext context);
-static Size SlabGetChunkSpace(MemoryContext context, void *pointer);
+static size_t SlabGetChunkSpace(MemoryContext context, void *pointer);
 static bool SlabIsEmpty(MemoryContext context);
 static void SlabStats(MemoryContext context, int level, bool print,
 		  MemoryContextCounters *totals);
@@ -182,12 +182,12 @@ static MemoryContextMethods SlabMethods = {
 MemoryContext
 SlabContextCreate(MemoryContext parent,
 				  const char *name,
-				  Size blockSize,
-				  Size chunkSize)
+				  size_t blockSize,
+				  size_t chunkSize)
 {
 	int			chunksPerBlock;
-	Size		fullChunkSize;
-	Size		freelistSize;
+	size_t		fullChunkSize;
+	size_t		freelistSize;
 	SlabContext *slab;
 
 	StaticAssertStmt(offsetof(SlabChunk, slab) +sizeof(MemoryContext) ==
@@ -315,7 +315,7 @@ SlabDelete(MemoryContext context)
  *		request could not be completed; memory is added to the slab.
  */
 static void *
-SlabAlloc(MemoryContext context, Size size)
+SlabAlloc(MemoryContext context, size_t size)
 {
 	SlabContext *slab = castNode(SlabContext, context);
 	SlabBlock  *block;
@@ -559,7 +559,7 @@ SlabFree(MemoryContext context, void *pointer)
  * realloc is usually used to enlarge the chunk.
  */
 static void *
-SlabRealloc(MemoryContext context, void *pointer, Size size)
+SlabRealloc(MemoryContext context, void *pointer, size_t size)
 {
 	SlabContext *slab = castNode(SlabContext, context);
 
@@ -578,7 +578,7 @@ SlabRealloc(MemoryContext context, void *pointer, Size size)
  *		Given a currently-allocated chunk, determine the total space
  *		it occupies (including all memory-allocation overhead).
  */
-static Size
+static size_t
 SlabGetChunkSpace(MemoryContext context, void *pointer)
 {
 	SlabContext *slab = castNode(SlabContext, context);
@@ -615,10 +615,10 @@ SlabStats(MemoryContext context, int level, bool print,
 		  MemoryContextCounters *totals)
 {
 	SlabContext *slab = castNode(SlabContext, context);
-	Size		nblocks = 0;
-	Size		freechunks = 0;
-	Size		totalspace = 0;
-	Size		freespace = 0;
+	size_t		nblocks = 0;
+	size_t		freechunks = 0;
+	size_t		totalspace = 0;
+	size_t		freespace = 0;
 	int			i;
 
 	Assert(slab);
diff --git a/src/include/lib/simplehash.h b/src/include/lib/simplehash.h
index 6c6c3ee..a937f01 100644
--- a/src/include/lib/simplehash.h
+++ b/src/include/lib/simplehash.h
@@ -220,7 +220,7 @@ SH_COMPUTE_PARAMETERS(SH_TYPE *tb, uint32 newsize)
 
 	/*
 	 * Verify allocation of ->data is possible on platform, without
-	 * overflowing Size.
+	 * overflowing size_t.
 	 */
 	if ((((uint64) sizeof(SH_ELEMENT_TYPE)) * size) >= MaxAllocHugeSize)
 		elog(ERROR, "hash table too large");
@@ -293,14 +293,14 @@ SH_ENTRY_HASH(SH_TYPE *tb, SH_ELEMENT_TYPE * entry)
 }
 
 /* default memory allocator function */
-static inline void *SH_ALLOCATE(SH_TYPE *type, Size size);
+static inline void *SH_ALLOCATE(SH_TYPE *type, size_t size);
 static inline void SH_FREE(SH_TYPE *type, void *pointer);
 
 #ifndef SH_USE_NONDEFAULT_ALLOCATOR
 
 /* default memory allocator function */
 static inline void *
-SH_ALLOCATE(SH_TYPE *type, Size size)
+SH_ALLOCATE(SH_TYPE *type, size_t size)
 {
 	return MemoryContextAllocExtended(type->ctx, size,
 									  MCXT_ALLOC_HUGE | MCXT_ALLOC_ZERO);
diff --git a/src/include/replication/logicallauncher.h b/src/include/replication/logicallauncher.h
index cfe3db1..e2aff3a 100644
--- a/src/include/replication/logicallauncher.h
+++ b/src/include/replication/logicallauncher.h
@@ -17,7 +17,7 @@ extern int max_logical_replication_workers;
 extern void ApplyLauncherRegister(void);
 extern void ApplyLauncherMain(Datum main_arg);
 
-extern Size ApplyLauncherShmemSize(void);
+extern size_t ApplyLauncherShmemSize(void);
 extern void ApplyLauncherShmemInit(void);
 
 extern void ApplyLauncherWakeup(void);
diff --git a/src/include/utils/backend_random.h b/src/include/utils/backend_random.h
index 31602f2..aadeba0 100644
--- a/src/include/utils/backend_random.h
+++ b/src/include/utils/backend_random.h
@@ -12,7 +12,7 @@
 #ifndef BACKEND_RANDOM_H
 #define BACKEND_RANDOM_H
 
-extern Size BackendRandomShmemSize(void);
+extern size_t BackendRandomShmemSize(void);
 extern void BackendRandomShmemInit(void);
 extern bool pg_backend_random(char *dst, int len);
 
diff --git a/src/include/utils/dsa.h b/src/include/utils/dsa.h
index f084443..a40a8ee 100644
--- a/src/include/utils/dsa.h
+++ b/src/include/utils/dsa.h
@@ -22,7 +22,7 @@ struct dsa_area;
 typedef struct dsa_area dsa_area;
 
 /*
- * If this system only uses a 32-bit value for Size, then use the 32-bit
+ * If this system only uses a 32-bit value for size_t, then use the 32-bit
  * implementation of DSA.  This limits the amount of DSA that can be created
  * to something significantly less than the entire 4GB address space because
  * the DSA pointer must encode both a segment identifier and an offset, but
@@ -102,7 +102,7 @@ typedef dsm_handle dsa_handle;
 extern void dsa_startup(void);
 
 extern dsa_area *dsa_create(int tranche_id);
-extern dsa_area *dsa_create_in_place(void *place, Size size,
+extern dsa_area *dsa_create_in_place(void *place, size_t size,
 					int tranche_id, dsm_segment *segment);
 extern dsa_area *dsa_attach(dsa_handle handle);
 extern dsa_area *dsa_attach_in_place(void *place, dsm_segment *segment);
@@ -113,10 +113,10 @@ extern void dsa_pin_mapping(dsa_area *area);
 extern void dsa_detach(dsa_area *area);
 extern void dsa_pin(dsa_area *area);
 extern void dsa_unpin(dsa_area *area);
-extern void dsa_set_size_limit(dsa_area *area, Size limit);
-extern Size dsa_minimum_size(void);
+extern void dsa_set_size_limit(dsa_area *area, size_t limit);
+extern size_t dsa_minimum_size(void);
 extern dsa_handle dsa_get_handle(dsa_area *area);
-extern dsa_pointer dsa_allocate_extended(dsa_area *area, Size size, int flags);
+extern dsa_pointer dsa_allocate_extended(dsa_area *area, size_t size, int flags);
 extern void dsa_free(dsa_area *area, dsa_pointer dp);
 extern void *dsa_get_address(dsa_area *area, dsa_pointer dp);
 extern void dsa_trim(dsa_area *area);
diff --git a/src/include/utils/freepage.h b/src/include/utils/freepage.h
index 78caa53..7ce8a0f 100644
--- a/src/include/utils/freepage.h
+++ b/src/include/utils/freepage.h
@@ -52,23 +52,23 @@ struct FreePageManager
 	RelptrFreePageSpanLeader btree_recycle;
 	unsigned	btree_depth;
 	unsigned	btree_recycle_count;
-	Size		singleton_first_page;
-	Size		singleton_npages;
-	Size		contiguous_pages;
+	size_t		singleton_first_page;
+	size_t		singleton_npages;
+	size_t		contiguous_pages;
 	bool		contiguous_pages_dirty;
 	RelptrFreePageSpanLeader freelist[FPM_NUM_FREELISTS];
 #ifdef FPM_EXTRA_ASSERTS
 	/* For debugging only, pages put minus pages gotten. */
-	Size		free_pages;
+	size_t		free_pages;
 #endif
 };
 
-/* Macros to convert between page numbers (expressed as Size) and pointers. */
+/* Macros to convert between page numbers (expressed as size_t) and pointers. */
 #define fpm_page_to_pointer(base, page) \
-	(AssertVariableIsOfTypeMacro(page, Size), \
+	(AssertVariableIsOfTypeMacro(page, size_t), \
 	 (base) + FPM_PAGE_SIZE * (page))
 #define fpm_pointer_to_page(base, ptr)		\
-	(((Size) (((char *) (ptr)) - (base))) / FPM_PAGE_SIZE)
+	(((size_t) (((char *) (ptr)) - (base))) / FPM_PAGE_SIZE)
 
 /* Macro to convert an allocation size to a number of pages. */
 #define fpm_size_to_pages(sz) \
@@ -76,7 +76,7 @@ struct FreePageManager
 
 /* Macros to check alignment of absolute and relative pointers. */
 #define fpm_pointer_is_page_aligned(base, ptr)		\
-	(((Size) (((char *) (ptr)) - (base))) % FPM_PAGE_SIZE == 0)
+	(((size_t) (((char *) (ptr)) - (base))) % FPM_PAGE_SIZE == 0)
 #define fpm_relptr_is_page_aligned(base, relptr)		\
 	((relptr).relptr_off % FPM_PAGE_SIZE == 0)
 
@@ -90,10 +90,10 @@ struct FreePageManager
 
 /* Functions to manipulate the free page map. */
 extern void FreePageManagerInitialize(FreePageManager *fpm, char *base);
-extern bool FreePageManagerGet(FreePageManager *fpm, Size npages,
-				   Size *first_page);
-extern void FreePageManagerPut(FreePageManager *fpm, Size first_page,
-				   Size npages);
+extern bool FreePageManagerGet(FreePageManager *fpm, size_t npages,
+				   size_t *first_page);
+extern void FreePageManagerPut(FreePageManager *fpm, size_t first_page,
+				   size_t npages);
 extern char *FreePageManagerDump(FreePageManager *fpm);
 
 #endif   /* FREEPAGE_H */
diff --git a/src/include/utils/relptr.h b/src/include/utils/relptr.h
index 1e5e622..322607a 100644
--- a/src/include/utils/relptr.h
+++ b/src/include/utils/relptr.h
@@ -22,11 +22,11 @@
  * The idea here is that you declare a relative pointer as relptr(type)
  * and then use relptr_access to dereference it and relptr_store to change
  * it.  The use of a union here is a hack, because what's stored in the
- * relptr is always a Size, never an actual pointer.  But including a pointer
+ * relptr is always a size_t, never an actual pointer.  But including a pointer
  * in the union allows us to use stupid macro tricks to provide some measure
  * of type-safety.
  */
-#define relptr(type)	 union { type *relptr_type; Size relptr_off; }
+#define relptr(type)	 union { type *relptr_type; size_t relptr_off; }
 
 /*
  * pgindent gets confused by declarations that use "relptr(type)" directly,
#9Tom Lane
tgl@sss.pgh.pa.us
In reply to: Thomas Munro (#8)
Re: Size vs size_t

Thomas Munro <thomas.munro@enterprisedb.com> writes:

Naive replacement in new files (present in master but not in 9.6) with
the attached script, followed by a couple of manual corrections where
Size was really an English word in a comment, gets the attached diff.

In the case of mmgr/slab.c, a lot of those uses of Size probably
correspond to instantiations of the MemoryContext APIs; so blindly
changing them to "size_t" seems like a bit of a type violation
(and might indeed draw warnings from pickier compilers). Don't
know if any of the other things you've identified here have similar
entanglements.

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#10Daniel Gustafsson
daniel@yesql.se
In reply to: Tom Lane (#9)
Re: Size vs size_t

On 16 Mar 2017, at 23:20, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Thomas Munro <thomas.munro@enterprisedb.com> writes:

Naive replacement in new files (present in master but not in 9.6) with
the attached script, followed by a couple of manual corrections where
Size was really an English word in a comment, gets the attached diff.

In the case of mmgr/slab.c, a lot of those uses of Size probably
correspond to instantiations of the MemoryContext APIs; so blindly
changing them to "size_t" seems like a bit of a type violation
(and might indeed draw warnings from pickier compilers). Don't
know if any of the other things you've identified here have similar
entanglements.

While it might not be an issue that hits many developers, Size is also defined
on macOS in the MacTypes.h header so using CoreFoundation when hacking on macOS
port code will cause typedef redefinition errors.

Not really a case for or against, but another datapoint.

cheers ./daniel

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers