<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>Dongjoon Hyun added as committer</title>
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <meta name="generator" content="Jekyll v3.8.6">
  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
  <link rel="stylesheet" href="/css/screen.css">
  <link rel="icon" type="image/x-icon" href="/favicon.ico">
  <!--[if lt IE 9]>
  <script src="/js/html5shiv.min.js"></script>
  <script src="/js/respond.min.js"></script>
  <![endif]-->
</head>


<body class="wrap">
  <header role="banner">
  <nav class="mobile-nav show-on-mobiles">
    <ul>
  <li class="">
    <a href="/">Home</a>
  </li>
  <li class="">
    <a href="/releases/"><span class="show-on-mobiles">Rel</span>
                         <span class="hide-on-mobiles">Releases</span></a>
  </li>
  <li class="">
    <a href="/docs/"><span class="show-on-mobiles">Doc</span>
                     <span class="hide-on-mobiles">Documentation</span></a>
  </li>
  <li class="">
    <a href="/talks/"><span class="show-on-mobiles">Talk</span>
                      <span class="hide-on-mobiles">Talks</span></a>
  </li>
  <li class="current">
    <a href="/news/">News</a>
  </li>
  <li class="">
    <a href="/develop/"><span class="show-on-mobiles">Dev</span>
                        <span class="hide-on-mobiles">Develop</span></a>
  </li>
  <li class="">
    <a href="/help/">Help</a>
  </li>
</ul>

  </nav>
  <div class="grid">
    <div class="unit one-quarter center-on-mobiles">
      <h1>
        <a href="/">
          <span class="sr-only">Apache ORC</span>
          <img src="/img/logo.png" width="249" height="101" alt="ORC Logo">
        </a>
      </h1>
    </div>
    <nav class="main-nav unit three-quarters hide-on-mobiles">
      <ul>
  <li class="">
    <a href="/">Home</a>
  </li>
  <li class="">
    <a href="/releases/"><span class="show-on-mobiles">Rel</span>
                         <span class="hide-on-mobiles">Releases</span></a>
  </li>
  <li class="">
    <a href="/docs/"><span class="show-on-mobiles">Doc</span>
                     <span class="hide-on-mobiles">Documentation</span></a>
  </li>
  <li class="">
    <a href="/talks/"><span class="show-on-mobiles">Talk</span>
                      <span class="hide-on-mobiles">Talks</span></a>
  </li>
  <li class="current">
    <a href="/news/">News</a>
  </li>
  <li class="">
    <a href="/develop/"><span class="show-on-mobiles">Dev</span>
                        <span class="hide-on-mobiles">Develop</span></a>
  </li>
  <li class="">
    <a href="/help/">Help</a>
  </li>
</ul>

    </nav>
  </div>
