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

Method InitCtx

be/src/runtime/datetime-simple-date-format-parser.cc:51–94  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

49DateTimeFormatContext SimpleDateFormatTokenizer::DEFAULT_TIME_FRAC_CTX[10];
50
51void SimpleDateFormatTokenizer::InitCtx() {
52 if (initialized) return;
53
54 // Setup the default date/time context yyyy-MM-dd HH:mm:ss.SSSSSSSSS
55 const char* DATE_TIME_CTX_FMT = "yyyy-MM-dd HH:mm:ss.SSSSSSSSS";
56 for (int i = FRACTIONAL_MAX_LEN; i >= 0; --i) {
57 DEFAULT_DATE_TIME_CTX[i].Reset(DATE_TIME_CTX_FMT,
58 DEFAULT_DATE_TIME_FMT_LEN - (FRACTIONAL_MAX_LEN - i));
59 Tokenize(&DEFAULT_DATE_TIME_CTX[i], PARSE);
60 }
61
62 // Setup the default ISO date/time context yyyy-MM-ddTHH:mm:ss.SSSSSSSSS
63 for (int i = FRACTIONAL_MAX_LEN; i >= 0; --i) {
64 DEFAULT_ISO_DATE_TIME_CTX[i].Reset("yyyy-MM-ddTHH:mm:ss.SSSSSSSSS",
65 DEFAULT_DATE_TIME_FMT_LEN - (FRACTIONAL_MAX_LEN - i));
66 Tokenize(&DEFAULT_ISO_DATE_TIME_CTX[i], PARSE);
67 }
68
69 // Setup the short default date/time context yyyy-MM-dd HH:mm:ss
70 DEFAULT_SHORT_DATE_TIME_CTX.Reset("yyyy-MM-dd HH:mm:ss");
71 Tokenize(&DEFAULT_SHORT_DATE_TIME_CTX, PARSE);
72
73 // Setup the short default ISO date/time context yyyy-MM-ddTHH:mm:ss
74 DEFAULT_SHORT_ISO_DATE_TIME_CTX.Reset("yyyy-MM-ddTHH:mm:ss");
75 Tokenize(&DEFAULT_SHORT_ISO_DATE_TIME_CTX, PARSE);
76
77 // Setup the default short date context yyyy-MM-dd
78 DEFAULT_DATE_CTX.Reset("yyyy-MM-dd");
79 Tokenize(&DEFAULT_DATE_CTX, PARSE);
80
81 // Setup the default short time context HH:mm:ss
82 DEFAULT_TIME_CTX.Reset("HH:mm:ss");
83 Tokenize(&DEFAULT_TIME_CTX, PARSE, true, true);
84
85 // Setup the default short time context with fractional seconds HH:mm:ss.SSSSSSSSS
86 for (int i = FRACTIONAL_MAX_LEN; i >= 0; --i) {
87 DEFAULT_TIME_FRAC_CTX[i].Reset(DATE_TIME_CTX_FMT + 11,
88 DEFAULT_TIME_FRAC_FMT_LEN - (FRACTIONAL_MAX_LEN - i));
89 Tokenize(&DEFAULT_TIME_FRAC_CTX[i], PARSE, true, true);
90 }
91
92 // Flag that the parser is ready.
93 initialized = true;
94}
95
96bool SimpleDateFormatTokenizer::IsValidTZOffset(const char* str_begin,
97 const char* str_end) {

Callers

nothing calls this directly

Calls 1

ResetMethod · 0.45

Tested by

no test coverage detected