tag:blogger.com,1999:blog-200386722024-03-14T03:47:27.129-04:00Robert HaasVP, Chief Database Scientist @ EnterpriseDB, PostgreSQL Major Contributor and CommitterRobert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.comBlogger168125tag:blogger.com,1999:blog-20038672.post-89370553197744738792024-01-29T11:40:00.000-05:002024-01-29T11:40:07.967-05:00Who Contributed to PostgreSQL Development in 2023?<p>As in previous years, I've pulled together a few statistics on code contributions to PostgreSQL. See <a href="http://rhaas.blogspot.com/search/label/contributions" target="_blank">previous posts in this series</a> for methodology and caveats. I calculate that, in 2023, there were 221 people who were the principal author of at least one PostgreSQL commit. 66% of the new lines of code were contributed by one of 18 people, and 90% of the new lines of code were contributed by one of 50 people. Here they are. Asterisks indicate non-committers.</p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>#<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>author<span class="Apple-converted-space"> </span>| lines | pct_lines | commits<span class="Apple-converted-space"> </span></span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">----+----------------------------------+-------+-----------+---------</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1 | Tom Lane <span class="Apple-converted-space"> </span>| 15686 |<span class="Apple-converted-space"> </span>9.27 | <span class="Apple-converted-space"> </span>225</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>2 | Robert Haas<span class="Apple-converted-space"> </span>| 12272 |<span class="Apple-converted-space"> </span>7.25 |<span class="Apple-converted-space"> </span>42</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>3 | Jeff Davis <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>9035 |<span class="Apple-converted-space"> </span>5.34 |<span class="Apple-converted-space"> </span>61</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>4 | Alvaro Herrera <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>8750 |<span class="Apple-converted-space"> </span>5.17 |<span class="Apple-converted-space"> </span>51</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>5 | Peter Eisentraut <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>8301 |<span class="Apple-converted-space"> </span>4.91 | <span class="Apple-converted-space"> </span>240</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>6 | Michael Paquier<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>7404 |<span class="Apple-converted-space"> </span>4.38 | <span class="Apple-converted-space"> </span>111</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>7 | Nikita Glukhov [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6880 |<span class="Apple-converted-space"> </span>4.07 | <span class="Apple-converted-space"> </span>3</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>8 | Andres Freund<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6510 |<span class="Apple-converted-space"> </span>3.85 | <span class="Apple-converted-space"> </span>114</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>9 | Hou Zhijie [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4956 |<span class="Apple-converted-space"> </span>2.93 |<span class="Apple-converted-space"> </span>24</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>10 | Heikki Linnakangas <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4389 |<span class="Apple-converted-space"> </span>2.59 |<span class="Apple-converted-space"> </span>48</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>11 | Bruce Momjian<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4259 |<span class="Apple-converted-space"> </span>2.52 |<span class="Apple-converted-space"> </span>95</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>12 | Melanie Plageman [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4220 |<span class="Apple-converted-space"> </span>2.49 |<span class="Apple-converted-space"> </span>44</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>13 | Nathan Bossart <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3982 |<span class="Apple-converted-space"> </span>2.35 |<span class="Apple-converted-space"> </span>69</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>14 | David Rowley <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3923 |<span class="Apple-converted-space"> </span>2.32 |<span class="Apple-converted-space"> </span>65</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>15 | Thomas Munro <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3731 |<span class="Apple-converted-space"> </span>2.21 |<span class="Apple-converted-space"> </span>83</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>16 | Bertrand Drouvot [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3398 |<span class="Apple-converted-space"> </span>2.01 |<span class="Apple-converted-space"> </span>33</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>17 | Joseph Koshakow [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2893 |<span class="Apple-converted-space"> </span>1.71 | <span class="Apple-converted-space"> </span>9</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>18 | Tomas Vondra <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2481 |<span class="Apple-converted-space"> </span>1.47 |<span class="Apple-converted-space"> </span>29</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>19 | Georgios Kokolatos [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2464 |<span class="Apple-converted-space"> </span>1.46 | <span class="Apple-converted-space"> </span>7</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>20 | Andrey Lepikhov [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2455 |<span class="Apple-converted-space"> </span>1.45 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>21 | Dean Rasheed <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2382 |<span class="Apple-converted-space"> </span>1.41 |<span class="Apple-converted-space"> </span>23</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>22 | Amit Langote <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2117 |<span class="Apple-converted-space"> </span>1.25 |<span class="Apple-converted-space"> </span>27</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>23 | Pavel Stehule<span class="Apple-converted-space"> </span>[*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1879 |<span class="Apple-converted-space"> </span>1.11 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>24 | Bharath Rupireddy [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1825 |<span class="Apple-converted-space"> </span>1.08 |<span class="Apple-converted-space"> </span>36</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>25 | Richard Guo [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1710 |<span class="Apple-converted-space"> </span>1.01 |<span class="Apple-converted-space"> </span>40</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>26 | Daniel Gustafsson<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1652 |<span class="Apple-converted-space"> </span>0.98 |<span class="Apple-converted-space"> </span>47</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>27 | Juan Jose Santamaria Flecha<span class="Apple-converted-space"> </span>[*] |<span class="Apple-converted-space"> </span>1650 |<span class="Apple-converted-space"> </span>0.98 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>28 | Brar Piening [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1512 |<span class="Apple-converted-space"> </span>0.89 | <span class="Apple-converted-space"> </span>3</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>29 | Peter Geoghegan<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1471 |<span class="Apple-converted-space"> </span>0.87 |<span class="Apple-converted-space"> </span>39</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>30 | Hayato Kuroda [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1410 |<span class="Apple-converted-space"> </span>0.83 |<span class="Apple-converted-space"> </span>18</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>31 | Dag Lem [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1315 |<span class="Apple-converted-space"> </span>0.78 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>32 | Jacob Champion [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1287 |<span class="Apple-converted-space"> </span>0.76 |<span class="Apple-converted-space"> </span>10</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>33 | Jelte Fennema [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1205 |<span class="Apple-converted-space"> </span>0.71 |<span class="Apple-converted-space"> </span>11</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>34 | Justin Pryzby [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1018 |<span class="Apple-converted-space"> </span>0.60 |<span class="Apple-converted-space"> </span>13</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>35 | Alexander Korotkov <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>975 |<span class="Apple-converted-space"> </span>0.58 |<span class="Apple-converted-space"> </span>27</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>36 | Jim Jones [*]<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>941 |<span class="Apple-converted-space"> </span>0.56 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>37 | Stephen Frost<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>875 |<span class="Apple-converted-space"> </span>0.52 | <span class="Apple-converted-space"> </span>8</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>38 | Tommy Pavlicek [*] <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>866 |<span class="Apple-converted-space"> </span>0.51 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>39 | Onder Kalaci [*] <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>852 |<span class="Apple-converted-space"> </span>0.50 | <span class="Apple-converted-space"> </span>4</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>40 | Anastasia Lubennikova [*]<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>830 |<span class="Apple-converted-space"> </span>0.49 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>41 | Masahiro Ikeda [*] <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>780 |<span class="Apple-converted-space"> </span>0.46 | <span class="Apple-converted-space"> </span>9</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>42 | Andrei Zubkov [*]<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>749 |<span class="Apple-converted-space"> </span>0.44 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>43 | Alexander Pyhalov [*]<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>725 |<span class="Apple-converted-space"> </span>0.43 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>44 | Matthias van de Meent [*]<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>716 |<span class="Apple-converted-space"> </span>0.42 | <span class="Apple-converted-space"> </span>7</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>45 | Alexander Lakhin [*] <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>695 |<span class="Apple-converted-space"> </span>0.41 |<span class="Apple-converted-space"> </span>22</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>46 | Andrew Dunstan <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>686 |<span class="Apple-converted-space"> </span>0.41 |<span class="Apple-converted-space"> </span>20</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>47 | John Naylor<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>653 |<span class="Apple-converted-space"> </span>0.39 | <span class="Apple-converted-space"> </span>9</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>48 | Konstantin Knizhnik [*]<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>644 |<span class="Apple-converted-space"> </span>0.38 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>49 | Maxim Orlov [*]<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>635 |<span class="Apple-converted-space"> </span>0.38 | <span class="Apple-converted-space"> </span>5</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>50 | Vignesh C [*]<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>626 |<span class="Apple-converted-space"> </span>0.37 |<span class="Apple-converted-space"> </span>14</span></p><p>As usual, I'm also interested in which committers did the most work to commit patches for which they themselves were not the principal author. Here's how that looked in 2023.</p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>#<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>committer<span class="Apple-converted-space"> </span>| lines | pct_lines | commits<span class="Apple-converted-space"> </span></span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">----+--------------------+-------+-----------+---------</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1 | Tom Lane <span class="Apple-converted-space"> </span>| 13527 | <span class="Apple-converted-space"> </span>18.24 | <span class="Apple-converted-space"> </span>113</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>2 | Michael Paquier<span class="Apple-converted-space"> </span>| 10959 | <span class="Apple-converted-space"> </span>14.78 | <span class="Apple-converted-space"> </span>209</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>3 | Amit Kapila<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>9119 | <span class="Apple-converted-space"> </span>12.30 |<span class="Apple-converted-space"> </span>78</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>4 | Alexander Korotkov |<span class="Apple-converted-space"> </span>6448 |<span class="Apple-converted-space"> </span>8.70 |<span class="Apple-converted-space"> </span>26</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>5 | Alvaro Herrera <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5850 |<span class="Apple-converted-space"> </span>7.89 |<span class="Apple-converted-space"> </span>18</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>6 | Tomas Vondra <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4265 |<span class="Apple-converted-space"> </span>5.75 |<span class="Apple-converted-space"> </span>18</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>7 | Andres Freund<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4239 |<span class="Apple-converted-space"> </span>5.72 |<span class="Apple-converted-space"> </span>40</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>8 | Daniel Gustafsson<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4228 |<span class="Apple-converted-space"> </span>5.70 |<span class="Apple-converted-space"> </span>55</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>9 | Dean Rasheed <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3571 |<span class="Apple-converted-space"> </span>4.82 | <span class="Apple-converted-space"> </span>9</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>10 | Peter Eisentraut <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2948 |<span class="Apple-converted-space"> </span>3.98 |<span class="Apple-converted-space"> </span>45</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>11 | David Rowley <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1914 |<span class="Apple-converted-space"> </span>2.58 |<span class="Apple-converted-space"> </span>41</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>12 | Amit Langote <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1398 |<span class="Apple-converted-space"> </span>1.89 | <span class="Apple-converted-space"> </span>3</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>13 | Andrew Dunstan <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1021 |<span class="Apple-converted-space"> </span>1.38 |<span class="Apple-converted-space"> </span>10</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>14 | Robert Haas<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1007 |<span class="Apple-converted-space"> </span>1.36 |<span class="Apple-converted-space"> </span>15</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>15 | Masahiko Sawada<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>904 |<span class="Apple-converted-space"> </span>1.22 | <span class="Apple-converted-space"> </span>7</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>16 | Nathan Bossart <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>600 |<span class="Apple-converted-space"> </span>0.81 |<span class="Apple-converted-space"> </span>19</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>17 | Thomas Munro <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>497 |<span class="Apple-converted-space"> </span>0.67 |<span class="Apple-converted-space"> </span>10</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>18 | Peter Geoghegan<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>455 |<span class="Apple-converted-space"> </span>0.61 | <span class="Apple-converted-space"> </span>7</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>19 | John Naylor<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>234 |<span class="Apple-converted-space"> </span>0.32 | <span class="Apple-converted-space"> </span>6</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>20 | Bruce Momjian<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>221 |<span class="Apple-converted-space"> </span>0.30 |<span class="Apple-converted-space"> </span>26</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>21 | Noah Misch <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>212 |<span class="Apple-converted-space"> </span>0.29 | <span class="Apple-converted-space"> </span>5</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>22 | Heikki Linnakangas | <span class="Apple-converted-space"> </span>208 |<span class="Apple-converted-space"> </span>0.28 |<span class="Apple-converted-space"> </span>13</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>23 | Tatsuo Ishii <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>121 |<span class="Apple-converted-space"> </span>0.16 | <span class="Apple-converted-space"> </span>3</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>24 | Jeff Davis <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>98 |<span class="Apple-converted-space"> </span>0.13 | <span class="Apple-converted-space"> </span>9</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>25 | Etsuro Fujita<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>94 |<span class="Apple-converted-space"> </span>0.13 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>26 | Stephen Frost<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>7 |<span class="Apple-converted-space"> </span>0.01 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>27 | Fujii Masao<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>1 |<span class="Apple-converted-space"> </span>0.00 | <span class="Apple-converted-space"> </span>1</span></p><p>Finally, here are people who sent at least 100 emails to pgsql-hackers in 2023.</p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>count | <span class="Apple-converted-space"> </span>name <span class="Apple-converted-space"> </span></span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">-------+-----------------------</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1772 | Tom Lane</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1690 | Andres Freund</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1508 | Michael Paquier</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1020 | Nathan Bossart</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>988 | Amit Kapila</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>793 | Peter Eisentraut</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>775 | Robert Haas</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>558 | Tomas Vondra</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>528 | Thomas Munro</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>520 | Daniel Gustafsson</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>516 | Alvaro Herrera</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>510 | Peter Geoghegan</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>500 | Jeff Davis</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>463 | Peter Smith</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>416 | David Rowley</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>402 | Andrew Dunstan</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>384 | Bertrand Drouvot</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>382 | Hayato Kuroda</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>372 | Bruce Momjian</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>340 | Justin Pryzby</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>337 | Masahiko Sawada</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>320 | Vignesh C</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>319 | Kyotaro Horiguchi</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>316 | Bharath Rupireddy</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>294 | Pavel Stehule</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>281 | Richard Guo</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>263 | Ashutosh Bapat</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>259 | Melanie Plageman</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>253 | John Naylor</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>243 | Aleksander Alekseev</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>226 | Matthias Van De Meent</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>212 | Heikki Linnakangas</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>208 | Zhijie Hou</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>206 | Jian He</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>203 | Tristan Partin</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>197 | Shveta Malik</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>184 | Jacob Champion</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>178 | Amit Langote</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>177 | Laurenz Albe</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>163 | Jelte Fennema</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>161 | David G. Johnston</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>160 | Dean Rasheed</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>154 | Dilip Kumar</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>148 | Tatsuo Ishii</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>144 | Stephen Frost</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>144 | Jonathan S. Katz</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>142 | Alexander Korotkov</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>131 | Karl O. Pinc</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>124 | Julien Rouhaud</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>124 | Alexander Lakhin</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>115 | Noah Misch</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>113 | Joe Conway</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>101 | Vik Fearing</span></p><p class="p1" style="font-family: Menlo; font-feature-settings: normal; font-kerning: auto; font-optical-sizing: auto; font-size: 11px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>100 | Gurjeet Singh</span></p><p>As always, it's important to keep in mind that there are many important contributions to the PostgreSQL project other than development, and that these statistics don't even fully or entirely accurately capture the work that goes into development. I present this just as an aid to understanding some of what goes on in the development community, not in any way the last word.</p>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com0tag:blogger.com,1999:blog-20038672.post-53782728016203206302024-01-09T11:28:00.000-05:002024-01-09T11:28:33.342-05:00Incremental Backups: Evergreen and Other Use Cases<p>As of this writing, I know of three ways to make use of the incremental backup feature that I committed near the end of last month. I'll be interested to see how people deploy in practice. The first idea is to replace some of the full backups you're currently doing with incremental backups, saving backup time and network transfer. The second idea is to do just as many full backups as you do now, but add incremental backups between them, so that if you need to do PITR, you can use <span style="font-family: courier;">pg_combinebackup</span> to reach the latest incremental backup before the point to which you want to recover, reducing the amount of WAL that you need to replay, and probably speeding up the process quite a bit. The third idea is to give up on taking full backups altogether and only ever take incremental backups.</p><span></span><a href="http://rhaas.blogspot.com/2024/01/incremental-backups-evergreen-and-other.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com2tag:blogger.com,1999:blog-20038672.post-3408956673831532002024-01-03T12:28:00.000-05:002024-01-03T12:28:53.051-05:00Incremental Backup: What To Copy?<p>Five days before Christmas I committed my patch to add incremental backup to PostgreSQL. Actually, I've been committing preparatory patches for some months now, but December 20 saw the two main patches land. Since then, there's been a bunch of bug-fix commits, and there are still a few pending items that need to be addressed, but the core of the feature is now committed. If you want a quick overview of the feature, <a href="https://pganalyze.com/blog/5mins-postgres-17-incremental-backups" target="_blank">Lukas Fittl has a great video about that</a>. Here, I'd like to talk about the architecture of the feature itself in a little more detail, and specifically with how we decide which data to copy.<span></span></p><a href="http://rhaas.blogspot.com/2024/01/incremental-backup-what-to-copy.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com3tag:blogger.com,1999:blog-20038672.post-84355579965602092152023-12-20T13:05:00.000-05:002023-12-20T13:05:15.738-05:00Praise, Criticism, and DialogueWhen my children were little and I was trying to figure out how to be a parent, I read someplace that you need to have five positive interactions with your child for each negative one to maintain a good relationship. I don't know whether that is fact or myth; a quick Google search suggests that the origin of the idea was in a study about how married couples argue, the idea being that in a good marriage, positive things continue to happen even amidst disagreement. It's wise to be wary about applying a number discovered in a very specific context more generally, but there's a compelling idea here: positive interactions build us up, and negative ones break us down, regardless of whether we're talking about a spouse, a child, or, say, the PostgreSQL community. Too many negative interactions and we just feel like giving up.<span></span><a href="http://rhaas.blogspot.com/2023/12/praise-criticism-and-dialogue.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com13tag:blogger.com,1999:blog-20038672.post-14080250529001225512023-06-14T10:14:00.000-04:002023-06-14T10:14:32.326-04:00The PostgreSQL Documentation and the Limitations of Community<p>In my opinion, the PostgreSQL documentation is simultaneously excellent and fairly poor, and both its excellence and its shortcomings are direct results of the process by which the documentation is produced. The PostgreSQL documentation is stored in the same git repository as the source code, and anyone who patches the source code so as to change documented behavior must also patch the documentation to match.<span></span></p><a href="http://rhaas.blogspot.com/2023/06/the-postgresql-documentation-and.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com2tag:blogger.com,1999:blog-20038672.post-57469936477132960172023-05-25T15:46:00.001-04:002023-05-25T15:46:46.110-04:00Do I Really Need That backup_label File?<p>I'm sure you already know what I'm going to tell you: "<i>Of course</i> you need that <span style="font-family: courier;">backup_label</span> file. How could you even <i>think</i> that you don't need that <span style="font-family: courier;">backup_label</span> file?" Well, you're right. That is what I'm going to say. But do you know <i>why</i> you need that <span style="font-family: courier;">backup_label</span> file? If you were to remove that <span style="font-family: courier;">backup_label</span> file (or fail to create in the first place, in cases where that is your responsibility), what exactly is the bad thing that would happen to you?<span></span></p><a href="http://rhaas.blogspot.com/2023/05/do-i-really-need-that-backuplabel-file.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com2tag:blogger.com,1999:blog-20038672.post-81754975717823353082023-04-14T14:21:00.002-04:002023-04-14T14:31:23.359-04:00Who Contributed to PostgreSQL Development in 2022?<p>As in previous years, I've pulled together a few statistics on code contributions to PostgreSQL. See <a href="http://rhaas.blogspot.com/search/label/contributions" target="_blank">previous posts in this series</a> for methodology and caveats. I calculate that, in 2022, there were 192 people who were the principal author of at least one PostgreSQL commit. 66% of the new lines of code were contributed by one of 14 people, and 90% of the new lines of code were contributed by one of 40 people. Here they are. Asterisks indicate non-committers.<span></span></p><a href="http://rhaas.blogspot.com/2023/04/who-contributed-to-postgresql.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com0tag:blogger.com,1999:blog-20038672.post-70463035173264676362023-04-10T11:14:00.000-04:002023-04-10T11:14:36.389-04:00Updating the Cost Limit On The Fly<p>Rejoice and be glad! I was so pleased this morning to see that <a href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=7d71d3dd080b9b147402db3365fe498f74704231" target="_blank">Melanie Plageman's patch to make autovacuum absorb new cost limit settings more quickly</a> was committed by Daniel Gustafsson while I was busy enjoying a long Easter weekend. It's a minor change in the grand scheme of things, but there's a reasonably common situation where it's going to make life a lot easier.<span></span></p><a href="http://rhaas.blogspot.com/2023/04/updating-cost-limit-on-fly.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com0tag:blogger.com,1999:blog-20038672.post-61183278795411795502023-04-04T13:24:00.000-04:002023-04-04T13:24:11.636-04:00Assigning Blame For PostgreSQL Errors<p>If an error message shows up in the PostgreSQL log, what program is malfunctioning? It's easy to conclude that the answer is PostgreSQL, but that's too simplistic.<span></span></p><a href="http://rhaas.blogspot.com/2023/04/assigning-blame-for-postgresql-errors.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com0tag:blogger.com,1999:blog-20038672.post-16168935231808627622023-01-24T13:27:00.000-05:002023-01-24T13:27:09.382-05:00Surviving Without A Superuser - Coming to v16As <a href="https://rhaas.blogspot.com/2020/12/cve-2019-9193.html" target="_blank">I've written about before</a>, a PostgreSQL superuser always has the ability to take over the operating system account in which PostgreSQL is running, but <a href="https://rhaas.blogspot.com/2021/12/surviving-without-superuser-part-one.html" target="_blank">sometimes you'd like</a> to <a href="https://rhaas.blogspot.com/2022/01/surviving-without-superuser-part-two.html" target="_blank">have a role</a> that can administer the database but not break out of it. In existing releases, there's no good way to accomplish that. You can either make a new role so weak that it can't perform ordinary administration tasks, or you can make it so strong that it can easily break into the operating system account and thus take over the superuser role as well. Unless you hack the source code, which some people have done, there's no real way to set up an account that has enough power to usefully administer the database in meaningful ways but yet not enough power to take over everything. I've committed a number of patches to v16 to try to improve the situation, and I think that we can look forward to big improvements in this area once it is released.<span></span><a href="http://rhaas.blogspot.com/2023/01/surviving-without-superuser-coming-to.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com7tag:blogger.com,1999:blog-20038672.post-16031526227576283172022-11-04T08:31:00.003-04:002022-11-04T08:31:24.468-04:00pg_basebackup could not set compression worker count - unsupported parameter<a href="https://www.postgresql.org/about/news/postgresql-15-released-2526/" target="_blank">PostgreSQL 15</a> hasn't been released for very long, but some people have already been confused by the following error message:<div><br></div><div><span style="font-family: courier;">pg_basebackup: error: could not initiate base backup: ERROR: could not set compression worker count to 4: Unsupported parameter<span></span></span></div><a href="http://rhaas.blogspot.com/2022/11/pgbasebackup-could-not-set-compression.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com0tag:blogger.com,1999:blog-20038672.post-27705191958542855892022-05-02T14:27:00.005-04:002022-05-04T07:52:24.750-04:00Parallel Server-Side Backup Compression<p>I decided to do a little more research on the performance of server-side backup compression, which will be a new feature in PostgreSQL 15 unless, for some reason, the changes need to be reverted prior to release time. The network link I used for <a href="https://rhaas.blogspot.com/2022/02/server-side-lz4-backup-compression.html" target="_blank">my previous testing</a> was, as I mentioned, rather slow, and handicapped by both a VPN link and an SSH tunnel. Furthermore, I was testing using pgbench data, which is extremely compressible. In addition, at the time I did those tests, we had added support for LZ4 compression, but we had not yet added support for Zstandard compression. Now, however, we not only have Zstandard as an option, but it is possible to use the library's multi-threading capabilities. So, I wanted to find out how things would work out on a faster network link, with a better test data set, and with all the compression algorithms that we now have available.</p><span></span><a href="http://rhaas.blogspot.com/2022/05/parallel-server-side-backup-compression.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com3tag:blogger.com,1999:blog-20038672.post-12522700648197811642022-02-11T12:12:00.001-05:002022-05-02T14:28:06.403-04:00Server-Side LZ4 Backup Compression<p>I have been working with my colleagues Tushar Ahuja, Jeevan Ladhe, and Dipesh Pandit to make some improvements to pg_basebackup for version 15. A lot of that work has felt a bit like boring but necessary refactoring, and it's easy to find yourself wondering whether it will really do anybody any good. I was feeling optimistic after today's commits, so I decide to give it a try.</p><span></span><a href="http://rhaas.blogspot.com/2022/02/server-side-lz4-backup-compression.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com3tag:blogger.com,1999:blog-20038672.post-47088390135739351562022-01-18T08:00:00.002-05:002023-01-24T11:12:22.287-05:00Surviving Without A Superuser - Part Two<p>If PostgreSQL <a href="https://rhaas.blogspot.com/2021/12/surviving-without-superuser-part-one.html" target="_blank">had the ability to give to a privileged non-superuser</a> the right to administer objects belonging to some designated group of superusers just as if the privileged account were superuser, it would get us much closer to a world in which the database can be effectively administered by a non-superuser. A highly privileged user - let's call him <span style="font-family: courier;">sauron</span> - could be given the right to administer tables, schemas, functions, procedures, and a variety of other objects owned by dependent users <span style="font-family: courier;">witchking</span> and <span style="font-family: courier;">khamul</span> just as if <span style="font-family: courier;">sauron</span> were superuser. <span style="font-family: courier;">sauron</span> might indeed feel himself to be virtually a superuser, at least within his own domain, as long as he didn't spend too much time thinking about the users over which he had not been given administrative rights. However, <span style="font-family: courier;">sauron</span> might notice a few irksome limitations.<span></span></p><a href="http://rhaas.blogspot.com/2022/01/surviving-without-superuser-part-two.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com2tag:blogger.com,1999:blog-20038672.post-66485152206998973332022-01-12T08:00:00.002-05:002022-01-12T08:00:00.223-05:00Who Contributed to PostgreSQL Development in 2020 and 2021?<p>I have done <a href="http://rhaas.blogspot.com/search/label/contributions" target="_blank">a few previous blog posts on who has contributed to PostgreSQL</a>, but I did not do one last year. A couple people mentioned to me that they missed it, so I decided to do one this year, and I decided to gather statistics, using basically the same methodology that I have in the past, for both 2020 and 2021. As always, it is important to remember, first, that many people contribute to the project in ways that these statistics don't capture, and second, that the statistics themselves are prone to mistakes (since there is a bunch of manual work involved) and bias (since each commit is attributed to the first author for lack of knowledge of the relative contributions of the various authors). As usual, I have <a href="https://sites.google.com/site/robertmhaas/contributions" target="_blank">posted a dump</a> of the database I used to generate this in case anyone wants to check it over for goofs or use it for any other purpose.</p><p>I calculate that there were 176 people who were the principal author of at least one PostgreSQL commit in 2020 and 182 such people in 2021. In 2020, 13 people contributed 66% of the lines of new code, and 35 people contributed 90% of the lines of new code. In 2021, these numbers were 14 and 41 respectively. In 2020, there were a total of 2181 commits from 26 committers, and in 2021, there were 2269 commits from 28 committers. In each year, about 5 committers committed about two thirds of the non-self-authored patches, with Tom Lane leading the pack in both years.</p><p>Here are the top 35 contributors by lines of new code contributed in 2020. Asterisks indicate non-committers. Note that some of these people are committers now but were not committers at the time.</p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>#<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>author <span class="Apple-converted-space"> </span>| lines | pct_lines | commits<span class="Apple-converted-space"> </span></span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">----+---------------------------+-------+-----------+---------</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1 | Tom Lane<span class="Apple-converted-space"> </span>| 65203 | <span class="Apple-converted-space"> </span>25.95 | <span class="Apple-converted-space"> </span>436</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>2 | Peter Eisentraut<span class="Apple-converted-space"> </span>| 28771 | <span class="Apple-converted-space"> </span>11.45 | <span class="Apple-converted-space"> </span>229</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>3 | Paul Jungwirth [*]<span class="Apple-converted-space"> </span>| 10723 |<span class="Apple-converted-space"> </span>4.27 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>4 | Heikki Linnakangas<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>8293 |<span class="Apple-converted-space"> </span>3.30 |<span class="Apple-converted-space"> </span>31</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>5 | Robert Haas <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>7831 |<span class="Apple-converted-space"> </span>3.12 |<span class="Apple-converted-space"> </span>37</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>6 | Tomas Vondra<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>7461 |<span class="Apple-converted-space"> </span>2.97 |<span class="Apple-converted-space"> </span>32</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>7 | Andres Freund <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6614 |<span class="Apple-converted-space"> </span>2.63 |<span class="Apple-converted-space"> </span>59</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>8 | John Naylor <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6060 |<span class="Apple-converted-space"> </span>2.41 |<span class="Apple-converted-space"> </span>14</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>9 | Michael Paquier <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5744 |<span class="Apple-converted-space"> </span>2.29 | <span class="Apple-converted-space"> </span>103</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>10 | Ashutosh Bapat [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5515 |<span class="Apple-converted-space"> </span>2.20 | <span class="Apple-converted-space"> </span>7</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>11 | Bruce Momjian <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5077 |<span class="Apple-converted-space"> </span>2.02 | <span class="Apple-converted-space"> </span>121</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>12 | Nikita Glukhov [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4982 |<span class="Apple-converted-space"> </span>1.98 | <span class="Apple-converted-space"> </span>7</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>13 | Thomas Munro<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4820 |<span class="Apple-converted-space"> </span>1.92 |<span class="Apple-converted-space"> </span>57</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>14 | James Coleman [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4798 |<span class="Apple-converted-space"> </span>1.91 |<span class="Apple-converted-space"> </span>16</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>15 | Mark Dilger [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4779 |<span class="Apple-converted-space"> </span>1.90 |<span class="Apple-converted-space"> </span>12</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>16 | Kyotaro Horiguchi [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4775 |<span class="Apple-converted-space"> </span>1.90 |<span class="Apple-converted-space"> </span>35</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>17 | Peter Geoghegan <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3696 |<span class="Apple-converted-space"> </span>1.47 | <span class="Apple-converted-space"> </span>109</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>18 | Amit Langote [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3650 |<span class="Apple-converted-space"> </span>1.45 |<span class="Apple-converted-space"> </span>28</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>19 | Anastasia Lubennikova [*] |<span class="Apple-converted-space"> </span>3611 |<span class="Apple-converted-space"> </span>1.44 | <span class="Apple-converted-space"> </span>4</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>20 | Jeff Davis<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3408 |<span class="Apple-converted-space"> </span>1.36 |<span class="Apple-converted-space"> </span>40</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>21 | Alvaro Herrera<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3073 |<span class="Apple-converted-space"> </span>1.22 |<span class="Apple-converted-space"> </span>75</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>22 | Pavel Stehule [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2752 |<span class="Apple-converted-space"> </span>1.10 | <span class="Apple-converted-space"> </span>4</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>23 | Julien Rouhaud [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2656 |<span class="Apple-converted-space"> </span>1.06 |<span class="Apple-converted-space"> </span>19</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>24 | Alexander Korotkov<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2613 |<span class="Apple-converted-space"> </span>1.04 |<span class="Apple-converted-space"> </span>33</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>25 | Masahiko Sawada [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2540 |<span class="Apple-converted-space"> </span>1.01 |<span class="Apple-converted-space"> </span>20</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>26 | Dilip Kumar [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2306 |<span class="Apple-converted-space"> </span>0.92 |<span class="Apple-converted-space"> </span>15</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>27 | Justin Pryzby [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2222 |<span class="Apple-converted-space"> </span>0.88 |<span class="Apple-converted-space"> </span>53</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>28 | Fujii Masao <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2139 |<span class="Apple-converted-space"> </span>0.85 |<span class="Apple-converted-space"> </span>51</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>29 | Daniel Gustafsson <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1835 |<span class="Apple-converted-space"> </span>0.73 |<span class="Apple-converted-space"> </span>54</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>30 | Corey Huinker [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1777 |<span class="Apple-converted-space"> </span>0.71 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>31 | Dmitry Dolgov [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1628 |<span class="Apple-converted-space"> </span>0.65 | <span class="Apple-converted-space"> </span>3</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>32 | Dean Rasheed<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1512 |<span class="Apple-converted-space"> </span>0.60 | <span class="Apple-converted-space"> </span>9</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>33 | David Rowley<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1382 |<span class="Apple-converted-space"> </span>0.55 |<span class="Apple-converted-space"> </span>35</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>34 | Vik Fearing [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1285 |<span class="Apple-converted-space"> </span>0.51 | <span class="Apple-converted-space"> </span>5</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>35 | Karl Pinc [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1278 |<span class="Apple-converted-space"> </span>0.51 | <span class="Apple-converted-space"> </span>1</span></p><p>And here are the top 41 contributors by lines of new code contributed in 2021.</p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>#<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>?column? <span class="Apple-converted-space"> </span>| lines | pct_lines | commits<span class="Apple-converted-space"> </span></span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">----+------------------------------+-------+-----------+---------</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1 | Tom Lane <span class="Apple-converted-space"> </span>| 66210 | <span class="Apple-converted-space"> </span>26.09 | <span class="Apple-converted-space"> </span>438</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>2 | Tomas Vondra <span class="Apple-converted-space"> </span>| 15357 |<span class="Apple-converted-space"> </span>6.05 |<span class="Apple-converted-space"> </span>50</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>3 | Dagfinn Ilmari Mannsåker [*] | 14715 |<span class="Apple-converted-space"> </span>5.80 |<span class="Apple-converted-space"> </span>10</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>4 | Peter Eisentraut <span class="Apple-converted-space"> </span>| 12976 |<span class="Apple-converted-space"> </span>5.11 | <span class="Apple-converted-space"> </span>214</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>5 | Robert Haas<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>7035 |<span class="Apple-converted-space"> </span>2.77 |<span class="Apple-converted-space"> </span>46</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>6 | Bruce Momjian<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>7010 |<span class="Apple-converted-space"> </span>2.76 |<span class="Apple-converted-space"> </span>58</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>7 | Peter Geoghegan<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6889 |<span class="Apple-converted-space"> </span>2.71 |<span class="Apple-converted-space"> </span>91</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>8 | Amit Langote [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6859 |<span class="Apple-converted-space"> </span>2.70 |<span class="Apple-converted-space"> </span>24</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>9 | Heikki Linnakangas <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6706 |<span class="Apple-converted-space"> </span>2.64 |<span class="Apple-converted-space"> </span>38</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>10 | Mark Dilger [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6203 |<span class="Apple-converted-space"> </span>2.44 |<span class="Apple-converted-space"> </span>23</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>11 | David Rowley <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5848 |<span class="Apple-converted-space"> </span>2.30 |<span class="Apple-converted-space"> </span>50</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>12 | Alvaro Herrera <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5582 |<span class="Apple-converted-space"> </span>2.20 |<span class="Apple-converted-space"> </span>79</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>13 | Andres Freund<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5288 |<span class="Apple-converted-space"> </span>2.08 |<span class="Apple-converted-space"> </span>53</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>14 | Michael Paquier<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5057 |<span class="Apple-converted-space"> </span>1.99 | <span class="Apple-converted-space"> </span>127</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>15 | Thomas Munro <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4356 |<span class="Apple-converted-space"> </span>1.72 |<span class="Apple-converted-space"> </span>78</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>16 | Peter Smith [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4194 |<span class="Apple-converted-space"> </span>1.65 |<span class="Apple-converted-space"> </span>29</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>17 | Vignesh C [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3886 |<span class="Apple-converted-space"> </span>1.53 |<span class="Apple-converted-space"> </span>19</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>18 | Dilip Kumar [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3496 |<span class="Apple-converted-space"> </span>1.38 |<span class="Apple-converted-space"> </span>19</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>19 | Craig Ringer [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3070 |<span class="Apple-converted-space"> </span>1.21 | <span class="Apple-converted-space"> </span>6</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>20 | Masahiko Sawada [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2879 |<span class="Apple-converted-space"> </span>1.13 |<span class="Apple-converted-space"> </span>32</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>21 | Andrew Dunstan <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2461 |<span class="Apple-converted-space"> </span>0.97 |<span class="Apple-converted-space"> </span>48</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>22 | Bharath Rupireddy [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2336 |<span class="Apple-converted-space"> </span>0.92 |<span class="Apple-converted-space"> </span>41</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>23 | Daniel Gustafsson<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2127 |<span class="Apple-converted-space"> </span>0.84 |<span class="Apple-converted-space"> </span>38</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>24 | Justin Pryzby [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2087 |<span class="Apple-converted-space"> </span>0.82 |<span class="Apple-converted-space"> </span>51</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>25 | Hayato Kuroda [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2080 |<span class="Apple-converted-space"> </span>0.82 | <span class="Apple-converted-space"> </span>5</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>26 | Ajin Cherian [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2021 |<span class="Apple-converted-space"> </span>0.80 |<span class="Apple-converted-space"> </span>10</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>27 | Kyotaro Horiguchi [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1896 |<span class="Apple-converted-space"> </span>0.75 |<span class="Apple-converted-space"> </span>28</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>28 | John Naylor<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1814 |<span class="Apple-converted-space"> </span>0.71 |<span class="Apple-converted-space"> </span>20</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>29 | Greg Nancarrow [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1745 |<span class="Apple-converted-space"> </span>0.69 |<span class="Apple-converted-space"> </span>12</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>30 | Julien Rouhaud [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1707 |<span class="Apple-converted-space"> </span>0.67 |<span class="Apple-converted-space"> </span>16</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>31 | Edmund Horner [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1654 |<span class="Apple-converted-space"> </span>0.65 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>32 | Noah Misch <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1605 |<span class="Apple-converted-space"> </span>0.63 |<span class="Apple-converted-space"> </span>30</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>33 | Dmitry Dolgov [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1536 |<span class="Apple-converted-space"> </span>0.61 | <span class="Apple-converted-space"> </span>3</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>34 | Amit Kapila<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1434 |<span class="Apple-converted-space"> </span>0.57 |<span class="Apple-converted-space"> </span>21</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>35 | Fabien Coelho [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1398 |<span class="Apple-converted-space"> </span>0.55 | <span class="Apple-converted-space"> </span>7</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>36 | Gilles Darold [*]<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1338 |<span class="Apple-converted-space"> </span>0.53 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>37 | Jacob Champion [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1247 |<span class="Apple-converted-space"> </span>0.49 | <span class="Apple-converted-space"> </span>7</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>38 | Andrey Borodin [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1224 |<span class="Apple-converted-space"> </span>0.48 | <span class="Apple-converted-space"> </span>6</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>39 | Dean Rasheed <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1131 |<span class="Apple-converted-space"> </span>0.45 |<span class="Apple-converted-space"> </span>12</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>40 | Nathan Bossart [*] <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1113 |<span class="Apple-converted-space"> </span>0.44 |<span class="Apple-converted-space"> </span>15</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>41 | Alexander Korotkov <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1049 |<span class="Apple-converted-space"> </span>0.41 |<span class="Apple-converted-space"> </span>17</span></p><p>Next let's look at which committers did the most work committing patches that they did not themselves write. Here is the data for 2020.</p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>#<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>committer<span class="Apple-converted-space"> </span>| lines | pct_lines | commits<span class="Apple-converted-space"> </span></span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">----+--------------------+-------+-----------+---------</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1 | Tom Lane <span class="Apple-converted-space"> </span>| 18728 | <span class="Apple-converted-space"> </span>19.25 | <span class="Apple-converted-space"> </span>132</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>2 | Alexander Korotkov | 17043 | <span class="Apple-converted-space"> </span>17.51 |<span class="Apple-converted-space"> </span>16</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>3 | Michael Paquier<span class="Apple-converted-space"> </span>| 11932 | <span class="Apple-converted-space"> </span>12.26 | <span class="Apple-converted-space"> </span>143</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>4 | Amit Kapila<span class="Apple-converted-space"> </span>| 10327 | <span class="Apple-converted-space"> </span>10.61 |<span class="Apple-converted-space"> </span>74</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>5 | Alvaro Herrera <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6442 |<span class="Apple-converted-space"> </span>6.62 |<span class="Apple-converted-space"> </span>51</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>6 | Etsuro Fujita<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5393 |<span class="Apple-converted-space"> </span>5.54 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>7 | Tomas Vondra <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>5008 |<span class="Apple-converted-space"> </span>5.15 |<span class="Apple-converted-space"> </span>17</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>8 | Peter Geoghegan<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3823 |<span class="Apple-converted-space"> </span>3.93 | <span class="Apple-converted-space"> </span>6</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>9 | Robert Haas<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3468 |<span class="Apple-converted-space"> </span>3.56 |<span class="Apple-converted-space"> </span>12</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>10 | Peter Eisentraut <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3051 |<span class="Apple-converted-space"> </span>3.14 |<span class="Apple-converted-space"> </span>32</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>11 | Noah Misch <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3046 |<span class="Apple-converted-space"> </span>3.13 | <span class="Apple-converted-space"> </span>5</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>12 | Fujii Masao<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2646 |<span class="Apple-converted-space"> </span>2.72 |<span class="Apple-converted-space"> </span>61</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>13 | Heikki Linnakangas |<span class="Apple-converted-space"> </span>1954 |<span class="Apple-converted-space"> </span>2.01 |<span class="Apple-converted-space"> </span>25</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>14 | Dean Rasheed <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1458 |<span class="Apple-converted-space"> </span>1.50 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>15 | David Rowley <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>583 |<span class="Apple-converted-space"> </span>0.60 | <span class="Apple-converted-space"> </span>8</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>16 | Andres Freund<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>516 |<span class="Apple-converted-space"> </span>0.53 | <span class="Apple-converted-space"> </span>6</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>17 | Thomas Munro <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>516 |<span class="Apple-converted-space"> </span>0.53 |<span class="Apple-converted-space"> </span>13</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>18 | Andrew Gierth<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>374 |<span class="Apple-converted-space"> </span>0.38 | <span class="Apple-converted-space"> </span>3</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>19 | Magnus Hagander<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>257 |<span class="Apple-converted-space"> </span>0.26 |<span class="Apple-converted-space"> </span>18</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>20 | Michael Meskes <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>201 |<span class="Apple-converted-space"> </span>0.21 | <span class="Apple-converted-space"> </span>1</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>21 | Bruce Momjian<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>182 |<span class="Apple-converted-space"> </span>0.19 |<span class="Apple-converted-space"> </span>12</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>22 | Stephen Frost<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>134 |<span class="Apple-converted-space"> </span>0.14 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>23 | Jeff Davis <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>130 |<span class="Apple-converted-space"> </span>0.13 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>24 | Andrew Dunstan <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>97 |<span class="Apple-converted-space"> </span>0.10 | <span class="Apple-converted-space"> </span>4</span></p><p>And here are the non-self-authored commits for 2021.</p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>#<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>committer<span class="Apple-converted-space"> </span>| lines | pct_lines | commits<span class="Apple-converted-space"> </span></span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">----+--------------------+-------+-----------+---------</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1 | Tom Lane <span class="Apple-converted-space"> </span>| 25692 | <span class="Apple-converted-space"> </span>26.83 | <span class="Apple-converted-space"> </span>111</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>2 | Amit Kapila<span class="Apple-converted-space"> </span>| 16269 | <span class="Apple-converted-space"> </span>16.99 | <span class="Apple-converted-space"> </span>105</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>3 | Robert Haas<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>8886 |<span class="Apple-converted-space"> </span>9.28 |<span class="Apple-converted-space"> </span>30</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>4 | Michael Paquier<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>8343 |<span class="Apple-converted-space"> </span>8.71 | <span class="Apple-converted-space"> </span>163</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>5 | Peter Eisentraut <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6787 |<span class="Apple-converted-space"> </span>7.09 |<span class="Apple-converted-space"> </span>35</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>6 | Alvaro Herrera <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>6103 |<span class="Apple-converted-space"> </span>6.37 |<span class="Apple-converted-space"> </span>44</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>7 | Fujii Masao<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>4379 |<span class="Apple-converted-space"> </span>4.57 |<span class="Apple-converted-space"> </span>70</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>8 | Tomas Vondra <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>3277 |<span class="Apple-converted-space"> </span>3.42 |<span class="Apple-converted-space"> </span>19</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>9 | David Rowley <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2807 |<span class="Apple-converted-space"> </span>2.93 |<span class="Apple-converted-space"> </span>20</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>10 | Etsuro Fujita<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>2216 |<span class="Apple-converted-space"> </span>2.31 | <span class="Apple-converted-space"> </span>5</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>11 | Michael Meskes <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1653 |<span class="Apple-converted-space"> </span>1.73 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>12 | Alexander Korotkov |<span class="Apple-converted-space"> </span>1540 |<span class="Apple-converted-space"> </span>1.61 | <span class="Apple-converted-space"> </span>5</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>13 | Thomas Munro <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1469 |<span class="Apple-converted-space"> </span>1.53 |<span class="Apple-converted-space"> </span>16</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>14 | Bruce Momjian<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1283 |<span class="Apple-converted-space"> </span>1.34 | <span class="Apple-converted-space"> </span>9</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>15 | Daniel Gustafsson<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>1030 |<span class="Apple-converted-space"> </span>1.08 |<span class="Apple-converted-space"> </span>25</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>16 | Peter Geoghegan<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>960 |<span class="Apple-converted-space"> </span>1.00 |<span class="Apple-converted-space"> </span>11</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>17 | Magnus Hagander<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>823 |<span class="Apple-converted-space"> </span>0.86 |<span class="Apple-converted-space"> </span>12</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>18 | Noah Misch <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>578 |<span class="Apple-converted-space"> </span>0.60 | <span class="Apple-converted-space"> </span>8</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>19 | Heikki Linnakangas | <span class="Apple-converted-space"> </span>553 |<span class="Apple-converted-space"> </span>0.58 | <span class="Apple-converted-space"> </span>7</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>20 | Stephen Frost<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>291 |<span class="Apple-converted-space"> </span>0.30 | <span class="Apple-converted-space"> </span>3</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>21 | Dean Rasheed <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>260 |<span class="Apple-converted-space"> </span>0.27 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>22 | John Naylor<span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>253 |<span class="Apple-converted-space"> </span>0.26 | <span class="Apple-converted-space"> </span>6</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>23 | Andrew Dunstan <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>110 |<span class="Apple-converted-space"> </span>0.11 | <span class="Apple-converted-space"> </span>4</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>24 | Jeff Davis <span class="Apple-converted-space"> </span>| <span class="Apple-converted-space"> </span>103 |<span class="Apple-converted-space"> </span>0.11 | <span class="Apple-converted-space"> </span>2</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>25 | Andres Freund<span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>76 |<span class="Apple-converted-space"> </span>0.08 | <span class="Apple-converted-space"> </span>3</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>26 | Joe Conway <span class="Apple-converted-space"> </span>|<span class="Apple-converted-space"> </span>10 |<span class="Apple-converted-space"> </span>0.01 | <span class="Apple-converted-space"> </span>1</span></p><p>Finally, let's look at who sent a lot of emails to pgsql-hackers each year. Many of these people are also prolific patch authors, but some of them are more involved in discussion and review than in actually writing code. Here is everyone who sent at least 100 emails to the list in 2020.</p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>count | <span class="Apple-converted-space"> </span>name <span class="Apple-converted-space"> </span></span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">-------+-----------------------</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>2539 | Tom Lane</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1484 | Justin Pryzby</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1389 | Michael Paquier</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1156 | Amit Kapila</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1068 | Alvaro Herrera</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>992 | Kyotaro Horiguchi</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>986 | Andres Freund</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>869 | Robert Haas</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>803 | Tomas Vondra</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>658 | Fujii Masao</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>620 | Peter Eisentraut</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>569 | Thomas Munro</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>530 | Masahiko Sawada</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>507 | Bruce Momjian</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>489 | Pavel Stehule</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>486 | Peter Geoghegan</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>453 | Julien Rouhaud</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>445 | Dilip Kumar</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>368 | Daniel Gustafsson</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>356 | David Rowley</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>355 | Stephen Frost</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>332 | Amit Langote</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>298 | Bharath Rupireddy</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>270 | Heikki Linnakangas</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>245 | James Coleman</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>235 | Ranier Vilela</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>214 | Andy Fan</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>210 | Andrew Dunstan</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>208 | Mark Dilger</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>203 | Magnus Hagander</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>197 | Takayuki Tsunakawa</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>189 | Alexander Korotkov</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>189 | Fabien Coelho</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>185 | David G. Johnston</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>177 | Konstantin Knizhnik</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>174 | David Steele</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>161 | Vignesh C</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>159 | Ashutosh Bapat</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>153 | Jeff Davis</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>152 | Noah Misch</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>145 | John Naylor</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>139 | Craig Ringer</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>130 | Alexey Kondratov</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>118 | Laurenz Albe</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>114 | Anastasia Lubennikova</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>112 | Dmitry Dolgov</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>110 | Wenjing Zeng</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>101 | Vik Fearing</span></p><p>And here is the same for 2021.</p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>count | <span class="Apple-converted-space"> </span>name <span class="Apple-converted-space"> </span></span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">-------+-----------------------</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>2476 | Tom Lane</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1385 | Amit Kapila</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1378 | Michael Paquier</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1178 | Justin Pryzby</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1056 | Andres Freund</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>1056 | Alvaro Herrera</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>966 | Robert Haas</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>862 | Bharath Rupireddy</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>831 | Kyotaro Horiguchi</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>775 | Tomas Vondra</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>675 | Masahiko Sawada</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>648 | Andrew Dunstan</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>623 | Bruce Momjian</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>619 | Peter Geoghegan</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>615 | Dilip Kumar</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>525 | Fujii Masao</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>517 | Vignesh C</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>512 | Thomas Munro</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>501 | Peter Eisentraut</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>484 | Daniel Gustafsson</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>478 | Mark Dilger</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>460 | Julien Rouhaud</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>415 | Nathan Bossart</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>411 | Peter Smith</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>397 | Pavel Stehule</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>381 | David Rowley</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>360 | Stephen Frost</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>356 | Amit Langote</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>354 | Zhijie Hou</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>348 | Greg Nancarrow</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>291 | Zhihong Yu</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>242 | Joel Jacobson</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>235 | Heikki Linnakangas</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>231 | John Naylor</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>216 | Jacob Champion</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>199 | Fabien Coelho</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>196 | Takayuki Tsunakawa</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>196 | Magnus Hagander</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>183 | Ranier Vilela</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>177 | Noah Misch</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>175 | Osumi Takamichi</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>168 | Japin Li</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>155 | Yugo Nagata</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>153 | Jeff Davis</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>152 | Haiying Tang</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>149 | Amul Sul</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>147 | Andrey Borodin</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>140 | Ajin Cherian</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>138 | David Steele</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>132 | Laurenz Albe</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>128 | David G. Johnston</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>122 | Ronan Dunklau</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>111 | Simon Riggs</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>108 | Matthias Van De Meent</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>107 | Euler Taveira</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>106 | Andy Fan</span></p><p class="p1" style="font-family: Menlo; font-size: 11px; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; margin: 0px;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space"> </span>103 | Dean Rasheed</span></p><p>I apologize if these email numbers are not completely accurate, and especially to our contributors from China and Japan. Some people posted under multiple names, or using names not written in the character set with which I am most familiar, and I did my best to figure out which posts were actually from the same person and how to best render that person's name. However, I suspect that I have not been able to be entirely consistent about the ordering of family names as opposed to given names, and I may have made some other mistakes as well. I apologize for and regret my errors.</p><p>As always, thanks to all who have contributed in any way, whether these lists capture that contribution or not!</p>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com0tag:blogger.com,1999:blog-20038672.post-60354036768487982022021-12-08T11:44:00.001-05:002023-01-24T11:12:03.266-05:00Surviving Without A Superuser - Part OnePostgreSQL users and developers are generally aware that it is best to minimize the number of tasks performed as superuser, just as at the operating system level most Linux and UNIX users are aware that it's best not to do too many things as root. For that reason, PostgreSQL has over the last few years introduced a number of predefined roles that have special privileges and which in some case can be used in place of the superuser role. For instance, the pg_read_all_data role, <a href="https://www.postgresql.org/docs/14/predefined-roles.html" target="_blank">new in version 14</a>, has the ability to read all data in every table in the database - not only the tables that currently exist, but any that are created in the future. In earlier versions, you could achieve this effect only by handing out superuser permissions, which is not great, because the superuser role can do much more than just read all the data in the database. The new predefined role allows for a very desirable application of the <a href="https://en.wikipedia.org/wiki/Principle_of_least_privilege" target="_blank">principle of least privilege</a>.<span></span><a href="http://rhaas.blogspot.com/2021/12/surviving-without-superuser-part-one.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com5tag:blogger.com,1999:blog-20038672.post-47089831887273656212021-11-29T15:39:00.000-05:002021-11-29T15:39:28.407-05:00Collation StabilityWhen PostgreSQL needs to sort strings, it relies on either the operating system (by default) or the ICU collation library (if your PostgreSQL has been built with support for ICU and you have chosen to use an ICU-based collation) to tell it in what order the strings ought to be sorted. Unfortunately, operating system behaviors are confusing and inconsistent, and they change relatively frequently for reasons that most people can't understand. That's a problem for PostgreSQL users, especially PostgreSQL users who create indexes on text columns. The first step in building a btree index to sort the data, and if this sort order differs from the one used for later index lookups, data that is actually present in the index may not be found, and your queries may return wrong answers.<span></span><a href="http://rhaas.blogspot.com/2021/11/collation-stability.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com4tag:blogger.com,1999:blog-20038672.post-68277833578520008512021-06-21T09:00:00.007-04:002021-06-21T09:00:00.286-04:00Talking about the PostgreSQL Optimizer at CMU<p>Professor <a href="http://www.cs.cmu.edu/~pavlo/" target="_blank">Andy Pavlo</a>, at CMU, seems to be a regular organizer of technical talks about databases; this year, he organized the <a href="https://db.cs.cmu.edu/seminar2021/" target="_blank">vaccination database tech talks</a>, and invited me to give one about the PostgreSQL query optimizer. So <a href="https://www.youtube.com/watch?v=XA3SBgcZwtE" target="_blank">I did</a>. It was great. There were a few PostgreSQL community members present, but more importantly, a bunch of smart people who know a lot about other database systems showed up to the talk, including Andy Pavlo himself, and I got some feedback on where PostgreSQL could perhaps be improved. Here are the highlights, with links to the relevant portion of the YouTube video.<span></span></p><a href="http://rhaas.blogspot.com/2021/06/talking-about-postgresql-optimizer-at.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com0tag:blogger.com,1999:blog-20038672.post-92065533863296218042020-12-15T14:06:00.001-05:002023-01-24T11:15:55.937-05:00CVE-2019-9193<p>There's a new article out in <a href="https://www.computerweekly.com/news/252493527/Disputed-PostgreSQL-bug-exploited-in-cryptomining-botnet" target="_blank">Computer Weekly</a> talking about <a href="https://nvd.nist.gov/vuln/detail/CVE-2019-9193" target="_blank">CVE-2019-9193</a>. The PostgreSQL project has issued a statement saying that <a href="https://www.postgresql.org/about/news/cve-2019-9193-not-a-security-vulnerability-1935/" target="_blank">this is not a security vulnerability</a>, and PostgreSQL core team member Magnus Hagander also <a href="https://blog.hagander.net/when-a-vulnerability-is-not-a-vulnerability-244/" target="_blank">wrote a blog about it,</a> saying the same thing. If you're curious about this issue, I suggest reading not only what Magnus wrote but also the comments section of that blog post, where you can see some of the perspectives that other people have on what Magnus said. But, in this blog post, I'd like to comment a bit on what is said in the Computer Weekly article: is there any truth to the allegations offered there?<span></span></p><a href="http://rhaas.blogspot.com/2020/12/cve-2019-9193.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com2tag:blogger.com,1999:blog-20038672.post-2304483406005297742020-05-11T12:07:00.002-04:002020-05-11T12:07:41.394-04:00Don't Manually Modify The PostgreSQL Data Directory!<div dir="ltr" style="text-align: left;" trbidi="on">
I was lucky enough to get a chance to give my talk <a href="https://pgconf.in/conferences/pgconfin2020/program/proposals/192" target="_blank">Avoiding, Detecting, and Recovering From Data Corruption</a> at PGCONF.IN in February, before everything got shut down. The conference organizers did an amazing job with the video, which shows both me speaking and the slides I was presenting side by side. That's the first time a PostgreSQL conference has done the video that way, and I love it. One of the points that I raised in that talk was that you should not manually modify the contents of the PostgreSQL data directory in any way. To my surprise, the most frequent question that I was asked after giving the talk was "Really? What if I do XYZ?"<br>
<br>
<div>
</div></div><a href="http://rhaas.blogspot.com/2020/05/dont-manually-modify-postgresql-data.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com6tag:blogger.com,1999:blog-20038672.post-73532307532579827192020-05-05T12:31:00.000-04:002020-05-05T12:31:22.238-04:00Who Contributed to PostgreSQL Development in 2019?<div dir="ltr" style="text-align: left;" trbidi="on">
This is my fourth annual post on who contributes to PostgreSQL development. See <a href="http://rhaas.blogspot.com/search/label/contributions" target="_blank">previous posts in this series</a> for methodology. I calculate that this year, 189 people were primary authors of at least one PostgreSQL commit. 37 of those people accounted for 90% of the new lines, and 12 people accounted for 66% of the new lines. In total, there were 2127 commits by 26 committers. The work of committing patches written by someone other than the committer was principally shared by 5 committers who committed 66% of the lines of non-self-authored code; 10 committers accounted for 90% of the lines of non-self-authored code.<br>
<br>
</div><a href="http://rhaas.blogspot.com/2020/05/who-contributed-to-postgresql.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com6tag:blogger.com,1999:blog-20038672.post-88025967880162883602020-02-13T14:13:00.000-05:002020-02-13T14:13:02.960-05:00Useless Vacuuming<div dir="ltr" style="text-align: left;" trbidi="on">
In <a href="http://rhaas.blogspot.com/search/label/vacuum" target="_blank">previous blog posts that I've written about VACUUM</a>, and I seem to be accumulating an uncomfortable number of those, I've talked about various things that can go wrong with vacuum, but one that I haven't really covered is when autovacuum seems to be running totally normally but you still have a VACUUM problem. In this blog post, I'd like to talk about how to recognize that situation, how to figure out what has caused it, how to avoid it via good monitoring, and how to recover if it happens.<br>
</div><a href="http://rhaas.blogspot.com/2020/02/useless-vacuuming.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com0tag:blogger.com,1999:blog-20038672.post-53506800665157494822020-01-23T11:04:00.001-05:002020-01-23T11:04:47.493-05:00Contributors Team, Redux<div dir="ltr" style="text-align: left;" trbidi="on">
Last summer, in a burst of sunny optimism and out of a desire for transparency, I posted <a href="http://rhaas.blogspot.com/2019/06/the-contributors-team.html" target="_blank">a blog post</a> about the then-new PostgreSQL Contributors Team, which was charged with updating the <a href="https://www.postgresql.org/community/contributors/" target="_blank">contributors page</a> as required. Having now been on this mailing list for 7 months or so, I have a few - actually quite a few - comments about the whole problem space.<div>
</div></div><a href="http://rhaas.blogspot.com/2020/01/contributors-team-redux.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com5tag:blogger.com,1999:blog-20038672.post-21094072203027115832019-10-14T14:39:00.000-04:002019-10-14T14:39:24.473-04:00Braces Are Too Expensive<div dir="ltr" style="text-align: left;" trbidi="on">
PostgreSQL has what's sometimes called a Volcano-style executor, after a system called Volcano, about which Goetz Greafe published several very interesting papers in the early to mid 1990s. PostgreSQL was in its infancy in those days, but many of the concepts in the Volcano papers have made their way into PostgreSQL over the years. It may also be that Volcano took inspiration from PostgreSQL or its predecessors; I'm not entirely sure of the history or who took inspiration from whom. In any case, the Volcano execution model has been thoroughly embedded in PostgreSQL for the entire history of the database system; the first chinks in the armor only started to appear in 2017.</div><a href="http://rhaas.blogspot.com/2019/10/braces-are-too-expensive.html#more">Read more »</a>Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com2tag:blogger.com,1999:blog-20038672.post-85608389198976964662019-09-25T12:39:00.000-04:002019-09-25T12:39:24.960-04:00Synchronous Replication is a Trap<div dir="ltr" style="text-align: left;" trbidi="on">
Almost ten years ago, I wrote a blog post -- cautiously titled <a href="http://rhaas.blogspot.com/2011/01/what-kind-of-replication-do-you-need.html" target="_blank">What Kind of Replication Do You Need?</a> -- in which I suggested that the answer was probably "asynchronous." At that time, synchronous replication was merely a proposed feature that did not exist in any official release of <a href="https://www.postgresql.org/" target="_blank">PostgreSQL</a>; now, it's present in all supported versions and has benefited from several rounds of enhancements. Demand for this feature seems to be high, and there are numerous blog posts about it available (<a href="https://www.enterprisedb.com/blog/cheat-sheet-configuring-streaming-synchronous-replication-postgresql" target="_blank">EnterpriseDB</a>, <a href="https://www.cybertec-postgresql.com/en/services/postgresql-replication/synchronous-synchronous-replication/" target="_blank">Cybertec</a>, <a href="https://www.ashnik.com/how-to-achieve-durability-with-postgresql-without-compromising-on-availability/" target="_blank">Ashnik</a>, <a href="https://www.opsdash.com/blog/postgresql-replication-topologies.html" target="_blank">OpsDash</a>), but in my opinion, there is not nearly enough skepticism about the intrinsic value of the technology. I think that a lot of people are using this technology and getting little or no benefit out of it, and some are actively hurting themselves.<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff}
span.s1 {font-variant-ligatures: no-common-ligatures}
</style><div>
<br /></div>
<div>
If you're thinking about deploying synchronous replication -- or really any technology -- you should start by thinking carefully about exactly what problem you are hoping to solve. Most people who are thinking about synchronous replication seem to be worried about <i>data durability</i>; that is, they want to minimize the chances that a transaction will be lost in the event of a temporary or permanent server loss. This is where I think most people hope for more than the feature is really capable of delivering; more on that below. However, some people are concerned with <i>data consistency</i>; that is, they want to make sure that if they update data on the master and then immediately query the data on a slave, the answer they get is guaranteed to reflect the update. At least one person with whom I spoke was concerned with <i>replication lag</i>; in that environment, the master could do more work than the standby could replay, and synchronous replication kept the two from diverging arbitrarily far from each other.</div>
<div>
<br /></div>
<div>
I have few reservations about the use of synchronous replication for data consistency. For this to work, you need to configure the master with <span style="font-family: Courier New, Courier, monospace;">synchronous_commit = 'remote_apply'</span> and set <span style="font-family: Courier New, Courier, monospace;">synchronous_standby_names</span> to a value that will cause it to wait for all of the standbys to respond to every commit (see <a href="https://www.postgresql.org/docs/current/runtime-config-replication.html#RUNTIME-CONFIG-REPLICATION-MASTER" target="_blank">the documentation</a> for details). You'll need PostgreSQL 9.6 or higher for this to work. Also, don't forget testing and monitoring. Remember that if one of your standbys goes down, commits will stall, and you'll need to update <span style="font-family: Courier New, Courier, monospace;">synchronous_standby_names</span> to remove the failed standby (and reduce the number of servers for which you are to wait by one). You can reverse those changes once the standby is back online and caught up with the master. Perhaps in the future we'll be able to do this sort of thing with less manual reconfiguration, but I think this kind of solution is already workable for many people. If the performance hit from enabling synchronous replication is acceptable to you, and if the benefit of not having to worry about the data on the standby being slightly stale is useful to you, this kind of configuration is definitely worth considering.</div>
<div>
<br /></div>
<div>
I also don't think it's a big problem to use synchronous replication to control replication lag. It doesn't seem like an ideal tool, because if your goal is to prevent the standby from getting excessively far behind the master, you would probably be willing to accept a certain amount of lag when a burst of activity occurs on the master, as long as it doesn't continue for too long. Synchronous replication will not give you that kind of behavior. It will wait at every commit for that commit to be received, written, or applied on the remote side (depending on the value you choose for <span style="font-family: "Courier New", Courier, monospace;">synchronous_standby_names</span>; see documentation link above). Perhaps someday we'll have a feature that slows down the master only when lag exceeds some threshold; that would be a nicer solution. In the meantime, using synchronous replication is a reasonable stopgap.</div>
<div>
<br /></div>
<div>
Where I think a lot of people go wrong is when they think about using synchronous replication for data durability. Reliable systems that don't lose data are built out of constituent parts that are unreliable and do lose data; durability and reliability are properties of the whole system, not a single component. When we say that a software solution such as synchronous replication improves data durability, what we really mean is that it helps you avoid the situation where you <i>think</i> the data is reliably persisted but it <i>really isn't</i>. After all, neither synchronous replication nor any other software system can prevent a disk from failing or a network connection from being severed; they can only change the way the system responds when such an event occurs.</div>
<div>
<br /></div>
<div>
The baseline expectation of a software system that talks to PostgreSQL is - or ought to be - that when you send a <span style="font-family: Courier New, Courier, monospace;">COMMIT</span> command and the database confirms that the command was executed successfully, the changes made by that transaction have been persisted. In the default configuration, "persisted" means "persisted to the local disk." If you set synchronous_commit = off, you weaken that guarantee to "persisted in memory, and we'll get it on disk as soon as we can." If you set synchronous_standby_names, you strengthen it to "persisted to the local disk and also some other server's disk" - or perhaps multiple servers, depending on the value you configure. But the key thing here is that any configuration changes that you make in this area only affect the behavior of the <span style="font-family: Courier New, Courier, monospace;">COMMIT</span> statement, and therefore they only have any value to the extent that your application pays attention to what happens when it runs <span style="font-family: Courier New, Courier, monospace;">COMMIT</span>.</div>
<div>
<br /></div>
<div>
To make this clearer, let's take an example. Suppose there's a human being - I'll call her Alice - who sits at a desk somewhere. People give orders (which are critical data!) to Alice, and she enters them into a web application, which stores the data into a PostgreSQL database. We have basically three components here: Alice, the web application, and the database. Any of them can fail, and nothing we do can prevent them from failing. The database server can go down due to a hardware or software fault; similarly for the web server; and Alice can get sick. We can reduce the probability of such failures by techniques such as RAID 10 and vaccinations, but we can't eliminate it entirely. What we <i>can</i> try to do is create a system that copes with such failures without losing any orders.</div>
<div>
<br /></div>
<div>
If there is a transient or permanent failure of Alice, it's probably safe to say that no orders will be lost. Maybe the people who normally give orders to Alice will leave them in a pile on her desk, or maybe they'll notice that Alice is out and come back later in the hopes of handing them to her directly once she's back in the office. Either way, the orders will eventually get entered. There are potential failure modes here, such as the building burning down and taking the unentered order papers with it, and there are things that can be done to mitigate such risks, but that's outside the scope of this blog post.</div>
<div>
<br /></div>
<div>
A transient or permanent of failure of the web server is a more interesting case. A total failure of the web server is unlikely to cause any data loss, because <i>Alice will be aware that the failure has occurred</i>. If she goes to the web application where she spends most of her time and it fails to load, she'll hold on to any pending order papers at her desk until the application comes back up, and then deal with the backlog. Even if she's already got the web page open loaded, she'll certainly notice if she hits the button to save the latest order and gets an error page back from the browser. Really, the only way things can go wrong here is if the web application experience some kind of partial failure wherein it fails to save the order to the database but doesn't make it clear to Alice that something has gone wrong. In that case, Alice might discard the order paper on the erroneous belief that the data has been saved. But otherwise, we should be OK.</div>
<div>
<br /></div>
<div>
Notice that the key here is <i>good error reporting</i>: as long as Alice knows whether or not a particular transaction succeeded or failed, she'll know what to do. Even if she's uncertain, that's OK: she can go search the database for the order that she just tried to enter, and see if it's there. If it's not, she can enter it again before discarding the order paper.</div>
<div>
<br /></div>
<div>
Now, let's think about what happens if the database fails catastrophically, such that the entire server is lost. Obviously, if we don't have a replica, we will have lost data. If we do have a replica, we will probably have the data on the replica, and everything will be OK. However, if some orders were entered on the master but not yet replicated to the standby at the time of the failure, they might no longer exist on the new master. If Alice still has the order papers and hears about the failure, we're still OK: she can just reenter them. However, if she destroys every order paper as soon as the web application confirms that it's been saved, then we've got a problem.</div>
<div>
<br /></div>
<div>
This is where synchronous replication can help. If the database administrator enables synchronous replication, then the database server won't acknowledge a <span style="font-family: Courier New, Courier, monospace;">COMMIT</span> from the web application until the commit has been replicated to the standby. If the application is well-designed, it won't tell Alice that the order is saved until the database acknowledges the <span style="font-family: Courier New, Courier, monospace;">COMMIT</span>. Therefore, when Alice gets a message saying that the order has been saved, it's guaranteed to be saved on both the master and the standby, and she can destroy the original order paper with no risk of data loss - unless both the master and standby fail, but if you're worried about that scenario, you should have multiple standbys. So, we seem to have constructed a pretty reliable system here, and synchronous replication is an important part of what makes it reliable.</div>
<div>
<br /></div>
<div>
Notice, however, the critical role of the application here. If the application tells Alice that the order is saved before the commit is acknowledged, then the whole thing falls apart. If Alice doesn't pay attention to whether or not the order was confirmed as saved, then the whole thing falls apart. She might, for example, close frozen browser window and fail to recheck whether that order went through after reopening the application. Every step of the pipeline has to be diligent about reporting failures back to earlier stages, and there has to be a retry mechanism if things do fail, or if they may have failed. Remember, there's nothing at all we can do to remove the risk that the database server will fail, or that the web application will fail, or even that Alice will fail. What we can do is make sure that if the database fails, the web application knows about it; if the web application fails, Alice knows about it; and if Alice fails, the people submitting the orders know about it. That's how we create a reliable system.</div>
<div>
<br /></div>
<div>
So, the "trap" of synchronous replication is really that you might focus on a particular database feature and fail to see the whole picture. It's a useful tool that can supply a valuable guarantee for applications that are built carefully and need it, but a lot of applications probably don't report errors reliably enough, or retry transactions carefully enough, to get any benefit. If you have an application that's not careful about such things, turning on synchronous replication may make you feel better about the possibility of data loss, but it won't actually do much to prevent you from losing data.</div>
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff}
span.s1 {font-variant-ligatures: no-common-ligatures}
</style></div>
Robert Haashttp://www.blogger.com/profile/08393677427643988650noreply@blogger.com9