James D. Herbsleb

160 papers A* 23A 26B 6C 8Misc 1Journal 51Unranked 42
YearRankTypeTitle / Venue / Authors
2025 J jnl
Proc. ACM Hum. Comput. Interact.
Nandini Sharma, Narayan Ramasubbu, James D. Herbsleb, Bogdan Vasilescu
2025 J jnl
CoRR
Abasi-Amefon Obot Affia, Alexander Serebrenik, James D. Herbsleb, Alexander Nolte
2025 J jnl
Proc. ACM Hum. Comput. Interact.
Abasi-Amefon O. Affia-Jomants, Alexander Serebrenik, James D. Herbsleb, Alexander Nolte
2025 J jnl
IEEE Trans. Software Eng.
James D. Herbsleb, Audris Mockus
2024 A* conf
ICSE
Hongbo Fang, James D. Herbsleb, Bogdan Vasilescu
2024 J jnl
CoRR
David Gray Widder, Laura Dabbish, James D. Herbsleb, Nikolas Martelaro
2024 J jnl
Proc. ACM Hum. Comput. Interact.
David Gray Widder, Laura Dabbish, James D. Herbsleb, Nikolas Martelaro
2024 J jnl
CoRR
Hongbo Fang, Patrick S. Park, James Evans, James D. Herbsleb, Bogdan Vasilescu
2023 J jnl
J. Softw. Evol. Process.
James D. Herbsleb
2023 conf
FAccT
David Gray Widder, Derrick Zhen, Laura Dabbish, James D. Herbsleb
2023 conf
ESEC/SIGSOFT FSE
Hongbo Fang, James D. Herbsleb, Bogdan Vasilescu
2023 B conf
CHASE
Hongbo Fang, Bogdan Vasilescu, James D. Herbsleb
2022 A* conf
ICSE
Hongbo Fang, Hemank Lamba, James D. Herbsleb, Bogdan Vasilescu
2022 J jnl
Hum. Comput. Interact.
Ei Pa Pa Pe-Than, Alexander Nolte, Anna Filippova, Christian Bird, Steve Scallen, James D. Herbsleb
2022 J jnl
Proc. ACM Hum. Comput. Interact.
Hana Frluckaj, Laura Dabbish, David Gray Widder, Huilian Sophie Qiu, James D. Herbsleb
2022 conf
FAccT
David Gray Widder, Dawn Nafus, Laura Dabbish, James D. Herbsleb
2022 J jnl
CoRR
Ahmed Samir Imam Mahmoud, Tapajit Dey, Alexander Nolte, Audris Mockus, James D. Herbsleb
2022 J jnl
Empir. Softw. Eng.
Ahmed Samir Imam Mahmoud, Tapajit Dey, Alexander Nolte, Audris Mockus, James D. Herbsleb
2021 J jnl
Proc. ACM Hum. Comput. Interact.
Daniel Klug, Christopher Bogart, James D. Herbsleb
2021 J jnl
CoRR
James D. Herbsleb
2021 J jnl
Comput. Support. Cooperative Work.
Judeth Oden Choi, James D. Herbsleb, Jodi Forlizzi
2021 J jnl
Proc. ACM Hum. Comput. Interact.
Ei Pa Pa Pe-Than, Laura Dabbish, James D. Herbsleb
2021 A conf
MSR
Ahmed Imam, Tapajit Dey, Alexander Nolte, Audris Mockus, James D. Herbsleb
2021 J jnl
CoRR
Ahmed Imam, Tapajit Dey, Alexander Nolte, Audris Mockus, James D. Herbsleb
2021 A* conf
CHI
David Gray Widder, Laura Dabbish, James D. Herbsleb, Alexandra Holloway, Scott Davidoff
2021 J jnl
ACM Trans. Softw. Eng. Methodol.
Chris Bogart, Christian Kästner, James D. Herbsleb, Ferdian Thung
2020 J jnl
CoRR
Christopher Bogart, James Howison, James D. Herbsleb
2020 J jnl
Proc. ACM Hum. Comput. Interact.
Alexander Nolte, Linda Bailey Hayden, James D. Herbsleb
2020 J jnl
CoRR
Alexander Nolte, Ei Pa Pa Pe-Than, Abasi-Amefon Obot Affia, Chalalai Chaihirunkarn, Anna Filippova, Arun Kalyanasundaram, Maria Angelica Medina Angarita, Erik H. Trainer, James D. Herbsleb
2020 A conf
ICWSM
Judeth Oden Choi, James D. Herbsleb, Jessica Hammer, Jodi Forlizzi
2020 A conf
MSR
Hongbo Fang, Daniel Klug, Hemank Lamba, James D. Herbsleb, Bogdan Vasilescu
2020 J jnl
Proc. ACM Hum. Comput. Interact.
Alexander Nolte, Irene-Angelica Chounta, James D. Herbsleb
2019 J jnl
CoRR
Nicolas Jullien, Klaas-Jan Stol, James D. Herbsleb
2019 J jnl
Dagstuhl Reports
Margaret-Anne D. Storey, Alexander Serebrenik, Carolyn Penstein Rosé, Thomas Zimmermann, James D. Herbsleb
2019 J jnl
IEEE Softw.
Ei Pa Pa Pe-Than, Alexander Nolte, Anna Filippova, Christian Bird, Steve Scallen, James D. Herbsleb
2019 conf
C&T
Judeth Oden Choi, James D. Herbsleb, Jodi Forlizzi
2019 conf
iConference
Ei Pa Pa Pe-Than, James D. Herbsleb
2018 conf
CSCW Companion
Ei Pa Pa Pe-Than, Laura Dabbish, James D. Herbsleb
2018 conf
ESEC/SIGSOFT FSE
Marat Valiev, Bogdan Vasilescu, James D. Herbsleb
2018 J jnl
J. Softw. Evol. Process.
Raman Goyal, Gabriel Ferreira, Christian Kästner, James D. Herbsleb
2018 conf
CHI Extended Abstracts
Ei Pa Pa Pe-Than, James D. Herbsleb, Alexander Nolte, Elizabeth Gerber, Brittany Fiore-Gartland, Brad Chapman, Aurelia Moser, Nancy Wilkins-Diehr
2018 J jnl
MIS Q.
Sherae L. Daniel, Likoebe M. Maruping, Marcelo Cataldo, James D. Herbsleb
2018 J jnl
Proc. ACM Hum. Comput. Interact.
Alexander Nolte, Ei Pa Pa Pe-Than, Anna Filippova, Christian Bird, Steve Scallen, James D. Herbsleb
2017 A* conf
CHI
W. Ben Towne, Carolyn P. Rosé, James D. Herbsleb
2017 conf
ICSE-SEET
Erik H. Trainer, Arun Kalyanasundaram, James D. Herbsleb
2017 A* conf
ICSE
Anna Filippova, Erik H. Trainer, James D. Herbsleb
2017 conf
CSCW Companion
Anna Filippova, Brad Chapman, R. Stuart Geiger, James D. Herbsleb, Arun Kalyanasundaram, Erik H. Trainer, Aurelia Moser, Arlin Stoltzfus
2017 J jnl
Proc. ACM Hum. Comput. Interact.
Miaomiao Wen, Keith Maki, Steven Dow, James D. Herbsleb, Carolyn P. Rosé
2017 conf
IS-EUD
Vishal Dwivedi, James D. Herbsleb, David Garlan
2016 conf
SIGSOFT FSE
James D. Herbsleb
2016 A conf
CSCW
Erik H. Trainer, Arun Kalyanasundaram, Chalalai Chaihirunkarn, James D. Herbsleb
2016 conf
SIGSOFT FSE
Christopher Bogart, Christian Kästner, James D. Herbsleb, Ferdian Thung
2016 J jnl
IEEE Softw.
James D. Herbsleb, Christian Kästner, Christopher Bogart
2016 J jnl
ACM Trans. Intell. Syst. Technol.
W. Ben Towne, Carolyn P. Rosé, James D. Herbsleb
2016 B conf
EDM
Miaomiao Wen, Keith Maki, Xu Wang, Steven Dow, James D. Herbsleb, Carolyn P. Rosé
2015 ed.
CSD@ICSE
Kelly Blincoe, Daniela E. Damian, Giuseppe Valetto, James D. Herbsleb
2015 conf
ICSE (2)
Kelly Blincoe, Daniela E. Damian, Giuseppe Valetto, James D. Herbsleb
2015 Misc conf
WSC
Arun Kalyanasundaram, Wei Wei, Kathleen M. Carley, James D. Herbsleb
2015 A conf
CSCW
Erik H. Trainer, Chalalai Chaihirunkarn, Arun Kalyanasundaram, James D. Herbsleb
2015 A conf
ICPC
Joshua Sunshine, James D. Herbsleb, Jonathan Aldrich
2015 conf
ASE Workshops
Christopher Bogart, Christian Kästner, James D. Herbsleb
2014 B conf
GROUP
Erik H. Trainer, Chalalai Chaihirunkarn, Arun Kalyanasundaram, James D. Herbsleb
2014 A* conf
ICSE
Jason Tsay, Laura Dabbish, James D. Herbsleb
2014 conf
SIGSOFT FSE
Jason Tsay, Laura Dabbish, James D. Herbsleb
2014 ed.
FOSE
James D. Herbsleb, Matthew B. Dwyer
2014 conf
CSCW Companion
Theresa Velden, Matthew J. Bietz, E. Ilana Diamant, James D. Herbsleb, James Howison, David Ribes, Stephanie B. Steinhardt
2014 conf
ICSE Companion
James D. Herbsleb
2014 A conf
ECOOP
Joshua Sunshine, James D. Herbsleb, Jonathan Aldrich
2014 J jnl
CoRR
Laura Dabbish, H. Colleen Stuart, Jason Tsay, James D. Herbsleb
2013 J jnl
IEEE Trans. Software Eng.
Marcelo Cataldo, James D. Herbsleb
2013 conf
CHASE@ICSE
Thomas D. LaToza, W. Ben Towne, André van der Hoek, James D. Herbsleb
2013 A conf
CSCW
Jennifer Marlow, Laura Dabbish, James D. Herbsleb
2013 A conf
CSCW
James Howison, James D. Herbsleb
2013 J jnl
IEEE Softw.
Laura Dabbish, H. Colleen Stuart, Jason Tsay, James D. Herbsleb
2013 conf
CHASE@ICSE
Jason Tsay, Laura Dabbish, James D. Herbsleb
2013 conf
C&T
Claudia Müller-Birn, Leonhard Dobusch, James D. Herbsleb
2013 A conf
CSCW
W. Ben Towne, Aniket Kittur, Peter Kinnaird, James D. Herbsleb
2012 A conf
CSCW
Laura A. Dabbish, H. Colleen Stuart, Jason Tsay, James D. Herbsleb
2012 conf
CSCW (Companion)
Jason Tsay, Laura Dabbish, James D. Herbsleb
2012 conf
CSCW (Companion)
Andrew Begel, James D. Herbsleb, Margaret-Anne D. Storey
2011 A* conf
ICSE
Narayan Ramasubbu, Marcelo Cataldo, Rajesh Krishna Balan, James D. Herbsleb
2011 J jnl
Stat. Anal. Data Min.
Laura Dabbish, W. Ben Towne, Jana Diesner, James D. Herbsleb
2011 A* conf
ICSE
Marcelo Cataldo, James D. Herbsleb
2011 A conf
CSCW
James Howison, James D. Herbsleb
2011 conf
AOSD
James D. Herbsleb
2011 C conf
ICIS
Sherae L. Daniel, Likoebe M. Maruping, Marcelo Cataldo, James D. Herbsleb
2010 conf
ECSA Companion Volume
Marcelo Cataldo, James D. Herbsleb
2010 B conf
GROUP
Laura A. Dabbish, Patrick Wagstrom, Anita Sarma, James D. Herbsleb
2010 A conf
MSR
James D. Herbsleb
2010 J jnl
Commun. ACM
Vijay K. Gurbani, Anita Garvert, James D. Herbsleb
2009 conf
ICSE Companion
Marcelo Cataldo, Steve M. Easterbrook, Daniela E. Damian, James D. Herbsleb, Premkumar T. Devanbu, Audris Mockus
2009 C conf
ICGSE
Matthew Bass, James D. Herbsleb, Christian Lescher
2009 conf
SDG@ICSE
Marcelo Cataldo, James D. Herbsleb
2009 J jnl
IEEE Softw.
Michael W. Godfrey, Ahmed E. Hassan, James D. Herbsleb, Gail C. Murphy, Martin P. Robillard, Premkumar T. Devanbu, Audris Mockus, Dewayne E. Perry, David Notkin
2009 A* conf
ICSE
Uri Dekel, James D. Herbsleb
2009 A conf
ICPC
Uri Dekel, James D. Herbsleb
2009 J jnl
IEEE Trans. Software Eng.
Marcelo Cataldo, Audris Mockus, Jeffrey A. Roberts, James D. Herbsleb
2009 J jnl
Commun. ACM
James D. Herbsleb
2009 conf
ICSE Companion
Larry Maccherone, Anita Sarma, Patrick Wagstrom, James D. Herbsleb
2009 A* conf
ICSE
Anita Sarma, Larry Maccherone, Patrick Wagstrom, James D. Herbsleb
2008 A conf
CSCW
Marcelo Cataldo, James D. Herbsleb
2008 B conf
CHASE
Marcelo Cataldo, James D. Herbsleb
2008 A conf
CSCW
Uri Dekel, James D. Herbsleb
2008 conf
ICSE Companion
James D. Herbsleb, Marcelo Cataldo, Daniela E. Damian, Premkumar T. Devanbu, Steve M. Easterbrook, Audris Mockus
2008 A conf
ESEM
Marcelo Cataldo, James D. Herbsleb, Kathleen M. Carley
2007 conf
WICSA
Matthew Bass, Vesna Mikulovic, Len Bass, James D. Herbsleb, Marcelo Cataldo
2007 C conf
ICGSE
Matthew Bass, James D. Herbsleb, Christian Lescher
2007 J jnl
Organ. Sci.
J. Alberto Espinosa, Sandra A. Slaughter, Robert E. Kraut, James D. Herbsleb
2007 conf
FOSE
James D. Herbsleb
2007 A conf
OOPSLA
Uri Dekel, James D. Herbsleb
2007 C conf
ICGSE
Marcelo Cataldo, Matthew Bass, James D. Herbsleb, Len Bass
2007 conf
ESEC/SIGSOFT FSE
Thomas D. LaToza, David Garlan, James D. Herbsleb, Brad A. Myers
2007 A conf
MobiSys
Rajesh Krishna Balan, Darren Gergle, Mahadev Satyanarayanan, James D. Herbsleb
2007 J jnl
J. Manag. Inf. Syst.
J. Alberto Espinosa, Sandra Slaughter, Robert E. Kraut, James D. Herbsleb
2006 A* conf
ICSE
Vijay K. Gurbani, Anita Garvert, James D. Herbsleb
2006 C conf
ICIS
James D. Herbsleb, Jeffrey A. Roberts
2006 J jnl
Commun. ACM
Patrick Wagstrom, James D. Herbsleb
2006 A* conf
ICSE
Paul Luo Li, James D. Herbsleb, Mary Shaw, Brian Robinson
2006 A conf
CSCW
Marcelo Cataldo, Patrick Wagstrom, James D. Herbsleb, Kathleen M. Carley
2006 ed.
Empirical Theory and the Science of Software Engineering
James D. Herbsleb, Walter F. Tichy
2006 C conf
ICGSE
Vesna Mikulovic, Michael Heiss, James D. Herbsleb
2006 A* conf
WWW
Anupriya Ankolekar, Katia P. Sycara, James D. Herbsleb, Robert E. Kraut, Christopher A. Welty
2005 J jnl
ACM SIGSOFT Softw. Eng. Notes
Vijay K. Gurbani, Anita Garvert, James D. Herbsleb
2005 A* conf
ICSE
James D. Herbsleb
2005 conf
Software Education and Training Sessions @ ICSE
Mary Shaw, James D. Herbsleb, Ipek Ozkaya, David Root
2005 A* conf
ICSE
Mary Shaw, James D. Herbsleb, Ipek Ozkaya
2005 conf
IEEE METRICS
Paul Luo Li, James D. Herbsleb, Mary Shaw
2005 A conf
ISSRE
Paul Luo Li, James D. Herbsleb, Mary Shaw
2005 A* conf
ICSE
James D. Herbsleb, Daniel J. Paulish, Matthew Bass
2004 conf
Empirical Theory and the Science of Software Engineering
James D. Herbsleb, Walter F. Tichy
2004 conf
SIGSOFT FSE
Paul Luo Li, Mary Shaw, James D. Herbsleb, Bonnie K. Ray, Peter Santhanam
2004 A ed.
CSCW
James D. Herbsleb, Gary M. Olson
2003 J jnl
IEEE Trans. Software Eng.
James D. Herbsleb, Audris Mockus
2003 conf
ESEC / SIGSOFT FSE
James D. Herbsleb, Audris Mockus
2002 A* conf
ICSE
Audris Mockus, James D. Herbsleb
2002 A* conf
CHI
James D. Herbsleb, David L. Atkins, David G. Boyer, Mark Handel, Thomas A. Finholt
2002 C conf
ICIS
J. Alberto Espinosa, Robert E. Kraut, Sandra Slaughter, F. Javier Lerch, James D. Herbsleb, Audris Mockus
2002 J jnl
ACM Trans. Softw. Eng. Methodol.
Audris Mockus, Roy T. Fielding, James D. Herbsleb
2002 A conf
CSCW
Mark Handel, James D. Herbsleb
2001 A* conf
ICSE
James D. Herbsleb, Audris Mockus, Thomas A. Finholt, Rebecca E. Grinter
2001 conf
IEEE METRICS
Audris Mockus, James D. Herbsleb
2001 J jnl
IEEE Softw.
James D. Herbsleb, Deependra Moitra
2001 conf
IEEE METRICS
Harvey P. Siy, James D. Herbsleb, Audris Mockus, George T. Tucker, Mayuram S. Krishnan
2001 J jnl
Empir. Softw. Eng.
Khaled El Emam, Dennis R. Goldenson, James McCurley, James D. Herbsleb
2001 C conf
ICIS
J. Alberto Espinosa, Robert E. Kraut, F. Javier Lerch, Sandra Slaughter, James D. Herbsleb, Audris Mockus
2000 A* conf
ICSE
Audris Mockus, Roy T. Fielding, James D. Herbsleb
2000 A conf
CSCW
James D. Herbsleb, Audris Mockus, Thomas A. Finholt, Rebecca E. Grinter
2000 A conf
CSCW
Patrice Godefroid, James D. Herbsleb, Lalita Jategaonkar Jagadeesan, Du Li
1999 J jnl
IEEE Softw.
James D. Herbsleb, Rebecca E. Grinter
1999 conf
WACC
James D. Herbsleb
1999 A* conf
ICSE
James D. Herbsleb, Rebecca E. Grinter
1999 B conf
GROUP
Rebecca E. Grinter, James D. Herbsleb, Dewayne E. Perry
1998 A* conf
ICSE
James D. Herbsleb, Rebecca E. Grinter
1997 J jnl
Commun. ACM
James D. Herbsleb, David Zubrow, Dennis R. Goldenson, Will Hayes, Mark C. Paulk
1996 A* conf
ICSE
James D. Herbsleb, Dennis R. Goldenson
1995 J jnl
Hum. Comput. Interact.
James D. Herbsleb, Helen A. Klein, Gary M. Olson, Hans Brunner, Judith S. Olson, Joe Harding
1994 J jnl
Hum. Comput. Interact.
Gary M. Olson, James D. Herbsleb, Henry H. Rueter
1993 conf
INTERCHI
James D. Herbsleb, Eiji Kuwana
1993 A conf
RE
Eiji Kuwana, James D. Herbsleb
1992 conf
CHI Posters and Short Talks
Mark R. Carter, James D. Herbsleb, Robin Lampert, Gary M. Olson, Judith S. Olson, Henry H. Rueter, Marianne Storrosten
docs/apk-code-schema.md
← Index docs/apk-code-schema.md markdown
# APK Code Analysis — ClickHouse Schema

