<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>199227</bug_id>
          
          <creation_ts>2019-06-26 12:54:37 -0700</creation_ts>
          <short_desc>commit api should not return &apos;AmbiguousRevisionPrefix&apos; if there is an exact revision match</short_desc>
          <delta_ts>2024-09-02 17:47:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to>dewei_zhu</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1548088</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-06-26 12:54:37 -0700</bug_when>
    <thetext>commit api should not return &apos;AmbiguousRevisionPrefix&apos; if there is an exact revision match</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548091</commentid>
    <comment_count>1</comment_count>
      <attachid>372941</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-06-26 12:57:16 -0700</bug_when>
    <thetext>Created attachment 372941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548092</commentid>
    <comment_count>2</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2019-06-26 12:57:42 -0700</bug_when>
    <thetext>&lt;rdar://52140788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548096</commentid>
    <comment_count>3</comment_count>
      <attachid>372941</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-06-26 13:19:46 -0700</bug_when>
    <thetext>Comment on attachment 372941
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=372941&amp;action=review

&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:209
&gt; +            if ($rows[0][&apos;commit_revision&apos;] == $revision_prefix)
&gt; +                return $rows[0];

There is no guarantee that the first one would be an exact match.
It appears to me that we&apos;d have to issue two queries one for the exact match or another one for like.
Alternatively, you can generate a boolean based on exact equality of the revision
and sort the results so that the exact match appear first.
As is there is no guarantee this would work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548120</commentid>
    <comment_count>4</comment_count>
      <attachid>372941</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2019-06-26 13:57:27 -0700</bug_when>
    <thetext>Comment on attachment 372941
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=372941&amp;action=review

&gt;&gt; Websites/perf.webkit.org/public/include/commit-log-fetcher.php:209
&gt;&gt; +                return $rows[0];
&gt; 
&gt; There is no guarantee that the first one would be an exact match.
&gt; It appears to me that we&apos;d have to issue two queries one for the exact match or another one for like.
&gt; Alternatively, you can generate a boolean based on exact equality of the revision
&gt; and sort the results so that the exact match appear first.
&gt; As is there is no guarantee this would work.

Ordering by commit_revision should grantee the exact match always be the first one. Per https://www.postgresql.org/docs/9.5/queries-order.html#AEN4629.
The only case that I can think of is same revision but different lower vs upper cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1548128</commentid>
    <comment_count>5</comment_count>
      <attachid>372941</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-06-26 14:37:28 -0700</bug_when>
    <thetext>Comment on attachment 372941
Patch

Ah, I missed that we were only checking prefixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2057125</commentid>
    <comment_count>6</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2024-09-02 17:47:02 -0700</bug_when>
    <thetext>Landed - https://github.com/WebKit/WebKit/commit/61eeb80b1e114924729a6d9c1f319250552329a4</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372941</attachid>
            <date>2019-06-26 12:57:16 -0700</date>
            <delta_ts>2019-06-26 14:37:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199227-20190626125715.patch</filename>
            <type>text/plain</type>
            <size>4846</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2ODQ2CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCBhY2U4OWYyMjVlNDYzNjFkYzA2NTg2YzAzNzEzMTc3NDg3YzIxN2I2Li42YmU4NzZiYjQ0
