assessment/report_generator.go (8 lines): - line 332: // TODO : Right now we migrate all mysql indexes to spanner, we need to do it based on index type and then modify the fields here for unsupported index types - line 404: row.codeChangeEffort = "Modify" //TODO Check number of references in queries and modify - line 497: // TODO move calculation logic to assessment engine - line 525: if !columnAssessment.CompatibleDataType { // TODO type specific checks on size - line 528: if columnAssessment.SourceColDef.IsOnUpdateTimestampSet { //TODO Add Code change effort for this - line 551: // TODO: fetch it from maxValue field in column definition - line 564: //TODO add check for not null to null scenarios - line 596: if srcTableDef.Name == snippet.TableName { //TODO add check that column is empty here streaming/streaming.go (5 lines): - line 61: // If any Rretry related exploration is not immediately feasible, please do add a TODO comment in the code. - line 210: // TODO: Update names to have more info like dbname. - line 329: //TODO: Clean up fmt.Printf logs and replace them with zap logger. - line 540: // TODO: Explore if there's a way to make this idempotent or retriable. - line 794: // TODO explore retries. import_data/csv_data.go (4 lines): - line 33: // TODO: start with single table imports - line 34: // TODO: Response code - error /success contract between gcloud and SMT - line 35: // TODO: get CSV locally. start with unchunked and later figure out chunking for larger sizes - line 79: // TODO: review these limits assessment/assessment_engine.go (4 lines): - line 253: if !strings.Contains(srcCharset, "utf8") { // TODO add charset level comparisons - per source - line 260: // TODO - if no spanner table exists - return nil - line 261: return 1 //TODO - currently dummy implementation assuming spanner will always be bigger - to calculate based on charset and column size differences - line 264: // TODO - move to spanner interface? sources/cassandra/validations/count/count.go (3 lines): - line 104: // TODO: Consider generating custom token ranges based on size estimates instead of relying on cassandra partitions. - line 112: // TODO: Consider parallelizing across tables. - line 241: // TODO: Consider creating configurable number of partitions instead of system ranges. profiles/source_profile.go (3 lines): - line 75: // TODO: Add check that format takes values from ["dump", "csv", "avro", ... etc] - line 645: // TODO: Define the sharding structure for DMS migrations here. - line 712: // same. TODO: Deprecate this function and pass around SourceProfile across the sources/postgres/pgdump.go (3 lines): - line 732: // TODO: Avoid Spanner-specific schema transformations in this file -- they should only - line 749: // TODO: add cases for other constraints. - line 849: // TODO: There might be other Node types like Node_IntList, Node_List, Node_BitString etc that sources/postgres/infoschema.go (3 lines): - line 258: // TODO: All of the queries to get tables and table data should be in - line 515: // TODO: handle error cases. - line 516: // TODO: handle case of multiple array bounds. cmd/import_data.go (2 lines): - line 81: //TODO: handle POSTGRESQL - line 129: //TODO implement me webv2/web.go (2 lines): - line 66: // TODO:(searce): - line 630: // TODO: Fix UX flow of migration project id assessment/utils/assessment_output.go (2 lines): - line 43: //CodeSnippets *[]Snippet // Affected code snippets TODO - move to AppCodeAssessment - line 120: IsInterleavable bool // TODO: display this information in report sources/cassandra/validations/validation/validation.go (2 lines): - line 95: // TODO: Verify table exists on target once system query is fixed. - line 379: // TODO: Consider batched reads from Spanner instead of point reads per row. conversion/conversion_from_source.go (2 lines): - line 85: // TODO: Define the schema processing logic for DMS migrations here. - line 142: // TODO: refactor of the way we handle getSeekable internal/reports/report_helpers.go (2 lines): - line 305: // TODO: add logic to choose case for Spanner types based - line 608: // TODO: add links in these descriptions to further documentation assessment/collectors/infoschema_collector.go (2 lines): - line 152: // TODO : Move all print methods to source specific classes - line 183: // TODO: move this method to assessment_engine sources/mysql/mysqldump.go (2 lines): - line 274: // TODO: Avoid Spanner-specific schema transformations in this file -- they should only - line 373: // TODO: Resolve ordering issue for non-primary keys. internal/mapping.go (1 line): - line 283: // TODO: Expand ResolveRefs to primary keys and indexes. cmd/data.go (1 line): - line 49: filePrefix string // TODO: move filePrefix to global flags internal/verbose.go (1 line): - line 21: // TODO: Replace verbose with one of the existing go logging spanner/ddl/ast.go (1 line): - line 590: // TODO: Move this method to mapping.go and preserve the table names in sorted conversion/data_from_database.go (1 line): - line 51: // TODO: Define the data processing logic for DMS migrations here. accessors/spanner/spanner_accessor.go (1 line): - line 256: // TODO: create change stream for only the tables present in Spanner. webv2/session/session_handler.go (1 line): - line 151: // TODO: To compute few metadata fields if empty assessment/utils/elements.go (1 line): - line 103: // TODO : Capture information about view permissions sources/mysql/toddl.go (1 line): - line 132: // TODO: Generate appropriate SchemaIssue to warn of different precision sources/postgres/toddl.go (1 line): - line 153: // TODO: check mod[0] and mod[1] and generate a warning schema/schema.go (1 line): - line 51: // TODO: add support for foreign keys. webv2/api/schema.go (1 line): - line 1226: // TODO: Allow users to pick which parent to use if more than one. cmd/schema_and_data.go (1 line): - line 47: filePrefix string // TODO: move filePrefix to global flags webv2/types/types.go (1 line): - line 10: // TODO:(searce) organize this file according to go style guidelines: generally profiles/target_profile.go (1 line): - line 64: // TODO: consider moving all clients to target profile instead of passing them around the codebase. conversion/conversion.go (1 line): - line 18: // TODO:(searce) Organize code in go style format to make this file more readable. webv2/routes.go (1 line): - line 95: // TODO:(searce) take constraint names themselves which are guaranteed to be unique for Spanner. expressions_api/expression_verify.go (1 line): - line 160: //TODO: Implement similar checks for DEFAULT and CHECK constraints as well import_data/csv_schema.go (1 line): - line 65: // TODO: validate schema matches sources/postgres/data.go (1 line): - line 77: // TODO: Consider using NullString to differentiate between an actual column having "NULL" as a string cmd/schema.go (1 line): - line 45: filePrefix string // TODO: move filePrefix to global flags reverse_replication/reverse-replication-runner.go (1 line): - line 492: // TODO: create change stream for only the tables present in Spanner. sources/sqlserver/toddl.go (1 line): - line 98: // TODO: check mod[0] and mod[1] and generate a warning