You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by kr...@apache.org on 2015/12/06 17:54:38 UTC
[12/51] [partial] drill-site git commit: Website update
http://git-wip-us.apache.org/repos/asf/drill-site/blob/bbdefcb2/_site/docs/apache-drill-contribution-guidelines/index.html
----------------------------------------------------------------------
diff --git a/_site/docs/apache-drill-contribution-guidelines/index.html b/_site/docs/apache-drill-contribution-guidelines/index.html
new file mode 100644
index 0000000..eebfe4a
--- /dev/null
+++ b/_site/docs/apache-drill-contribution-guidelines/index.html
@@ -0,0 +1,1297 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+
+<meta charset="UTF-8">
+<meta name=viewport content="width=device-width, initial-scale=1">
+<meta name="robots" content="noindex">
+
+<title>Apache Drill Contribution Guidelines - Apache Drill</title>
+
+<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
+<link href='//fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' type='text/css'/>
+<link href="/drill/css/site.css" rel="stylesheet" type="text/css"/>
+
+<link rel="shortcut icon" href="/drill/favicon.ico" type="image/x-icon"/>
+<link rel="icon" href="/drill/favicon.ico" type="image/x-icon"/>
+
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" language="javascript" type="text/javascript"></script>
+<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js" language="javascript" type="text/javascript"></script>
+<script language="javascript" type="text/javascript" src="/drill/js/modernizr.custom.js"></script>
+<script language="javascript" type="text/javascript" src="/drill/js/script.js"></script>
+<script language="javascript" type="text/javascript" src="/drill/js/drill.js"></script>
+
+</head>
+
+
+<body onResize="resized();">
+ <div class="page-wrap">
+ <div class="bui"></div>
+
+<div id="menu" class="mw">
+<ul>
+ <li class='toc-categories'>
+ <a class="expand-toc-icon" href="javascript:void(0);"><i class="fa fa-bars"></i></a>
+ </li>
+ <li class="logo"><a href="/drill/"></a></li>
+ <li class='expand-menu'>
+ <a href="javascript:void(0);"><span class='menu-text'>Menu</span><span class='expand-icon'><i class="fa fa-bars"></i></span></a>
+ </li>
+ <li class='clear-float'></li>
+ <li class="documentation-menu">
+ <a href="/drill/docs/">Documentation</a>
+ <ul>
+
+ <li><a href="/drill/docs/getting-started/">Getting Started</a></li>
+
+ <li><a href="/drill/docs/architecture/">Architecture</a></li>
+
+ <li><a href="/drill/docs/tutorials/">Tutorials</a></li>
+
+ <li><a href="/drill/docs/install-drill/">Install Drill</a></li>
+
+ <li><a href="/drill/docs/configure-drill/">Configure Drill</a></li>
+
+ <li><a href="/drill/docs/connect-a-data-source/">Connect a Data Source</a></li>
+
+ <li><a href="/drill/docs/odbc-jdbc-interfaces/">ODBC/JDBC Interfaces</a></li>
+
+ <li><a href="/drill/docs/query-data/">Query Data</a></li>
+
+ <li><a href="/drill/docs/performance-tuning/">Performance Tuning</a></li>
+
+ <li><a href="/drill/docs/log-and-debug/">Log and Debug</a></li>
+
+ <li><a href="/drill/docs/sql-reference/">SQL Reference</a></li>
+
+ <li><a href="/drill/docs/data-sources-and-file-formats/">Data Sources and File Formats</a></li>
+
+ <li><a href="/drill/docs/develop-custom-functions/">Develop Custom Functions</a></li>
+
+ <li><a href="/drill/docs/troubleshooting/">Troubleshooting</a></li>
+
+ <li><a href="/drill/docs/developer-information/">Developer Information</a></li>
+
+ <li><a href="/drill/docs/release-notes/">Release Notes</a></li>
+
+ <li><a href="/drill/docs/sample-datasets/">Sample Datasets</a></li>
+
+ <li><a href="/drill/docs/project-bylaws/">Project Bylaws</a></li>
+
+ </ul>
+ </li>
+ <li class='nav'>
+ <a href="/drill/community-resources/">Community</a>
+ <ul>
+ <li><a href="/drill/team/">Team</a></li>
+ <li><a href="/drill/mailinglists/">Mailing Lists</a></li>
+ <li><a href="/drill/community-resources/">Community Resources</a></li>
+ </ul>
+ </li>
+ <li class='nav'><a href="/drill/faq/">FAQ</a></li>
+ <li class='nav'><a href="/drill/blog/">Blog</a></li>
+ <li id="twitter-menu-item"><a href="https://twitter.com/apachedrill" title="apachedrill on twitter" target="_blank"><img src="/drill/images/twitter_32_26_white.png" alt="twitter logo" align="center"></a> </li>
+ <li class='search-bar'>
+ <form id="drill-search-form">
+ <input type="text" placeholder="Search Apache Drill" id="drill-search-term" />
+ <button type="submit">
+ <i class="fa fa-search"></i>
+ </button>
+ </form>
+ </li>
+ <li class="d">
+ <a href="/drill/download/">
+ <i class="fa fa-cloud-download"></i> Download
+ </a>
+ </li>
+</ul>
+</div>
+
+ <link href="/drill/css/content.css" rel="stylesheet" type="text/css">
+
+
+
+
+
+
+
+<aside class="sidebar">
+ <div class="docsidebar">
+ <div class="docsidebarwrapper">
+ <ul style="display: block;">
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Getting Started</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/drill-introduction/">Drill Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/why-drill/">Why Drill</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Architecture</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/architecture-introduction/">Architecture Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/drill-query-execution/">Drill Query Execution</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/core-modules/">Core Modules</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/performance/">Performance</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Tutorials</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/tutorials-introduction/">Tutorials Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/drill-in-10-minutes/">Drill in 10 Minutes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/analyzing-the-yelp-academic-dataset/">Analyzing the Yelp Academic Dataset</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Learn Drill with the MapR Sandbox</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/about-the-mapr-sandbox/">About the MapR Sandbox</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/installing-the-apache-drill-sandbox/">Installing the Apache Drill Sandbox</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/getting-to-know-the-drill-sandbox/">Getting to Know the Drill Sandbox</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/lesson-1-learn-about-the-data-set/">Lesson 1: Learn about the Data Set</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/lesson-2-run-queries-with-ansi-sql/">Lesson 2: Run Queries with ANSI SQL</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/lesson-3-run-queries-on-complex-data-types/">Lesson 3: Run Queries on Complex Data Types</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/summary/">Summary</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/analyzing-highly-dynamic-datasets/">Analyzing Highly Dynamic Datasets</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/analyzing-social-media/">Analyzing Social Media</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window Functions</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Install Drill</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/install-drill-introduction/">Install Drill Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Installing Drill in Embedded Mode</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/embedded-mode-prerequisites/">Embedded Mode Prerequisites</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/installing-drill-on-linux-and-mac-os-x/">Installing Drill on Linux and Mac OS X</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/starting-drill-on-linux-and-mac-os-x/">Starting Drill on Linux and Mac OS X</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/installing-drill-on-windows/">Installing Drill on Windows</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/starting-drill-on-windows/">Starting Drill on Windows</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Installing Drill in Distributed Mode</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/distributed-mode-prerequisites/">Distributed Mode Prerequisites</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/installing-drill-on-the-cluster/">Installing Drill on the Cluster</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/starting-drill-in-distributed-mode/">Starting Drill in Distributed Mode</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/starting-the-web-console/">Starting the Web Console</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Configure Drill</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/configure-drill-introduction/">Configure Drill Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/configuring-drill-memory/">Configuring Drill Memory</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Configuring a Multitenant Cluster</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/configuring-a-multitenant-cluster-introduction/">Configuring a Multitenant Cluster Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/configuring-multitenant-resources/">Configuring Multitenant Resources</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/configuring-resources-for-a-shared-drillbit/">Configuring Resources for a Shared Drillbit</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/configuring-user-impersonation/">Configuring User Impersonation</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/configuring-user-authentication/">Configuring User Authentication</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/configuring-user-impersonation-with-hive-authorization/">Configuring User Impersonation with Hive Authorization</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/configuring-web-console-and-rest-api-security/">Configuring Web Console and REST API Security</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Configuration Options</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/configuration-options-introduction/">Configuration Options Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/start-up-options/">Start-Up Options</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/planning-and-execution-options/">Planning and Execution Options</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/persistent-configuration-storage/">Persistent Configuration Storage</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/ports-used-by-drill/">Ports Used by Drill</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Connect a Data Source</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/connect-a-data-source-introduction/">Connect a Data Source Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/storage-plugin-registration/">Storage Plugin Registration</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Storage Plugin Configuration</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/plugin-configuration-basics/">Plugin Configuration Basics</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/workspaces/">Workspaces</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/drill-default-input-format/">Drill Default Input Format</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/file-system-storage-plugin/">File System Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/hbase-storage-plugin/">HBase Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/hive-storage-plugin/">Hive Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/rdbms-storage-plugin/">RDBMS Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/mongodb-storage-plugin/">MongoDB Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/mapr-db-format/">MapR-DB Format</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/s3-storage-plugin/">S3 Storage Plugin</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">ODBC/JDBC Interfaces</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/interfaces-introduction/">Interfaces Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/using-the-jdbc-driver/">Using the JDBC Driver</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/using-jdbc-with-squirrel-on-windows/">Using JDBC with SQuirreL on Windows</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Installing the ODBC Driver</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/installing-the-driver-on-linux/">Installing the Driver on Linux</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/installing-the-driver-on-mac-os-x/">Installing the Driver on Mac OS X</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/installing-the-driver-on-windows/">Installing the Driver on Windows</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/installing-the-tdc-file-on-windows/">Installing the TDC File on Windows</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Configuring ODBC</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/odbc-configuration-reference/">ODBC Configuration Reference</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/configuring-odbc-on-linux/">Configuring ODBC on Linux</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/configuring-odbc-on-mac-os-x/">Configuring ODBC on Mac OS X</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/configuring-odbc-on-windows/">Configuring ODBC on Windows</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/testing-the-odbc-connection/">Testing the ODBC Connection</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Using Drill Explorer</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/drill-explorer-introduction/">Drill Explorer Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/connecting-drill-explorer-to-data/">Connecting Drill Explorer to Data</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/browsing-data-and-defining-views/">Browsing Data and Defining Views</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Using Drill with BI Tools</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/using-drill-with-bi-tools-introduction/">Using Drill with BI Tools Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/tableau-examples/">Tableau Examples</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/using-microstrategy-analytics-with-apache-drill/">Using MicroStrategy Analytics with Apache Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/using-tibco-spotfire-desktop-with-drill/">Using Tibco Spotfire Desktop with Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/configuring-tibco-spotfire-server-with-drill/">Configuring Tibco Spotfire Server with Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/using-qlik-sense-with-drill/">Using Qlik Sense with Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/using-apache-drill-with-tableau-9-desktop/">Using Apache Drill with Tableau 9 Desktop</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/using-apache-drill-with-tableau-9-server/">Using Apache Drill with Tableau 9 Server</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/configuring-jreport-with-drill/">Configuring JReport with Drill</a></li>
+
+ </ul>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Query Data</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/query-data-introduction/">Query Data Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Querying a File System</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/querying-a-file-system-introduction/">Querying a File System Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/querying-json-files/">Querying JSON Files</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/querying-parquet-files/">Querying Parquet Files</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/querying-plain-text-files/">Querying Plain Text Files</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/querying-directories/">Querying Directories</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/querying-sequence-files/">Querying Sequence Files</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/querying-hbase/">Querying HBase</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Querying Complex Data</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/querying-complex-data-introduction/">Querying Complex Data Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/sample-data-donuts/">Sample Data: Donuts</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/selecting-flat-data/">Selecting Flat Data</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/using-sql-functions-clauses-and-joins/">Using SQL Functions, Clauses, and Joins</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/selecting-nested-data-for-a-column/">Selecting Nested Data for a Column</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/selecting-multiple-columns-within-nested-data/">Selecting Multiple Columns Within Nested Data</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/querying-hive/">Querying Hive</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/querying-the-information-schema/">Querying the INFORMATION SCHEMA</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/querying-system-tables/">Querying System Tables</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/monitoring-and-canceling-queries-in-the-drill-web-console/">Monitoring and Canceling Queries in the Drill Web Console</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Performance Tuning</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/performance-tuning-introduction/">Performance Tuning Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/partition-pruning/">Partition Pruning</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/optimizing-parquet-metadata-reading/">Optimizing Parquet Metadata Reading</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/choosing-a-storage-format/">Choosing a Storage Format</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Query Plans and Tuning</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/query-plans-and-tuning-introduction/">Query Plans and Tuning Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/join-planning-guidelines/">Join Planning Guidelines</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/guidelines-for-optimizing-aggregation/">Guidelines for Optimizing Aggregation</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/modifying-query-planning-options/">Modifying Query Planning Options</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/sort-based-and-hash-based-memory-constrained-operators/">Sort-Based and Hash-Based Memory-Constrained Operators</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/enabling-query-queuing/">Enabling Query Queuing</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/">Controlling Parallelization to Balance Performance with Multi-Tenancy</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Identifying Performance Issues</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/query-plans/">Query Plans</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/query-profiles/">Query Profiles</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Performance Tuning Reference</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/query-profile-column-descriptions/">Query Profile Column Descriptions</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/physical-operators/">Physical Operators</a></li>
+
+ </ul>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Log and Debug</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/log-and-debug-introduction/">Log and Debug Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/error-messages/">Error Messages</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/modify-logback-xml/">Modify logback.xml</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/review-the-java-stack-trace/">Review the Java Stack Trace</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/query-audit-logging/">Query Audit Logging</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">SQL Reference</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/sql-reference-introduction/">SQL Reference Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Data Types</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/supported-data-types/">Supported Data Types</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/date-time-and-timestamp/">Date, Time, and Timestamp</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/handling-different-data-types/">Handling Different Data Types</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/lexical-structure/">Lexical Structure</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/operators/">Operators</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">SQL Functions</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/about-sql-function-examples/">About SQL Function Examples</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/math-and-trig/">Math and Trig</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/data-type-conversion/">Data Type Conversion</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/date-time-functions-and-arithmetic/">Date/Time Functions and Arithmetic</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/string-manipulation/">String Manipulation</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/aggregate-and-aggregate-statistical/">Aggregate and Aggregate Statistical</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/functions-for-handling-nulls/">Functions for Handling Nulls</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">SQL Window Functions</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/sql-window-functions-introduction/">SQL Window Functions Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/aggregate-window-functions/">Aggregate Window Functions</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/ranking-window-functions/">Ranking Window Functions</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/value-window-functions/">Value Window Functions</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/sql-window-functions-examples/">SQL Window Functions Examples</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Nested Data Functions</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/nested-data-limitations/">Nested Data Limitations</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/flatten/">FLATTEN</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/kvgen/">KVGEN</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/repeated-count/">REPEATED_COUNT</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/repeated-contains/">REPEATED_CONTAINS</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/query-directory-functions/">Query Directory Functions</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">SQL Commands</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/supported-sql-commands/">Supported SQL Commands</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/alter-session/">ALTER SESSION</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/alter-system/">ALTER SYSTEM</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/create-table-as-ctas/">CREATE TABLE AS (CTAS)</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/partition-by-clause/">PARTITION BY Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/create-view/">CREATE VIEW</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/describe/">DESCRIBE</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/drop-table/">DROP TABLE</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/drop-view/">DROP VIEW</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/explain/">EXPLAIN</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/select/">SELECT</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/select-list/">SELECT List</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/from-clause/">FROM Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/group-by-clause/">GROUP BY Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/having-clause/">HAVING Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/limit-clause/">LIMIT Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/offset-clause/">OFFSET Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/order-by-clause/">ORDER BY Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/union-set-operator/">UNION Set Operator</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/where-clause/">WHERE Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/with-clause/">WITH Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/show-databases-and-show-schemas/">SHOW DATABASES and SHOW SCHEMAS</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/show-files/">SHOW FILES</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/show-tables/">SHOW TABLES</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/use/">USE</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">SQL Conditional Expressions</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/case/">CASE</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/reserved-keywords/">Reserved Keywords</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/sql-extensions/">SQL Extensions</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Data Sources and File Formats</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/data-sources-and-file-formats-introduction/">Data Sources and File Formats Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/hive-to-drill-data-type-mapping/">Hive-to-Drill Data Type Mapping</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/deploying-and-using-a-hive-udf/">Deploying and Using a Hive UDF</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/parquet-format/">Parquet Format</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/json-data-model/">JSON Data Model</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/text-files-csv-tsv-psv/">Text Files: CSV, TSV, PSV</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/sequence-files/">Sequence Files</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Develop Custom Functions</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/develop-custom-functions-introduction/">Develop Custom Functions Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/developing-a-simple-function/">Developing a Simple Function</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/tutorial-develop-a-simple-function/">Tutorial: Develop a Simple Function</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/developing-an-aggregate-function/">Developing an Aggregate Function</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/adding-custom-functions-to-drill/">Adding Custom Functions to Drill</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/using-custom-functions-in-queries/">Using Custom Functions in Queries</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/custom-function-interfaces/">Custom Function Interfaces</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a class="reference internal" href="/drill/docs/troubleshooting/">Troubleshooting</a></li>
+
+
+
+ <li class="toctree-l1 current_section "><a href="javascript: void(0);">Developer Information</a></li>
+ <ul class="current_section">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/rest-api/">REST API</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Develop Drill</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/compiling-drill-from-source/">Compiling Drill from Source</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/drill-patch-review-tool/">Drill Patch Review Tool</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Contribute to Drill</a></li>
+ <ul style="">
+
+ <li class="toctree-l3 current"><a class="reference internal" href="/drill/docs/apache-drill-contribution-guidelines/">Apache Drill Contribution Guidelines</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/apache-drill-contribution-ideas/">Apache Drill Contribution Ideas</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Design Docs</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/drill-plan-syntax/">Drill Plan Syntax</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/rpc-overview/">RPC Overview</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/query-stages/">Query Stages</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/useful-research/">Useful Research</a></li>
+
+ <li class="toctree-l3"><a class="reference internal" href="/drill/docs/value-vectors/">Value Vectors</a></li>
+
+ </ul>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Release Notes</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-1-3-0-release-notes/">Apache Drill 1.3.0 Release Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-1-2-0-release-notes/">Apache Drill 1.2.0 Release Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-1-1-0-release-notes/">Apache Drill 1.1.0 Release Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-1-0-0-release-notes/">Apache Drill 1.0.0 Release Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-0-9-0-release-notes/">Apache Drill 0.9.0 Release Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-0-8-0-release-notes/">Apache Drill 0.8.0 Release Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-0-7-0-release-notes/">Apache Drill 0.7.0 Release Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-0-6-0-release-notes/">Apache Drill 0.6.0 Release Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-m1-release-notes-apache-drill-alpha/">Apache Drill M1 Release Notes (Apache Drill Alpha)</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-m1-release-notes-apache-drill-alpha/">Apache Drill M1 Release Notes (Apache Drill Alpha)</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-0-5-0-release-notes/">Apache Drill 0.5.0 Release Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/apache-drill-0-4-0-release-notes/">Apache Drill 0.4.0 Release Notes</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Sample Datasets</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/aol-search/">AOL Search</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/enron-emails/">Enron Emails</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal" href="/drill/docs/wikipedia-edit-history/">Wikipedia Edit History</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a class="reference internal" href="/drill/docs/project-bylaws/">Project Bylaws</a></li>
+
+
+ </ul>
+
+ </div>
+ </div>
+</aside>
+
+
+<nav class="breadcrumbs">
+ <li><a href="/drill/docs/">Docs</a></li>
+
+
+ <li><a href="/drill/docs/developer-information/">Developer Information</a></li>
+
+ <li><a href="/drill/docs/contribute-to-drill/">Contribute to Drill</a></li>
+
+ <li>Apache Drill Contribution Guidelines</li>
+</nav>
+
+<div class="main-content-wrapper">
+ <div class="main-content">
+
+
+ <a class="edit-link" href="https://github.com/apache/drill/blob/gh-pages/_docs/developer-information/contribute-to-drill/010-apache-drill-contribution-guidelines.md" target="_blank"><i class="fa fa-pencil-square-o"></i></a>
+
+
+ <div class="int_title left">
+ <h1>Apache Drill Contribution Guidelines</h1>
+
+ </div>
+
+ <link href="/drill/css/docpage.css" rel="stylesheet" type="text/css">
+
+ <div class="int_text" align="left">
+
+ <p>Disclaimer: These contribution guidelines are largely based on Apache Hive
+contribution guidelines.</p>
+
+<p>This page describes the mechanics of <em>how</em> to contribute software to Apache
+Drill. For ideas about <em>what</em> you might contribute, please see open tickets in
+<a href="https://issues.apache.org/jira/browse/DRILL">Jira</a>.</p>
+
+<h2 id="how-to-contribute-to-drill">How to Contribute to Drill</h2>
+
+<p>These guidelines include the following topics:</p>
+
+<ul>
+<li>Getting the source code</li>
+<li>Making Changes
+
+<ul>
+<li>Coding Convention</li>
+<li>Formatter configuration</li>
+<li>Understanding Maven</li>
+<li>Creating a patch</li>
+<li>Applying a patch</li>
+</ul></li>
+<li>Where is a good place to start contributing?</li>
+<li>Contributing your work</li>
+<li>JIRA Guidelines</li>
+<li>See Also</li>
+</ul>
+
+<h2 id="getting-the-source-code">Getting the source code</h2>
+
+<p>First, you need the Drill source code.</p>
+
+<p>Get the source code on your local drive using Git. Most development is done on
+"master":</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">git clone https://git-wip-us.apache.org/repos/asf/drill.git
+</code></pre></div>
+<h2 id="making-changes">Making Changes</h2>
+
+<p>Before you start, send a message to the <a href="http://mail-archives.apache.org/mod_mbox/drill-dev/">Drill developer mailing list</a>, or file a bug
+report in <a href="https://issues.apache.org/jira/browse/DRILL">JIRA</a>. Describe your
+proposed changes and check that they fit in with what others are doing and
+have planned for the project. Be patient, it may take folks a while to
+understand your requirements.</p>
+
+<p>Modify the source code and add some features using your favorite IDE.</p>
+
+<h3 id="coding-convention">Coding Convention</h3>
+
+<p>Please take care about the following points</p>
+
+<ul>
+<li>All public classes and methods should have informative <a href="http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html">Javadoc comments</a>.
+
+<ul>
+<li>Do not use @author tags.</li>
+</ul></li>
+<li>Code should be formatted according to <a href="http://www.oracle.com/technetwork/java/codeconvtoc-136057.html">Sun's conventions</a>, with one exception:
+
+<ul>
+<li>Indent two (2) spaces per level, not four (4).</li>
+<li>Line length limit is 120 chars, instead of 80 chars.</li>
+</ul></li>
+<li>Contributions should not introduce new Checkstyle violations.</li>
+<li>Contributions should pass existing unit tests.</li>
+<li>New unit tests should be provided to demonstrate bugs and fixes. <a href="http://www.junit.org">JUnit</a> 4.1 is our test framework:
+
+<ul>
+<li>You must implement a class that contain test methods annotated with JUnit's 4.x @Test annotation and whose class name ends with <code>Test</code>.</li>
+<li>Define methods within your class whose names begin with <code>test</code>, and call JUnit's many assert methods to verify conditions; these methods will be executed when you run <code>mvn clean test</code>.</li>
+</ul></li>
+</ul>
+
+<h3 id="formatter-configuration">Formatter configuration</h3>
+
+<p>Setting up IDE formatters is recommended and can be done by importing the
+following settings into your browser:</p>
+
+<p>IntelliJ IDEA formatter: <a href="https://cwiki.apache.org/confluence/download/attachments/29687985/intellij-idea-settings.jar?version=1&modificationDate=1381928827000&api=v2">settings
+jar</a></p>
+
+<p>Eclipse: <a href="https://issues.apache.org/jira/secure/attachment/12474245/eclipse_formatter_apache.xml">formatter xml</a></p>
+
+<h3 id="understanding-maven">Understanding Maven</h3>
+
+<p>Drill is built by Maven, a Java build tool.</p>
+
+<ul>
+<li>Good Maven tutorial: <a href="http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html">http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html</a></li>
+</ul>
+
+<p>To build Drill, run</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">mvn clean install
+</code></pre></div>
+<h3 id="creating-a-patch">Creating a patch</h3>
+
+<p>Check to see what files you have modified:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">git status
+</code></pre></div>
+<p>Add any new files with:</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">git add .../MyNewClass.java
+git add .../TestMyNewClass.java
+git add .../XXXXXX.q
+git add .../XXXXXX.q.out
+</code></pre></div>
+<p>In order to create a patch, type (from the base directory of drill):</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">git format-patch origin/master --stdout > DRILL-1234.1.patch.txt
+</code></pre></div>
+<p>This will report all modifications done on Drill sources on your local disk
+and save them into the <em>DRILL-1234.1.patch.txt</em> file. Read the patch file.
+Make sure it includes ONLY the modifications required to fix a single issue.</p>
+
+<p>Please do not:</p>
+
+<ul>
+<li>reformat code unrelated to the bug being fixed: formatting changes should be separate patches/commits.</li>
+<li>comment out code that is now obsolete: just remove it.</li>
+<li>insert comments around each change, marking the change: folks can use subversion to figure out what's changed and by whom.</li>
+<li>make things public which are not required by end users.</li>
+</ul>
+
+<p>Please do:</p>
+
+<ul>
+<li>try to adhere to the coding style of files you edit;</li>
+<li>comment code whose function or rationale is not obvious;</li>
+<li>update documentation (e.g., <em>package.html</em> files, this wiki, etc.)</li>
+</ul>
+
+<h3 id="updating-a-patch">Updating a patch</h3>
+
+<p>For patch updates, our convention is to number them like
+DRILL-1856.1.patch.txt, DRILL-1856.2.patch.txt, etc. And then click the
+"Submit Patch" button again when a new one is uploaded; this makes sure it
+gets back into the review queue. Appending '.txt' to the patch file name makes
+it easy to quickly view the contents of the patch in a web browser.</p>
+
+<h3 id="applying-a-patch">Applying a patch</h3>
+
+<p>To apply a patch either you generated or found from JIRA, you can issue</p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">git am < cool_patch.patch
+</code></pre></div>
+<p>if you just want to check whether the patch applies you can run patch with
+--dry-run option.</p>
+
+<h3 id="review-process">Review Process</h3>
+
+<ul>
+<li>Use Hadoop's <a href="http://wiki.apache.org/hadoop/CodeReviewChecklist">code review checklist</a> as a rough guide when doing reviews.</li>
+<li>In JIRA, use attach file to notify that you've submitted a patch for that issue.</li>
+<li>Create a Review Request in <a href="https://reviews.apache.org/r/">Review Board</a>. The review request's name should start with the JIRA issue number (e.g. DRILL-XX) and should be assigned to the "drill-git" group.</li>
+<li>If a committer requests changes, set the issue status to 'Resume Progress', then once you're ready, submit an updated patch with necessary fixes and then request another round of review with 'Submit Patch' again.</li>
+<li>Once your patch is accepted, be sure to upload a final version which grants rights to the ASF.</li>
+</ul>
+
+<h2 id="where-is-a-good-place-to-start-contributing?">Where is a good place to start contributing?</h2>
+
+<p>After getting the source code, building and running a few simple queries, one
+of the simplest places to start is to implement a DrillFunc.<br>
+DrillFuncs is way that Drill express all scalar functions (UDF or system).<br>
+First you can put together a JIRA for one of the DrillFunc's we don't yet have
+but should (referencing the capabilities of something like Postgres<br>
+or SQL Server). Then try to implement one.</p>
+
+<p>One example DrillFunc:</p>
+
+<p><a href="https://github.com/apache/drill/blob/3f93454f014196a4da198ce012b605b70081fde0/exec/java-exec/src/main/codegen/templates/ComparisonFunctions.java">ComparisonFunctions.java</a></p>
+
+<p>Also one can visit the JIRA issues and implement one of those too. </p>
+
+<p>More contribution ideas are located on the <a href="/drill/docs/apache-drill-contribution-ideas">Contribution Ideas</a> page.</p>
+
+<h3 id="contributing-your-work">Contributing your work</h3>
+
+<p>Finally, patches should be <em>attached</em> to an issue report in
+<a href="http://issues.apache.org/jira/browse/DRILL">JIRA</a> via the <strong>Attach File</strong>
+link on the issue's JIRA. Please add a comment that asks for a code review.
+Please note that the attachment should be granted license to ASF for inclusion
+in ASF works (as per the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+License</a>.</p>
+
+<p>Folks should run <code>mvn clean install</code> before submitting a patch. Tests should
+all pass. If your patch involves performance optimizations, they should be
+validated by benchmarks that demonstrate an improvement.</p>
+
+<p>If your patch creates an incompatibility with the latest major release, then
+you must set the <strong>Incompatible change</strong> flag on the issue's JIRA 'and' fill
+in the <strong>Release Note</strong> field with an explanation of the impact of the
+incompatibility and the necessary steps users must take.</p>
+
+<p>If your patch implements a major feature or improvement, then you must fill in
+the <strong>Release Note</strong> field on the issue's JIRA with an explanation of the
+feature that will be comprehensible by the end user.</p>
+
+<p>A committer should evaluate the patch within a few days and either: commit it;
+or reject it with an explanation.</p>
+
+<p>Please be patient. Committers are busy people too. If no one responds to your
+patch after a few days, please make friendly reminders. Please incorporate
+other's suggestions into your patch if you think they're reasonable. Finally,
+remember that even a patch that is not committed is useful to the community.</p>
+
+<p>Should your patch receive a "-1" select the <strong>Resume Progress</strong> on the issue's
+JIRA, upload a new patch with necessary fixes, and then select the <strong>Submit
+Patch</strong> link again.</p>
+
+<p>Committers: for non-trivial changes, it is best to get another committer to
+review your patches before commit. Use <strong>Submit Patch</strong> link like other
+contributors, and then wait for a "+1" from another committer before
+committing. Please also try to frequently review things in the patch queue.</p>
+
+<h2 id="jira-guidelines">JIRA Guidelines</h2>
+
+<p>Please comment on issues in JIRA, making their concerns known. Please also
+vote for issues that are a high priority for you.</p>
+
+<p>Please refrain from editing descriptions and comments if possible, as edits
+spam the mailing list and clutter JIRA's "All" display, which is otherwise
+very useful. Instead, preview descriptions and comments using the preview
+button (on the right) before posting them. Keep descriptions brief and save
+more elaborate proposals for comments, since descriptions are included in
+JIRA's automatically sent messages. If you change your mind, note this in a
+new comment, rather than editing an older comment. The issue should preserve
+this history of the discussion.</p>
+
+<h2 id="see-also">See Also</h2>
+
+<ul>
+<li><a href="http://www.apache.org/dev/contributors.html">Apache contributor documentation</a></li>
+<li><a href="http://www.apache.org/foundation/voting.html">Apache voting documentation</a></li>
+</ul>
+
+
+
+ <div class="doc-nav">
+
+ <span class="previous-toc"><a href="/drill/docs/contribute-to-drill/">← Contribute to Drill</a></span><span class="next-toc"><a href="/drill/docs/apache-drill-contribution-ideas/">Apache Drill Contribution Ideas →</a></span>
+</div>
+
+
+ </div>
+ </div>
+</div>
+
+ </div>
+ <p class="push"></p>
+<div id="footer" class="mw">
+<div class="wrapper">
+Copyright © 2012-2014 The Apache Software Foundation, licensed under the Apache License, Version 2.0.<br>
+Apache and the Apache feather logo are trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.<br/><br/>
+</div>
+</div>
+
+ <script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-53379651-1', 'auto');
+ga('send', 'pageview');
+</script>
+<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-548b2caa33765e8d" async="async"></script>
+</body>
+</html>