stdlib: Reorder JOIN to be same order as INDEX

Reorder the sequence in which columns are matched during JOINs to be the
same as the order in which the columns are INDEX-ed in the LUTs. This
ensures that every column in the JOIN ON clause is index-able.

Change in Wattson test runtime (ms) with this patch:
Wattson_dsu_pmu: 14509.02 -> 14995.40
Wattson_suspend: 16073.80 -> 15572.02
Wattson_static_curve_selection: 39375.36 -> 25309.91
Wattson_total_eos_calc: 26227.76 -> 25898.03
Wattson_total_raven_calc: 39600.95 -> 33329.40

Test: tools/diff_test_trace_processor.py out/linux/trace_processor_shell --name-filter '.*wattson.*'
Bug: 350065024
Change-Id: Iaaf0345a66e35501bd7704b631b7558d9eeda928
Signed-off-by: Samuel Wu <wusamuel@google.com>
2 files changed
tree: af5b942407ad4374d9e46d1a8d4e8b78eb471f6d
  1. .github/
  2. bazel/
  3. build_overrides/
  4. buildtools/
  5. debian/
  6. docs/
  7. examples/
  8. gn/
  9. include/
  10. infra/
  11. protos/
  12. python/
  13. src/
  14. test/
  15. third_party/
  16. tools/
  17. ui/
  18. .bazelignore
  19. .clang-format
  20. .clang-tidy
  21. .git-blame-ignore-revs
  22. .gitattributes
  23. .gitignore
  24. .gn
  25. .style.yapf
  26. Android.bp
  27. Android.bp.extras
  28. BUILD
  29. BUILD.extras
  30. BUILD.gn
  31. CHANGELOG
  32. codereview.settings
  33. DIR_METADATA
  34. heapprofd.rc
  35. LICENSE
  36. meson.build
  37. METADATA
  38. MODULE_LICENSE_APACHE2
  39. OWNERS
  40. perfetto.rc
  41. PerfettoIntegrationTests.xml
  42. persistent_cfg.pbtxt
  43. PRESUBMIT.py
  44. README.chromium
  45. README.md
  46. TEST_MAPPING
  47. traced_perf.rc
  48. WATCHLISTS
  49. WORKSPACE
README.md

Perfetto - System profiling, app tracing and trace analysis

Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.

See https://perfetto.dev/docs or the /docs/ directory for documentation.