</header>


    <section class="news">
    <div class="grid">

      <div class="docs-nav-mobile unit whole show-on-mobiles">
  <select onchange="if (this.value) window.location.href=this.value">
    <option value="">Navigate the blog…</option>
    <option value="/news/">Home</option>
    <optgroup label="v1.x">
      
      <option value="/news/2024/05/14/ORC-2.0.1/">ORC 2.0.1 Released</option>
      
      <option value="/news/2024/05/13/add-shaoyun-and-yuanping/">Shaoyun Chen and Yuanping Wu added as committers</option>
      
      <option value="/news/2024/04/14/ORC-1.8.7/">ORC 1.8.7 Released</option>
      
      <option value="/news/2024/03/20/ORC-1.9.3/">ORC 1.9.3 Released</option>
      
      <option value="/news/2024/03/08/ORC-2.0.0/">ORC 2.0.0 Released</option>
      
      <option value="/news/2024/01/13/add-deshan/">Deshan Xiao added as committer</option>
      
      <option value="/news/2023/11/10/ORC-1.9.2/">ORC 1.9.2 Released</option>
      
      <option value="/news/2023/11/10/ORC-1.8.6/">ORC 1.8.6 Released</option>
      
      <option value="/news/2023/11/10/ORC-1.7.10/">ORC 1.7.10 Released</option>
      
      <option value="/news/2023/09/05/ORC-1.8.5/">ORC 1.8.5 Released</option>
      
      <option value="/news/2023/08/16/ORC-1.9.1/">ORC 1.9.1 Released</option>
      
      <option value="/news/2023/06/28/ORC-1.9.0/">ORC 1.9.0 Released</option>
      
      <option value="/news/2023/06/14/ORC-1.8.4/">ORC 1.8.4 Released</option>
      
      <option value="/news/2023/05/07/ORC-1.7.9/">ORC 1.7.9 Released</option>
      
      <option value="/news/2023/03/15/ORC-1.8.3/">ORC 1.8.3 Released</option>
      
      <option value="/news/2023/02/13/add-xin/">Xin Zhang added as committer</option>
      
      <option value="/news/2023/01/21/ORC-1.7.8/">ORC 1.7.8 Released</option>
      
      <option value="/news/2023/01/13/ORC-1.8.2/">ORC 1.8.2 Released</option>
      
      <option value="/news/2022/12/02/ORC-1.8.1/">ORC 1.8.1 Released</option>
      
      <option value="/news/2022/11/17/ORC-1.7.7/">ORC 1.7.7 Released</option>
      
      <option value="/news/2022/09/21/william-chair/">William Hyun elected as Chair</option>
      
      <option value="/news/2022/09/03/ORC-1.8.0/">ORC 1.8.0 Released</option>
      
      <option value="/news/2022/08/17/ORC-1.7.6/">ORC 1.7.6 Released</option>
      
      <option value="/news/2022/06/16/ORC-1.7.5/">ORC 1.7.5 Released</option>
      
      <option value="/news/2022/06/05/add-pavan/">Pavan Lanka added as committer</option>
      
      <option value="/news/2022/05/08/yiqun-pmc/">ORC adds Yiqun Zhang to PMC</option>
      
      <option value="/news/2022/04/15/ORC-1.7.4/">ORC 1.7.4 Released</option>
      
      <option value="/news/2022/04/14/ORC-1.6.14/">ORC 1.6.14 Released</option>
      
      <option value="/news/2022/03/05/add-quanlong/">Quanlong Huang added as committer</option>
      
      <option value="/news/2022/02/09/ORC-1.7.3/">ORC 1.7.3 Released</option>
      
      <option value="/news/2022/01/20/ORC-1.6.13/">ORC 1.6.13 Released</option>
      
      <option value="/news/2021/12/20/ORC-1.7.2/">ORC 1.7.2 Released</option>
      
      <option value="/news/2021/11/23/add-yiqun/">Yiqun Zhang added as committer</option>
      
      <option value="/news/2021/11/07/ORC-1.7.1/">ORC 1.7.1 Released</option>
      
      <option value="/news/2021/11/07/ORC-1.6.12/">ORC 1.6.12 Released</option>
      
      <option value="/news/2021/10/02/william-pmc/">ORC adds William Hyun to PMC</option>
      
      <option value="/news/2021/09/15/ORC-1.7.0/">ORC 1.7.0 Released</option>
      
      <option value="/news/2021/09/15/ORC-1.6.11/">ORC 1.6.11 Released</option>
      
      <option value="/news/2021/09/15/ORC-1.5.13/">ORC 1.5.13 Released</option>
      
      <option value="/news/2021/08/10/ORC-1.6.10/">ORC 1.6.10 Released</option>
      
      <option value="/news/2021/07/02/ORC-1.6.9/">ORC 1.6.9 Released</option>
      
      <option value="/news/2021/05/21/ORC-1.6.8/">ORC 1.6.8 Released</option>
      
      <option value="/news/2021/04/13/add-william/">William Hyun added as committer</option>
      
      <option value="/news/2021/02/08/panagiotis-pmc/">ORC adds Panagiotis Garefalakis to PMC</option>
      
      <option value="/news/2021/01/22/ORC-1.6.7/">ORC 1.6.7 Released</option>
      
      <option value="/news/2020/12/10/ORC-1.6.6/">ORC 1.6.6 Released</option>
      
      <option value="/news/2020/11/16/add-panagiotis/">Panagiotis Garefalakis added as committer</option>
      
      <option value="/news/2020/10/01/ORC-1.6.5/">ORC 1.6.5 Released</option>
      
      <option value="/news/2020/09/30/ORC-1.5.12/">ORC 1.5.12 Released</option>
      
      <option value="/news/2020/09/14/ORC-1.6.4/">ORC 1.6.4 Released</option>
      
      <option value="/news/2020/09/14/ORC-1.5.11/">ORC 1.5.11 Released</option>
      
      <option value="/news/2020/04/26/ORC-1.5.10/">ORC 1.5.10 Released</option>
      
      <option value="/news/2020/04/26/ORC-1.6.3/">ORC 1.6.3 Released</option>
      
      <option value="/news/2020/01/30/ORC-1.5.9/">ORC 1.5.9 Released</option>
      
      <option value="/news/2019/12/09/dongjoon-pmc/">ORC adds Dongjoon Hyun to PMC</option>
      
      <option value="/news/2019/12/09/ORC-1.4.5/">ORC 1.4.5 Released</option>
      
      <option value="/news/2019/11/24/ORC-1.6.2/">ORC 1.6.2 Released</option>
      
      <option value="/news/2019/11/24/ORC-1.5.8/">ORC 1.5.8 Released</option>
      
      <option value="/news/2019/10/26/ORC-1.6.1/">ORC 1.6.1 Released</option>
      
      <option value="/news/2019/10/26/ORC-1.5.7/">ORC 1.5.7 Released</option>
      
      <option value="/news/2019/09/03/ORC-1.6.0/">ORC 1.6.0 Released</option>
      
      <option value="/news/2019/06/27/ORC-1.5.6/">ORC 1.5.6 Released</option>
      
      <option value="/news/2019/06/10/renat-and-sandeep/">Renat Vailiullin and Sandeep More added as committers</option>
      
      <option value="/news/2019/03/14/ORC-1.5.5/">ORC 1.5.5 Released</option>
      
      <option value="/news/2019/01/11/gang-pmc/">ORC adds Gang Wu to PMC</option>
      
      <option value="/news/2019/01/10/add-dongjoon/">Dongjoon Hyun added as committer</option>
      
      <option value="/news/2018/12/21/ORC-1.5.4/">ORC 1.5.4 Released</option>
      
      <option value="/news/2018/09/25/ORC-1.5.3/">ORC 1.5.3 Released</option>
      
      <option value="/news/2018/06/29/ORC-1.5.2/">ORC 1.5.2 Released</option>
      
      <option value="/news/2018/05/25/ORC-1.5.1/">ORC 1.5.1 Released</option>
      
      <option value="/news/2018/05/14/ORC-1.5.0/">ORC 1.5.0 Released</option>
      
      <option value="/news/2018/05/14/ORC-1.4.4/">ORC 1.4.4 Released</option>
      
      <option value="/news/2018/03/27/add-xiening-and-gang/">Gang Wu and Xiening Dai added as committer</option>
      
      <option value="/news/2018/02/09/ORC-1.4.3/">ORC 1.4.3 Released</option>
      
      <option value="/news/2018/01/23/ORC-1.4.2/">ORC 1.4.2 Released</option>
      
      <option value="/news/2017/10/16/ORC-1.4.1/">ORC 1.4.1 Released</option>
      
      <option value="/news/2017/10/16/ORC-1.3.4/">ORC 1.3.4 Released</option>
      
      <option value="/news/2017/09/06/new-pmc/">ORC adds Eugene and Deepak to PMC</option>
      
      <option value="/news/2017/05/16/new-committer/">Deepak Majeti added as committer</option>
      
      <option value="/news/2017/05/08/ORC-1.4.0/">ORC 1.4.0 Released</option>
      
      <option value="/news/2017/02/21/ORC-1.3.3/">ORC 1.3.3 Released</option>
      
      <option value="/news/2017/02/13/ORC-1.3.2/">ORC 1.3.2 Released</option>
      
      <option value="/news/2017/02/03/ORC-1.3.1/">ORC 1.3.1 Released</option>
      
      <option value="/news/2017/01/23/ORC-1.3.0/">ORC 1.3.0 Released</option>
      
      <option value="/news/2017/01/04/gopal-on-pmc/">ORC adds Gopal Vijayaraghavan to PMC</option>
      
      <option value="/news/2016/12/15/new-committers/">ORC adds new committers</option>
      
      <option value="/news/2016/12/12/ORC-1.2.3/">ORC 1.2.3 Released</option>
      
      <option value="/news/2016/12/01/ORC-1.2.2/">ORC 1.2.2 Released</option>
      
      <option value="/news/2016/10/05/ORC-1.2.1/">ORC 1.2.1 Released</option>
      
      <option value="/news/2016/08/25/ORC-1.2.0/">ORC 1.2.0 Released</option>
      
      <option value="/news/2016/07/08/ORC-1.1.2/">ORC 1.1.2 Released</option>
      
      <option value="/news/2016/06/28/file-format-talk/">File format benchmark</option>
      
      <option value="/news/2016/06/13/ORC-1.1.1/">ORC 1.1.1 Released</option>
      
      <option value="/news/2016/06/10/ORC-1.1.0/">ORC 1.1.0 Released</option>
      
      <option value="/news/2016/01/25/ORC-1.0.0/">ORC 1.0.0 Released</option>
      
      <option value="/news/2015/11/19/aliaksei-on-pmc/">ORC adds Aliaksei Sandryhaila to PMC</option>
      
      <option value="/news/2015/06/26/new-logo/">ORC adopts new logo</option>
      
      <option value="/news/2015/05/11/new-committers/">ORC adds 7 committers</option>
      
      <option value="/news/2015/04/22/orc-as-tlp/">ORC becomes an Apache Top Level Project</option>
      
    </optgroup>
  </select>
