tree 6f99a810e467f6485644d87d773bccf57dea663e
parent cf06f17e612401ab08ed81fa9bc4bb6e2920ab4d
author Domino Valdano <dvaldano@pivotal.io> 1588895314 +0000
committer Domino Valdano <dvaldano@vmware.com> 1609793902 -0800

utilities:  Add debug.py_in

Starting a module of debugging functions we can use, to easily
turn on or off certain kinds of debug messages.

debug.print_timings(force=False) :
   Used in madlib_keras_fit_multiple.py_in to print
   timing information for fit_multiple()
   Breaks down run_training() into _hop_time_,
   _uda_time_, _truncate_time_, _copy_time_, and
   _delete_time_

  Enable all by uncommenting:
     debug.timings_enabled = True
   at top of madlib_keras_fit_multiple.py_in

  Enable a single call to debug.print_timings(),
     by passing force=True.  Will print even if
     debug.timings_enabled is not set.

debug.print_mst_keys(force=False) :
    print a map between mst_keys and seg_id's as the mst_keys
    hop around from segment to segment... to verify correct
    MOP behavior.

debug.plpy.execute(query)

    prints query, EXPLAIN ANALYZE, and timing of a query
    while executing it

PR #521
