src/main/core-api/java/com/mysql/cj/MysqlType.java (20 lines): - line 190: // TODO If MySQL server run with the MAXDB SQL mode enabled, TIMESTAMP is identical with DATETIME. If this mode is enabled at the time that a table is created, TIMESTAMP columns are created as DATETIME columns. - line 295: BIT("BIT", Types.BIT, Boolean.class, 0, MysqlType.IS_DECIMAL, 1L, "[(M)]"), // TODO maybe precision=8 ? - line 424: * Protocol: no concrete type on the wire TODO: really? - line 432: GEOMETRY("GEOMETRY", Types.BINARY, null, 0, MysqlType.IS_NOT_DECIMAL, 65535L, ""), // TODO check precision, it isn't well documented, only mentioned that WKB format is represented by BLOB - line 451: // TODO parse complex names like [NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE collation_name] - line 503: return GEOMETRY; // TODO think about different MysqlTypes for Spatial Data Types - line 516: // TODO Exception: If the REAL_AS_FLOAT SQL mode is enabled, REAL is a synonym for FLOAT rather than DOUBLE. - line 525: // TODO FLOAT(p) [UNSIGNED] [ZEROFILL]. If p is from 0 to 24, the data type becomes FLOAT with no M or D values. If p is from 25 to 53, the data type becomes DOUBLE with no M or D values. - line 618: return GEOMETRY; // TODO think about different MysqlTypes for Spatial Data Types - line 636: case Types.NCHAR: // TODO check that it's correct - line 649: case Types.BLOB: // TODO check that it's correct - line 650: case Types.JAVA_OBJECT: // TODO check that it's correct - line 653: case Types.LONGNVARCHAR: // TODO check that it's correct - line 654: case Types.CLOB: // TODO check that it's correct - line 655: case Types.NCLOB: // TODO check that it's correct - line 672: case Types.NVARCHAR: // TODO check that it's correct - line 673: case Types.DATALINK: // TODO check that it's correct - line 674: case Types.SQLXML: // TODO check that it's correct - line 684: // TODO check next types - line 709: // TODO use MysqlTypes here ? src/main/core-impl/java/com/mysql/cj/ClientPreparedQueryBindings.java (13 lines): - line 126: this.bindValues[parameterIndex].setMysqlType(MysqlType.TEXT); // TODO was Types.CLOB, check; use length to find right TEXT type - line 155: this.bindValues[parameterIndex].setMysqlType(MysqlType.BLOB); // TODO use length to find the right BLOB type - line 202: this.bindValues[parameterIndex].setMysqlType(MysqlType.BINARY); // TODO VARBINARY ? - line 218: // TODO unify with AbstractQueryBindings.hexEscapeBlock() - line 229: setValue(parameterIndex, bOut.toByteArray(), MysqlType.BINARY); // TODO VARBINARY ? - line 298: setValue(parameterIndex, bOut.toByteArray(), MysqlType.BINARY); // TODO VARBINARY ? - line 306: setValue(parameterIndex, parameterWithQuotes, MysqlType.BINARY); // TODO VARBINARY ? - line 311: setValue(parameterIndex, parameterAsBytes, MysqlType.BINARY); // TODO VARBINARY ? - line 358: this.bindValues[parameterIndex].setMysqlType(MysqlType.TEXT); // TODO was Types.CLOB - line 396: this.bindValues[i].setMysqlType(MysqlType.TEXT); // TODO was Types.CLOB - line 432: setValue(parameterIndex, StringUtils.fixDecimalExponent(String.valueOf(x)), MysqlType.FLOAT); // TODO check; was Types.FLOAT but should be Types.REAL to map to SQL FLOAT - line 600: this.bindValues[parameterIndex].setMysqlType(MysqlType.TEXT); // TODO was Types.NCLOB; use length to find right TEXT type - line 699: setValue(parameterIndex, parameterAsBytes, MysqlType.VARCHAR); // TODO was Types.NVARCHAR src/main/user-impl/java/com/mysql/cj/jdbc/result/ResultSetImpl.java (11 lines): - line 256: // TODO which database to use, from connection or from statement? - line 559: * TODO: Required by JDBC spec - line 1088: throw new RuntimeException(e); // FIXME: Need to evolve interface - line 1116: // TODO Field sets binary and blob flags if the length of BIT field is > 1; is it needed at all? - line 2011: throw new RuntimeException(e); // FIXME: Need to evolve public interface - line 2022: throw new RuntimeException(e); // FIXME: Need to evolve public interface - line 2038: throw new RuntimeException(e); // TODO: FIXME: Need to evolve public interface - line 2055: throw new RuntimeException(e); // TODO: FIXME: Need to evolve public interface - line 2071: throw new RuntimeException(e); // TODO: FIXME: Need to evolve public interface - line 2082: throw new RuntimeException(e); // TODO: FIXME: Need to evolve public interface - line 2093: throw new RuntimeException(e); // TODO: FIXME: Need to evolve public interface src/main/protocol-impl/java/com/mysql/cj/protocol/x/XMessageBuilder.java (11 lines): - line 426: // TODO: encoding (character_set_client?) - line 675: // TODO this works for tables too - line 829: // TODO: encoding (character_set_client?) - line 841: // TODO: encoding for all this? - line 875: // TODO: encoding for all this? - line 930: // TODO: >> serverName. Is this of any use in our X Protocol exchange? Should be defined to be blank or something. - line 942: // TODO: better exception, should introduce a new exception class for auth? - line 952: // TODO ((NameCallback) c).setName(user); - line 955: // TODO ((PasswordCallback) c).setPassword(password.toCharArray()); - line 969: // TODO: >> serverName. Is this of any use in our X Protocol exchange? Should be defined to be blank or something. - line 981: // TODO: better exception, should introduce a new exception class for auth? src/main/protocol-impl/java/com/mysql/cj/protocol/x/XProtocolDecoder.java (10 lines): - line 163: // TODO Auto-generated method stub - line 169: // TODO Auto-generated method stub - line 175: // TODO Auto-generated method stub - line 181: // TODO Auto-generated method stub - line 187: // TODO Auto-generated method stub - line 193: // TODO Auto-generated method stub - line 242: // TODO: optimization possibilities include using int/long if the digits is < X and scale = 0 - line 323: // TODO: charset - line 326: // TODO: charset mess here - line 336: // TODO Auto-generated method stub src/main/protocol-impl/java/com/mysql/cj/protocol/x/XProtocol.java (10 lines): - line 197: this.messageToProtocolEntityFactory.put(ColumnMetaData.class, new FieldFactory("latin1")); // TODO configure metadata character set from server session - line 268: } // TODO Log "Compression negotiation failed. Connection will proceed uncompressed." - line 290: } // TODO Log "Compression negotiation failed. Connection will proceed uncompressed." - line 512: private String currUser = null, currPassword = null, currDatabase = null; // TODO remove these variables after implementing mysql_reset_connection() in reset() method - line 533: // TODO setup all required server session states - line 563: // TODO: can use a simple default for this as we don't need metadata. need to prevent against exceptions though - line 686: // TODO: put this in CharsetMapping.. - line 700: // TODO put notices somewhere like it's done eg. in readStatementExecuteOk(): builder.addNotice(this.reader.read(Frame.class)); - line 1022: // TODO: Figure out how this is relevant for X Protocol client Session - line 1030: //TODO: expose this via ServerVersion so calls look like x.getServerVersion().meetsMinimum(major, minor, subminor) src/build/java/instrumentation/TranslateExceptions.java (10 lines): - line 175: // TODO: Does it's own typical exception wrapping, could be instrumented with different catch method - line 180: // TODO: Does it's own typical exception wrapping, could be instrumented with different catch method - line 185: // TODO: Does it's own typical exception wrapping, could be instrumented with different catch method - line 496: * TODO: - line 502: * TODO: - line 510: * TODO: - line 517: * TODO: - line 524: * TODO: - line 531: * TODO: - line 538: * TODO: src/main/user-impl/java/com/mysql/cj/jdbc/BlobFromLocator.java (9 lines): - line 170: // TODO: Make fetch size configurable - line 186: // FIXME: Needs to use identifiers for column/table names - line 209: // FIXME: Have this passed in instead - line 270: // FIXME: Needs to use identifiers for column/table names - line 287: // FIXME: Have this passed in instead - line 334: // FIXME: Needs to use identifiers for column/table names - line 354: // FIXME: Have this passed in instead - line 396: // FIXME: Needs to use identifiers for column/table names - line 417: // FIXME: Have this passed in instead src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaData.java (8 lines): - line 96: protected static int maxBufferSize = 65535; // TODO find a way to use actual (not default) value - line 892: // TODO CHAR_OCTET_LENGTH the maximum length of binary and character based columns. For any other datatype the returned value is a NULL - line 2265: fields[5] = new Field("", "TYPE_NAME", this.metadataCollationIndex, this.metadataEncoding, MysqlType.CHAR, 16); // TODO why is it 16 bytes long? we have longer types specifications - line 2302: // String primaryDb = getDatabase(primaryCatalog, primarySchema); // TODO not needed? - line 3838: // TODO: Check if this branch is needed for 5.7 server (maybe refactor hasTableTypes) - line 3965: case DECIMAL: // TODO is it right? DECIMAL isn't a floating-point number... - line 4058: // TODO add missed types (aliases) - line 4493: // TODO MySQL has a CONVERT() function, is it irrelevant here? src/main/core-impl/java/com/mysql/cj/NativeSession.java (7 lines): - line 87: private NativeMessageBuilder commandBuilder = new NativeMessageBuilder(); // TODO use shared builder - line 111: // TODO do we need different types of physical connections? - line 134: // TODO: this method should not be used in user-level APIs - line 158: // TODO: we should examine the call flow here, we shouldn't have to know about the socket connection but this should be address in a wider scope. - line 172: //this.protocol = null; // TODO actually we shouldn't remove protocol instance because some it's methods can be called after closing socket - line 197: // TODO Turn this feature back on as soon as the server bug is fixed. Consider making it version specific. - line 653: // TODO what's the purpose of this variable? src/main/protocol-impl/java/com/mysql/cj/protocol/a/NativeProtocol.java (7 lines): - line 217: private NativeMessageBuilder commandBuilder = new NativeMessageBuilder(); // TODO use shared builder - line 873: // TODO decide how to safely use the shared this.sendPacket - line 1025: // TODO why doing this? - line 1077: // TODO how to handle executeTopLevelOnly in such case ? - line 1129: // TODO how to handle executeTopLevelOnly in such case ? - line 2188: selectedTz = TimeZone.getTimeZone(ZoneId.of(connectionTimeZone)); // TODO use ZoneId.of(String zoneId, Map aliasMap) for custom abbreviations support - line 2194: // TODO don't send 'SET SESSION time_zone' if time_zone is already equal to the selectedTz (but it requires time zone detection) src/main/user-impl/java/com/mysql/cj/jdbc/CallableStatement.java (6 lines): - line 300: // TODO Adjust for pseudo-boolean ? - line 853: // TODO There is something strange here: - line 905: // TODO: Do this with less memory allocation - line 1739: registerOutParameter(parameterIndex, mysqlType); // TODO is that correct that we ignore scale? - line 1744: registerOutParameter(parameterIndex, sqlType); // TODO is that correct that we ignore scale? - line 1757: registerOutParameter(parameterIndex, mysqlType); // TODO is that correct that we ignore typeName? src/main/protocol-impl/java/com/mysql/cj/protocol/x/FieldFactory.java (6 lines): - line 99: // TODO: support custom character set - line 192: // TODO: longlong - line 194: throw new WrongArgumentException("TODO: unknown field type: " + type); - line 211: // TODO: figure out ranges in detail and test them - line 241: // TODO: longlong - line 243: throw new WrongArgumentException("TODO: unknown field type: " + type); src/main/user-impl/java/com/mysql/cj/jdbc/StatementImpl.java (5 lines): - line 102: protected NativeMessageBuilder commandBuilder = new NativeMessageBuilder(); // TODO use shared builder - line 406: // TODO souldn't we also clear warnings from _server_ ? - line 1855: // FIXME: can't break interface at this point - line 1909: // FIXME: Can't break interface atm, we'll get the exception later when you try and do something useful with a closed statement... - line 1929: // FIXME: Can't break interface atm, we'll get the exception later when you try and do something useful with a closed statement... src/main/core-impl/java/com/mysql/cj/ServerPreparedQuery.java (5 lines): - line 58: //TODO should not be protocol-specific - line 92: protected NativeMessageBuilder commandBuilder = new NativeMessageBuilder(); // TODO use shared builder - line 319: public NativePacketPayload sendExecutePacket(NativePacketPayload packet, String queryAsString) { // TODO queryAsString should be shared instead of passed - line 385: ColumnDefinition metadata, ProtocolEntityFactory resultSetFactory, String queryAsString) { // TODO queryAsString should be shared instead of passed - line 579: // TODO: Investigate using NIO to do this faster src/main/core-impl/java/com/mysql/cj/ServerPreparedQueryBindings.java (5 lines): - line 54: //TODO should not be protocol-specific - line 158: this.bindValues[parameterIndex].setMysqlType(MysqlType.TEXT); // TODO was Types.CLOB, check; use length to find right TEXT type - line 193: binding.parameterType = MysqlType.BLOB; // TODO use length to find the right BLOB type - line 255: binding.parameterType = MysqlType.BINARY; // TODO VARBINARY ? - line 362: binding.parameterType = MysqlType.FLOAT; // TODO check; was Types.FLOAT but should be Types.REAL to map to SQL FLOAT src/main/user-impl/java/com/mysql/cj/jdbc/DatabaseMetaDataUsingInfoSchema.java (5 lines): - line 1243: // TODO Implement with I_S - line 1249: // TODO Implement with I_S - line 1255: // TODO Implement with I_S - line 1261: // TODO Implement with I_S - line 1267: // TODO Implement with I_S src/main/user-impl/java/com/mysql/cj/jdbc/result/UpdatableResultSet.java (4 lines): - line 487: // TODO adjust nanos to decimal numbers - line 600: // FIXME: What about no table? - line 1123: // TODO: FIXME: Issue warning when asked for updatable result set, but result set is not updatable - line 1159: // TODO this is a temporary workaround until Bug#71143 "Calling ResultSet.updateRow should not set all field values in UPDATE" is fixed. src/main/core-impl/java/com/mysql/cj/AbstractQueryBindings.java (4 lines): - line 65: //TODO should not be protocol-specific - line 219: DEFAULT_MYSQL_TYPES.put(Float.class, MysqlType.FLOAT); // TODO check; was Types.FLOAT but should be Types.REAL to map to SQL FLOAT - line 296: setSerializableObject(parameterIndex, parameterObj); // TODO maybe default to error? - line 652: if (!this.treatUtilDateAsTimestamp.getValue()) { // TODO is it needed at all? src/main/protocol-impl/java/com/mysql/cj/protocol/x/XProtocolRow.java (4 lines): - line 73: // TODO: implement remaining types when server is ready - line 81: // TODO scale is unavailable from X Protocol - line 103: // TODO: do we need to really do anything special with JSON? just return correct stuff with getObject() I guess - line 125: // TODO scale is unavailable from X Protocol src/main/protocol-impl/java/com/mysql/cj/protocol/x/XServerCapabilities.java (4 lines): - line 104: // TODO Auto-generated method stub - line 110: // TODO Auto-generated method stub - line 116: // TODO Auto-generated method stub - line 122: // TODO Auto-generated method stub src/main/protocol-impl/java/com/mysql/cj/protocol/x/SyncMessageReader.java (4 lines): - line 101: // TODO close socket? - line 116: // TODO close socket? - line 182: int millis = 5000; // TODO expose via properties ? - line 204: private static final long POLL_TIMEOUT = 100; // TODO expose via connection property src/main/user-impl/java/com/mysql/cj/jdbc/ClientPreparedStatement.java (4 lines): - line 689: batchedStatement = /* FIXME -if we ever care about folks proxying our JdbcConnection */ - line 1744: // FIXME: Won't work for Non-MYSQL SQLXMLs - line 1795: ((PreparedQuery) this.query).getQueryBindings().getBindValues()[getCoreParameterIndex(parameterIndex)].setMysqlType(MysqlType.TEXT); // TODO was Types.CLOB - line 1804: ((PreparedQuery) this.query).getQueryBindings().getBindValues()[getCoreParameterIndex(parameterIndex)].setMysqlType(MysqlType.VARCHAR); // TODO was Types.DATALINK src/main/core-impl/java/com/mysql/cj/conf/DefaultPropertySet.java (3 lines): - line 103: // TODO improve message - line 120: // TODO improve message - line 189: // TODO do we need to remove next properties (as it was before)? src/main/user-impl/java/com/mysql/cj/xdevapi/CollectionImpl.java (3 lines): - line 72: // TODO should also check that the table has a DbObjectType.COLLECTION type - line 79: throw new FeatureNotAvailableException("TODO: "); - line 139: // TODO check MySQL > 8.0.1 for built in solution, like passing ifExists to dropView src/main/protocol-impl/java/com/mysql/cj/protocol/x/StatementExecuteOkBuilder.java (3 lines): - line 81: this.lastInsertId = ((XSessionStateChanged) notice).getValue().getVUnsignedInt(); // TODO: handle > 2^63-1? - line 84: this.rowsAffected = ((XSessionStateChanged) notice).getValue().getVUnsignedInt(); // TODO: handle > 2^63-1? - line 99: // TODO do something with notices, expose them to client src/main/user-impl/java/com/mysql/cj/xdevapi/ExprParser.java (3 lines): - line 836: // TODO charset? - line 946: // TODO: we need to propagate the appropriate encoding here? it's ascii but it might not *always* be a superset encoding?? - line 1140: // TODO unit test src/main/core-impl/java/com/mysql/cj/AbstractPreparedQuery.java (3 lines): - line 47: // TODO should not be protocol-specific - line 235: // TODO this method is specific to CSPS and a native protocol; must be unified with SSPS via message builder - line 298: // TODO this method should be unified with AbstractQueryBindings.streamToBytes() src/main/protocol-impl/java/com/mysql/cj/protocol/a/NativeAuthenticationProvider.java (3 lines): - line 114: // TODO: better messaging - line 117: // TODO: better messaging - line 163: // TODO MYSQLCONNJ-437 src/main/user-impl/java/com/mysql/cj/jdbc/MysqlXAConnection.java (3 lines): - line 165: // TODO: Cache this for lifetime of XAConnection - line 228: return XA_OK; // TODO: Check for read-only - line 320: // TODO: Cache this for lifetime of XAConnection src/main/core-api/java/com/mysql/cj/exceptions/ExceptionFactory.java (3 lines): - line 87: // TODO: Decide whether we need to intercept exceptions at this level - line 153: // TODO: Decide whether we need to intercept exceptions at this level - line 170: // TODO: Decide whether we need to intercept exceptions at this level src/main/core-impl/java/com/mysql/cj/result/SqlDateValueFactory.java (3 lines): - line 94: // TODO: need column context - line 104: // TODO: need column context - line 115: // TODO: need column context src/main/user-impl/java/com/mysql/cj/xdevapi/ClientImpl.java (3 lines): - line 281: while (prot == null && (this.queueTimeout == 0 || System.currentTimeMillis() < start + this.queueTimeout)) { // TODO how to avoid endless loop? - line 359: prot = this.idleProtocols.poll(); // TODO endless lock ? - line 452: // TODO is it really no-op? src/main/user-impl/java/com/mysql/cj/xdevapi/SchemaImpl.java (3 lines): - line 82: // TODO: verify quoting rules - line 102: // TODO we need to consider lower_case_table_names server variable for some cases - line 210: // TODO check MySQL > 8.0.1 for built in solution, like passing ifExists to dropView src/main/protocol-impl/java/com/mysql/cj/protocol/a/result/ResultsetRowsCursor.java (3 lines): - line 79: protected NativeMessageBuilder commandBuilder = new NativeMessageBuilder(); // TODO use shared builder - line 232: // TODO this is not the right place for this code, should be in protocol - line 260: // TODO consider to handle additional List addedRows along with fetchedRows src/main/core-api/java/com/mysql/cj/conf/PropertyDefinitions.java (3 lines): - line 73: public static final String SYSP_testsuite_disable_multihost_tests /* */ = "com.mysql.cj.testsuite.disable.multihost.tests"; // TODO should be more specific for different types of multi-host configs - line 89: public static final String SYSP_testsuite_loadstoreperf_tabletype /* */ = "com.mysql.cj.testsuite.loadstoreperf.tabletype"; // TODO document allowed types - line 807: Messages.getString("ConnectionProperties.reportMetricsIntervalMillis"), "3.1.2", CATEGORY_DEBUGING_PROFILING, 11, 0, Integer.MAX_VALUE), // TODO currently is not used !!! src/main/core-api/java/com/mysql/cj/result/Field.java (2 lines): - line 163: // TODO: this becomes moot when DBMD results aren't built from ByteArrayRow - line 185: // TODO Remove this after DBMD isn't using ByteArrayRow results. src/main/user-impl/java/com/mysql/cj/xdevapi/SessionImpl.java (2 lines): - line 202: // TODO custom properties? - line 206: // TODO modify for multi-host connections src/main/core-impl/java/com/mysql/cj/result/SqlTimeValueFactory.java (2 lines): - line 107: // TODO: need column context - line 118: // TODO: need column context src/main/core-impl/java/com/mysql/cj/result/AbstractNumericValueFactory.java (2 lines): - line 51: // TODO: Too expensive to convert from other charset to ASCII here? UTF-8 (e.g.) doesn't need any conversion before being sent to the decoder - line 60: if (s.charAt(0) == '-' // TODO shouldn't we check the length as well? src/main/core-impl/java/com/mysql/cj/result/BooleanValueFactory.java (2 lines): - line 97: // TODO: Too expensive to convert from other charset to ASCII here? UTF-8 (e.g.) doesn't need any conversion before being sent to the decoder - line 110: if (s.charAt(0) == '-' // TODO shouldn't we check the length as well? src/main/core-impl/java/com/mysql/cj/DataStoreMetadataImpl.java (2 lines): - line 49: // TODO: verify quoting rules - line 60: // TODO: verify quoting rules src/main/core-impl/java/com/mysql/cj/log/ProfilerEventImpl.java (2 lines): - line 246: // TODO charset? - line 254: // TODO charset (Bug#41172 ?) src/main/core-impl/java/com/mysql/cj/AbstractQuery.java (2 lines): - line 48: //TODO should not be protocol-specific - line 139: // TODO Auto-generated method stub src/main/user-impl/java/com/mysql/cj/jdbc/ConnectionImpl.java (2 lines): - line 1386: // TODO Turn this feature back on as soon as the server bug is fixed. Consider making it version specific. - line 1632: // FIXME: Create warnings if can't create results of the given type or concurrency src/main/core-impl/java/com/mysql/cj/ServerPreparedQueryTestcaseGenerator.java (1 line): - line 40: //TODO should not be protocol-specific src/main/core-impl/java/com/mysql/cj/conf/url/LoadBalanceConnectionUrl.java (1 line): - line 58: // TODO: Validate the hosts list: there can't be any two hosts with same host:port. src/main/user-impl/java/com/mysql/cj/xdevapi/RowImpl.java (1 line): - line 175: // TODO: charset src/main/core-impl/java/com/mysql/cj/ClientPreparedQuery.java (1 line): - line 32: //TODO should not be protocol-specific src/main/protocol-impl/java/com/mysql/cj/protocol/x/XpluginStatementCommand.java (1 line): - line 37: // TODO add support for "ping", "list_clients", "kill_client" and "ensure_collection" commands src/main/user-impl/java/com/mysql/cj/jdbc/jmx/LoadBalanceConnectionGroupManager.java (1 line): - line 70: e.printStackTrace(); // TODO log error normally instead of sysout src/main/core-impl/java/com/mysql/cj/result/AbstractDateTimeValueFactory.java (1 line): - line 127: // TODO: Too expensive to convert from other charset to ASCII here? UTF-8 (e.g.) doesn't need any conversion before being sent to the decoder src/main/protocol-impl/java/com/mysql/cj/protocol/a/result/ResultsetRowsStreaming.java (1 line): - line 80: private NativeMessageBuilder commandBuilder = new NativeMessageBuilder(); // TODO use shared builder src/main/core-impl/java/com/mysql/cj/SimpleQuery.java (1 line): - line 32: //TODO should not be protocol-specific src/main/user-impl/java/com/mysql/cj/xdevapi/CreateIndexParams.java (1 line): - line 231: // TODO pure "TEXT" is not allowed as a type, server requires the length specification src/main/protocol-impl/java/com/mysql/cj/protocol/a/ColumnDefinitionFactory.java (1 line): - line 57: // TODO Auto-generated method stub src/main/user-impl/java/com/mysql/cj/xdevapi/AbstractFilterParams.java (1 line): - line 99: // TODO: does this support placeholders? how do we prevent it? src/main/protocol-impl/java/com/mysql/cj/protocol/a/result/NativeResultset.java (1 line): - line 146: // TODO release resources of nextResultset, close streamer src/main/user-impl/java/com/mysql/cj/jdbc/PreparedStatementWrapper.java (1 line): - line 890: || interfaceClassName.equals("java.sql.Wrapper") || interfaceClassName.equals("java.sql.PreparedStatement")); // TODO check other interfaces src/main/user-impl/java/com/mysql/cj/xdevapi/DbDocValueFactory.java (1 line): - line 71: return null; // TODO: ? JsonValueLiteral.NULL; src/main/user-impl/java/com/mysql/cj/jdbc/ha/LoadBalancedConnectionProxy.java (1 line): - line 542: if (this.isClosed && !allowedOnClosedConnection(method) && method.getExceptionTypes().length > 0) { // TODO remove method.getExceptionTypes().length ? src/main/core-impl/java/com/mysql/cj/protocol/ExportControlled.java (1 line): - line 644: // TODO: use standard decoders with Java 6+ src/main/user-impl/java/com/mysql/cj/xdevapi/ExprUtil.java (1 line): - line 347: // TODO other types: LocalDate... src/main/user-impl/java/com/mysql/cj/jdbc/NonRegisteringDriver.java (1 line): - line 321: // TODO Is it true? DatabaseMetaData.supportsANSI92EntryLevelSQL() returns true... src/main/core-impl/java/com/mysql/cj/result/ZonedDateTimeValueFactory.java (1 line): - line 113: // TODO: Too expensive to convert from other charset to ASCII here? UTF-8 (e.g.) doesn't need any conversion before being sent to the decoder src/main/user-api/java/com/mysql/cj/xdevapi/Collection.java (1 line): - line 57: // TODO we have to keep add(DbDoc document) method because the DbDoc does extend the TreeMap, src/main/core-impl/java/com/mysql/cj/conf/IntegerPropertyDefinition.java (1 line): - line 77: // TODO check bounds src/main/core-api/java/com/mysql/cj/result/Row.java (1 line): - line 76: // TODO check that "if the value is SQL NULL, the value returned is null" is correctly implemented src/main/core-impl/java/com/mysql/cj/result/OffsetDateTimeValueFactory.java (1 line): - line 116: // TODO: Too expensive to convert from other charset to ASCII here? UTF-8 (e.g.) doesn't need any conversion before being sent to the decoder src/main/core-impl/java/com/mysql/cj/CancelQueryTaskImpl.java (1 line): - line 41: //TODO should not be protocol-specific src/main/user-impl/java/com/mysql/cj/jdbc/Blob.java (1 line): - line 241: // TODO: Do this without copying byte[]s by maintaining some end pointer on the original data src/main/user-impl/java/com/mysql/cj/jdbc/EscapeProcessor.java (1 line): - line 274: // FIXME: Let MySQL do this, however requires lightweight parsing of statement src/main/core-impl/java/com/mysql/cj/ServerPreparedQueryBindValue.java (1 line): - line 50: //TODO should not be protocol-specific src/main/protocol-impl/java/com/mysql/cj/protocol/x/XMessage.java (1 line): - line 67: // TODO Auto-generated method stub src/main/user-impl/java/com/mysql/cj/jdbc/exceptions/SQLError.java (1 line): - line 223: // TODO should not throw SQLException src/main/user-impl/java/com/mysql/cj/xdevapi/ExprUnparser.java (1 line): - line 286: // TODO: make sure this is correct src/main/core-impl/java/com/mysql/cj/conf/url/ReplicationConnectionUrl.java (1 line): - line 95: // TODO: Validate the hosts list: there can't be any two hosts with same host:port. src/main/user-impl/java/com/mysql/cj/jdbc/SuspendableXAConnection.java (1 line): - line 64: // TODO: check for same GTRID, but different BQUALs...MySQL doesn't allow this yet src/main/core-impl/java/com/mysql/cj/result/ByteValueFactory.java (1 line): - line 109: // TODO: Too expensive to convert from other charset to ASCII here? UTF-8 (e.g.) doesn't need any conversion before being sent to the decoder src/main/protocol-impl/java/com/mysql/cj/protocol/a/MysqlTextValueDecoder.java (1 line): - line 253: return s.length() == DATE_BUF_LEN && s.charAt(4) == '-' && s.charAt(7) == '-'; // TODO also check proper date parts ranges src/main/core-impl/java/com/mysql/cj/result/DefaultValueFactory.java (1 line): - line 57: // TODO we always check initial value here, whatever the setupServerForTruncationChecks() does for writes. src/main/core-impl/java/com/mysql/cj/result/OffsetTimeValueFactory.java (1 line): - line 105: // TODO: Too expensive to convert from other charset to ASCII here? UTF-8 (e.g.) doesn't need any conversion before being sent to the decoder src/main/protocol-impl/java/com/mysql/cj/protocol/x/MessageConstants.java (1 line): - line 88: // TODO Find a clever way to generate both maps with a single set of input pairs. src/main/protocol-impl/java/com/mysql/cj/protocol/x/XProtocolRowInputStream.java (1 line): - line 45: private Row next; // TODO document src/main/user-impl/java/com/mysql/cj/jdbc/StatementWrapper.java (1 line): - line 691: || interfaceClassName.equals("java.sql.Wrapper")); // TODO check other interfaces src/main/protocol-impl/java/com/mysql/cj/protocol/x/Notice.java (1 line): - line 53: if (notice.getScope() != Frame.Scope.GLOBAL) { // TODO should we handle global notices somehow? What frame types are applicable there? src/main/user-api/java/com/mysql/cj/jdbc/JdbcConnection.java (1 line): - line 230: // TODO this and other multi-host connection specific methods should be moved to special interface src/main/protocol-impl/java/com/mysql/cj/protocol/a/CompressedPacketSender.java (1 line): - line 41: * TODO: add support for pre-allocated buffer for large packets (if there's a demonstrable perf improvement)