All tables follow the `ReplacingMergeTree(analysis_date)` pattern from
`docs/new-code-binja-schema.md`, except `code_apk_analysis_errors` which
uses `MergeTree()`.

**Companion PDD:** `APK_CODE_ANALYSIS_PDD-Tech_Annex.md` §7

---

## Table overview

| # | Table | Analog (Binja) | Engine | Key |
|---|-------|----------------|--------|-----|
| 1 | `code_apk_decompiled_methods_content` | `code_binja_decompiled_functions_content` | ReplacingMergeTree | `decompiled_method_hash` |
| 2 | `code_apk_decompiled_methods_references` | `code_binja_decompiled_functions_references` | ReplacingMergeTree | `(sha256, decompiled_method_hash)` |
| 3 | `code_apk_smali_methods_content` | `code_binja_disassembled_functions_content` | ReplacingMergeTree | `smali_method_hash` |
| 4 | `code_apk_smali_methods_references` | `code_binja_disassembled_functions_references` | ReplacingMergeTree | `(sha256, smali_method_hash)` |
| 5 | `code_apk_method_similarity_metrics` | `code_binja_function_similarity_metrics` | ReplacingMergeTree | `smali_method_hash` |
| 6 | `code_apk_cfg_methods` | `code_binja_cfg_functions` | ReplacingMergeTree | `smali_method_hash` |
| 7 | `code_binja_strings_raw` *(shared)* | — | Null (→ MV) | — |
| 8 | `code_apk_analysis_errors` | `function_analysis_errors_binja` | MergeTree | `(sha256, error_location, error_hash)` |

