automation/tinc/main/ext/qautils/gppylib/operations/package.py (33 lines): - line 53: # TODO: AK: Our interactions with the internal RPM database could benefit from an abstraction layer - line 59: # TODO: AK: Our interactions with the archive could benefit from an abstraction layer - line 67: # TODO: AK: Shouldn't this be "$GPHOME/.tmp"? - line 135: pkg The complete package name e.g pgcrypto-1.0-Darwin-i386.gppkg TODO: AK: This is an awful variable name. Change to "package_filename". - line 260: TODO: AK: Eliminate this. Replace invocations with Command(...).run(validateAfter = True) - line 282: TODO: AK: Rename as GpSsh, like GpScp below. - line 316: # TODO: AK: In hindsight, this should've been named MakeDirP, - line 421: TODO: This is depending on ExtractPackage having put the dependencies in this same directory. - line 422: TODO: Use regexes for more reliable string matching. CR-2865#c20112 - line 432: # TODO: AK: I've changed our use of the OS tag from 'Linux' to 'rhel5' or 'suse10'. - line 448: logger.info(cmd) # TODO: AK: This should be debug(), but RMI cannot propagate a log level. - line 466: # TODO: AK: Dependencies should be parsed out here and used to initialize - line 513: TODO: Use regexes for more reliable string matching. - line 528: logger.info(cmd) # TODO: AK: This should be debug(), but RMI cannot propagate a log level. - line 591: TODO: AK: A more robust version of this function would ensure that the remaining - line 620: TODO: AK: Extraction should be implemented as a context manager. - line 694: # TODO: AK: MPP-15568 - line 695: # TODO: AK: abstraction layer for archive interactions... to hide use of shutil.copy, RemoveFile, etc. - line 721: # TODO: AK: MPP-15737 - we're entirely dependent on the package residing in the archive - line 739: # TODO: AK: abstraction layer for archive interactions... to hide use of shutil.copy, RemoveFile, etc. - line 749: TODO: AK: MPP-15568 - line 801: # TODO: AK: MPP-15736 - precheck package state on master - line 846: TODO: AK: A packager may have added commands to their hooks, with the - line 851: TODO: AK: I'm adding master_host for consistency. - line 885: # TODO: AK: MPP-15736 - precheck package state on master - line 1079: """ TODO: AK: Enforce gppkg version is higher than currently installed version """ - line 1192: # TODO: AK: Given an invalid from_gphome, we'll end up creating a 'share/packages' subdirectory within it. - line 1215: TODO: AK: This obviously does not belong here. My preference would be that it remain here until - line 1249: TODO: AK: This obviously does not belong here. My preference would be to move it to gppylib.operations.utils - line 1252: TODO: AK: For generality, the underlying operation should inherit/implement NestedHostOperation so that - line 1256: TODO: AK: Build a SegHostOperation that wraps this and is driven by GpArray content. - line 1258: TODO: AK: Implement something similar for a SegmentOperation + NestedSegmentOperation. - line 1260: TODO: AK: This (as well as ParallelOperation) would benefit from an appropriate choice of return value. The likely automation/tinc/main/ext/qautils/gppylib/operations/dump.py (13 lines): - line 30: COMPRESSION_FACTOR = 12 # TODO: Where did 12 come from? - line 35: # TODO: very verbose constructor = room for improvement. in the parent constructor, we could use kwargs - line 296: # TODO: this doesn't take into account that multiple segments may be dumping to the same logical disk. - line 337: # TODO: this estimation of needed space needs work. it doesn't include schemas or exclusion tables. - line 575: """ TODO: move this to gppylib.operations.common? """ - line 594: """ TODO: move this to gppylib.operations.common? """ - line 614: """ TODO: move this to gppylib.operations.common? """ - line 721: # TODO: Should we really just give up if one of the tars fails? - line 722: # TODO: WorkerPool - line 811: """ TODO: Improve with grouping by host. """ - line 825: # TODO: This Operation isn't consuming backup_dir. Should it? - line 888: # TODO: move this to gppylib.operations.common? - line 942: # TODO: move this to gppylib.operations.common? automation/tinc/main/ext/qautils/gppylib/operations/restore.py (12 lines): - line 8: # TODO: trim down the wildcard imports to only what's necessary - line 22: TODO: partial restore. In 4.x, dump will only occur on primaries. - line 26: """ TODO: centralize logging """ - line 36: # TODO: use CLI-agnostic custom exceptions instead of ExceptionNoStackTraceNeeded - line 114: hostname = socket.gethostname() # TODO: can this just be localhost? bash was using `hostname` - line 128: """ TODO: add other checks. check for _process_createdb? """ - line 169: """ TODO: Improve with grouping by host and ParallelOperation dispatch. """ - line 327: # TODO: Escaping. Low priority due to MPP-12880, et al - line 466: # TODO: copy over data among the first 20 lines that begin with 'SET'. Why 20? See gpdbrestore.sh:1025. - line 526: # TODO: copy over data among the first 20 lines that begin with 'SET'. Why 20? See gpdbrestore.sh:1025. - line 565: """ TODO: This could be construed as the undo/rollback of BuildAllTable Dumps. """ - line 817: # TODO: The code below is duplicated from the code for local restore automation/tincrepo/main/mpp/models/sql_tc.py (10 lines): - line 93: # TODO: Should we support gpdiff for setup sqls ? - line 98: # TODO: May be , do all this once in MPPTestCase instead of for every test class - line 169: # TODO: Should we support gpdiff for teardown sqls ? - line 433: TODO: This should also be provided as a service at TINCTestCase level so that sub-classes - line 445: # TODO: This piece of code gets executed only through tincdb. Needs a cleanup later. - line 505: TODO: Provide this as an API at TINCTestCase level so that every class can implement - line 573: TODO: Incorporate ans file checks for setup sqls if they exist. - line 626: TODO: Provide this as an api at TINCTestCase level. This can be the default test method that will - line 925: # TODO - For now we assume only one valid SQL block following metadata - line 1008: # TODO - Eliminate this check. We should not care about this and OptimizerSQLTestCase automation/tinc/main/ext/qautils/gppylib/commands/base.py (9 lines): - line 52: """TODO:""" - line 141: #TODO: not sure that qsize() is safe - line 152: """ TODO: This is a hack! In reality, the WorkerPool should work with Operations, and - line 167: """TODO:""" - line 254: TODO: consider just having a single interface that needs to be implemented for - line 313: TODO: AK: This doesn't belong here if it pertains only to pg_controldata. - line 331: #TODO: improve dumping of self.cmd - line 655: """ Leave this as a big old TODO: for now. see agent.py for some more details""" - line 663: """ TODO: automation/tinc/main/ext/qautils/gppylib/operations/verify.py (8 lines): - line 15: # TODO: None of these operations are using master_port to differentiate between various clusters - line 55: # TODO: If a particular segment's gp_primarymirror fails, then here we're considering that a failure and no - line 292: # TODO: --force to consolidate files despite ongoing - line 339: # TODO: if end user has mucked around with artifacts on master, a regathering may - line 423: # TODO: This is disgusting. Python needs enum! with __str__! See pypi Enum package. - line 447: # TODO: execSQL or pygresql should be able to do this for us - line 522: # TODO: improve execSQL APIs to avoid need to use cursor here for such a simple task - line 528: # TODO: execSQL or pygresql should be able to do this for us automation/tinc/main/ext/qautils/gppylib/programs/gppkg.py (5 lines): - line 33: # TODO: AK: Program logic should not be dictating master, standby, and segment information - line 91: # TODO: AK: Eventually, these options may need to be flexible enough to accept mutiple packages - line 111: """ TODO: AK: This convention may be unnecessary. """ - line 116: TODO: AK: Get rid of this. Program logic should not be driving host list building . - line 203: # TODO: AK: Program logic should not drive host decisions. automation/src/main/java/org/greenplum/pxf/automation/components/cluster/SingleCluster.java (4 lines): - line 113: * TODO: use singlecluster script when available - line 144: * TODO: use singlecluster script when available - line 182: // TODO: remove method when using singlecluster script - line 213: // TODO: remove enum when using singlecluster script automation/tinc/main/ext/qautils/gppylib/gparray.py (4 lines): - line 279: - TODO: Should be compatable with repr() formatting. - line 851: #TODO: must be sure to put mirrors on a different subnet than primary. - line 1125: # TODO: Destroy this (MPP-7686) - line 1179: TODO: automation/tinc/main/ext/qautils/gppylib/commands/pg.py (4 lines): - line 7: TODO: docs - line 25: #TODO: what functions? - line 31: #TODO: set of functions related to pg_hba.conf including: - line 41: #TODO: set of functions related to basic pg maintenance: automation/tinc/main/ext/qautils/gppylib/operations/utils.py (4 lines): - line 13: # TODO: The Operation that is run remotely cannot return Exceptions. - line 15: # TODO: Remote traceback is lost. Again, this can be solved by embedding remote traceback in an ExceptionCapsule. - line 66: """TODO: Make Command a subclass of Operation. Then, make WorkerPool work with Operation objects.""" - line 89: # TODO: check that we're running on master fdw/libchurl.c (3 lines): - line 352: /* TODO: do not hardcode the port here */ - line 480: * TODO: this means we are done. Should we do something with it? - line 663: /* TODO: do not hardcode the port here */ automation/tinc/main/ext/qautils/gppylib/db/dbconn.py (3 lines): - line 6: TODO: module docs - line 247: TODO: Handle like qautils.gppylib.system.comfigurationImplGpdb.fetchSingleOutputRow(). - line 270: TODO: Handle like qautils.gppylib.system.comfigurationImplGpdb.fetchSingleOutputRow(). automation/tinc/main/ext/qautils/gppylib/gpcoverage.py (3 lines): - line 39: # TODO: We should not allow this class to be instantiated. It offers static - line 76: # TODO: change directory structure to something more human-readable - line 265: # TODO: Support a parallel merge? Or would there be no point with the Python GIL? automation/tinc/main/ext/qautils/gppylib/commands/unix.py (3 lines): - line 163: TODO: should the platform stuff be broken out to separate module? - line 379: #TODO: revisit this idea of parsing '' and making it a 0. seems dangerous. - line 643: #TODO: impl this. server/pxf-hdfs/src/main/java/org/greenplum/pxf/plugins/hdfs/orc/ORCVectorizedMappingFunctions.java (2 lines): - line 567: // TODO: do we need to right-trim CHAR values like we do in Parquet ? - line 640: // TODO: as all schemas right now are auto-generated, the columnVector will always be a ListColumnVector automation/tinc/main/ext/qautils/gppylib/commands/gp.py (2 lines): - line 7: TODO: docs! - line 24: #TODO: need a better way of managing environment variables. automation/tincrepo/main/mpp/lib/gplog.py (2 lines): - line 60: # TODO - When the cluster is down or this fails, - line 74: # TODO - use this as a backup if gp toolkit fails automation/tinc/main/ext/modgrammar/__init__.py (2 lines): - line 935: #TODO: implement strict vs non-strict EBNF - line 1242: # FIXME: whitespace at beginning of line automation/tinc/main/tinctest/discovery.py (2 lines): - line 163: # TODO: Possibly short-circuit here if result is False. Have to investigate - line 190: # TODO: Possibly short-circuit here if result is True. Have to investigate fdw/pxf_filter.c (2 lines): - line 717: /* TODO: add check for supported operation */ - line 1235: /* TODO: test this edge case and its consequences */ automation/tinc/main/tinctest/loader.py (2 lines): - line 288: # TODO: May be show all these tests in normal execution as well in a verbose reporting mode. - line 322: # TODO: check if deepcopy can be done external-table/src/pxffilters.c (2 lines): - line 651: /* TODO: add check for supported operation */ - line 1141: /* TODO: test this edge case and its consequences */ automation/tinc/main/ext/qautils/gppylib/db/catalog.py (2 lines): - line 167: TODO: There are a few tables that are cluster-wide that strictly speaking - line 334: #TODO: automation/tincrepo/main/mpp/models/mpp_tc.py (2 lines): - line 303: # TODO: Change TINCTestDatabase to take-in PSQL options (part of story QAINF-191) - line 313: TODO: This method should not be exposed as a public method. All result objects automation/tinc/main/ext/qautils/gppylib/operations/__init__.py (2 lines): - line 45: # TODO: logging, just like Program.run - line 46: # TODO: async argument to allow caller to monitor or to provide progress updates fdw/pxf_fdw.c (2 lines): - line 364: /* TODO: make this a meaningful callback */ - line 483: * GPDB_91_MERGE_FIXME: this is almost certainly not the right automation/tincrepo/main/pxf/features/hive/orc_primitive_types_no_timestamp/sql/query01.sql (1 line): - line 84: --TODO: numeric column in WHERE clause, uncomment when HAWQ-1055 is done automation/src/main/java/org/greenplum/pxf/automation/testplugin/HiveDataFragmenterWithFilter.java (1 line): - line 23: //TODO whitelist the option automation/tinc/main/tinctest/models/scenario/__init__.py (1 line): - line 155: # TODO - Parameterize maximum pool size automation/tincrepo/main/pxf/features/parquet/primitive_types/sql/query01.sql (1 line): - line 3: -- TODO: generate Parquet data on fly automation/src/main/java/org/greenplum/pxf/automation/testplugin/MultipleHiveFragmentsPerFileFragmenter.java (1 line): - line 68: // TODO whitelist property automation/tinc/main/ext/qautils/gppylib/operations/unix.py (1 line): - line 11: # TODO: Improve RawRemoteOperation server/pxf-service/src/main/java/org/greenplum/pxf/service/bridge/WriteVectorizedBridge.java (1 line): - line 41: // TODO: should we re-use / reset a list ? what if the batch size ends up being different between iterations ? automation/src/main/java/org/greenplum/pxf/automation/testplugin/HiveInputFormatFragmenterWithFilter.java (1 line): - line 23: // TODO: whitelist the option server/pxf-service/src/main/java/org/greenplum/pxf/service/bridge/AggBridge.java (1 line): - line 49: // TODO: enhance with failureHandler, for now this bridge is not actually used server/pxf-jdbc/src/main/java/org/greenplum/pxf/plugins/jdbc/SQLQueryBuilder.java (1 line): - line 61: // TODO: In is not supported? fdw/pxf_option.c (1 line): - line 190: * TODO: a PXF service can be running on port 80 behind a load- automation/tinc/main/ext/qautils/gppylib/programs/clsRecoverSegment.py (1 line): - line 540: # TODO: some kind of error handling here ?? server/pxf-hbase/src/main/java/org/greenplum/pxf/plugins/hbase/utilities/HBaseIntegerComparator.java (1 line): - line 70: * TODO optimize by parsing the bytes directly. server/pxf-hdfs/src/main/java/org/greenplum/pxf/plugins/hdfs/SequenceFileAccessor.java (1 line): - line 166: // TODO: verify data is serializable. external-table/src/pxfheaders.c (1 line): - line 566: // TODO Re-evaluate this logic and may be we don't need numNonSimpleVars external-table/src/libchurl.c (1 line): - line 490: * TODO: this means we are done. Should we do something with it? automation/tinc/main/tinctest/case.py (1 line): - line 177: # TODO: May be we have to do this only once for each test class. automation/src/main/java/org/greenplum/pxf/automation/testplugin/UserDataVerifyAccessor.java (1 line): - line 24: // TODO whitelist the option server/pxf-service/src/main/java/org/greenplum/pxf/service/BridgeOutputBuilder.java (1 line): - line 308: // TODO break output into lines automation/tinc/main/tinctest/models/concurrency/__init__.py (1 line): - line 154: # TODO - Parameterize maximum pool size automation/tinc/main/ext/qautils/gppylib/utils.py (1 line): - line 30: """TODO: """ automation/tincrepo/main/mpp/lib/gpdbverify.py (1 line): - line 336: TODO: Need to put in gpdbSystem automation/src/main/java/org/greenplum/pxf/automation/components/cluster/MultiNodeCluster.java (1 line): - line 134: // TODO: need to implement, for now return true; server/pxf-hdfs/src/main/java/org/greenplum/pxf/plugins/hdfs/ParquetResolver.java (1 line): - line 210: // TODO: Fix the bridge interface so the schema is set before get/setFields is called dev/set_up_gpadmin_user.bash (1 line): - line 6: # TODO: check if gpadmin-limits.conf already exists and bail out if it does automation/tinc/main/ext/qautils/gppylib/util/ssh_utils.py (1 line): - line 246: #!! TODO verify that this is a tight wait loop and find another way to do this automation/tincrepo/main/mpp/models/sql_concurrency_tc.py (1 line): - line 50: # TODO - generate a more readable file name based server/pxf-s3/src/main/java/org/greenplum/pxf/plugins/s3/S3SelectQueryBuilder.java (1 line): - line 31: // TODO: LIKE is not supported on the C side automation/tincrepo/main/pxf/features/hive/orc_primitive_types/sql/query01.sql (1 line): - line 88: --TODO: numeric column in WHERE clause, uncomment when HAWQ-1055 is done automation/src/main/java/org/greenplum/pxf/automation/testplugin/HBaseAccessorWithFilter.java (1 line): - line 249: // TODO whitelist option