</div>


      <div class="unit four-fifths">
        <article>
  <h2>
    Dongjoon Hyun added as committer
    <a href="/news/2019/01/10/add-dongjoon/" class="permalink" title="Permalink">∞</a>
  </h2>
  <span class="post-category">
    <span class="label">
      team
    </span>
  </span>
  <div class="post-meta">
    <span class="post-date">
      10 Jan 2019
    </span>
    <a href="https://people.apache.org/~omalley" class="post-author">
      <img src="https://people.apache.org/~omalley/omalley.png"
           class="avatar" alt="omalley avatar"
           width="24" height="24">
      omalley
    </a>
  </div>
  <div class="post-content">
    <p>The ORC PMC is happy to add Dongjoon Hyun as an ORC committer for the
work on improving ORC’s integration to Spark.</p>

<p>Thank you for your work on ORC, Dongjoon!</p>

  </div>
</article>

      </div>

      <div class="unit one-fifth hide-on-mobiles">
  <aside>
    <ul>
      <li class="">
        <a href="/news/">All News</a>
      </li>
      <li class="">
        <a href="/news/releases/">ORC Releases</a>
      </li>
    </ul>
    <h4>Recent Releases</h4>
    <ul>
      
      <li class="">
        <a href="/news/2024/05/14/ORC-2.0.1/">Version 2.0.1</a>
      </li>
      
      <li class="">
        <a href="/news/2024/04/14/ORC-1.8.7/">Version 1.8.7</a>
      </li>
      
      <li class="">
        <a href="/news/2024/03/20/ORC-1.9.3/">Version 1.9.3</a>
      </li>
      
      <li class="">
        <a href="/news/2024/03/08/ORC-2.0.0/">Version 2.0.0</a>
      </li>
      
      <li class="">
        <a href="/news/2023/11/10/ORC-1.9.2/">Version 1.9.2</a>
      </li>
      
    </ul>
    <h4>Other News</h4>
    <ul>
        
        
        
        
        <li class="">
          <a href="/news/2024/05/13/add-shaoyun-and-yuanping/">Shaoyun Chen and Yuanping Wu added as committers</a>
        </li>
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2024/01/13/add-deshan/">Deshan Xiao added as committer</a>
        </li>
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2023/02/13/add-xin/">Xin Zhang added as committer</a>
        </li>
        
        
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2022/09/21/william-chair/">William Hyun elected as Chair</a>
        </li>
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2022/06/05/add-pavan/">Pavan Lanka added as committer</a>
        </li>
        
        
        
        <li class="">
          <a href="/news/2022/05/08/yiqun-pmc/">ORC adds Yiqun Zhang to PMC</a>
        </li>
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2022/03/05/add-quanlong/">Quanlong Huang added as committer</a>
        </li>
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2021/11/23/add-yiqun/">Yiqun Zhang added as committer</a>
        </li>
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2021/10/02/william-pmc/">ORC adds William Hyun to PMC</a>
        </li>
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2021/04/13/add-william/">William Hyun added as committer</a>
        </li>
        
        
        
        <li class="">
          <a href="/news/2021/02/08/panagiotis-pmc/">ORC adds Panagiotis Garefalakis to PMC</a>
        </li>
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2020/11/16/add-panagiotis/">Panagiotis Garefalakis added as committer</a>
        </li>
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2019/12/09/dongjoon-pmc/">ORC adds Dongjoon Hyun to PMC</a>
        </li>
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2019/06/10/renat-and-sandeep/">Renat Vailiullin and Sandeep More added as committers</a>
        </li>
        
        
        
        
        
        <li class="">
          <a href="/news/2019/01/11/gang-pmc/">ORC adds Gang Wu to PMC</a>
        </li>
        
        
        
        <li class="current">
          <a href="/news/2019/01/10/add-dongjoon/">Dongjoon Hyun added as committer</a>
        </li>
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2018/03/27/add-xiening-and-gang/">Gang Wu and Xiening Dai added as committer</a>
        </li>
        
        
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2017/09/06/new-pmc/">ORC adds Eugene and Deepak to PMC</a>
        </li>
        
        
        
        <li class="">
          <a href="/news/2017/05/16/new-committer/">Deepak Majeti added as committer</a>
        </li>
        
        
        
        
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2017/01/04/gopal-on-pmc/">ORC adds Gopal Vijayaraghavan to PMC</a>
        </li>
        
        
        
        <li class="">
          <a href="/news/2016/12/15/new-committers/">ORC adds new committers</a>
        </li>
        
        
        
        
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2016/06/28/file-format-talk/">File format benchmark</a>
        </li>
        
        
        
        
        
        
        
        
        
        <li class="">
          <a href="/news/2015/11/19/aliaksei-on-pmc/">ORC adds Aliaksei Sandryhaila to PMC</a>
        </li>
        
        
        
        <li class="">
          <a href="/news/2015/06/26/new-logo/">ORC adopts new logo</a>
        </li>
        
        
        
        <li class="">
          <a href="/news/2015/05/11/new-committers/">ORC adds 7 committers</a>
        </li>
        
        
        
        <li class="">
          <a href="/news/2015/04/22/orc-as-tlp/">ORC becomes an Apache Top Level Project</a>
        </li>
        
        
    </ul>
  </aside>
