MCPcopy Create free account
hub / github.com/apache/impala / StringToInt128

Function StringToInt128

be/src/exprs/expr-test.cc:1830–1880  ·  view source on GitHub ↗

Utility function to construct int128 types.

Source from the content-addressed store, hash-verified

1828
1829// Utility function to construct int128 types.
1830int128_t StringToInt128(string s) {
1831 int128_t result = 0;
1832 int sign = 1;
1833 int digit = 0;
1834 for (int i = 0; i < s.length(); ++i) {
1835 switch (s[i]) {
1836 case '-':
1837 digit = -1;
1838 break;
1839 case '0':
1840 digit = 0;
1841 break;
1842 case '1':
1843 digit = 1;
1844 break;
1845 case '2':
1846 digit = 2;
1847 break;
1848 case '3':
1849 digit = 3;
1850 break;
1851 case '4':
1852 digit = 4;
1853 break;
1854 case '5':
1855 digit = 5;
1856 break;
1857 case '6':
1858 digit = 6;
1859 break;
1860 case '7':
1861 digit = 7;
1862 break;
1863 case '8':
1864 digit = 8;
1865 break;
1866 case '9':
1867 digit = 9;
1868 break;
1869 default:
1870 DCHECK(false) << "Unexpected character.";
1871 }
1872 if (digit == -1) {
1873 DCHECK_EQ(sign, 1) << "Minus symbol appears multiple times.";
1874 sign = -1;
1875 } else {
1876 result = result * 10 + digit;
1877 }
1878 }
1879 return sign * result;
1880}
1881
1882// Format is:
1883// { Test Expression (as a string),

Callers 1

expr-test.ccFile · 0.85

Calls 1

lengthMethod · 0.45

Tested by

no test coverage detected