---

## Table 1: `code_apk_decompiled_methods_content`

**Analog:** `code_binja_decompiled_functions_content`

```sql
CREATE TABLE IF NOT EXISTS code_apk_decompiled_methods_content (
    decompiled_method_hash FixedString(64),          -- SHA-256 of normalized Java source
    decompiled_method String CODEC(ZSTD(3)),          -- Full Java method source
    decompiled_method_type Enum8('USER'=1, 'LIBRARY'=2, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',
    decompiled_has_string_encryption UInt8 DEFAULT 0,
    decompiled_has_reflection_calls UInt8 DEFAULT 0,
    decompiled_excessive_goto_count UInt8 DEFAULT 0,
    analysis_date DateTime64(3, 'UTC'),

    INDEX idx_method_content_token lower(decompiled_method) TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY decompiled_method_hash;
```

## Table 2: `code_apk_decompiled_methods_references`

**Analog:** `code_binja_decompiled_functions_references`

```sql
CREATE TABLE IF NOT EXISTS code_apk_decompiled_methods_references (
    sha256 FixedString(64),
    decompiled_method_hash FixedString(64),
    smali_method_hash Nullable(FixedString(64)),
    decompiled_class_name LowCardinality(String),
    decompiled_method_name LowCardinality(String),
    decompiled_method_signature String,               -- Dalvik descriptor: (Landroid/os/Bundle;)V
    decompiled_method_prototype String,               -- Java-style: void onCreate(Bundle)
    functions_caller Array(String),
    functions_call Array(String),
    analysis_date DateTime64(3, 'UTC'),

    INDEX idx_decompiled_class_name decompiled_class_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
    INDEX idx_decompiled_method_name decompiled_method_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
    INDEX idx_functions_caller functions_caller TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
    INDEX idx_functions_call functions_call TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY (sha256, decompiled_method_hash);
```

