1 module hunt.database.driver.mysql.impl.MySQLRowImpl;
2 
3 import hunt.database.base.Numeric;
4 import hunt.database.base.impl.ArrayTuple;
5 import hunt.database.base.impl.RowDesc;
6 import hunt.database.base.impl.RowImpl;
7 import hunt.database.base.impl.RowInternal;
8 
9 // import java.math.BigDecimal;
10 // import java.time.Duration;
11 // import java.time.LocalDate;
12 // import java.time.LocalDateTime;
13 // import java.time.LocalTime;
14 // import java.time.OffsetDateTime;
15 // import java.time.OffsetTime;
16 // import java.time.temporal.Temporal;
17 
18 import hunt.collection.List;
19 import hunt.Exceptions;
20 import hunt.math.BigDecimal;
21 
22 import std.algorithm;
23 import std.string;
24 import std.variant;
25 
26 
27 class MySQLRowImpl : RowImpl {
28 
29 	// MySQLRowImpl next;
30 
31 	this(RowDesc desc) {
32         super(desc);
33 	}
34 
35 	// override
36 	// <T> T get(Class!(T) type, int pos) {
37 	// 	if (type == Boolean.class) {
38 	// 		return type.cast(getBoolean(pos));
39 	// 	} else if (type == Byte.class) {
40 	// 		return type.cast(getByte(pos));
41 	// 	} else if (type == Short.class) {
42 	// 		return type.cast(getShort(pos));
43 	// 	} else if (type == Integer.class) {
44 	// 		return type.cast(getInteger(pos));
45 	// 	} else if (type == Long.class) {
46 	// 		return type.cast(getLong(pos));
47 	// 	} else if (type == Float.class) {
48 	// 		return type.cast(getFloat(pos));
49 	// 	} else if (type == Double.class) {
50 	// 		return type.cast(getDouble(pos));
51 	// 	} else if (type == Numeric.class) {
52 	// 		return type.cast(getNumeric(pos));
53 	// 	} else if (type == string.class) {
54 	// 		return type.cast(getString(pos));
55 	// 	} else if (type == Buffer.class) {
56 	// 		return type.cast(getBuffer(pos));
57 	// 	} else if (type == LocalDate.class) {
58 	// 		return type.cast(getLocalDate(pos));
59 	// 	} else if (type == LocalDateTime.class) {
60 	// 		return type.cast(getLocalDateTime(pos));
61 	// 	} else if (type == Duration.class) {
62 	// 		return type.cast(getDuration(pos));
63 	// 	} else {
64 	// 		throw new UnsupportedOperationException("Unsupported type " ~ type.getName());
65 	// 	}
66 	// }
67 
68 	// override
69 	// <T> T[] getValues(Class!(T) type, int idx) {
70 	// 	throw new UnsupportedOperationException();
71 	// }
72 
73 	// override
74 	// Object getValue(string name) {
75 	// 	int pos = rowDesc.columnIndex(name);
76 	// 	return pos == -1 ? null : getValue(pos);
77 	// }
78 
79 	// override
80 	// Boolean getBoolean(string name) {
81 	// 	int pos = rowDesc.columnIndex(name);
82 	// 	return pos == -1 ? null : getBoolean(pos);
83 	// }
84 
85 	// override
86 	// Short getShort(string name) {
87 	// 	int pos = rowDesc.columnIndex(name);
88 	// 	return pos == -1 ? null : getShort(pos);
89 	// }
90 
91 	// override
92 	// Integer getInteger(string name) {
93 	// 	int pos = rowDesc.columnIndex(name);
94 	// 	return pos == -1 ? null : getInteger(pos);
95 	// }
96 
97 	// override
98 	// Long getLong(string name) {
99 	// 	int pos = rowDesc.columnIndex(name);
100 	// 	return pos == -1 ? null : getLong(pos);
101 	// }
102 
103 	// override
104 	// Float getFloat(string name) {
105 	// 	int pos = rowDesc.columnIndex(name);
106 	// 	return pos == -1 ? null : getFloat(pos);
107 	// }
108 
109 	// override
110 	// Double getDouble(string name) {
111 	// 	int pos = rowDesc.columnIndex(name);
112 	// 	return pos == -1 ? null : getDouble(pos);
113 	// }
114 
115 	// Numeric getNumeric(string name) {
116 	// 	int pos = rowDesc.columnIndex(name);
117 	// 	return pos == -1 ? null : getNumeric(pos);
118 	// }
119 
120 	// override
121 	// string getString(string name) {
122 	// 	int pos = rowDesc.columnIndex(name);
123 	// 	return pos == -1 ? null : getString(pos);
124 	// }
125 
126 	// override
127 	// Buffer getBuffer(string name) {
128 	// 	int pos = rowDesc.columnIndex(name);
129 	// 	return pos == -1 ? null : getBuffer(pos);
130 	// }
131 
132 	// override
133 	// Temporal getTemporal(string name) {
134 	// 	throw new UnsupportedOperationException();
135 	// }
136 
137 	// override
138 	// LocalDate getLocalDate(string name) {
139 	// 	int pos = rowDesc.columnIndex(name);
140 	// 	return pos == -1 ? null : getLocalDate(pos);
141 	// }
142 
143 	// override
144 	// LocalTime getLocalTime(string name) {
145 	// 	throw new UnsupportedOperationException();
146 	// }
147 
148 	// override
149 	// LocalDateTime getLocalDateTime(string name) {
150 	// 	int pos = rowDesc.columnIndex(name);
151 	// 	return pos == -1 ? null : getLocalDateTime(pos);
152 	// }
153 
154 	// override
155 	// OffsetTime getOffsetTime(string name) {
156 	// 	throw new UnsupportedOperationException();
157 	// }
158 
159 	// override
160 	// OffsetDateTime getOffsetDateTime(string name) {
161 	// 	throw new UnsupportedOperationException();
162 	// }
163 
164 	// override
165 	// UUID getUUID(string name) {
166 	// 	throw new UnsupportedOperationException();
167 	// }
168 
169 	// override
170 	// BigDecimal getBigDecimal(string name) {
171 	// 	throw new UnsupportedOperationException();
172 	// }
173 
174 	// override
175 	// Integer[] getIntegerArray(string name) {
176 	// 	throw new UnsupportedOperationException();
177 	// }
178 
179 	// override
180 	// Boolean[] getBooleanArray(string name) {
181 	// 	throw new UnsupportedOperationException();
182 	// }
183 
184 	// override
185 	// Short[] getShortArray(string name) {
186 	// 	throw new UnsupportedOperationException();
187 	// }
188 
189 	// override
190 	// Long[] getLongArray(string name) {
191 	// 	throw new UnsupportedOperationException();
192 	// }
193 
194 	// override
195 	// Float[] getFloatArray(string name) {
196 	// 	throw new UnsupportedOperationException();
197 	// }
198 
199 	// override
200 	// Double[] getDoubleArray(string name) {
201 	// 	throw new UnsupportedOperationException();
202 	// }
203 
204 	// override
205 	// string[] getStringArray(string name) {
206 	// 	throw new UnsupportedOperationException();
207 	// }
208 
209 	// override
210 	// LocalDate[] getLocalDateArray(string name) {
211 	// 	throw new UnsupportedOperationException();
212 	// }
213 
214 	// override
215 	// LocalTime[] getLocalTimeArray(string name) {
216 	// 	throw new UnsupportedOperationException();
217 	// }
218 
219 	// override
220 	// OffsetTime[] getOffsetTimeArray(string name) {
221 	// 	throw new UnsupportedOperationException();
222 	// }
223 
224 	// override
225 	// LocalDateTime[] getLocalDateTimeArray(string name) {
226 	// 	throw new UnsupportedOperationException();
227 	// }
228 
229 	// override
230 	// OffsetDateTime[] getOffsetDateTimeArray(string name) {
231 	// 	throw new UnsupportedOperationException();
232 	// }
233 
234 	// override
235 	// Buffer[] getBufferArray(string name) {
236 	// 	throw new UnsupportedOperationException();
237 	// }
238 
239 	// override
240 	// UUID[] getUUIDArray(string name) {
241 	// 	throw new UnsupportedOperationException();
242 	// }
243 
244 
245 	// override
246 	// Boolean getBoolean(int pos) {
247 	// 	// in MySQL BOOLEAN type is mapped to TINYINT
248 	// 	Object val = get(pos);
249 	// 	if (val instanceof Boolean) {
250 	// 		return (Boolean) val;
251 	// 	} else if (val instanceof Byte) {
252 	// 		return (Byte) val != 0;
253 	// 	}
254 	// 	return null;
255 	// }
256 
257 	// Numeric getNumeric(int pos) {
258 	// 	Object val = get(pos);
259 	// 	if (val instanceof Numeric) {
260 	// 		return (Numeric) val;
261 	// 	} else if (val instanceof Number) {
262 	// 		return Numeric.parse(val.toString());
263 	// 	}
264 	// 	return null;
265 	// }
266 
267 	// private Byte getByte(int pos) {
268 	// 	Object val = get(pos);
269 	// 	if (val instanceof Byte) {
270 	// 		return (Byte) val;
271 	// 	} else if (val instanceof Number) {
272 	// 		return ((Number) val).byteValue();
273 	// 	}
274 	// 	return null;
275 	// }
276 
277 	// private Duration getDuration(int pos) {
278 	// 	Object val = get(pos);
279 	// 	if (val instanceof Duration) {
280 	// 		return (Duration) val;
281 	// 	}
282 	// 	return null;
283 	// }
284 }