| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=9"/> |
| <meta name="generator" content="Doxygen 1.8.6"/> |
| <title>Impala: impala::TextConverter Class Reference</title> |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="jquery.js"></script> |
| <script type="text/javascript" src="dynsections.js"></script> |
| <link href="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="resize.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(initResizable); |
| $(window).load(resizeHeight); |
| </script> |
| <link href="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/search.js"></script> |
| <script type="text/javascript"> |
| $(document).ready(function() { searchBox.OnSelectItem(0); }); |
| </script> |
| <link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| </head> |
| <body> |
| <div id="top"><!-- do not remove this div, it is closed by doxygen! --> |
| <div id="titlearea"> |
| <table cellspacing="0" cellpadding="0"> |
| <tbody> |
| <tr style="height: 56px;"> |
| <td style="padding-left: 0.5em;"> |
| <div id="projectname">Impala |
| </div> |
| <div id="projectbrief">Impalaistheopensource,nativeanalyticdatabaseforApacheHadoop.</div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.8.6 --> |
| <script type="text/javascript"> |
| var searchBox = new SearchBox("searchBox", "search",false,'Search'); |
| </script> |
| <div id="navrow1" class="tabs"> |
| <ul class="tablist"> |
| <li><a href="index.html"><span>Main Page</span></a></li> |
| <li><a href="namespaces.html"><span>Namespaces</span></a></li> |
| <li class="current"><a href="annotated.html"><span>Classes</span></a></li> |
| <li><a href="files.html"><span>Files</span></a></li> |
| <li> |
| <div id="MSearchBox" class="MSearchBoxInactive"> |
| <span class="left"> |
| <img id="MSearchSelect" src="search/mag_sel.png" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| alt=""/> |
| <input type="text" id="MSearchField" value="Search" accesskey="S" |
| onfocus="searchBox.OnSearchFieldFocus(true)" |
| onblur="searchBox.OnSearchFieldFocus(false)" |
| onkeyup="searchBox.OnSearchFieldChange(event)"/> |
| </span><span class="right"> |
| <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> |
| </span> |
| </div> |
| </li> |
| </ul> |
| </div> |
| <div id="navrow2" class="tabs2"> |
| <ul class="tablist"> |
| <li><a href="annotated.html"><span>Class List</span></a></li> |
| <li><a href="classes.html"><span>Class Index</span></a></li> |
| <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> |
| <li><a href="functions.html"><span>Class Members</span></a></li> |
| </ul> |
| </div> |
| </div><!-- top --> |
| <div id="side-nav" class="ui-resizable side-nav-resizable"> |
| <div id="nav-tree"> |
| <div id="nav-tree-contents"> |
| <div id="nav-sync" class="sync"></div> |
| </div> |
| </div> |
| <div id="splitbar" style="-moz-user-select:none;" |
| class="ui-resizable-handle"> |
| </div> |
| </div> |
| <script type="text/javascript"> |
| $(document).ready(function(){initNavTree('classimpala_1_1TextConverter.html','');}); |
| </script> |
| <div id="doc-content"> |
| <!-- window showing the filter options --> |
| <div id="MSearchSelectWindow" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Macros</a></div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <iframe src="javascript:void(0)" frameborder="0" |
| name="MSearchResults" id="MSearchResults"> |
| </iframe> |
| </div> |
| |
| <div class="header"> |
| <div class="summary"> |
| <a href="#pub-methods">Public Member Functions</a> | |
| <a href="#pub-static-methods">Static Public Member Functions</a> | |
| <a href="#pri-attribs">Private Attributes</a> | |
| <a href="classimpala_1_1TextConverter-members.html">List of all members</a> </div> |
| <div class="headertitle"> |
| <div class="title">impala::TextConverter Class Reference</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p><code>#include <<a class="el" href="text-converter_8h_source.html">text-converter.h</a>></code></p> |
| <div class="dynheader"> |
| Collaboration diagram for impala::TextConverter:</div> |
| <div class="dyncontent"> |
| <div class="center"><iframe scrolling="no" frameborder="0" src="classimpala_1_1TextConverter__coll__graph.svg" width="324" height="288"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div> |
| </div> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> |
| Public Member Functions</h2></td></tr> |
| <tr class="memitem:a9391026e522bac07833eee20c5c91c56"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TextConverter.html#a9391026e522bac07833eee20c5c91c56">TextConverter</a> (char escape_char, const std::string &null_col_val, <a class="el" href="classbool.html">bool</a> check_null=true)</td></tr> |
| <tr class="separator:a9391026e522bac07833eee20c5c91c56"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a75174948b6e179b96a88c78812cdb07b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TextConverter.html#a75174948b6e179b96a88c78812cdb07b">WriteSlot</a> (const <a class="el" href="classimpala_1_1SlotDescriptor.html">SlotDescriptor</a> *slot_desc, <a class="el" href="classimpala_1_1Tuple.html">Tuple</a> *tuple, const char *data, int len, <a class="el" href="classbool.html">bool</a> copy_string, <a class="el" href="classbool.html">bool</a> need_escape, <a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>)</td></tr> |
| <tr class="separator:a75174948b6e179b96a88c78812cdb07b"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8726d19f0d209311303dae98cbe64dcf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TextConverter.html#a8726d19f0d209311303dae98cbe64dcf">UnescapeString</a> (const char *src, char *dest, int *len, int64_t maxlen=-1)</td></tr> |
| <tr class="separator:a8726d19f0d209311303dae98cbe64dcf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a4bef44c0315d908f61f11f9b9ff64a9d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TextConverter.html#a4bef44c0315d908f61f11f9b9ff64a9d">UnescapeString</a> (<a class="el" href="structimpala_1_1StringValue.html">StringValue</a> *str, <a class="el" href="classimpala_1_1MemPool.html">MemPool</a> *<a class="el" href="expr-benchmark_8cc.html#a3a5de7bd423fbc0afc4cf935c166ca6b">pool</a>)</td></tr> |
| <tr class="separator:a4bef44c0315d908f61f11f9b9ff64a9d"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a> |
| Static Public Member Functions</h2></td></tr> |
| <tr class="memitem:a18e51809106d9118a2dfce4658460485"><td class="memItemLeft" align="right" valign="top">static llvm::Function * </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TextConverter.html#a18e51809106d9118a2dfce4658460485">CodegenWriteSlot</a> (<a class="el" href="classimpala_1_1LlvmCodeGen.html">LlvmCodeGen</a> *codegen, <a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> *tuple_desc, <a class="el" href="classimpala_1_1SlotDescriptor.html">SlotDescriptor</a> *slot_desc, const char *null_col_val, int len, <a class="el" href="classbool.html">bool</a> check_null)</td></tr> |
| <tr class="separator:a18e51809106d9118a2dfce4658460485"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a> |
| Private Attributes</h2></td></tr> |
| <tr class="memitem:ae0e33962ba27aef0cac8787629fa799f"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TextConverter.html#ae0e33962ba27aef0cac8787629fa799f">escape_char_</a></td></tr> |
| <tr class="separator:ae0e33962ba27aef0cac8787629fa799f"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa6751bdcaa8dfe4b27d84ffaf4590adb"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TextConverter.html#aa6751bdcaa8dfe4b27d84ffaf4590adb">null_col_val_</a></td></tr> |
| <tr class="memdesc:aa6751bdcaa8dfe4b27d84ffaf4590adb"><td class="mdescLeft"> </td><td class="mdescRight">Special string to indicate NULL column values. <a href="#aa6751bdcaa8dfe4b27d84ffaf4590adb">More...</a><br/></td></tr> |
| <tr class="separator:aa6751bdcaa8dfe4b27d84ffaf4590adb"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a60530e197751c25d6ab991b82f769f29"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classbool.html">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classimpala_1_1TextConverter.html#a60530e197751c25d6ab991b82f769f29">check_null_</a></td></tr> |
| <tr class="memdesc:a60530e197751c25d6ab991b82f769f29"><td class="mdescLeft"> </td><td class="mdescRight">Indicates whether we should check for null_col_val_ and set slots to NULL. <a href="#a60530e197751c25d6ab991b82f769f29">More...</a><br/></td></tr> |
| <tr class="separator:a60530e197751c25d6ab991b82f769f29"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <div class="textblock"><p>Helper class for dealing with text data, e.g., converting text data to numeric types, etc. </p> |
| |
| <p>Definition at line <a class="el" href="text-converter_8h_source.html#l00039">39</a> of file <a class="el" href="text-converter_8h_source.html">text-converter.h</a>.</p> |
| </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> |
| <a class="anchor" id="a9391026e522bac07833eee20c5c91c56"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">TextConverter::TextConverter </td> |
| <td>(</td> |
| <td class="paramtype">char </td> |
| <td class="paramname"><em>escape_char</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const std::string & </td> |
| <td class="paramname"><em>null_col_val</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="classbool.html">bool</a> </td> |
| <td class="paramname"><em>check_null</em> = <code>true</code> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>escape_char: Character to indicate escape sequences. null_col_val: Special string to indicate NULL column values. check_null: If set, then the <a class="el" href="classimpala_1_1TextConverter.html#a75174948b6e179b96a88c78812cdb07b">WriteSlot()</a> functions set the target slot to NULL if their input string matches null_vol_val. </p> |
| |
| <p>Definition at line <a class="el" href="text-converter_8cc_source.html#l00032">32</a> of file <a class="el" href="text-converter_8cc_source.html">text-converter.cc</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Member Function Documentation</h2> |
| <a class="anchor" id="a18e51809106d9118a2dfce4658460485"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">Function * TextConverter::CodegenWriteSlot </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="classimpala_1_1LlvmCodeGen.html">LlvmCodeGen</a> * </td> |
| <td class="paramname"><em>codegen</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="classimpala_1_1TupleDescriptor.html">TupleDescriptor</a> * </td> |
| <td class="paramname"><em>tuple_desc</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="classimpala_1_1SlotDescriptor.html">SlotDescriptor</a> * </td> |
| <td class="paramname"><em>slot_desc</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>null_col_val</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="classbool.html">bool</a> </td> |
| <td class="paramname"><em>check_null</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">static</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Codegen the function to write a slot for slot_desc. Returns NULL if codegen was not succesful. The signature of the generated function is: bool WriteSlot(Tuple* tuple, const char* data, int len); The codegen function returns true if the slot could be written and false otherwise. If check_null is set, then the codegen'd function sets the target slot to NULL if its input string matches null_vol_val. The codegenerated function does not support escape characters and should not be used for partitions that contain escapes. </p> |
| |
| <p>Definition at line <a class="el" href="text-converter_8cc_source.html#l00099">99</a> of file <a class="el" href="text-converter_8cc_source.html">text-converter.cc</a>.</p> |
| |
| <p>References <a class="el" href="llvm-codegen_8h_source.html#l00171">impala::LlvmCodeGen::FnPrototype::AddArgument()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00366">impala::LlvmCodeGen::CastPtrToLlvmPtr()</a>, <a class="el" href="llvm-codegen_8h_source.html#l00135">impala::LlvmCodeGen::codegen_timer()</a>, <a class="el" href="descriptors_8cc_source.html#l00510">impala::SlotDescriptor::CodegenUpdateNull()</a>, <a class="el" href="llvm-codegen_8h_source.html#l00214">impala::LlvmCodeGen::context()</a>, <a class="el" href="classimpala_1_1LlvmCodeGen.html#adc6a8e0a8119a9c441e19e06beaf2521">impala::LlvmCodeGen::CreateEntryBlockAlloca()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00405">impala::LlvmCodeGen::CreateIfElseBlocks()</a>, <a class="el" href="llvm-codegen_8h_source.html#l00381">impala::LlvmCodeGen::false_value()</a>, <a class="el" href="descriptors_8h_source.html#l00087">impala::SlotDescriptor::field_idx()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00596">impala::LlvmCodeGen::FinalizeFunction()</a>, <a class="el" href="descriptors_8cc_source.html#l00556">impala::TupleDescriptor::GenerateLlvmStruct()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00421">impala::LlvmCodeGen::GetFunction()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00371">impala::LlvmCodeGen::GetIntConstant()</a>, <a class="el" href="llvm-codegen_8cc_source.html#l00312">impala::LlvmCodeGen::GetType()</a>, <a class="el" href="types_8h_source.html#l00172">impala::ColumnType::IsVarLen()</a>, <a class="el" href="types_8h_source.html#l00062">impala::ColumnType::len</a>, <a class="el" href="string-parser_8h_source.html#l00053">impala::StringParser::PARSE_FAILURE</a>, <a class="el" href="llvm-codegen_8h_source.html#l00393">impala::LlvmCodeGen::ptr_type()</a>, <a class="el" href="runtime-profile_8h_source.html#l00053">SCOPED_TIMER</a>, <a class="el" href="llvm-codegen_8h_source.html#l00380">impala::LlvmCodeGen::true_value()</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="descriptors_8h_source.html#l00078">impala::SlotDescriptor::type()</a>, <a class="el" href="types_8h_source.html#l00034">impala::TYPE_BIGINT</a>, <a class="el" href="types_8h_source.html#l00030">impala::TYPE_BOOLEAN</a>, <a class="el" href="types_8h_source.html#l00047">impala::TYPE_CHAR</a>, <a class="el" href="types_8h_source.html#l00036">impala::TYPE_DOUBLE</a>, <a class="el" href="types_8h_source.html#l00035">impala::TYPE_FLOAT</a>, <a class="el" href="types_8h_source.html#l00033">impala::TYPE_INT</a>, <a class="el" href="types_8h_source.html#l00032">impala::TYPE_SMALLINT</a>, <a class="el" href="types_8h_source.html#l00031">impala::TYPE_TINYINT</a>, and <a class="el" href="types_8h_source.html#l00048">impala::TYPE_VARCHAR</a>.</p> |
| |
| <p>Referenced by <a class="el" href="hdfs-scanner_8cc_source.html#l00296">impala::HdfsScanner::CodegenWriteCompleteTuple()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a8726d19f0d209311303dae98cbe64dcf"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void TextConverter::UnescapeString </td> |
| <td>(</td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">char * </td> |
| <td class="paramname"><em>dest</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int * </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int64_t </td> |
| <td class="paramname"><em>maxlen</em> = <code>-1</code> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Removes escape characters from len characters of the null-terminated string src, and copies the unescaped string into dest, changing *len to the unescaped length. No null-terminator is added to dest. If maxlen > 0, will only copy at most maxlen bytes into dest. </p> |
| |
| <p>Definition at line <a class="el" href="text-converter_8cc_source.html#l00045">45</a> of file <a class="el" href="text-converter_8cc_source.html">text-converter.cc</a>.</p> |
| |
| <p>References <a class="el" href="text-converter_8h_source.html#l00086">escape_char_</a>.</p> |
| |
| <p>Referenced by <a class="el" href="text-converter_8cc_source.html#l00039">UnescapeString()</a>, and <a class="el" href="text-converter_8inline_8h_source.html#l00037">WriteSlot()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a4bef44c0315d908f61f11f9b9ff64a9d"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void TextConverter::UnescapeString </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="structimpala_1_1StringValue.html">StringValue</a> * </td> |
| <td class="paramname"><em>str</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="classimpala_1_1MemPool.html">MemPool</a> * </td> |
| <td class="paramname"><em>pool</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Removes escape characters from 'str', allocating a new string from pool. 'str' is updated with the new ptr and length. </p> |
| |
| <p>Definition at line <a class="el" href="text-converter_8cc_source.html#l00039">39</a> of file <a class="el" href="text-converter_8cc_source.html">text-converter.cc</a>.</p> |
| |
| <p>References <a class="el" href="mem-pool_8h_source.html#l00092">impala::MemPool::Allocate()</a>, <a class="el" href="string-value_8h_source.html#l00038">impala::StringValue::len</a>, <a class="el" href="string-value_8h_source.html#l00037">impala::StringValue::ptr</a>, and <a class="el" href="text-converter_8cc_source.html#l00045">UnescapeString()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="a75174948b6e179b96a88c78812cdb07b"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classbool.html">bool</a> impala::TextConverter::WriteSlot </td> |
| <td>(</td> |
| <td class="paramtype">const <a class="el" href="classimpala_1_1SlotDescriptor.html">SlotDescriptor</a> * </td> |
| <td class="paramname"><em>slot_desc</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="classimpala_1_1Tuple.html">Tuple</a> * </td> |
| <td class="paramname"><em>tuple</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>data</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>len</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="classbool.html">bool</a> </td> |
| <td class="paramname"><em>copy_string</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="classbool.html">bool</a> </td> |
| <td class="paramname"><em>need_escape</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="classimpala_1_1MemPool.html">MemPool</a> * </td> |
| <td class="paramname"><em>pool</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">inline</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Converts slot data, of length 'len', into type of slot_desc, and writes the result into the tuples's slot. copy_string indicates whether we need to make a separate copy of the string data: For regular unescaped strings, we point to the original data in the file_buf_. For regular escaped strings, we copy an its unescaped string into a separate buffer and point to it. If the string needs to be copied, the memory is allocated from 'pool', otherwise 'pool' is unused. Unsuccessful conversions are turned into NULLs. Returns true if the value was written successfully.</p> |
| <p>Note: this function has a codegen'd version. Changing this function requires corresponding changes to CodegenWriteSlot. </p> |
| |
| <p>Definition at line <a class="el" href="text-converter_8inline_8h_source.html#l00037">37</a> of file <a class="el" href="text-converter_8inline_8h_source.html">text-converter.inline.h</a>.</p> |
| |
| <p>References <a class="el" href="mem-pool_8h_source.html#l00092">impala::MemPool::Allocate()</a>, <a class="el" href="text-converter_8h_source.html#l00090">check_null_</a>, <a class="el" href="tuple_8h_source.html#l00118">impala::Tuple::GetSlot()</a>, <a class="el" href="timestamp-value_8h_source.html#l00134">impala::TimestampValue::HasDateOrTime()</a>, <a class="el" href="types_8h_source.html#l00168">impala::ColumnType::IsStringType()</a>, <a class="el" href="types_8h_source.html#l00172">impala::ColumnType::IsVarLen()</a>, <a class="el" href="string-value_8h_source.html#l00038">impala::StringValue::len</a>, <a class="el" href="types_8h_source.html#l00062">impala::ColumnType::len</a>, <a class="el" href="text-converter_8h_source.html#l00088">null_col_val_</a>, <a class="el" href="descriptors_8h_source.html#l00089">impala::SlotDescriptor::null_indicator_offset()</a>, <a class="el" href="string-value_8inline_8h_source.html#l00100">impala::StringValue::PadWithSpaces()</a>, <a class="el" href="string-parser_8h_source.html#l00053">impala::StringParser::PARSE_FAILURE</a>, <a class="el" href="string-parser_8h_source.html#l00052">impala::StringParser::PARSE_SUCCESS</a>, <a class="el" href="string-value_8h_source.html#l00037">impala::StringValue::ptr</a>, <a class="el" href="tuple_8h_source.html#l00101">impala::Tuple::SetNull()</a>, <a class="el" href="descriptors_8h_source.html#l00094">impala::SlotDescriptor::slot_size()</a>, <a class="el" href="string-value_8inline_8h_source.html#l00037">impala::StringCompare()</a>, <a class="el" href="string-parser_8h_source.html#l00087">impala::StringParser::StringToBool()</a>, <a class="el" href="descriptors_8h_source.html#l00088">impala::SlotDescriptor::tuple_offset()</a>, <a class="el" href="types_8h_source.html#l00060">impala::ColumnType::type</a>, <a class="el" href="descriptors_8h_source.html#l00078">impala::SlotDescriptor::type()</a>, <a class="el" href="types_8h_source.html#l00034">impala::TYPE_BIGINT</a>, <a class="el" href="types_8h_source.html#l00030">impala::TYPE_BOOLEAN</a>, <a class="el" href="types_8h_source.html#l00047">impala::TYPE_CHAR</a>, <a class="el" href="types_8h_source.html#l00042">impala::TYPE_DECIMAL</a>, <a class="el" href="types_8h_source.html#l00036">impala::TYPE_DOUBLE</a>, <a class="el" href="types_8h_source.html#l00035">impala::TYPE_FLOAT</a>, <a class="el" href="types_8h_source.html#l00033">impala::TYPE_INT</a>, <a class="el" href="types_8h_source.html#l00032">impala::TYPE_SMALLINT</a>, <a class="el" href="types_8h_source.html#l00038">impala::TYPE_STRING</a>, <a class="el" href="types_8h_source.html#l00037">impala::TYPE_TIMESTAMP</a>, <a class="el" href="types_8h_source.html#l00031">impala::TYPE_TINYINT</a>, <a class="el" href="types_8h_source.html#l00048">impala::TYPE_VARCHAR</a>, and <a class="el" href="text-converter_8cc_source.html#l00045">UnescapeString()</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Member Data Documentation</h2> |
| <a class="anchor" id="a60530e197751c25d6ab991b82f769f29"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="classbool.html">bool</a> impala::TextConverter::check_null_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Indicates whether we should check for null_col_val_ and set slots to NULL. </p> |
| |
| <p>Definition at line <a class="el" href="text-converter_8h_source.html#l00090">90</a> of file <a class="el" href="text-converter_8h_source.html">text-converter.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="text-converter_8inline_8h_source.html#l00037">WriteSlot()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="ae0e33962ba27aef0cac8787629fa799f"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">char impala::TextConverter::escape_char_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Definition at line <a class="el" href="text-converter_8h_source.html#l00086">86</a> of file <a class="el" href="text-converter_8h_source.html">text-converter.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="text-converter_8cc_source.html#l00045">UnescapeString()</a>.</p> |
| |
| </div> |
| </div> |
| <a class="anchor" id="aa6751bdcaa8dfe4b27d84ffaf4590adb"></a> |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">std::string impala::TextConverter::null_col_val_</td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">private</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Special string to indicate NULL column values. </p> |
| |
| <p>Definition at line <a class="el" href="text-converter_8h_source.html#l00088">88</a> of file <a class="el" href="text-converter_8h_source.html">text-converter.h</a>.</p> |
| |
| <p>Referenced by <a class="el" href="text-converter_8inline_8h_source.html#l00037">WriteSlot()</a>.</p> |
| |
| </div> |
| </div> |
| <hr/>The documentation for this class was generated from the following files:<ul> |
| <li>be/src/exec/<a class="el" href="text-converter_8h_source.html">text-converter.h</a></li> |
| <li>be/src/exec/<a class="el" href="text-converter_8cc_source.html">text-converter.cc</a></li> |
| <li>be/src/exec/<a class="el" href="text-converter_8inline_8h_source.html">text-converter.inline.h</a></li> |
| </ul> |
| </div><!-- contents --> |
| </div><!-- doc-content --> |
| <!-- start footer part --> |
| <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> |
| <ul> |
| <li class="navelem"><a class="el" href="namespaceimpala.html">impala</a></li><li class="navelem"><a class="el" href="classimpala_1_1TextConverter.html">TextConverter</a></li> |
| <li class="footer">Generated on Thu May 7 2015 16:10:48 for Impala by |
| <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |