trace_processor: fix multiple bugs with filtering and casting

When comparision against doubles was attempted to be fixed in aosp/821500,
we accidentally broke comparision of integers vs integers. Moreover,
by casting doubles to integers, we were losing precision in our
comparisions. This caused 119496959 which led to bugs in the timeline.

Fix these issues by choosing more carefully which type we want to
compare in - compare as integers if both the sqlite value and the value
in the table are integers. Otherwise, convert both to doubles and
compare there.

Also fix a minor bug where sqlite_value_int was used for int64 types.

Bug: 119496959
Change-Id: I6369abed91b9c97f58ec7da3f314d1ebbacdbab4
5 files changed
tree: 85afcd83e2e9010f9a6e9bae1b091b209ca836ce
  1. build_overrides/
  2. buildtools/
  3. debian/
  4. docs/
  5. gn/
  6. include/
  7. infra/
  8. protos/
  9. src/
  10. test/
  11. tools/
  12. ui/
  13. .clang-format
  14. .gitignore
  15. .gn
  16. .travis.yml
  17. Android.bp
  18. Android.bp.extras
  19. BUILD.gn
  20. codereview.settings
  21. heapprofd.rc
  22. MODULE_LICENSE_APACHE2
  23. NOTICE
  24. OWNERS
  25. perfetto.rc
  26. PRESUBMIT.py
  27. README.chromium
  28. README.md
README.md

Perfetto - Performance instrumentation and tracing

Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.

See www.perfetto.dev for docs.

Bugs

  • For bugs affecting Android or the tracing internals use the internal bug tracker (go/perfetto-bugs).
  • For bugs affecting Chrome use http://crbug.com, Component:Speed>Tracing label:Perfetto.