## Table 3: `code_apk_smali_methods_content`

**Analog:** `code_binja_disassembled_functions_content`

```sql
CREATE TABLE IF NOT EXISTS code_apk_smali_methods_content (
    smali_method_hash FixedString(64),                -- SHA-256 of normalized smali body
    smali_method String CODEC(ZSTD(3)),               -- Full smali method body
    smali_method_type Enum8('USER'=1, 'LIBRARY'=2, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',
    smali_instructions_count UInt32,
    smali_register_count UInt16,
    smali_has_string_encryption UInt8 DEFAULT 0,
    smali_has_reflection_calls UInt8 DEFAULT 0,
    smali_excessive_goto_count UInt8 DEFAULT 0,
    smali_flattened_score Float64 DEFAULT 0.0,       -- Control flow flattening score (0.01.0)
    smali_mba_score Float64 DEFAULT 0.0,             -- Mixed boolean-arithmetic score (0.01.0)
    analysis_date DateTime64(3, 'UTC'),

    INDEX idx_smali_ngram smali_method TYPE ngrambf_v1(3, 32768, 3, 0) GRANULARITY 1,
    INDEX idx_smali_method_type smali_method_type TYPE set(3) GRANULARITY 1,
    INDEX idx_smali_instr_count smali_instructions_count TYPE minmax GRANULARITY 4,
    INDEX idx_smali_reg_count smali_register_count TYPE minmax GRANULARITY 4,
    INDEX idx_smali_flattened smali_flattened_score TYPE minmax GRANULARITY 4,
    INDEX idx_smali_mba smali_mba_score TYPE minmax GRANULARITY 4
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY smali_method_hash;
```