</div>


      <div class="clear"></div>

    </div>
  </section>


  <footer role="contentinfo">
  <p style="margin-left: 20px; margin-right; 20px; text-align: center">The contents of this website are &copy;&nbsp;2024
     <a href="https://www.apache.org/">Apache Software Foundation</a>
     under the terms of the <a
      href="https://www.apache.org/licenses/LICENSE-2.0.html">
      Apache&nbsp;License&nbsp;v2</a>. Apache ORC and its logo are trademarks
      of the Apache Software Foundation.</p>
</footer>

  <script>
  var anchorForId = function (id) {
    var anchor = document.createElement("a");
    anchor.className = "header-link";
    anchor.href      = "#" + id;
    anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
    anchor.title = "Permalink";
    return anchor;
  };

  var linkifyAnchors = function (level, containingElement) {
    var headers = containingElement.getElementsByTagName("h" + level);
    for (var h = 0; h < headers.length; h++) {
      var header = headers[h];

      if (typeof header.id !== "undefined" && header.id !== "") {
        header.appendChild(anchorForId(header.id));
      }
    }
  };

  document.onreadystatechange = function () {
    if (this.readyState === "complete") {
      var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
      if (!contentBlock) {
        return;
      }
      for (var level = 1; level <= 6; level++) {
        linkifyAnchors(level, contentBlock);
      }
    }
  };
</script>


</body>
</html>
