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 }