## Table 4: `code_apk_smali_methods_references`

**Analog:** `code_binja_disassembled_functions_references`

```sql
CREATE TABLE IF NOT EXISTS code_apk_smali_methods_references (
    sha256 FixedString(64),
    smali_method_hash FixedString(64),
    decompiled_method_hash Nullable(FixedString(64)),
    smali_class_name LowCardinality(String),
    smali_method_name LowCardinality(String),
    smali_method_signature String,
    analysis_date DateTime64(3, 'UTC'),

    INDEX idx_smali_class_name smali_class_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
    INDEX idx_smali_method_name smali_method_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY (sha256, smali_method_hash);
```

## Table 5: `code_apk_method_similarity_metrics`

**Analog:** `code_binja_function_similarity_metrics`

Content-based fuzzy matching table. Structural/CFG scalars (block_count, edge_count, etc.)
are in `code_apk_cfg_methods` (Table 6) — this table holds only fuzzy hashes and MinHash.

```sql
CREATE TABLE IF NOT EXISTS code_apk_method_similarity_metrics (
    smali_method_hash FixedString(64),
    -- Raw smali fuzzy hashes (analog: ssdeep_disassembly / tlsh_disassembly)
    ssdeep_smali Nullable(String),
    tlsh_smali Nullable(FixedString(72)),
    -- Semantically normalized smali fuzzy hashes (analog: ssdeep_llil / tlsh_llil)
    ssdeep_smali_normalized Nullable(String),
    tlsh_smali_normalized Nullable(FixedString(72)),
    minhash Array(UInt8),
    analysis_date DateTime64(3, 'UTC'),

    INDEX idx_ssdeep ssdeep_smali TYPE bloom_filter GRANULARITY 1,
    INDEX idx_tlsh tlsh_smali TYPE bloom_filter GRANULARITY 1,
    INDEX idx_ssdeep_norm ssdeep_smali_normalized TYPE bloom_filter GRANULARITY 1,
    INDEX idx_tlsh_norm tlsh_smali_normalized TYPE bloom_filter GRANULARITY 1
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY smali_method_hash;
```

