<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vertica Documentation – Flex extractor functions</title>
    <link>/en/sql-reference/functions/flex-functions/flex-extractor-functions/</link>
    <description>Recent content in Flex extractor functions on Vertica Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/en/sql-reference/functions/flex-functions/flex-extractor-functions/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Sql-Reference: MAPDELIMITEDEXTRACTOR</title>
      <link>/en/sql-reference/functions/flex-functions/flex-extractor-functions/mapdelimitedextractor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/sql-reference/functions/flex-functions/flex-extractor-functions/mapdelimitedextractor/</guid>
      <description>
        
        
        &lt;p&gt;Extracts data with a delimiter character and other optional arguments, returning a single VMap value.&lt;/p&gt;
&lt;h2 id=&#34;syntax&#34;&gt;Syntax&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MAPDELIMITEDEXTRACTOR (&lt;span class=&#34;code-variable&#34;&gt;record-value&lt;/span&gt; [ USING PARAMETERS &lt;span class=&#34;code-variable&#34;&gt;param&lt;/span&gt;=&lt;span class=&#34;code-variable&#34;&gt;value&lt;/span&gt;[,...] ])
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;em&gt;&lt;code&gt;record-value&lt;/code&gt;&lt;/em&gt;&lt;/dt&gt;
&lt;dd&gt;String containing a JSON or delimited format record on which to apply the expression.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;delimiter&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Single delimiter character.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;|&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;header_names&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Delimiter-separated list of column header names.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;ucol&lt;/code&gt;&lt;em&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt;, where &lt;em&gt;&lt;code&gt;n&lt;/code&gt;&lt;/em&gt; is the column offset number, starting with &lt;code&gt;0&lt;/code&gt; for the first column.&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;trim&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Boolean, trim white space from header names and field values.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;true&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;treat_empty_val_as_null&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Boolean, set empty fields to &lt;code&gt;NULL&lt;/code&gt; rather than an empty string (&lt;code&gt;&#39;&#39;&lt;/code&gt;).
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;true&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;p&gt;These examples use a short set of delimited data:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Name|CITY|New city|State|zip
Tom|BOSTON|boston|MA|01
Eric|Burlington|BURLINGTON|MA|02
Jamie|cambridge|CAMBRIDGE|MA|08
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To begin, save this data as &lt;code&gt;delim.dat&lt;/code&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a flex table, &lt;code&gt;dflex&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE FLEX TABLE dflex();
CREATE TABLE
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;a href=&#34;../../../../../en/sql-reference/statements/copy/&#34;&gt;COPY&lt;/a&gt; to load the &lt;code&gt;delim.dat&lt;/code&gt; file. Use the flex tables &lt;code&gt;fdelimitedparser&lt;/code&gt; with the &lt;code&gt;header=&#39;false&#39;&lt;/code&gt; option:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; COPY dflex FROM &amp;#39;/home/release/kmm/flextables/delim.dat&amp;#39; parser fdelimitedparser(header=&amp;#39;false&amp;#39;);
 Rows Loaded
-------------
         4
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a columnar table, &lt;code&gt;dtab&lt;/code&gt;, with an identity &lt;code&gt;id&lt;/code&gt; column, a &lt;code&gt;delim&lt;/code&gt; column, and a &lt;code&gt;vmap&lt;/code&gt; column to hold a VMap:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE TABLE dtab (id IDENTITY(1,1), delim varchar(128), vmap long varbinary(512));
CREATE TABLE
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use COPY to load the &lt;code&gt;delim.dat&lt;/code&gt; file into the &lt;code&gt;dtab&lt;/code&gt; table. MAPDELIMITEDEXTRACTOR uses the &lt;code&gt;header_names&lt;/code&gt; parameter to specify a header row for the sample data, along with &lt;code&gt;delimiter &#39;!&#39;&lt;/code&gt; :&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; COPY dtab(delim, vmap AS MAPDELIMITEDEXTRACTOR (delim
   USING PARAMETERS header_names=&amp;#39;Name|CITY|New City|State|Zip&amp;#39;)) FROM &amp;#39;/home/dbadmin/data/delim.dat&amp;#39;
DELIMITER &amp;#39;!&amp;#39;;

 Rows Loaded
-------------
           4
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;a href=&#34;../../../../../en/sql-reference/functions/flex-functions/flex-map-functions/maptostring/&#34;&gt;MAPTOSTRING&lt;/a&gt; for the flex table &lt;code&gt;dflex&lt;/code&gt; to view the &lt;code&gt;__raw__&lt;/code&gt; column contents. Notice the default header names in use (&lt;code&gt;ucol0&lt;/code&gt; – &lt;code&gt;ucol4&lt;/code&gt;), since you specified &lt;code&gt;header=&#39;false&#39;&lt;/code&gt; when you loaded the flex table:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT MAPTOSTRING(__raw__) FROM dflex limit 10;
                              maptostring
-------------------------------------------------------------------------------------
 {
   &amp;#34;ucol0&amp;#34; : &amp;#34;Jamie&amp;#34;,
   &amp;#34;ucol1&amp;#34; : &amp;#34;cambridge&amp;#34;,
   &amp;#34;ucol2&amp;#34; : &amp;#34;CAMBRIDGE&amp;#34;,
   &amp;#34;ucol3&amp;#34; : &amp;#34;MA&amp;#34;,
   &amp;#34;ucol4&amp;#34; : &amp;#34;08&amp;#34;
}

 {
   &amp;#34;ucol0&amp;#34; : &amp;#34;Name&amp;#34;,
   &amp;#34;ucol1&amp;#34; : &amp;#34;CITY&amp;#34;,
   &amp;#34;ucol2&amp;#34; : &amp;#34;New city&amp;#34;,
   &amp;#34;ucol3&amp;#34; : &amp;#34;State&amp;#34;,
   &amp;#34;ucol4&amp;#34; : &amp;#34;zip&amp;#34;
}

 {
   &amp;#34;ucol0&amp;#34; : &amp;#34;Tom&amp;#34;,
   &amp;#34;ucol1&amp;#34; : &amp;#34;BOSTON&amp;#34;,
   &amp;#34;ucol2&amp;#34; : &amp;#34;boston&amp;#34;,
   &amp;#34;ucol3&amp;#34; : &amp;#34;MA&amp;#34;,
   &amp;#34;ucol4&amp;#34; : &amp;#34;01&amp;#34;
}

 {
   &amp;#34;ucol0&amp;#34; : &amp;#34;Eric&amp;#34;,
   &amp;#34;ucol1&amp;#34; : &amp;#34;Burlington&amp;#34;,
   &amp;#34;ucol2&amp;#34; : &amp;#34;BURLINGTON&amp;#34;,
   &amp;#34;ucol3&amp;#34; : &amp;#34;MA&amp;#34;,
   &amp;#34;ucol4&amp;#34; : &amp;#34;02&amp;#34;
}

(4 rows)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use MAPTOSTRING again, this time with the &lt;code&gt;dtab&lt;/code&gt; table&#39;s &lt;code&gt;vmap&lt;/code&gt; column. Compare the results of this output to those for the flex table. Note that MAPTOSTRING returns the &lt;code&gt;header_name&lt;/code&gt; parameter values you specified when you loaded the data:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT MAPTOSTRING(vmap) FROM dtab;
                                                      maptostring
------------------------------------------------------------------------------------------------------------------------
 {
   &amp;#34;CITY&amp;#34; : &amp;#34;CITY&amp;#34;,
   &amp;#34;Name&amp;#34; : &amp;#34;Name&amp;#34;,
   &amp;#34;New City&amp;#34; : &amp;#34;New city&amp;#34;,
   &amp;#34;State&amp;#34; : &amp;#34;State&amp;#34;,
   &amp;#34;Zip&amp;#34; : &amp;#34;zip&amp;#34;
}

 {
   &amp;#34;CITY&amp;#34; : &amp;#34;BOSTON&amp;#34;,
   &amp;#34;Name&amp;#34; : &amp;#34;Tom&amp;#34;,
   &amp;#34;New City&amp;#34; : &amp;#34;boston&amp;#34;,
   &amp;#34;State&amp;#34; : &amp;#34;MA&amp;#34;,
   &amp;#34;Zip&amp;#34; : &amp;#34;02121&amp;#34;
}

 {
   &amp;#34;CITY&amp;#34; : &amp;#34;Burlington&amp;#34;,
   &amp;#34;Name&amp;#34; : &amp;#34;Eric&amp;#34;,
   &amp;#34;New City&amp;#34; : &amp;#34;BURLINGTON&amp;#34;,
   &amp;#34;State&amp;#34; : &amp;#34;MA&amp;#34;,
   &amp;#34;Zip&amp;#34; : &amp;#34;02482&amp;#34;
}

 {
   &amp;#34;CITY&amp;#34; : &amp;#34;cambridge&amp;#34;,
   &amp;#34;Name&amp;#34; : &amp;#34;Jamie&amp;#34;,
   &amp;#34;New City&amp;#34; : &amp;#34;CAMBRIDGE&amp;#34;,
   &amp;#34;State&amp;#34; : &amp;#34;MA&amp;#34;,
   &amp;#34;Zip&amp;#34; : &amp;#34;02811&amp;#34;
}

(4 rows)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Query the &lt;code&gt;delim&lt;/code&gt; column to view the contents differently:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT delim FROM dtab;
                delim
-------------------------------------
 Name|CITY|New city|State|zip
 Tom|BOSTON|boston|MA|02121
 Eric|Burlington|BURLINGTON|MA|02482
 Jamie|cambridge|CAMBRIDGE|MA|02811
(4 rows)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;see-also&#34;&gt;See also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../../en/sql-reference/functions/flex-functions/flex-extractor-functions/mapjsonextractor/&#34;&gt;MAPJSONEXTRACTOR&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../../en/sql-reference/functions/flex-functions/flex-extractor-functions/mapregexextractor/&#34;&gt;MAPREGEXEXTRACTOR&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Sql-Reference: MAPJSONEXTRACTOR</title>
      <link>/en/sql-reference/functions/flex-functions/flex-extractor-functions/mapjsonextractor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/sql-reference/functions/flex-functions/flex-extractor-functions/mapjsonextractor/</guid>
      <description>
        
        
        &lt;p&gt;Extracts content of repeated JSON data objects,, including nested maps, or data with an outer list of JSON elements. You can set one or more optional parameters to control the extraction process.

&lt;div class=&#34;alert admonition note&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Note&lt;/h4&gt;

Empty input does not generate warnings or errors.

&lt;/div&gt;&lt;/p&gt;
&lt;h2 id=&#34;syntax&#34;&gt;Syntax&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MAPJSONEXTRACTOR (&lt;span class=&#34;code-variable&#34;&gt;record-value&lt;/span&gt; [ USING PARAMETERS &lt;span class=&#34;code-variable&#34;&gt;param&lt;/span&gt;=&lt;span class=&#34;code-variable&#34;&gt;value&lt;/span&gt;[,...] ])
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;em&gt;&lt;code&gt;record-value&lt;/code&gt;&lt;/em&gt;&lt;/dt&gt;
&lt;dd&gt;String containing a JSON or delimited format record on which to apply the expression.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;flatten_maps&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Boolean, flatten sub-maps within the JSON data, separating map &lt;span class=&#34;code-input&#34;&gt;levels&lt;/span&gt; with a period (&lt;code&gt;.&lt;/code&gt;).
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;true&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;flatten_arrays&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Boolean, convert lists to sub-maps with integer keys. Lists are not flattened by default.
&lt;p&gt;&lt;strong&gt;Default value:&lt;/strong&gt; &lt;code&gt;false&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;reject_on_duplicate&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Boolean, ignore duplicate records (&lt;code&gt;false&lt;/code&gt;), or reject duplicates (&lt;code&gt;true&lt;/code&gt;). In either case, loading is unaffected.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;false&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;reject_on_empty_key&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Boolean, reject any row that contains a key without a value.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;false&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;omit_empty_keys&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Boolean, omit any key from the load data without a value.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;false&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;start_point&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Name of a key in the JSON load data at which to begin parsing. The parser ignores all data before the &lt;code&gt;start_point&lt;/code&gt; value. The parser processes data after the first instance, and up to the second, ignoring any remaining data.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; none&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;

&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;p&gt;These examples use the following sample JSON data:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{ &amp;#34;id&amp;#34;: &amp;#34;5001&amp;#34;, &amp;#34;type&amp;#34;: &amp;#34;None&amp;#34; }
{ &amp;#34;id&amp;#34;: &amp;#34;5002&amp;#34;, &amp;#34;type&amp;#34;: &amp;#34;Glazed&amp;#34; }
{ &amp;#34;id&amp;#34;: &amp;#34;5005&amp;#34;, &amp;#34;type&amp;#34;: &amp;#34;Sugar&amp;#34; }
{ &amp;#34;id&amp;#34;: &amp;#34;5007&amp;#34;, &amp;#34;type&amp;#34;: &amp;#34;Powdered Sugar&amp;#34; }
{ &amp;#34;id&amp;#34;: &amp;#34;5004&amp;#34;, &amp;#34;type&amp;#34;: &amp;#34;Maple&amp;#34; }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Save this example data as &lt;code&gt;bake_single.json&lt;/code&gt;, and load that file.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a flex table, &lt;code&gt;flexjson&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE FLEX TABLE flexjson();
CREATE TABLE
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;a href=&#34;../../../../../en/sql-reference/statements/copy/&#34;&gt;COPY&lt;/a&gt; to load the &lt;code&gt;bake_single.json&lt;/code&gt; file with the &lt;code&gt;fjsonparser&lt;/code&gt; parser:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; COPY flexjson FROM &amp;#39;/home/dbadmin/data/bake_single.json&amp;#39; parser fjsonparser();
 Rows Loaded
-------------
           5
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a columnar table, &lt;code&gt;coljson&lt;/code&gt;, with an IDENTITY column (&lt;code&gt;id&lt;/code&gt;), a &lt;code&gt;json&lt;/code&gt; column, and a column to hold a VMap, called &lt;code&gt;vmap&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE TABLE coljson(id IDENTITY(1,1), json varchar(128), vmap long varbinary(10000));
CREATE TABLE
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use COPY to load the &lt;code&gt;bake_single.json&lt;/code&gt; file into the &lt;code&gt;coljson&lt;/code&gt; table, using MAPJSONEXTRACTOR:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; COPY coljson (json, vmap AS MapJSONExtractor(json)) FROM &amp;#39;/home/dbadmin/data/bake_single.json&amp;#39;;
 Rows Loaded
-------------
           5
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use the &lt;a href=&#34;../../../../../en/sql-reference/functions/flex-functions/flex-map-functions/maptostring/&#34;&gt;MAPTOSTRING&lt;/a&gt; function for the flex table &lt;code&gt;flexjson&lt;/code&gt; to output the &lt;code&gt;__raw__&lt;/code&gt; column contents as strings:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT MAPTOSTRING(__raw__) FROM flexjson limit 5;
                     maptostring
-----------------------------------------------------
 {
   &amp;#34;id&amp;#34; : &amp;#34;5001&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;None&amp;#34;
}

 {
   &amp;#34;id&amp;#34; : &amp;#34;5002&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;Glazed&amp;#34;
}

 {
   &amp;#34;id&amp;#34; : &amp;#34;5005&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;Sugar&amp;#34;
}

 {
   &amp;#34;id&amp;#34; : &amp;#34;5007&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;Powdered Sugar&amp;#34;
}

 {
   &amp;#34;id&amp;#34; : &amp;#34;5004&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;Maple&amp;#34;
}

(5 rows)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use MAPTOSTRING again, this time with the &lt;code&gt;coljson&lt;/code&gt; table&#39;s &lt;code&gt;vmap&lt;/code&gt; column and compare the results. The element order differs:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT MAPTOSTRING(vmap) FROM coljson limit 5;
                     maptostring
-----------------------------------------------------
 {
   &amp;#34;id&amp;#34; : &amp;#34;5001&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;None&amp;#34;
}

 {
   &amp;#34;id&amp;#34; : &amp;#34;5002&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;Glazed&amp;#34;
}

 {
   &amp;#34;id&amp;#34; : &amp;#34;5004&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;Maple&amp;#34;
}

 {
   &amp;#34;id&amp;#34; : &amp;#34;5005&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;Sugar&amp;#34;
}

 {
   &amp;#34;id&amp;#34; : &amp;#34;5007&amp;#34;,
   &amp;#34;type&amp;#34; : &amp;#34;Powdered Sugar&amp;#34;
}

(5 rows)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;see-also&#34;&gt;See also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../../en/sql-reference/functions/flex-functions/flex-extractor-functions/mapdelimitedextractor/&#34;&gt;MAPDELIMITEDEXTRACTOR&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../../en/sql-reference/functions/flex-functions/flex-extractor-functions/mapregexextractor/&#34;&gt;MAPREGEXEXTRACTOR&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Sql-Reference: MAPREGEXEXTRACTOR</title>
      <link>/en/sql-reference/functions/flex-functions/flex-extractor-functions/mapregexextractor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/sql-reference/functions/flex-functions/flex-extractor-functions/mapregexextractor/</guid>
      <description>
        
        
        &lt;p&gt;Extracts data with a regular expression and returns results as a VMap.&lt;/p&gt;
&lt;h2 id=&#34;syntax&#34;&gt;Syntax&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MAPREGEXEXTRACTOR (&lt;span class=&#34;code-variable&#34;&gt;record-value&lt;/span&gt; [ USING PARAMETERS &lt;span class=&#34;code-variable&#34;&gt;param&lt;/span&gt;=&lt;span class=&#34;code-variable&#34;&gt;value&lt;/span&gt;[,...] ])
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;arguments&#34;&gt;Arguments&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;em&gt;&lt;code&gt;record-value&lt;/code&gt;&lt;/em&gt;&lt;/dt&gt;
&lt;dd&gt;String containing a JSON or delimited format record on which to apply the regular expression.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id=&#34;parameters&#34;&gt;Parameters&lt;/h2&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;pattern&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Regular expression used to extract the desired data.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; Empty string (&lt;code&gt;&#39;&#39;&lt;/code&gt;)&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;use_jit&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Boolean, use just-in-time compiling when parsing the regular expression.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;false&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;record_terminator&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Character used to separate input records.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; &lt;code&gt;\n&lt;/code&gt;&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;logline_column&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Destination column containing the full string that the regular expression matched.
&lt;p&gt;&lt;strong&gt;Default:&lt;/strong&gt; Empty string (&lt;code&gt;&#39;&#39;&lt;/code&gt;)&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id=&#34;examples&#34;&gt;Examples&lt;/h2&gt;
&lt;p&gt;These examples use the following regular expression, which searches for information that includes the &lt;code&gt;timestamp&lt;/code&gt;, &lt;code&gt;date&lt;/code&gt;, &lt;code&gt;thread_name&lt;/code&gt;, and &lt;code&gt;thread_id&lt;/code&gt; strings.

&lt;div class=&#34;admonition caution&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Caution&lt;/h4&gt;

For display purposes, this sample regular expression adds new line characters to split long lines of text. To use this expression in a query, first copy and edit the example to remove any new line characters.

&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;This example expression loads any &lt;code&gt;thread_id&lt;/code&gt; hex value, regardless of whether it has a &lt;code&gt;0x&lt;/code&gt; prefix, &lt;code&gt;(&amp;lt;thread_id&amp;gt;(?:0x)?[0-9a-f]+)&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;#39;^(?&amp;lt;time&amp;gt;\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d+)
 (?&amp;lt;thread_name&amp;gt;[A-Za-z ]+):(?&amp;lt;thread_id&amp;gt;(?:0x)?[0-9a-f]+)
-?(?&amp;lt;transaction_id&amp;gt;[0-9a-f])?(?:[(?&amp;lt;component&amp;gt;\w+)]
\&amp;lt;(?&amp;lt;level&amp;gt;\w+)\&amp;gt; )?(?:&amp;lt;(?&amp;lt;elevel&amp;gt;\w+)&amp;gt; @[?(?&amp;lt;enode&amp;gt;\w+)]?: )
?(?&amp;lt;text&amp;gt;.*)&amp;#39;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The following examples may include newline characters for display purposes.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a flex table, &lt;code&gt;flogs&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; CREATE FLEX TABLE flogs();
CREATE TABLE
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;a href=&#34;../../../../../en/sql-reference/statements/copy/&#34;&gt;COPY&lt;/a&gt; to load a sample log file (&lt;code&gt;vertica.log&lt;/code&gt;), using the flex table &lt;code&gt;fregexparser&lt;/code&gt;. Note that this example includes added line characters for displaying long text lines.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; COPY flogs FROM &amp;#39;/home/dbadmin/tempdat/vertica.log&amp;#39; PARSER FREGEXPARSER(pattern=&amp;#39;
^(?&amp;lt;time&amp;gt;\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d+) (?&amp;lt;thread_name&amp;gt;[A-Za-z ]+):
(?&amp;lt;thread_id&amp;gt;(?:0x)?[0-9a-f])-?(?&amp;lt;transaction_id&amp;gt;[0-9a-f])?(?:[(?&amp;lt;component&amp;gt;\w+)]
\&amp;lt;(?&amp;lt;level&amp;gt;\w+)\&amp;gt; )?(?:&amp;lt;(?&amp;lt;elevel&amp;gt;\w+)&amp;gt; @[?(?&amp;lt;enode&amp;gt;\w+)]?: )?(?&amp;lt;text&amp;gt;.*)&amp;#39;);
Rows Loaded
-------------
81399
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use to return the results from calling MAPREGEXEXTRACTOR with a regular expression. The output returns the results of the function in string format.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; SELECT MAPTOSTRING(MapregexExtractor(E&amp;#39;2014-04-02 04:02:51.011
TM Moveout:0x2aab9000f860-a0000000002067 [Txn] &amp;lt;INFO&amp;gt;
Begin Txn: a0000000002067 \&amp;#39;Moveout: Tuple Mover\&amp;#39;&amp;#39; using PARAMETERS
pattern=&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;#39;^(?&amp;lt;time&amp;gt;\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d+)
 (?&amp;lt;thread_name&amp;gt;[A-Za-z ]+):(?&amp;lt;thread_id&amp;gt;(?:0x)?[0-9a-f]+)
-?(?&amp;lt;transaction_id&amp;gt;[0-9a-f])?(?:[(?&amp;lt;component&amp;gt;\w+)]
\&amp;lt;(?&amp;lt;level&amp;gt;\w+)\&amp;gt; )?(?:&amp;lt;(?&amp;lt;elevel&amp;gt;\w+)&amp;gt; @[?(?&amp;lt;enode&amp;gt;\w+)]?: )
?(?&amp;lt;text&amp;gt;.*)&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;/blockquote&gt;
)) FROM flogs where __identity__=13;
maptostring
--------------------------------------------------------------------------------------------------
{
&amp;#34;component&amp;#34; : &amp;#34;Txn&amp;#34;,
&amp;#34;level&amp;#34; : &amp;#34;INFO&amp;#34;,
&amp;#34;text&amp;#34; : &amp;#34;Begin Txn: a0000000002067 &amp;#39;Moveout: Tuple Mover&amp;#39;&amp;#34;,
&amp;#34;thread_id&amp;#34; : &amp;#34;0x2aab9000f860&amp;#34;,
&amp;#34;thread_name&amp;#34; : &amp;#34;TM Moveout&amp;#34;,
&amp;#34;time&amp;#34; : &amp;#34;2014-04-02 04:02:51.011&amp;#34;,
&amp;#34;transaction_id&amp;#34; : &amp;#34;a0000000002067&amp;#34;
}
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;see-also&#34;&gt;See also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../../en/sql-reference/functions/flex-functions/flex-extractor-functions/mapdelimitedextractor/&#34;&gt;MAPDELIMITEDEXTRACTOR&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;../../../../../en/sql-reference/functions/flex-functions/flex-extractor-functions/mapjsonextractor/&#34;&gt;MAPJSONEXTRACTOR&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
