\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Rafa Hernández (elpluto)} \pdfinfo{ /Title (devo-linq-query-language-syntax.pdf) /Creator (Cheatography) /Author (Rafa Hernández (elpluto)) /Subject (Devo LINQ, query language syntax Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{1A7EA3} \definecolor{LightBackground}{HTML}{F0F6F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Devo LINQ, query language syntax Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Rafa Hernández (elpluto)} via \textcolor{DarkBackground}{\uline{cheatography.com/46990/cs/21055/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Rafa Hernández (elpluto) \\ \uline{cheatography.com/elpluto} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 2nd January, 2023.\\ Updated 2nd January, 2023.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{x{3.52 cm} x{4.48 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Structure keywords}} \tn % Row 0 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{from}} & Point to a table for the query. Specify a table name using tags.\{\{nl\}\} `\{\{fa-eye\}\}{\bf{from}} my.app.web.auth` \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} \{\{nobreak\}\}{\bf{where}} & Where clause to filter results. \{\{nl\}\} `
\{\{fa-check\}\}{\bf{where}} {[}filter1 expression{]}, {[}filter2 expression{]}\{\{nl\}\}
\{\{fa-eye\}\}String values in expressions have to be surrounded by double quotes, single quotes are not allowed. ` \tn % Row Count 16 (+ 11) % Row 2 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{select}} & Add column to result set: \{\{nl\}\} `\{\{fa-check\}\}{\bf{select}} source\_column or column operation as destination\_column\{\{nl\}\}\{\{fa-eye\}\}{\bf{select}} uriHost(uri) as host` \tn % Row Count 24 (+ 8) % Row 3 \SetRowColor{white} \{\{nobreak\}\}{\bf{group every / by}} & Group clause with an optional server and client aggregation period filter: \{\{nl\}\} `\{\{fa-check\}\}{\bf{group}} {[}{\bf{every}} server\_period{]} {[}{\bf{by}} column{]} \{\{nl\}\} {[}{\bf{every}} client\_period{]}\{\{nl\}\}\{\{fa-eye\}\}{\bf{group}} by statusCode\{\{nl\}\}\{\{fa-eye\}\}{\bf{group}} every 10m\{\{nl\}\}\{\{fa-eye\}\}{\bf{group}} every 10m by statusCode every 1m` \tn % Row Count 39 (+ 15) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.52 cm} x{4.48 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Structure keywords (cont)}} \tn % Row 4 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{every}} & Client aggregation filter: `\{\{nl\}\} \{\{fa-check\}\}{\bf{every}} period\{\{nl\}\}
\{\{fa-eye\}\}Period syntax: an integer number follow by a symbol indicating the time period:{\bf{{[}s:seconds, m:minutes, h:hours, d:days, no suffix:milliseconds{]}}}\{\{nl\}\}
\{\{fa-eye\}\}{\bf{every}} 0 means no client period.\{\{nl\}\}
\{\{fa-eye\}\}{\bf{every}} 5m by serverIp ` \tn % Row Count 15 (+ 15) % Row 5 \SetRowColor{white} \{\{nobreak\}\}{\bf{ifthenelse}} & {\bf{if/then/else}} equivalent clause to set conditionally column values: \{\{nl\}\} `
\{\{fa-check\}\}{\bf{ifthenelse}}(condition, errorValue, successValue ) \{\{nl\}\}
\{\{fa-eye\}\}select {\bf{ifthenelse}}(statusCode != 200,"Error","Success") as statusCodeDesc ` \tn % Row Count 27 (+ 12) % Row 6 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{decode}} & {\bf{switch/case}} equivalent clause to set conditionally column values:\{\{nl\}\} `
\{\{fa-check\}\}{\bf{decode}}(column, checkValue, value,{[}checkValue2, value2{]})\{\{nl\}\}
\{\{fa-eye\}\}Each pair of arguments {\bf{{[}checkValue, value{]}}} is equivalent to a case sentence of a switch statement. \{\{nl\}\}
\{\{fa-eye\}\}{\bf{decode}}(statusCode, 200, "Success", 400, "Not Found", 406, "Error", 404, "Error") as statusCodeDesc` \tn % Row Count 45 (+ 18) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.52 cm} x{4.48 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Structure keywords (cont)}} \tn % Row 7 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{nvl}} & {\bf{Null-Coalescing}} operator. Allow to set an alternate value when input value is null.\{\{nl\}\}
\{\{fa-check\}\}{\bf{nvl}}(column, \seqsplit{alternate\_value\_when\_null)`} \tn % Row Count 7 (+ 7) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Aggregation functions and operators}} \tn % Row 0 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{avg}} & Returns the {\bf{average}} of a range of values {[}{\bf{avg}}{]} or only over {\emph{not null}} values {[}{\bf{nnavg}}{]} of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{avg}}(column); {\bf{nnavg}}(column) ` \tn % Row Count 10 (+ 10) % Row 1 \SetRowColor{white} \{\{nobreak\}\}{\bf{count}} & Returns the {\bf{count}} of results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{count}}({[}column{]})\{\{nl\}\} 
\{\{fa-eye\}\}With argument, include only not null entries in the count. ` \tn % Row Count 19 (+ 9) % Row 2 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{first / nnfirst}} & Returns the {\bf{first}} or the {\bf{not null first}} entry of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{first}}(column); {\bf{nnfirst}}(column) ` \tn % Row Count 27 (+ 8) % Row 3 \SetRowColor{white} \{\{nobreak\}\}{\bf{last / nnlast}} & Returns the {\bf{last}} or the {\bf{not null last}} entry of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{last}}(column); {\bf{nnlast}}(column) ` \tn % Row Count 35 (+ 8) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Aggregation functions and operators (cont)}} \tn % Row 4 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{max / min}} & Returns the {\bf{maximum}} or the {\bf{minimum}} value for the columns provided, on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{max/min}}(col1, {[}col2{]}, {[}col3{]}…) ` \tn % Row Count 8 (+ 8) % Row 5 \SetRowColor{white} \{\{nobreak\}\}{\bf{median}} & Returns the statistical {\bf{median}} for a column on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{median}}(column)\{\{nl\}\}
\{\{fa-eye\}\}Restricted to columns of integer type ` \tn % Row Count 16 (+ 8) % Row 6 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{sum}} & Returns the {\bf{sum}} of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{sum}}(column) ` \tn % Row Count 21 (+ 5) % Row 7 \SetRowColor{white} \{\{nobreak\}\}{\bf{sum2}} & Returns the {\bf{sum}} of the squares of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{sum2}}(column) ` \tn % Row Count 27 (+ 6) % Row 8 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{percentile5}}\{\{nl\}\}{\bf{percentile10}}\{\{nl\}\}{\bf{percentile25}}\{\{nl\}\}{\bf{percentile75}}\{\{nl\}\}{\bf{percentile90}}\{\{nl\}\}{\bf{percentile95}} & Returns the specific statistic {\bf{percentileN}}, using linear interpolation, of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{percentile{[}N{]}}}(column) ` \tn % Row Count 35 (+ 8) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Aggregation functions and operators (cont)}} \tn % Row 9 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{stddev / nnstddev}} & Returns the {\bf{biased standard deviation {[}stddev{]}}} of the values or not null values {\bf{{[}nnstddev{]}}} of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{stddev/nnstddev}}(column)\{\{nl\}\}
\{\{fa-eye\}\}{\bf{Biased}} ` \tn % Row Count 11 (+ 11) % Row 10 \SetRowColor{white} \{\{nobreak\}\}{\bf{ustddev / nnustddev}} & Returns the {\bf{unbiased standard deviation {[}ustddev{]}}} of the values or not null values {\bf{{[}unnstddev{]}}} of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{ustddev/unnstddev}}(column) \{\{nl\}\}
\{\{fa-eye\}\}{\bf{Unbiased}} ` \tn % Row Count 22 (+ 11) % Row 11 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{var / nnvar}} & Returns the {\bf{biased variance {[}var{]}}} of the values or not null values {\bf{{[}nnvar{]}}} of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{var/nnvar}}(column)\{\{nl\}\}
\{\{fa-eye\}\}{\bf{Biased}} ` \tn % Row Count 32 (+ 10) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Aggregation functions and operators (cont)}} \tn % Row 12 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{uvar / nnuvar}} & Returns the {\bf{unbiased variance {[}uvar{]}}} of the values or not null values {\bf{{[}unnvar{]}}} of the results on each group:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{uvar/unnvar}}(column)\{\{nl\}\}
\{\{fa-eye\}\}{\bf{Unbiased}} ` \tn % Row Count 10 (+ 10) % Row 13 \SetRowColor{white} \{\{nobreak\}\}{\bf{hllpp}} & Returns the estimated count of distinct values of the results on each group using the {\bf{HyperLogLog++}} algorithm:\{\{nl\}\} `
\{\{fa-check\}\}{\bf{hllpp}}(column)\{\{nl\}\}
\{\{fa-eye\}\}Applies on {\bf{DC (distinct count)}} data types. ` \tn % Row Count 22 (+ 12) % Row 14 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{hllppcount}} & Returns the estimated count of distinct values of the results on each group using the {\bf{HyperLogLog++}} algorithm:\{\{nl\}\} `
\{\{fa-check\}\}{\bf{hllppcount}}(column)\{\{nl\}\}
\{\{fa-eye\}\}Applies on {\bf{float or integer}} data types. ` \tn % Row Count 34 (+ 12) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.36 cm} x{4.64 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String operators and functions}} \tn % Row 0 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{has, {[}-\textgreater{}{]}}} & Case sensitive {\bf{contains}} comparison. Using the operator {\bf{-\textgreater{}}} only allows check one value:\{\{nl\}\}`
\{\{fa-check\}\}{\bf{has}}(column, value1, {[}value2{]},…)\{\{nl\}\}
\{\{fa-check\}\}column -\textgreater{} value1 ` \tn % Row Count 9 (+ 9) % Row 1 \SetRowColor{white} \{\{nobreak\}\}{\bf{weakhas}} & Case insensitive {\bf{contains}} comparison:\{\{nl\}\}`weakhas(column, value)` \tn % Row Count 13 (+ 4) % Row 2 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{in, {[}\textless{}-{]}}} & Case sensitive {\bf{is contained}} comparison. Using the operator {\bf{'\textless{}-'}} allows only one value:\{\{nl\}\}`\{\{fa-check-circle\}\} in(value1, {[}value2{]},{[}...{]}, column)\{\{nl\}\}\{\{fa-check-circle\}\} value1 \textless{}- column` \tn % Row Count 22 (+ 9) % Row 3 \SetRowColor{white} \{\{nobreak\}\}{\bf{weakin}} & Case insensitive {\bf{is contained}} comparison:\{\{nl\}\}`weakin(value, column)` \tn % Row Count 26 (+ 4) % Row 4 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{startswith}} & Returns strings that start with specific value:\{\{nl\}\}`startswith(column, value)` \tn % Row Count 30 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.36 cm} x{4.64 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String operators and functions (cont)}} \tn % Row 5 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{endswith}} & Returns strings that end with a specific value:\{\{nl\}\}`endswith(column, value)` \tn % Row Count 4 (+ 4) % Row 6 \SetRowColor{white} \{\{nobreak\}\}{\bf{toktains}} & Specialized {\bf{contains}} function for ASCII delimited tokens:\{\{nl\}\}`toktains(column, value, {[}bool\_left{]}, {[}bool\_right{]})` \tn % Row Count 10 (+ 6) % Row 7 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{length}} & Returns the length of a string value:\{\{nl\}\}`length(column)` \tn % Row Count 13 (+ 3) % Row 8 \SetRowColor{white} \{\{nobreak\}\}{\bf{locate}} & Returns the position of a substring, {\bf{indexOf}} function:\{\{nl\}\}`locate(column, substring\_toLocate)` \tn % Row Count 18 (+ 5) % Row 9 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{lower}} & Returns the transformation to lower case:\{\{nl\}\}`lower(column)` \tn % Row Count 21 (+ 3) % Row 10 \SetRowColor{white} \{\{nobreak\}\}{\bf{upper}} & Returns the transformation to upper case:\{\{nl\}\}`upper(column)` \tn % Row Count 24 (+ 3) % Row 11 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{replace}} & Replaces {\bf{only first occurrence}} of a string with a substitute string:\{\{nl\}\}`replace(column, stringToSearch, stringToReplace)` \tn % Row Count 30 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.36 cm} x{4.64 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String operators and functions (cont)}} \tn % Row 12 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{replaceall}} & Replaces {\bf{all occurrences}} of a search string with a substitute string:\{\{nl\}\}`replaceall(column, stringToSearch, stringToReplace)` \tn % Row Count 6 (+ 6) % Row 13 \SetRowColor{white} \{\{nobreak\}\}{\bf{split}} & Returns a specific piece of splitting operation by a separator:\{\{nl\}\}`\{\{fa-eye\}\} pieceNumber begin at 0.\{\{nl\}\} split(column, separatorString, pieceNumber)` \tn % Row Count 13 (+ 7) % Row 14 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{splitre}} & Returns a specific piece of splitting operation by a regular expression:\{\{nl\}\}`\{\{fa-eye\}\} pieceNumber begin at 0.\{\{nl\}\} splitre(column, re(string) or regexp, pieceNumber)` \tn % Row Count 21 (+ 8) % Row 15 \SetRowColor{white} \{\{nobreak\}\}{\bf{substring}} & Returns a substring beginning at specific index with the provided length:\{\{nl\}\}`substring(column, index, length)` \tn % Row Count 26 (+ 5) % Row 16 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{subs}} & Returns a string replacing {\bf{first substring occurrence}} based on a regular expression using a template string as substitution value:\{\{nl\}\}`\{\{fa-eye\}\} FailValue is returned when is provided and no occurrences found\{\{nl\}\}\{\{fa-check-circle\}\} subs(column, regexp, template, {[}failValue{]})\{\{nl\}\}\{\{fa-check-circle\}\} subs(column, re(string), template(string), {[}failValue{]})` \tn % Row Count 42 (+ 16) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.36 cm} x{4.64 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String operators and functions (cont)}} \tn % Row 17 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{subsall}} & Returns a string replacing {\bf{all substring occurrences}} based on a regular expression using a template string as substitution value:\{\{nl\}\}`\{\{fa-eye\}\} FailValue is returned when is provided and no occurrences found\{\{nl\}\}\{\{fa-check-circle\}\} subs(column, regexp, template, {[}failValue{]})\{\{nl\}\}\{\{fa-check-circle\}\} subs(column, re(string), template(string), {[}failValue{]})` \tn % Row Count 16 (+ 16) % Row 18 \SetRowColor{white} \{\{nobreak\}\}{\bf{trim}} & Returns the result of trimming {\bf{both sides}}:\{\{nl\}\}`trim(column)` \tn % Row Count 19 (+ 3) % Row 19 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{ltrim}} & Returns the result of trimming {\bf{left side}}:\{\{nl\}\}`ltrim(column)` \tn % Row Count 22 (+ 3) % Row 20 \SetRowColor{white} \{\{nobreak\}\}{\bf{rtrim}} & Returns the result of trimming {\bf{right side}}:\{\{nl\}\}`rtrim(column)` \tn % Row Count 25 (+ 3) % Row 21 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{matches, {[}\textasciitilde{}{]}}} & Matches function that finds occurrences in a column using a regular expression:\{\{nl\}\}`\{\{fa-check-circle\}\}matches(column, re(string) or regexp value)\{\{nl\}\}\{\{fa-check-circle\}\}column \textasciitilde{} re(string) or regexp value` \tn % Row Count 35 (+ 10) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.36 cm} x{4.64 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String operators and functions (cont)}} \tn % Row 22 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{peek}} & Returns the part of a string based on a regular expression, optionally indicating a specific part occurrence:\{\{nl\}\}`\{\{fa-eye\}\} If no partNumber is provided then returns first part occurrence.\{\{nl\}\}peek(column, re(string) or regexp, {[}partNumber{]})` \tn % Row Count 11 (+ 11) % Row 23 \SetRowColor{white} \{\{nobreak\}\}{\bf{formatnumber}} & Format a number with a specific mask and locale:\{\{nl\}\}`formatnumber(numberColumn, mask, locale)\{\{nl\}\}\{\{fa-eye\}\}formatnumber(totalAmount, "\#\#\#.\#\#", "en-GB")` \tn % Row Count 18 (+ 7) % Row 24 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{damerau}} & Returns {\bf{Damerau}} distance:\{\{nl\}\}`damerau(column, value)` \tn % Row Count 21 (+ 3) % Row 25 \SetRowColor{white} \{\{nobreak\}\}{\bf{hamming}} & Returns {\bf{Hamming}} distance:\{\{nl\}\}`hamming(column, value)` \tn % Row Count 24 (+ 3) % Row 26 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{levenshtein}} & Returns {\bf{Levenstein}} distance:\{\{nl\}\}`levenshtein(column, value)` \tn % Row Count 27 (+ 3) % Row 27 \SetRowColor{white} \{\{nobreak\}\}{\bf{osa}} & Returns {\bf{osa}} distance:\{\{nl\}\}`osa(column, value)` \tn % Row Count 30 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.36 cm} x{4.64 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String operators and functions (cont)}} \tn % Row 28 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{publicsuffix}} & Returns the main public suffix of a hostname:\{\{nl\}\}`publicsuffix(hostnameColumn))\{\{nl\}\} \{\{fa-eye\}\} 'www.my.site.co.uk' = 'co.uk'` \tn % Row Count 6 (+ 6) % Row 29 \SetRowColor{white} \{\{nobreak\}\}{\bf{rootdomain}} & Returns the root domain of a hostname part of an url:\{\{nl\}\}`rootdomain(hostnameUrlColumn)\{\{nl\}\} \{\{fa-eye\}\} 'www.my.site.com' = 'site'` \tn % Row Count 12 (+ 6) % Row 30 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{rootprefix}} & Returns the root prefix of a hostname part of an url:\{\{nl\}\}`rootpredix(hostnameUrlColumn))\{\{nl\}\} \{\{fa-eye\}\} 'www.my.site.com' = 'www.my.site'` \tn % Row Count 19 (+ 7) % Row 31 \SetRowColor{white} \{\{nobreak\}\}{\bf{rootsuffix}} & Returns the root suffix of a hostname part of an url:\{\{nl\}\}`rootsuffix(hostnameUrlColumn))\{\{nl\}\} \{\{fa-eye\}\} 'www.my.site.com' = 'my.site.com'` \tn % Row Count 26 (+ 7) % Row 32 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{subdomain}} & Returns the subdomain of a hostname part of an url:\{\{nl\}\}`subdomain(hostnameUrlColumn)\{\{nl\}\} \{\{fa-eye\}\} 'www.my.site.com' = 'www'` \tn % Row Count 32 (+ 6) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.36 cm} x{4.64 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{String operators and functions (cont)}} \tn % Row 33 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{topleveldomain}} & Returns the top level domain of a hostname part of an url::\{\{nl\}\}`topleveldomain(hostnameUrlColumn)\{\{nl\}\} \{\{fa-eye\}\} 'www.my.site.co.uk' = 'uk'` \tn % Row Count 7 (+ 7) % Row 34 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{shannonentropy}}} \tn % Row Count 8 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Cryptographic functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{md5}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{sha1}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{sha256}}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{sha512}}} \tn % Row Count 4 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.12 cm} x{4.88 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Web functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{urischeme}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{urihost}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uriport}}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uripath}}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{urifragment}}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uriquery}}} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uriuser}}} \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{urissp}}} \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uriauthority}}} \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{absoluteuri}}} \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{opaqueuri}}} \tn % Row Count 11 (+ 1) % Row 11 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{urldecode}}} \tn % Row Count 12 (+ 1) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaurl}}} \tn % Row Count 13 (+ 1) % Row 13 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaname}}} \tn % Row Count 14 (+ 1) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uatype}}} \tn % Row Count 15 (+ 1) % Row 15 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaversion}}} \tn % Row Count 16 (+ 1) % Row 16 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaicon}}} \tn % Row Count 17 (+ 1) % Row 17 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uarobot}}} \tn % Row Count 18 (+ 1) % Row 18 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uainfourl}}} \tn % Row Count 19 (+ 1) % Row 19 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uafamily}}} \tn % Row Count 20 (+ 1) % Row 20 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uacompany}}} \tn % Row Count 21 (+ 1) % Row 21 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uacompanyurl}}} \tn % Row Count 22 (+ 1) % Row 22 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uadeviceicon}}} \tn % Row Count 23 (+ 1) % Row 23 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uadeviceinfourl}}} \tn % Row Count 24 (+ 1) % Row 24 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uadevicetype}}} \tn % Row Count 25 (+ 1) % Row 25 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaosurl}}} \tn % Row Count 26 (+ 1) % Row 26 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaosname}}} \tn % Row Count 27 (+ 1) % Row 27 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaosicon}}} \tn % Row Count 28 (+ 1) % Row 28 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaosfamily}}} \tn % Row Count 29 (+ 1) % Row 29 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaoscompany}}} \tn % Row Count 30 (+ 1) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.12 cm} x{4.88 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Web functions (cont)}} \tn % Row 30 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{uaoscompanyurl}}} \tn % Row Count 1 (+ 1) % Row 31 \SetRowColor{white} \{\{nobreak\}\}{\bf{uaosversion}} & Possible {\bf{missing}} function to filter by OS version. \tn % Row Count 4 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Meta functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{pragmavalue}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{tablename}}} \tn % Row Count 2 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Data Types}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{str}}\{\{noshy\}\}~~~~~~~~~~~~~~~~~ & String \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} {\bf{int}} & Integer number: `1,58,12598` \tn % Row Count 8 (+ 2) % Row 2 \SetRowColor{LightBackground} {\bf{float}} & Floating point number:`24.256` \tn % Row Count 10 (+ 2) % Row 3 \SetRowColor{white} {\bf{boolean}} & Boolean: `true, false` \tn % Row Count 12 (+ 2) % Row 4 \SetRowColor{LightBackground} {\bf{timestamp}} & Timestamp date in format: `yyyy-MM-dd HH:mm:ss.SSS` \tn % Row Count 15 (+ 3) % Row 5 \SetRowColor{white} {\bf{boxar(int)}} & Byte array in hexadecimal string format \tn % Row Count 17 (+ 2) % Row 6 \SetRowColor{LightBackground} {\bf{duration}} & Amount of time: an integer following by a letter\{\{nl\}\} ` {[}d{]}ays, {[}h{]}ours, {[}m{]}inutes, {[}s{]}econds, {[}No suffix{]}:milliseconds` \tn % Row Count 24 (+ 7) % Row 7 \SetRowColor{white} {\bf{geocord}} & Geographic coordinates set:\{\{nl\}\} `\{\{fa-check-circle\}\} Latitude/longitude sexagesimal values: 40º24'N 3º41'W\{\{nl\}\} \{\{fa-check-circle\}\} Hash representation of coordinates (geohash)` \tn % Row Count 34 (+ 10) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Data Types (cont)}} \tn % Row 8 \SetRowColor{LightBackground} {\bf{ip}} & IPv4 address format: `\{\{fa-eye\}\} 192.168.5.56` \tn % Row Count 3 (+ 3) % Row 9 \SetRowColor{white} {\bf{ip6}} & IPv6 address format: `\{\{fa-eye\}\} \seqsplit{2001:0db8:85a3:0000:0000:8a2e:0370:7334`} \tn % Row Count 7 (+ 4) % Row 10 \SetRowColor{LightBackground} {\bf{net4}} & IPv4 address in format: `\{x.x.x.x/0` \tn % Row Count 9 (+ 2) % Row 11 \SetRowColor{white} {\bf{net6}} & IPv6 address in format: ` x.x.x.x.x.x/s` \tn % Row Count 11 (+ 2) % Row 12 \SetRowColor{LightBackground} {\bf{regexp}} & Regular expression: `\{\{fa-eye\}\} {[}\textasciicircum{}\textbackslash{}w{]}` \tn % Row Count 13 (+ 2) % Row 13 \SetRowColor{white} {\bf{template}} & Represents a substitution string mask. \tn % Row Count 15 (+ 2) % Row 14 \SetRowColor{LightBackground} {\bf{dc}} & Represents a estimated count of distinct elements in a data stream. \tn % Row Count 19 (+ 4) % Row 15 \SetRowColor{white} {\bf{image}} & Image as Base64 encoding image. \tn % Row Count 21 (+ 2) % Row 16 \SetRowColor{LightBackground} {\bf{mac}} & MAC address in format: `\{\{fa-eye\}\} 00:0a:95:9d:68:16` \tn % Row Count 24 (+ 3) % Row 17 \SetRowColor{white} {\bf{namepattern}} & Represents a part of a table name: `\{\{fa-eye\}\} my.app, demo, ...` \tn % Row Count 28 (+ 4) % Row 18 \SetRowColor{LightBackground} {\bf{set(name)}} & Represents a set of table names: `\{\{fa-eye\}\} \{my.app.test, my.app.test2\}` \tn % Row Count 32 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Data Types (cont)}} \tn % Row 19 \SetRowColor{LightBackground} {\bf{json}} & String in json format: `\{\{fa-eye\}\} \{"id":345, "name":"John"\}` \tn % Row Count 4 (+ 4) % Row 20 \SetRowColor{white} {\bf{jq}} & Represents a {\bf{jq}} filter, {\bf{jq}} is a command line json processor.\{\{nl\}\}`\{\{fa-eye\}\} .email` \tn % Row Count 9 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.04 cm} x{4.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Common comparison functions and operators}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{eq, {[}={]}}} & {\bf{Equals to}} function and operator:\{\{nl\}\}`\{\{fa-check-circle\}\} eq(column, value or column)\{\{nl\}\}\{\{fa-check-circle\}\} column1 = value or column` \tn % Row Count 6 (+ 6) % Row 1 \SetRowColor{white} {\bf{eqic}} & Case insensitive {\bf{Equals to}} function:\{\{nl\}\}`eqic(column, value or column)` \tn % Row Count 10 (+ 4) % Row 2 \SetRowColor{LightBackground} \{\{nobreak\}\}{\bf{ge, {[}\textgreater{}={]}}} & {\bf{Greater or equal}} function and operator:\{\{nl\}\}`\{\{fa-check-circle\}\} ge(column, value or column)\{\{nl\}\}\{\{fa-check-circle\}\} column \textgreater{}= value or column` \tn % Row Count 17 (+ 7) % Row 3 \SetRowColor{white} {\bf{gt, {[}\textgreater{}{]}}} & {\bf{Greater than}} function and operator:\{\{nl\}\}`\{\{fa-check-circle\}\} gt(column, value or column)\{\{nl\}\}\{\{fa-check-circle\}\} column \textgreater{} value or column` \tn % Row Count 23 (+ 6) % Row 4 \SetRowColor{LightBackground} {\bf{le, {[}\textless{}={]}}} & {\bf{Less or equal}} function and operator:\{\{nl\}\}`\{\{fa-check-circle\}\} le(column, value or column)\{\{nl\}\}\{\{fa-check-circle\}\} column \textless{}= value or column` \tn % Row Count 30 (+ 7) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{x{3.04 cm} x{4.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Common comparison functions and operators (cont)}} \tn % Row 5 \SetRowColor{LightBackground} {\bf{lt, {[}\textless{}{]}}} & {\bf{Less than}} function and operator:\{\{nl\}\}`\{\{fa-check-circle\}\} lt(column, value or column)\{\{nl\}\}\{\{fa-check-circle\}\} column \textless{} value or column` \tn % Row Count 6 (+ 6) % Row 6 \SetRowColor{white} {\bf{ne, {[}/={]}}} & {\bf{Not equal}} function and operator:\{\{nl\}\}`\{\{fa-check-circle\}\} ne(column, value or column)\{\{nl\}\}\{\{fa-check-circle\}\} column /= value or column` \tn % Row Count 12 (+ 6) % Row 7 \SetRowColor{LightBackground} {\bf{isnull}} & Check if {\bf{is null}} function:\{\{nl\}\}`isnull(column)` \tn % Row Count 15 (+ 3) % Row 8 \SetRowColor{white} \{\{nobreak\}\}{\bf{isnotnull}} & Check if {\bf{is not null}} function:\{\{nl\}\}`isnotnull(column)` \tn % Row Count 18 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Logig Functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{and}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{or}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{not}}} \tn % Row Count 3 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{JSON related functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{jqeval}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{label}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{jsonparse}}} \tn % Row Count 3 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.08 cm} x{5.92 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Math functions and operators}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{abs}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{add / {[}+{]}}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{sub / {[}-{]}}}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{mul / {[}*{]}}}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{div / {[}\textbackslash{}{]}}}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} {\bf{rdiv / {[}/{]}}} & Real division function and operator: \tn % Row Count 7 (+ 2) % Row 6 \SetRowColor{LightBackground} {\bf{mod / {[}\%\%{]}}} & Module function: \tn % Row Count 9 (+ 2) % Row 7 \SetRowColor{white} {\bf{rem / {[}\%{]}}} & Return the remain of a division operation: \tn % Row Count 11 (+ 2) % Row 8 \SetRowColor{LightBackground} {\bf{pow}} & Power function: \tn % Row Count 12 (+ 1) % Row 9 \SetRowColor{white} {\bf{cbrt}} & Cube root function: \tn % Row Count 13 (+ 1) % Row 10 \SetRowColor{LightBackground} {\bf{sqrt}} & Square root function: \tn % Row Count 14 (+ 1) % Row 11 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{ceil}}} \tn % Row Count 15 (+ 1) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{floor}}} \tn % Row Count 16 (+ 1) % Row 13 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{round}}} \tn % Row Count 17 (+ 1) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{signum}}} \tn % Row Count 18 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Statistical and specialised statistical functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{estimation}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{pack}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{unpackhllpp}}} \tn % Row Count 3 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Network functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{ispublic}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{isprivate}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{ipip4}}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{ipprotocol}}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{purpose}}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{host}}} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{routing}}} \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{httpstatusdescription}}} \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{httpstatustype}}} \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{reputation}}} \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{score}}} \tn % Row Count 11 (+ 1) % Row 11 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{sbl}}} \tn % Row Count 12 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Conversion functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{int}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{str}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{bool}}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{float}}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{image}}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{ip4}}} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{net4}}} \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{ip6}}} \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{net6}}} \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{mac}}} \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{to16}}} \tn % Row Count 11 (+ 1) % Row 11 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{from16}}} \tn % Row Count 12 (+ 1) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{to64}}} \tn % Row Count 13 (+ 1) % Row 13 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{from64}}} \tn % Row Count 14 (+ 1) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{toutf8}}} \tn % Row Count 15 (+ 1) % Row 15 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{fromutf8}}} \tn % Row Count 16 (+ 1) % Row 16 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{toz85}}} \tn % Row Count 17 (+ 1) % Row 17 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{fromz85}}} \tn % Row Count 18 (+ 1) % Row 18 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{compatible}}} \tn % Row Count 19 (+ 1) % Row 19 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{mapped}}} \tn % Row Count 20 (+ 1) % Row 20 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{translated}}} \tn % Row Count 21 (+ 1) % Row 21 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{template}}} \tn % Row Count 22 (+ 1) % Row 22 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{timestamp}}} \tn % Row Count 23 (+ 1) % Row 23 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{duration}}} \tn % Row Count 24 (+ 1) % Row 24 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{re}}} \tn % Row Count 25 (+ 1) % Row 25 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{parsedate}}} \tn % Row Count 26 (+ 1) % Row 26 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{formatdate}}} \tn % Row Count 27 (+ 1) % Row 27 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{humansize}}} \tn % Row Count 28 (+ 1) % Row 28 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{mkboxar}}} \tn % Row Count 29 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.04 cm} x{4.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Special comparison functions}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{matches}} & Matches function finds occurrences in a column using a regular expression:\{\{nl\}\}`\{\{fa-check-circle\}\}matches(column, re(string) or regexp value)\{\{nl\}\}\{\{fa-check-circle\}\}column \textasciitilde{} re(string) or regexp value` \tn % Row Count 9 (+ 9) % Row 1 \SetRowColor{white} \{\{nobreak\}\}{\bf{anymatches}} & Find occurrences in a {\bf{set of names}} type column against a namepattern:\{\{nl\}\}`anymatches(setOfNames, nameglob(string) or namepattern)\{\{nl\}\}\{\{fa-eye\}\} anymatches(tables, \seqsplit{nameglob("my.app.*.*"))`} \tn % Row Count 18 (+ 9) % Row 2 \SetRowColor{LightBackground} {\bf{nameglob}} & Return a formmated string as a {\bf{namepattern}} to use with {\bf{anymatches}}:\{\{nl\}\}`nameglob(string)` \tn % Row Count 23 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Date and time functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{day}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{dayofweek}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{dayofyear}}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{month}}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{year}}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{epoch}}} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{hour}}} \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{minute}}} \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{second}}} \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{millisecond}}} \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{today}}} \tn % Row Count 11 (+ 1) % Row 11 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{tomorrow}}} \tn % Row Count 12 (+ 1) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{{\bf{yesterday}}} \tn % Row Count 13 (+ 1) % Row 13 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{{\bf{period}}} \tn % Row Count 14 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Packet functions}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{hasio4}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{hastcp}}} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{hasudp}}} \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{hasether}}} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4proto}}} \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4src}}} \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4dst}}} \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4status}}} \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4ttl}}} \tn % Row Count 9 (+ 1) % Row 9 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4len}}} \tn % Row Count 10 (+ 1) % Row 10 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4payload}}} \tn % Row Count 11 (+ 1) % Row 11 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4flags}}} \tn % Row Count 12 (+ 1) % Row 12 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4fragment}}} \tn % Row Count 13 (+ 1) % Row 13 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4cs}}} \tn % Row Count 14 (+ 1) % Row 14 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4hl}}} \tn % Row Count 15 (+ 1) % Row 15 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4ds}}} \tn % Row Count 16 (+ 1) % Row 16 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4ecn}}} \tn % Row Count 17 (+ 1) % Row 17 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ip4tos}}} \tn % Row Count 18 (+ 1) % Row 18 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{etherdst}}} \tn % Row Count 19 (+ 1) % Row 19 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ethersrc}}} \tn % Row Count 20 (+ 1) % Row 20 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{etherpayload}}} \tn % Row Count 21 (+ 1) % Row 21 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{etherstatus}}} \tn % Row Count 22 (+ 1) % Row 22 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ethertag}}} \tn % Row Count 23 (+ 1) % Row 23 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{ethertype}}} \tn % Row Count 24 (+ 1) % Row 24 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcpdst}}} \tn % Row Count 25 (+ 1) % Row 25 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcpsrc}}} \tn % Row Count 26 (+ 1) % Row 26 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcpstatus}}} \tn % Row Count 27 (+ 1) % Row 27 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcpflags}}} \tn % Row Count 28 (+ 1) % Row 28 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcppack}}} \tn % Row Count 29 (+ 1) % Row 29 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcpcs}}} \tn % Row Count 30 (+ 1) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{8.4cm}{p{0.8 cm} p{0.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Packet functions (cont)}} \tn % Row 30 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcpseq}}} \tn % Row Count 1 (+ 1) % Row 31 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcphl}}} \tn % Row Count 2 (+ 1) % Row 32 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcppayload}}} \tn % Row Count 3 (+ 1) % Row 33 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcpurg}}} \tn % Row Count 4 (+ 1) % Row 34 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{tcpwin}}} \tn % Row Count 5 (+ 1) % Row 35 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{udpsrc}}} \tn % Row Count 6 (+ 1) % Row 36 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{udpport}}} \tn % Row Count 7 (+ 1) % Row 37 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{udpstatus}}} \tn % Row Count 8 (+ 1) % Row 38 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{udpcs}}} \tn % Row Count 9 (+ 1) % Row 39 \SetRowColor{white} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{udplen}}} \tn % Row Count 10 (+ 1) % Row 40 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{\{\{nobreak\}\}{\bf{udppayload}}} \tn % Row Count 11 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}