## Table 6: `code_apk_cfg_methods`

**Analog:** `code_binja_cfg_functions` (see `db_migration/cfg_functions_ddl.sql`)

Structural and topological features computed from smali CFG. All fields mirror
the Binja table with APK-appropriate naming.

```sql
CREATE TABLE IF NOT EXISTS code_apk_cfg_methods (
    -- Identity
    smali_method_hash FixedString(64),

    -- Tier 0: Exact structural match
    cfg_topology_hash FixedString(16),

    -- Tier 1: Structural pre-filtering
    block_count UInt16,
    edge_count UInt16,
    cfg_instructions_count UInt32,            -- Dalvik instruction count (analog: llil_total_operations)
    call_count UInt16,
    cyclomatic_complexity UInt16,
    loop_count UInt16,
    max_depth UInt16,
    max_fan_out UInt16,
    md_index_topdown UInt64,
    md_index_bottomup UInt64,
    prime_product_smali UInt64,              -- Dalvik semantic primes (analog: prime_product_llil)

    -- Tier 2: Fuzzy matching
    cfg_feature_tlsh Nullable(FixedString(72)),
    wl_minhash Array(UInt8),

    -- Embedding-ready storage
    bb_features Array(Array(UInt16)),        -- ACFG block feature vectors
    cfg_adjacency Array(UInt32),             -- Packed (src << 16 | tgt)

    analysis_date DateTime64(3, 'UTC'),

    -- Indexes
    INDEX idx_topology cfg_topology_hash TYPE bloom_filter GRANULARITY 1,
    INDEX idx_complexity cyclomatic_complexity TYPE minmax GRANULARITY 4,
    INDEX idx_block_count block_count TYPE minmax GRANULARITY 4,
    INDEX idx_edge_count edge_count TYPE minmax GRANULARITY 4,
    INDEX idx_call_count call_count TYPE minmax GRANULARITY 4,
    INDEX idx_cfg_instr_count cfg_instructions_count TYPE minmax GRANULARITY 4,
    INDEX idx_loop_count loop_count TYPE minmax GRANULARITY 4,
    INDEX idx_max_depth max_depth TYPE minmax GRANULARITY 4,
    INDEX idx_max_fan_out max_fan_out TYPE minmax GRANULARITY 4,
    INDEX idx_md_topdown md_index_topdown TYPE minmax GRANULARITY 4,
    INDEX idx_md_bottomup md_index_bottomup TYPE minmax GRANULARITY 4,
    INDEX idx_prime prime_product_smali TYPE bloom_filter GRANULARITY 1,
    INDEX idx_cfg_tlsh cfg_feature_tlsh TYPE bloom_filter GRANULARITY 1
) ENGINE = ReplacingMergeTree(analysis_date)
ORDER BY smali_method_hash;
```