OTk0ZDkwN2EzMWNlOTNlMDA0ZTc0MDFhYjYzOWYzIDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wNi0yNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBjb21taXQgYXBpIHNob3VsZCBub3QgcmV0dXJuICdBbWJp
Z3VvdXNSZXZpc2lvblByZWZpeCcgaWYgdGhlcmUgaXMgYW4gZXhhY3QgcmV2aXNpb24gbWF0Y2gK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTIyNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gcHJl
Zml4IG1hdGNoIGlzIHNwZWNpZmllZCwgYXBpIHNob3VsZCBjaGVjayB3aGV0aGVyIHRoZXJlIGlz
IGFuIGV4YWN0IG1hdGNoIHdoZW4gbXVsdGlwbGUgY29tbWl0cworICAgICAgICBtYXRjaCB0aGUg
cHJlZml4LgorCisgICAgICAgICogcHVibGljL2luY2x1ZGUvY29tbWl0LWxvZy1mZXRjaGVyLnBo
cDogQWRkZWQgdGhlIGxvZ2ljIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFuIGV4YWN0IG1hdGNoIHdo
ZW4gbXVsdGlwbGUgbWF0Y2hlcyBhcmUgZm91bmQuCisgICAgICAgICogc2VydmVyLXRlc3RzL2Fw
aS1jb21taXRzLXRlc3RzLmpzOiBBZGRlZCBhbiB1bml0IHRlc3QuCisKIDIwMTktMDYtMjQgIERl
YW4gSm9obnNvbiAgPGRlYW5fam9obnNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW3BlcmYud2Vi
a2l0Lm9yZ10gVXBkYXRlIHN1bW1hcnkgcGFnZSBjYWxjdWxhdGlvbnMgdG8gdXNlIG1lYW4gaW5z
dGVhZCBvZiBtZWRpYW4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJs
aWMvaW5jbHVkZS9jb21taXQtbG9nLWZldGNoZXIucGhwIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQu
b3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKaW5kZXggMGZkNmRmODJk
NDFhMzU5YzVlNzI0NTU5NThlMWUwN2NlODI4ODFiZS4uNmUwYmVjZDBiYzgxNjRjMDQyZmQzZmIy
ZjM5OThjNDE1NGZlYjBlMSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKKysrIGIvV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy9pbmNsdWRlL2NvbW1pdC1sb2ctZmV0Y2hlci5waHAKQEAgLTIwMSwx
MSArMjAxLDE0IEBAIGNsYXNzIENvbW1pdExvZ0ZldGNoZXIgewogICAgIH0KIAogICAgIHByaXZh
dGUgZnVuY3Rpb24gY29tbWl0X2Zvcl9yZXZpc2lvbl9wcmVmaXgoJHJlcG9zaXRvcnlfaWQsICRy
ZXZpc2lvbl9wcmVmaXgpIHsKLSAgICAgICAgJHJvd3MgPSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9m
ZXRjaF9hbGwoJ1NFTEVDVCAqIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9
ICQxIEFORCBjb21taXRfcmV2aXNpb24gTElLRSAkMiBMSU1JVCAyJywgYXJyYXkoJHJlcG9zaXRv
cnlfaWQsIERhdGFiYXNlOjplc2NhcGVfZm9yX2xpa2UoJHJldmlzaW9uX3ByZWZpeCkgLiAnJScp
KTsKKyAgICAgICAgJHJvd3MgPSAkdGhpcy0+ZGItPnF1ZXJ5X2FuZF9mZXRjaF9hbGwoJ1NFTEVD
VCAqIEZST00gY29tbWl0cyBXSEVSRSBjb21taXRfcmVwb3NpdG9yeSA9ICQxIEFORCBjb21taXRf
cmV2aXNpb24gTElLRSAkMiBPUkRFUiBCWSBjb21taXRfcmV2aXNpb24gTElNSVQgMicsIGFycmF5
KCRyZXBvc2l0b3J5X2lkLCBEYXRhYmFzZTo6ZXNjYXBlX2Zvcl9saWtlKCRyZXZpc2lvbl9wcmVm
aXgpIC4gJyUnKSk7CiAgICAgICAgIGlmIChjb3VudCgkcm93cykgPT0gMCkKICAgICAgICAgICAg
IGV4aXRfd2l0aF9lcnJvcignVW5rbm93bkNvbW1pdCcsIGFycmF5KCdyZXBvc2l0b3J5JyA9PiAk
cmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb25fcHJlZml4KSk7Ci0gICAgICAg
IGlmIChjb3VudCgkcm93cykgPT0gMikKKyAgICAgICAgaWYgKGNvdW50KCRyb3dzKSA9PSAyKSB7
CisgICAgICAgICAgICBpZiAoJHJvd3NbMF1bJ2NvbW1pdF9yZXZpc2lvbiddID09ICRyZXZpc2lv
bl9wcmVmaXgpCisgICAgICAgICAgICAgICAgcmV0dXJuICRyb3dzWzBdOwogICAgICAgICAgICAg
ZXhpdF93aXRoX2Vycm9yKCdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcsIGFycmF5KCdyZXBvc2l0
b3J5JyA9PiAkcmVwb3NpdG9yeV9pZCwgJ3JldmlzaW9uJyA9PiAkcmV2aXNpb25fcHJlZml4KSk7
CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuICRyb3dzWzBdOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0
cy5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9zZXJ2ZXItdGVzdHMvYXBpLWNvbW1pdHMt
dGVzdHMuanMKaW5kZXggOGJkYWRlMjE2YjViOTVmZTAxZWU1MTViODU5MTZmMzUxNWIxNjU0OS4u
NDM0NDU4OWYyMWY3YzBjNjg4YTg3MDdmNjA5N2Q5NjA5OTZiNzFjMSAxMDA2NDQKLS0tIGEvV2Vi
c2l0ZXMvcGVyZi53ZWJraXQub3JnL3NlcnZlci10ZXN0cy9hcGktY29tbWl0cy10ZXN0cy5qcwor
KysgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvc2VydmVyLXRlc3RzL2FwaS1jb21taXRzLXRl
c3RzLmpzCkBAIC0zOSw2ICszOSwyNyBAQCBkZXNjcmliZSgiL2FwaS9jb21taXRzLyIsIGZ1bmN0
aW9uICgpIHsKICAgICAgICAgXQogICAgIH0KIAorICAgIGNvbnN0IGNvbW1pdHNPbmVQcmVmaXhP
ZlRoZU90aGVyID0geworICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCisgICAgICAg
ICJzbGF2ZVBhc3N3b3JkIjogInNvbWVQYXNzd29yZCIsCisgICAgICAgICJjb21taXRzIjogWwor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJyZXBvc2l0b3J5IjogIldlYktpdCIsCisg
ICAgICAgICAgICAgICAgInJldmlzaW9uIjogIjIxMDk0IiwKKyAgICAgICAgICAgICAgICAidGlt
ZSI6ICIyMDE3LTAxLTIwVDAyOjUyOjM0LjU3N1oiLAorICAgICAgICAgICAgICAgICJhdXRob3Ii
OiB7Im5hbWUiOiAiWmFsYW4gQnVqdGFzIiwgImFjY291bnQiOiAiemFsYW5AYXBwbGUuY29tIn0s
CisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAiYSBtZXNzYWdlIiwKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgInJlcG9zaXRvcnkiOiAiV2ViS2l0IiwK
KyAgICAgICAgICAgICAgICAicmV2aXNpb24iOiAiMjEwOTQ5IiwKKyAgICAgICAgICAgICAgICAi
dGltZSI6ICIyMDE3LTAxLTIwVDAzOjIzOjUwLjY0NVoiLAorICAgICAgICAgICAgICAgICJhdXRo
b3IiOiB7Im5hbWUiOiAiQ2hyaXMgRHVtZXoiLCAiYWNjb3VudCI6ICJjZHVtZXpAYXBwbGUuY29t
In0sCisgICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiAic29tZSBtZXNzYWdlIiwKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgXQorICAgIH0KKwogICAgIGNvbnN0IHN5c3RlbVZlcnNpb25Db21taXRz
ID0gewogICAgICAgICAic2xhdmVOYW1lIjogInNvbWVTbGF2ZSIsCiAgICAgICAgICJzbGF2ZVBh
c3N3b3JkIjogInNvbWVQYXNzd29yZCIsCkBAIC00NjAsNiArNDgxLDE2IEBAIGRlc2NyaWJlKCIv
YXBpL2NvbW1pdHMvIiwgZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHJl
c3VsdFsnc3RhdHVzJ10sICdBbWJpZ3VvdXNSZXZpc2lvblByZWZpeCcpOwogICAgICAgICB9KTsK
IAorICAgICAgICBpdCgic2hvdWxkIG5vdCByZXR1cm4gJ0FtYmlndW91c1JldmlzaW9uUHJlZml4
JyB3aGVuIHRoZXJlIGlzIGEgY29tbWl0IHJldmlzaW9uIGV4dHJhY3QgbWF0Y2hlcyBzcGVjaWZp
ZWQgcmV2aXNpb24gcHJlZml4IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgY29uc3QgcmVt
b3RlID0gVGVzdFNlcnZlci5yZW1vdGVBUEkoKTsKKyAgICAgICAgICAgIGF3YWl0IGFkZFNsYXZl
Rm9yUmVwb3J0KGNvbW1pdHNPbmVQcmVmaXhPZlRoZU90aGVyKTsKKyAgICAgICAgICAgIGF3YWl0
IHJlbW90ZS5wb3N0SlNPTldpdGhTdGF0dXMoJy9hcGkvcmVwb3J0LWNvbW1pdHMvJywgY29tbWl0
c09uZVByZWZpeE9mVGhlT3RoZXIpOworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQg
cmVtb3RlLmdldEpTT04oJy9hcGkvY29tbWl0cy9XZWJLaXQvMjEwOTQ/cHJlZml4LW1hdGNoPXRy
dWUnKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbChyZXN1bHRbJ3N0YXR1cyddLCAnT0snKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0Wydjb21taXRzJ10ubGVuZ3RoLCAx
KTsKKyAgICAgICAgICAgIGFzc2VydENvbW1pdElzU2FtZUFzT25lU3VibWl0dGVkKHJlc3VsdFsn
Y29tbWl0cyddWzBdLCBjb21taXRzT25lUHJlZml4T2ZUaGVPdGhlclsnY29tbWl0cyddWzBdKTsK
KyAgICAgICAgfSk7CisKICAgICAgICAgaXQoInNob3VsZCByZXR1cm4gJ1Vua25vd25Db21taXQn
IHdoZW4gbm8gY29tbWl0IGlzIGZvdW5kIGZvciBhIHJldmlzaW9uIHByZWZpeCIsIGFzeW5jICgp
ID0+IHsKICAgICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IFRlc3RTZXJ2ZXIucmVtb3RlQVBJKCk7
CiAgICAgICAgICAgICBhd2FpdCBhZGRTbGF2ZUZvclJlcG9ydChzdWJ2ZXJzaW9uQ29tbWl0cyk7
Cg==
</data>
<flag name="review"
          id="388715"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>