20
20
import static org .elasticsearch .xpack .ql .type .DataTypes .KEYWORD ;
21
21
import static org .elasticsearch .xpack .ql .type .DataTypes .LONG ;
22
22
import static org .elasticsearch .xpack .sql .expression .literal .interval .Intervals .compatibleInterval ;
23
+ import static org .elasticsearch .xpack .sql .type .SqlDataTypes .DATE ;
23
24
import static org .elasticsearch .xpack .sql .type .SqlDataTypes .INTERVAL_DAY ;
24
25
import static org .elasticsearch .xpack .sql .type .SqlDataTypes .INTERVAL_DAY_TO_HOUR ;
25
26
import static org .elasticsearch .xpack .sql .type .SqlDataTypes .INTERVAL_DAY_TO_MINUTE ;
33
34
import static org .elasticsearch .xpack .sql .type .SqlDataTypes .INTERVAL_SECOND ;
34
35
import static org .elasticsearch .xpack .sql .type .SqlDataTypes .INTERVAL_YEAR ;
35
36
import static org .elasticsearch .xpack .sql .type .SqlDataTypes .INTERVAL_YEAR_TO_MONTH ;
37
+ import static org .elasticsearch .xpack .sql .type .SqlDataTypes .TIME ;
36
38
import static org .elasticsearch .xpack .sql .type .SqlDataTypes .defaultPrecision ;
37
39
import static org .elasticsearch .xpack .sql .type .SqlDataTypes .isInterval ;
38
40
import static org .elasticsearch .xpack .sql .type .SqlDataTypes .metaSqlDataType ;
45
47
public class SqlDataTypesTests extends ESTestCase {
46
48
47
49
public void testMetadataType () {
50
+ assertEquals (Integer .valueOf (91 ), metaSqlDataType (DATE ));
51
+ assertEquals (Integer .valueOf (92 ), metaSqlDataType (TIME ));
48
52
assertEquals (Integer .valueOf (9 ), metaSqlDataType (DATETIME ));
49
53
DataType t = randomDataTypeNoDateTime ();
50
54
assertEquals (sqlType (t ).getVendorTypeNumber (), metaSqlDataType (t ));
51
55
}
52
56
53
57
public void testMetaDateTypeSub () {
58
+ assertEquals (Integer .valueOf (1 ), metaSqlDateTimeSub (DATE ));
59
+ assertEquals (Integer .valueOf (2 ), metaSqlDateTimeSub (TIME ));
54
60
assertEquals (Integer .valueOf (3 ), metaSqlDateTimeSub (DATETIME ));
55
61
assertEquals (Integer .valueOf (0 ), metaSqlDateTimeSub (randomDataTypeNoDateTime ()));
56
62
}
57
63
58
64
public void testMetaMinimumScale () {
65
+ assertNull (metaSqlMinimumScale (DATE ));
66
+ assertEquals (Short .valueOf ((short ) 3 ), metaSqlMinimumScale (TIME ));
59
67
assertEquals (Short .valueOf ((short ) 3 ), metaSqlMinimumScale (DATETIME ));
60
68
assertEquals (Short .valueOf ((short ) 0 ), metaSqlMinimumScale (LONG ));
61
69
assertEquals (Short .valueOf ((short ) defaultPrecision (FLOAT )), metaSqlMaximumScale (FLOAT ));
62
70
assertNull (metaSqlMinimumScale (KEYWORD ));
63
71
}
64
72
65
73
public void testMetaMaximumScale () {
74
+ assertNull (metaSqlMinimumScale (DATE ));
75
+ assertEquals (Short .valueOf ((short ) 3 ), metaSqlMinimumScale (TIME ));
66
76
assertEquals (Short .valueOf ((short ) 3 ), metaSqlMaximumScale (DATETIME ));
67
77
assertEquals (Short .valueOf ((short ) 0 ), metaSqlMaximumScale (LONG ));
68
78
assertEquals (Short .valueOf ((short ) defaultPrecision (FLOAT )), metaSqlMaximumScale (FLOAT ));
@@ -78,7 +88,7 @@ public void testMetaRadix() {
78
88
79
89
80
90
// type checks
81
- public void testIsInterval () throws Exception {
91
+ public void testIsInterval () {
82
92
for (DataType dataType : asList (INTERVAL_YEAR ,
83
93
INTERVAL_MONTH ,
84
94
INTERVAL_DAY ,
@@ -96,14 +106,14 @@ public void testIsInterval() throws Exception {
96
106
}
97
107
}
98
108
99
- public void testIntervalCompatibilityYearMonth () throws Exception {
109
+ public void testIntervalCompatibilityYearMonth () {
100
110
assertEquals (INTERVAL_YEAR_TO_MONTH , compatibleInterval (INTERVAL_YEAR , INTERVAL_MONTH ));
101
111
assertEquals (INTERVAL_YEAR_TO_MONTH , compatibleInterval (INTERVAL_YEAR , INTERVAL_YEAR_TO_MONTH ));
102
112
assertEquals (INTERVAL_YEAR_TO_MONTH , compatibleInterval (INTERVAL_MONTH , INTERVAL_YEAR ));
103
113
assertEquals (INTERVAL_YEAR_TO_MONTH , compatibleInterval (INTERVAL_MONTH , INTERVAL_YEAR_TO_MONTH ));
104
114
}
105
115
106
- public void testIntervalCompatibilityDayTime () throws Exception {
116
+ public void testIntervalCompatibilityDayTime () {
107
117
assertEquals (INTERVAL_DAY_TO_HOUR , compatibleInterval (INTERVAL_DAY , INTERVAL_HOUR ));
108
118
assertEquals (INTERVAL_DAY_TO_HOUR , compatibleInterval (INTERVAL_DAY_TO_HOUR , INTERVAL_HOUR ));
109
119
assertEquals (INTERVAL_DAY_TO_MINUTE , compatibleInterval (INTERVAL_DAY , INTERVAL_MINUTE ));
@@ -121,14 +131,14 @@ public void testIntervalCompatibilityDayTime() throws Exception {
121
131
assertEquals (INTERVAL_MINUTE_TO_SECOND , compatibleInterval (INTERVAL_SECOND , INTERVAL_MINUTE ));
122
132
}
123
133
124
- public void testIncompatibleInterval () throws Exception {
134
+ public void testIncompatibleInterval () {
125
135
assertNull (compatibleInterval (INTERVAL_YEAR , INTERVAL_SECOND ));
126
136
assertNull (compatibleInterval (INTERVAL_YEAR , INTERVAL_DAY_TO_HOUR ));
127
137
assertNull (compatibleInterval (INTERVAL_HOUR , INTERVAL_MONTH ));
128
138
assertNull (compatibleInterval (INTERVAL_MINUTE_TO_SECOND , INTERVAL_MONTH ));
129
139
}
130
140
131
- public void testEsToDataType () throws Exception {
141
+ public void testEsToDataType () {
132
142
List <String > types = new ArrayList <>(Arrays .asList ("null" , "boolean" , "bool" ,
133
143
"byte" , "tinyint" ,
134
144
"short" , "smallint" ,
@@ -157,6 +167,6 @@ public void testEsToDataType() throws Exception {
157
167
}
158
168
159
169
private DataType randomDataTypeNoDateTime () {
160
- return randomValueOtherThan ( DATETIME , () -> randomFrom (SqlDataTypes .types ()));
170
+ return randomValueOtherThanMany ( SqlDataTypes :: isDateOrTimeBased , () -> randomFrom (SqlDataTypes .types ()));
161
171
}
162
172
}
0 commit comments