**Column mapping (APK → Binja):**

| APK column | Binja column | Notes |
|------------|-------------|-------|
| `smali_method_hash` | `disassembled_function_hash` | Both SHA-256 of normalized code |
| `cfg_instructions_count` | `llil_total_operations` | Dalvik instructions vs LLIL operations |
| `prime_product_smali` | `prime_product_llil` | Same prime algorithm, Dalvik semantic categories |
| All others | Same name | Identical algorithms from shared `cfg_features.py` |

## Table 7: `code_binja_strings_raw` (shared)

APK strings are inserted into the existing `code_binja_strings_raw` Null-engine table,
which feeds materialized views (`code_binja_strings_by_binary`, `mv_string_popularity_public`).
This enables cross-format string correlation between PE/ELF/Mach-O/APK samples.

No new table creation needed — see `docs/new-code-binja-schema.md` for the existing DDL.

## Table 8: `code_apk_analysis_errors`

**Analog:** `function_analysis_errors_binja`

```sql
CREATE TABLE IF NOT EXISTS code_apk_analysis_errors (
    sha256 FixedString(64),
    class_name Nullable(String) CODEC(ZSTD(3)),
    method_name Nullable(String) CODEC(ZSTD(3)),
    error_location LowCardinality(String) CODEC(ZSTD(3)),   -- 'jadx', 'apktool', 'androguard', 'analysis'
    error_message Nullable(String) CODEC(ZSTD(3)),
    error_type Nullable(String) CODEC(ZSTD(3)),
    error_hash FixedString(32),                               -- MD5 for dedup
    status Enum8('new' = 1, 'investigating' = 2, 'fixed' = 3, 'wontfix' = 4) DEFAULT 'new',
    analysis_date DateTime64(3, 'UTC')
) ENGINE = MergeTree()
ORDER BY (sha256, error_location, error_hash);
```