Nalini K. Ratha

170 papers A* 4A 3B 26C 2Misc 5Journal 59Unranked 66
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Arjun Ramesh Kaushik, Naresh Kumar Devulapally, Vishnu Suresh Lokhande, Nalini K. Ratha, Venu Govindaraju
2026 A* conf
AAAI
Arjun Ramesh Kaushik, Naresh Kumar Devulapally, Vishnu Suresh Lokhande, Nalini K. Ratha, Venu Govindaraju
2026 J jnl
CoRR
Arjun Ramesh Kaushik, Naresh Kumar Devulapally, Vishnu Suresh Lokhande, Nalini K. Ratha, Venu Govindaraju
2026 J jnl
CoRR
Arjun Ramesh Kaushik, Nalini K. Ratha, Venu Govindaraju
2026 J jnl
CoRR
Susim Roy, Nalini K. Ratha
2025 J jnl
J. Inf. Secur. Appl.
Akshay Agarwal, Nalini K. Ratha
2025 conf
CAI
Susim Roy, Bharat Yalavarthi, Nalini K. Ratha
2025 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Ramin Akbari, Luke Sperling, Nalini K. Ratha, Arun Ross, Vishnu Naresh Boddeti
2025 J jnl
Pattern Recognit.
Soumyadeep Ghosh, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2025 conf
CAI
Tilak Sharma H. K, Arjun Ramesh Kaushik, Nalini K. Ratha
2025 B conf
FG
Arjun Ramesh Kaushik, Bharat Yalavarthi, Arun Ross, Vishnu Boddeti, Nalini K. Ratha
2025 J jnl
CoRR
Arjun Ramesh Kaushik, Bharat Yalavarthi, Arun Ross, Vishnu Boddeti, Nalini K. Ratha
2025 B conf
FG
Atul Kumar, Akshay Agarwal, Nalini K. Ratha
2024 J jnl
CoRR
Bharat Yalavarthi, Nalini K. Ratha
2024 conf
CAI
Aditya Malik, Nalini K. Ratha, Bharat Yalavarthi, Tilak Sharma, Arjun Ramesh Kaushik, Charanjit Jutla
2024 J jnl
CoRR
Aditya Malik, Nalini K. Ratha, Bharat Yalavarthi, Tilak Sharma, Arjun Ramesh Kaushik, Charanjit Jutla
2024 J jnl
Neural Networks
Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2024 conf
CVPR Workshops
Akshay Agarwal, Nalini K. Ratha
2024 B conf
FG
Akshay Agarwal, Nalini K. Ratha
2024 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Shengcai Liao, Xiaoming Liu, Massimo Tistarelli, Rama Chellappa, Josef Kittler, Nalini K. Ratha
2024 conf
ICPR (15)
Bharat Yalavarthi, Charanjit Jutla, Nalini K. Ratha
2024 conf
ICPR (19)
Arjun Ramesh Kaushik, R. P. Sunil Rufus, Nalini K. Ratha
2024 J jnl
CoRR
Arjun Ramesh Kaushik, Sunil Rufus R. P, Nalini K. Ratha
2024 conf
CAI
Vatsal Aggarwal, Arjun Ramesh Kaushik, Charanjit Jutla, Nalini K. Ratha
2024 J jnl
CoRR
Vatsal Aggarwal, Arjun Ramesh Kaushik, Charanjit Jutla, Nalini K. Ratha
2024 B conf
FG
Bharat Yalavarthi, Arjun Ramesh Kaushik, Arun Ross, Vishnu Boddeti, Nalini K. Ratha
2024 J jnl
CoRR
Bharat Yalavarthi, Arjun Ramesh Kaushik, Arun Ross, Vishnu Boddeti, Nalini K. Ratha
2024 B conf
ICIP
Akshay Agarwal, Nalini K. Ratha
2024 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Nalini K. Ratha
2024 conf
ICPR (1)
Tilak Sharma, Nalini K. Ratha, Charanjit Jutla
2024 conf
ICPR (1)
Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2024 conf
ICPR (15)
Bharat Yalavarthi, Arjun Ramesh Kaushik, Tilak Sharma, Charanjit Jutla, Nalini K. Ratha
2024 conf
ICPR (5)
Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2024 conf
ICPR (18)
Arjun Ramesh Kaushik, Charanjit Jutla, Nalini K. Ratha
2024 J jnl
CoRR
Arjun Ramesh Kaushik, Charanjit Jutla, Nalini K. Ratha
2023 conf
ICCV (Workshops)
Ojaswee, Akshay Agarwal, Nalini K. Ratha
2023 conf
Tiny Papers @ ICLR
Gaurav Goswami, Akshay Agarwal, Nalini K. Ratha, Richa Singh, Mayank Vatsa
2023 conf
WIFS
Tilak Sharma, Mahika Wason, Vishnu Boddeti, Arun Ross, Nalini K. Ratha
2023 J jnl
IEEE Trans. Artif. Intell.
Akshay Agarwal, Richa Singh, Mayank Vatsa, Nalini K. Ratha
2023 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Nalini K. Ratha
2023 A conf
WACV
Akshay Agarwal, Nalini K. Ratha, Afzel Noore, Richa Singh, Mayank Vatsa
2023 J jnl
Inf. Fusion
Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2023 J jnl
CoRR
Bhavin Jawade, Deen Dayal Mohan, Srirangaraj Setlur, Nalini K. Ratha, Venu Govindaraju
2023 conf
CVPR Workshops
Akshay Agarwal, Nalini K. Ratha, Richa Singh, Mayank Vatsa
2022 conf
ECCV Workshops (1)
Akshay Agarwal, Nalini K. Ratha, Mayank Vatsa, Richa Singh
2022 J jnl
IEEE Trans. Image Process.
Akshay Agarwal, Nalini K. Ratha, Mayank Vatsa, Richa Singh
2022 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Akshay Agarwal, Gaurav Goswami, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2022 conf
CVPR Workshops
Akshay Agarwal, Nalini K. Ratha, Mayank Vatsa, Richa Singh
2022 B conf
IJCB
Luke Sperling, Nalini K. Ratha, Arun Ross, Vishnu Naresh Boddeti
2022 J jnl
CoRR
Luke Sperling, Nalini K. Ratha, Arun Ross, Vishnu Naresh Boddeti
2022 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Nalini K. Ratha
2022 conf
COMAD/CODS
Nayna Jain, Karthik Nandakumar, Nalini K. Ratha, Sharath Pankanti, Uttam Kumar
2022 B conf
IJCB
Bhavin Jawade, Deen Dayal Mohan, Srirangaraj Setlur, Nalini K. Ratha, Venu Govindaraju
2022 B conf
ICPR
Vishi Jain, Akshay Agarwal, Richa Singh, Mayank Vatsa, Nalini K. Ratha
2021 conf
CIKM Workshops
Akshay Agarwal, Nalini K. Ratha
2021 J jnl
Pattern Recognit. Lett.
Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2021 conf
AIMLSystems
Nayna Jain, Karthik Nandakumar, Nalini K. Ratha, Sharath Pankanti, Uttam Kumar
2021 J jnl
CoRR
Nayna Jain, Karthik Nandakumar, Nalini K. Ratha, Sharath Pankanti, Uttam Kumar
2021 J jnl
CoRR
Kanthi K. Sarpatwar, Karthik Nandakumar, Nalini K. Ratha, James T. Rayfield, Karthikeyan Shanmugam, Sharath Pankanti, Roman Vaculín
2021 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Nalini K. Ratha
2021 J jnl
IEEE Trans. Dependable Secur. Comput.
Akshay Agarwal, Richa Singh, Mayank Vatsa, Nalini K. Ratha
2021 conf
WIFS
Akshay Agarwal, Nalini K. Ratha, Mayank Vatsa, Richa Singh
2021 B conf
ICIP
Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2021 conf
WIFS
Bhavin Jawade, Akshay Agarwal, Srirangaraj Setlur, Nalini K. Ratha
2021 C conf
MMSP
Nayna Jain, Karthik Nandakumar, Nalini K. Ratha, Sharath Pankanti, Uttam Kumar
2021 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Nalini K. Ratha, Richa Singh, Vitomir Struc, Ioannis A. Kakadiaris, P. Jonathon Phillips, Mayank Vatsa
2021 conf
COMAD/CODS
Richa Singh, Mayank Vatsa, Nalini K. Ratha
2021 B conf
FG
Akshay Agarwal, Nalini K. Ratha, Mayank Vatsa, Richa Singh
2020 J jnl
Computer
Karthik Nandakumar, Nalini K. Ratha, Sharath Pankanti, Alex Pentland, Maurice Herlihy
2020 conf
CVPR Workshops
Akhil Goel, Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2020 book
Richa Singh, Mayank Vatsa, Vishal M. Patel, Nalini K. Ratha
2020 ch.
Domain Adaptation for Visual Understanding
Soumyadeep Ghosh, Richa Singh, Mayank Vatsa, Nalini K. Ratha, Vishal M. Patel
2020 conf
CVPR Workshops
Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2020 conf
CVPR Workshops
Kanthi K. Sarpatwar, Nalini K. Ratha, Karthik Nandakumar, Karthikeyan Shanmugam, James T. Rayfield, Sharath Pankanti, Roman Vaculín
2020 J jnl
CoRR
Akhil Goel, Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2020 J jnl
CoRR
Richa Singh, Mayank Vatsa, Nalini K. Ratha
2019 J jnl
CoRR
Shruti Nagpal, Maneet Singh, Richa Singh, Mayank Vatsa, Nalini K. Ratha
2019 conf
CVPR Workshops
Akhil Goel, Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2019 J jnl
Int. J. Comput. Vis.
Gaurav Goswami, Akshay Agarwal, Nalini K. Ratha, Richa Singh, Mayank Vatsa
2019 J jnl
CoRR
Michele Merler, Nalini K. Ratha, Rogério Schmidt Feris, John R. Smith
2019 C conf
IH&MMSec
Karthik Nandakumar, Nalini K. Ratha, Sharathchandra Pankanti
2019 J jnl
IEEE Trans. Biom. Behav. Identity Sci.
Maneet Singh, Richa Singh, Mayank Vatsa, Nalini K. Ratha, Rama Chellappa
2019 conf
BTAS
Akhil Goel, Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2019 conf
CVPR Workshops
Karthik Nandakumar, Nalini K. Ratha, Sharath Pankanti, Shai Halevi
2018 conf
BTAS
Akshay Agarwal, Richa Singh, Mayank Vatsa, Nalini K. Ratha
2018 conf
CVPR Workshops
Vineet Kushwaha, Maneet Singh, Richa Singh, Mayank Vatsa, Nalini K. Ratha, Rama Chellappa
2018 conf
BTAS
Rishabh Garg, Yashasvi Baweja, Soumyadeep Ghosh, Richa Singh, Mayank Vatsa, Nalini K. Ratha
2018 J jnl
CoRR
Rishabh Garg, Yashasvi Baweja, Soumyadeep Ghosh, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2018 J jnl
CoRR
Maneet Singh, Richa Singh, Mayank Vatsa, Nalini K. Ratha, Rama Chellappa
2018 J jnl
CoRR
Vidya Muthukumar, Tejaswini Pedapati, Nalini K. Ratha, Prasanna Sattigeri, Chai-Wah Wu, Brian Kingsbury, Abhishek Kumar, Samuel Thomas, Aleksandra Mojsilovic, Kush R. Varshney
2018 A* conf
AAAI
Gaurav Goswami, Nalini K. Ratha, Akshay Agarwal, Richa Singh, Mayank Vatsa
2018 J jnl
CoRR
Gaurav Goswami, Nalini K. Ratha, Akshay Agarwal, Richa Singh, Mayank Vatsa
2017 conf
WIFS
Karthik Nandakumar, Nalini K. Ratha, Sharath Pankanti, Shelby Darnell
2016 B conf
ICPR
Christos Sagonas, Yannis Panagakis, Saritha Arunkumar, Nalini K. Ratha, Stefanos Zafeiriou
2016 B conf
ICPR
Talha Ahmad Siddiqui, Samarth Bharadwaj, Tejas I. Dhamecha, Akshay Agarwal, Mayank Vatsa, Richa Singh, Nalini K. Ratha
2016 B conf
ICPR
Gaurav Goswami, Nalini K. Ratha, Richa Singh, Mayank Vatsa
2016 B conf
ICPR
Xi Peng, Nalini K. Ratha, Sharathchandra Pankanti
2016 B conf
ICIP
Yu Cheng, Nalini K. Ratha, Sharath Pankanti
2015 J jnl
IBM J. Res. Dev.
Nalini K. Ratha, Jonathan H. Connell, Sharath Pankanti
2015 J jnl
IEEE Signal Process. Mag.
Vishal M. Patel, Nalini K. Ratha, Rama Chellappa
2014 J jnl
IEEE Trans. Image Process.
Himanshu S. Bhatt, Richa Singh, Mayank Vatsa, Nalini K. Ratha
2014 B conf
IJCB
Hagai Aronowitz, Min Li, Orith Toledo-Ronen, Sivan Harary, Amir B. Geva, Shay Ben-David, Asaf Rendel, Ron Hoory, Nalini K. Ratha, Sharath Pankanti, David Nahamoo
2013 conf
BTAS
Min Li, Shenghua Bao, Weihong Qian, Zhong Su, Nalini K. Ratha
2013 Misc conf
ICASSP
Jonathan Connell, Nalini K. Ratha, James E. Gentile, Ruud M. Bolle
2013 ch.
Handbook of Iris Recognition
Jaishanker K. Pillai, Vishal M. Patel, Rama Chellappa, Nalini K. Ratha
2012 B conf
ICIP
Noel C. F. Codella, Jonathan Connell, Nalini K. Ratha, Jonathan W. Weinsaft
2012 B conf
ICPR
Vivek Tyagi, Hima P. Karanam, Tanveer A. Faruquie, L. Venkata Subramaniam, Nalini K. Ratha
2012 B conf
ICIP
Himanshu S. Bhatt, Richa Singh, Mayank Vatsa, Nalini K. Ratha
2011 conf
CVPR Workshops
Vivek Tyagi, Nalini K. Ratha
2011 J jnl
IBM J. Res. Dev.
Sharath Pankanti, Lisa M. Brown, Jonathan H. Connell, Ankur Datta, Quanfu Fan, Rogério Schmidt Feris, Norman Haas, Ying Li, Nalini K. Ratha, Hoang Trinh
2011 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Jaishanker K. Pillai, Vishal M. Patel, Rama Chellappa, Nalini K. Ratha
2010 B conf
ICPR
Jayanta Basak, Kiran Kate, Vivek Tyagi, Nalini K. Ratha
2010 conf
ICEB
Nalini K. Ratha
2010 conf
CVPR Workshops
Jayanta Basak, Kiran Kate, Vivek Tyagi, Nalini K. Ratha
2010 conf
CVPR Workshops
V. Ramakrishnan, Nalini K. Ratha
2010 Misc conf
ICASSP
Jaishanker K. Pillai, Vishal M. Patel, Rama Chellappa, Nalini K. Ratha
2008 conf
CVPR Workshops
Jinyu Zuo, Nalini K. Ratha, Jonathan H. Connell
2008 B conf
ICPR
Jinyu Zuo, Nalini K. Ratha, Jonathan H. Connell
2008 B conf
ICPR
Achint Oommen Thomas, Nalini K. Ratha, Jonathan H. Connell, Ruud M. Bolle
2008 Misc conf
ICASSP
Gaurav Aggarwal, Nalini K. Ratha, Ruud M. Bolle, Rama Chellappa
2008 Misc conf
ICASSP
Gaurav Aggarwal, Nalini K. Ratha, Jonathan H. Connell, Ruud M. Bolle
2007 A* conf
CVPR
Faisal Farooq, Ruud M. Bolle, Tsai-Yang Jea, Nalini K. Ratha
2007 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Nalini K. Ratha, Sharat Chikkerur, Jonathan H. Connell, Ruud M. Bolle
2007 J jnl
IEEE Trans. Inf. Forensics Secur.
Bir Bhanu, Nalini K. Ratha, B. V. K. Vijaya Kumar, Rama Chellappa, Josef Bigün
2007 J jnl
IEEE Trans. Syst. Man Cybern. Part B
K. W. Boyer, Venu Govindaraju, Nalini K. Ratha
2007 ch.
Image Pattern Recognition
Nalini K. Ratha, Ruud M. Bolle, Sharath Pankanti
2006 conf
CVPR Workshops
Gaurav Aggarwal, Nalini K. Ratha, Ruud M. Bolle
2006 conf
ICPR (4)
Nalini K. Ratha, Jonathan H. Connell, Ruud M. Bolle, Sharat Chikkerur
2006 conf
ICPR (4)
Sharat Chikkerur, Sharath Pankanti, Alan Jea, Nalini K. Ratha, Ruud M. Bolle
2005 ed.
AVBPA
Takeo Kanade, Anil K. Jain, Nalini K. Ratha
2005 conf
AutoID
Sharat Chikkerur, Nalini K. Ratha
2005 conf
CVDB
John R. Smith, David S. Doermann, Amarnath Gupta, Jonathan Goldstein, Uri Shaft, Nalini K. Ratha
2005 conf
WACV/MOTION
Sharat Chikkerur, Venu Govindaraju, Sharath Pankanti, Ruud M. Bolle, Nalini K. Ratha
2005 conf
AutoID
Ruud M. Bolle, Jonathan H. Connell, Sharath Pankanti, Nalini K. Ratha, Andrew W. Senior
2004 conf
ECCV Workshop BioAW
Nalini K. Ratha, Miguel A. Figueroa-Villanueva, Jonathan H. Connell, Ruud M. Bolle
2004 conf
ICPR (3)
Ruud M. Bolle, Nalini K. Ratha, Sharath Pankanti
2004 J jnl
IEEE Trans. Circuits Syst. Video Technol.
Chitra Dorai, Nalini K. Ratha, Ruud M. Bolle
2004 J jnl
Comput. Vis. Image Underst.
Ruud M. Bolle, Nalini K. Ratha, Sharath Pankanti
2004 conf
ICPR (2)
Ruud M. Bolle, Sharath Pankanti, Jonathan H. Connell, Nalini K. Ratha
2004 conf
SINOBIOMETRICS
Ruud M. Bolle, Nalini K. Ratha, Sharath Pankanti
2003 conf
AVBPA
Miguel A. Figueroa-Villanueva, Nalini K. Ratha, Ruud M. Bolle
2003 conf
AVBPA
Michael Osborne, Nalini K. Ratha
2003 conf
AVBPA
Sunil J. Noronha, Chitra Dorai, Nalini K. Ratha, Ruud M. Bolle
2003 J jnl
Pattern Recognit. Lett.
Nalini K. Ratha, Jonathan H. Connell, Ruud M. Bolle
2002 J jnl
Pattern Recognit.
Ruud M. Bolle, Jonathan H. Connell, Nalini K. Ratha
2002 conf
Biometric Authentication
Ruud M. Bolle, Andrew W. Senior, Nalini K. Ratha, Sharath Pankanti
2002 conf
ICIP (1)
Ruud M. Bolle, Nalini K. Ratha, Jonathan H. Connell
2002 conf
ICPR (3)
Sharath Pankanti, Nalini K. Ratha, Ruud M. Bolle
2001 conf
AVBPA
Nalini K. Ratha, Jonathan H. Connell, Ruud M. Bolle
2001 conf
ICAPR
Nalini K. Ratha, Andrew W. Senior, Ruud M. Bolle
2001 conf
PRIS
Ruud M. Bolle, Nalini K. Ratha, Jonathan H. Connell
2001 J jnl
IBM Syst. J.
Nalini K. Ratha, Jonathan H. Connell, Ruud M. Bolle
2001 conf
MM&Sec
Nalini K. Ratha, Jonathan H. Connell, Ruud M. Bolle
2000 A* conf
CVPR
Chitra Dorai, Nalini K. Ratha, Ruud M. Bolle
2000 B conf
ICPR
Ruud M. Bolle, Sharath Pankanti, Nalini K. Ratha
2000 conf
CAMP
Nalini K. Ratha, Anil K. Jain, Diane T. Rover
2000 B conf
ICPR
Sugata Ghosal, Raghavendra Udupa, Nalini K. Ratha, Sharath Pankanti
2000 A conf
WACV
Sugata Ghosal, Raghavendra Udupa, Sharath Pankanti, Nalini K. Ratha
2000 A conf
WACV
Nalini K. Ratha, Ruud M. Bolle, V. D. Pandit, V. Vaish
2000 conf
ACM Multimedia Workshops
Nalini K. Ratha, Jonathan H. Connell, Ruud M. Bolle
1999 J jnl
IEEE Trans. Parallel Distributed Syst.
Nalini K. Ratha, Anil K. Jain
1998 B conf
ICPR
Nalini K. Ratha, Ruud M. Bolle
1998 B conf
ICPR
Nalini K. Ratha, Jonathan H. Connell, Ruud M. Bolle
1998 conf
ACCV (1)
Ruud M. Bolle, Nalini K. Ratha, Sharath Pankanti
1997 J jnl
Pattern Recognit.
Anil K. Jain, Nalini K. Ratha, Sridhar Lakshmanan
1996 J jnl
IEEE Trans. Pattern Anal. Mach. Intell.
Nalini K. Ratha, Kalle Karu, Shaoyun Chen, Anil K. Jain
1996 conf
Great Lakes Symposium on VLSI
Nalini K. Ratha, Anil K. Jain, Diane T. Rover
1995 J jnl
Pattern Recognit.
Nalini K. Ratha, Shaoyun Chen, Anil K. Jain
1995 Misc conf
FCCM
Nalini K. Ratha, Anil K. Jain, Diane T. Rover
1994 conf
ICPR (3)
Dan Judd, Nalini K. Ratha, Philip K. McKinley, John Weng, Anil K. Jain
docs/new-code-binja-schema.md
← Index docs/new-code-binja-schema.md markdown
#################################
###### CODE RELATED TABLES ######
#################################

### CREATE FULL REDB DATABASE
def create_decompiled_binja_with_all_tables(client):
    create_phase1_decompiled_binja_tables(client)

#### CREATE FULL TABLES
def create_phase1_decompiled_binja_tables(client):
    create_function_analysis_error_dbtable(client)
    create_binja_decompiled_dbtable(client)
    create_binja_disassembly_dbtable(client)
    create_binja_cfg_dbtable(client)

#################################
### DECOMPILED BINJA INDIVIDUAL TABLES
#################################
def create_function_analysis_error_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS function_analysis_errors_binja (
        sha256 FixedString(64),
        function_name Nullable(String) CODEC(ZSTD(3)),
        function_address UInt64,
        error_location LowCardinality(String) CODEC(ZSTD(3)),
        error_message Nullable(String) CODEC(ZSTD(3)),
        error_details Nullable(String) CODEC(ZSTD(3)),
        error_type Nullable(String) CODEC(ZSTD(3)),
        error_hash FixedString(32), -- MD5, To help identify duplicate errors
        status Enum8('new' = 1, 'investigating' = 2, 'fixed' = 3, 'wontfix' = 4) DEFAULT 'new',
        analysis_date DateTime64(3, 'UTC'),
        PRIMARY KEY (sha256, function_address, error_location)
    )
    ENGINE = MergeTree()
    ORDER BY (sha256, function_address, error_location);
    """)

def create_binja_decompiled_dbtable(client):
    # Create decompiled_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_decompiled_functions_content (
        decompiled_function_hash FixedString(64),
        decompiled_function String CODEC(ZSTD(3)),
        decompiled_function_lower String MATERIALIZED lower(decompiled_function) CODEC(ZSTD(3)),
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL
        flattened_score Nullable(Float64),
        mba_score Nullable(Float64),
        analysis_date DateTime64(3, 'UTC'),

        INDEX idx_function_content_token lower(decompiled_function) TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_text_decompiled_function decompiled_function TYPE text(tokenizer = 'splitByNonAlpha', preprocessor = lower(decompiled_function)) GRANULARITY 64,
        INDEX idx_func_hash decompiled_function_hash TYPE bloom_filter GRANULARITY 1,
    ) ENGINE = ReplacingMergeTree(analysis_date)
    PRIMARY KEY decompiled_function_hash -- TODO: remove is redundant
    ORDER BY decompiled_function_hash;
    """)

    # Create decompiled_functions_references table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_decompiled_functions_references (
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        decompiled_function_hash FixedString(64),
        disassembled_function_hash Nullable(FixedString(64)),
        decompiled_function_name LowCardinality(String),
        decompiled_function_prototype LowCardinality(String),
        decompiled_function_address UInt64,
        functions_caller Array(String),
        functions_call Array(String),

        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_hash decompiled_function_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_name decompiled_function_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        INDEX idx_func_addr decompiled_function_address TYPE minmax GRANULARITY 1,
        analysis_date DateTime64(3, 'UTC')
    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (sha256, decompiled_function_hash);
    """)

def create_binja_disassembly_dbtable(client):
    # Create disassembly_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_disassembled_functions_content (
        -- Content hashes for each normalization level
        disassembled_function_hash FixedString(64),             -- This is the hash of the disassembled function without addresses
        
        -- The actual function content at different normalization levels
        disassembled_function String CODEC(ZSTD(3)),
        disassembled_function_no_addresses String CODEC(ZSTD(3)),

        -- Function 
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL

        -- Analysis fields
        instructions_count UInt32,
        instructions_types Array(LowCardinality(String)), -- Types of instructions used
        control_flow_count UInt32,                      -- Number of control flow instructions
        memory_access_pattern Array(LowCardinality(String)),  -- Patterns of memory access
        register_usage Array(LowCardinality(String)),         -- Types of registers used
        data_references_count UInt32,                   -- Number of data references
        opcode_frequency_vector Array(Float32),-- Not computed yet
        api_calls_vector Array(Float32),-- Not computed yet
        minhash_signature Array(UInt64),-- Not computed yet
        max_block_size Nullable(UInt32),
        num_calls Nullable(UInt32),
        stack_size Nullable(Int32),
        instruction_type_ratios Array(Float32), -- Not computed yet
        instruction_embedding Array(Float32), -- Not computed yet
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for each normalization level
        INDEX idx_disasm_ngram disassembled_function TYPE ngrambf_v1(3, 32768, 3, 0) GRANULARITY 1,
        INDEX idx_function_type function_type TYPE set(10) GRANULARITY 1,
        INDEX idx_instr_count instructions_count TYPE minmax GRANULARITY 4

    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (disassembled_function_hash);
    """)

    client.command("""
    CREATE TABLE code_binja_disassembled_functions_references
    (
        -- Original fields
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        disassembled_function_hash FixedString(64),
        decompiled_function_hash Nullable(FixedString(64)),

        disassembled_function_name LowCardinality(String),
        disassembled_function_address UInt64,
        analysis_date DateTime64(3, 'UTC'),
        
        -- New hash fields moved from content table
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),
        
        -- OPTIMIZED INDEXES for all search patterns
        INDEX idx_func_addr disassembled_function_address TYPE minmax GRANULARITY 1,
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_norm ssdeep_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_name disassembled_function_name TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 2
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    -- OPTIMIZED ORDER BY: Primary query pattern first, then hash fields for locality
    ORDER BY (sha256, disassembled_function_hash)
    SETTINGS index_granularity = 8192
    """)

def create_binja_llil_dbtable(client):
    # Create llil_functions_content table
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_llil_functions_content (
        -- Content hashes for each normalization level
        llil_function_hash FixedString(64),             -- sha256_llil This is the hash of the disassembled function without addresses

        -- Function 
        function_type Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5) DEFAULT 'UNKNOWN',  -- NOT NULL TODO: remove THUNK and EXTERNAL

        -- Analysis fields
        instructions_types_llil Array(LowCardinality(String)), -- Types of instructions used
        control_flow_count_llil UInt32,                      -- Number of control flow instructions
        memory_access_pattern_llil Array(LowCardinality(String)),  -- Patterns of memory access
        register_usage_llil Map(LowCardinality(String), Tuple(UInt32, UInt32)),         -- Types of registers used
        total_reg_reads UInt32,
        total_reg_written UInt32,
        data_references_count UInt32,                   -- Number of data references
        max_block_size Nullable(UInt32),
        num_calls Nullable(UInt32),
        stack_size Nullable(Int32),
        body_llil_vector Array(Tuple(UInt32, Array(UInt16))),
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for each normalization level
        INDEX function_type_idx function_type TYPE set(10) GRANULARITY 1,
        INDEX idx_reg_usage mapKeys(register_usage_llil) TYPE bloom_filter(0.01) GRANULARITY 1

    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY llil_function_hash;
    """)

    client.command("""
    CREATE TABLE code_binja_llil_functions_references
    (
        -- Original fields
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        llil_function_hash Nullable(FixedString(64)),
        disassembled_function_hash FixedString(64),
        
        -- New hash fields moved from content table
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),

        analysis_date DateTime64(3, 'UTC'),
        
        -- OPTIMIZED INDEXES for all search patterns
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_llil ssdeep_llil TYPE bloom_filter GRANULARITY 1,
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    -- OPTIMIZED ORDER BY: Primary query pattern first, then hash fields for locality
    ORDER BY (sha256, function_address)
    SETTINGS index_granularity = 8192
    """)

def create_binja_cfg_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_cfg_blocks_content (
        block_instructions_hash FixedString(64), -- PK
        block_size UInt32,
        instructions_count UInt16,
        branch_type Enum8('DIRECT'=1, 'CONDITIONAL'=2, 'CALL'=3, 'RETURN'=4, 'FALLTHROUGH'=5, 'INDIRECT'=6, 'UNKNOWN'=7),
        block_type Enum8('CODE'=1, 'DATA'=2, 'THUNK'=3),
        flags Array(String),
        analysis_date DateTime64(3, 'UTC'),

        -- Indexes for filtering/analysis
        INDEX idx_branch_type branch_type TYPE set(10) GRANULARITY 4,
        INDEX idx_block_type block_type TYPE set(5) GRANULARITY 4,
        INDEX idx_instr_count instructions_count TYPE minmax GRANULARITY 4,
        INDEX idx_block_size block_size TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (block_instructions_hash);
    """)
  
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_cfg_blocks_references (
        sha256 FixedString(64),
        sha1 FixedString(40),
        md5 FixedString(32),
        block_instructions_hash FixedString(64),
        disassembled_function_hash FixedString(64),
        
        -- Address information (for CFG traversal and debugging)
        function_address UInt64,
        block_start_address UInt64,
        block_end_address UInt64,
        
        -- CFG structure (addresses refer to block_start_address)
        predecessor_blocks Array(UInt64),
        successor_blocks Array(UInt64),
        depth UInt16,
        position UInt32,
        
        -- Dominator analysis
        dominators Array(UInt16),
        post_dominators Array(UInt16),
        
        analysis_date DateTime64(3, 'UTC'),
        
        -- OPTIMIZED INDEXES based on query patterns
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_block_hash block_instructions_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_hash disassembled_function_hash TYPE bloom_filter GRANULARITY 1,
        INDEX idx_func_addr function_address TYPE minmax GRANULARITY 1,
        INDEX idx_block_start block_start_address TYPE minmax GRANULARITY 1,
        INDEX idx_depth depth TYPE minmax GRANULARITY 4,
        INDEX idx_position position TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY (sha256, function_address, block_start_address)
    SETTINGS index_granularity = 8192;
    """)

def create_binja_strings_dbtable(client):
    # 1. Raw table - INSERT target
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_strings_raw (
        sha256 FixedString(64),
        string String CODEC(ZSTD(3)),              -- Decoded UTF-8 string (for searching)
        string_raw String CODEC(ZSTD(3)),          -- Raw bytes from binary (ground truth)
        string_encoding LowCardinality(String),    -- Detected/guessed encoding by binja
        string_offset UInt64,
        string_length UInt32,                      -- Length of decoded string
        string_raw_length UInt32,                  -- Length of raw bytes
        string_entropy Float32
    )
    ENGINE = Null;
    """)
   
    # 3a. Target table for reverse lookup (with indexes)
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_strings_by_binary (
        sha256 FixedString(64),
        string_offset UInt64,
        string String CODEC(ZSTD(3)),
        string_raw String CODEC(ZSTD(3)),
        string_encoding LowCardinality(String),
        string_length UInt32,
        string_raw_length UInt32,
        string_entropy Float32,
        
        INDEX idx_sha256 sha256 TYPE bloom_filter GRANULARITY 1,
        INDEX idx_string_ngram lower(string) TYPE ngrambf_v1(3, 32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_string string TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        --- INDEX idx_string_raw string_raw TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 1,
        INDEX idx_entropy string_entropy TYPE minmax GRANULARITY 4
    )
    ENGINE = ReplacingMergeTree()
    ORDER BY (sha256, string_offset);
    """)
    
    # 3b. Materialized view -> target table
    client.command("""
    CREATE MATERIALIZED VIEW IF NOT EXISTS code_binja_strings_by_binary_mv
    TO code_binja_strings_by_binary
    AS SELECT
        sha256,
        string_offset,
        string,
        string_raw,
        string_encoding,
        string_length,
        string_raw_length,
        string_entropy
    FROM code_binja_strings_raw;
    """)

    client.command("""
    -- 1. Create the new public-only popularity table
    CREATE TABLE mv_string_popularity_public_table (
        string_xxhash64 UInt64,
        sample_count AggregateFunction(uniq, FixedString(64))
    ) ENGINE = AggregatingMergeTree()
    ORDER BY string_xxhash64;
    """)

    client.command("""
    -- 2. Create the MV for new data going forward
    CREATE MATERIALIZED VIEW mv_string_popularity_public
    TO mv_string_popularity_public_table AS
    SELECT
        xxHash64(s.string) AS string_xxhash64,
        uniqState(s.sha256) AS sample_count
    FROM code_binja_strings_raw s
    INNER JOIN catalog_visibility_lookup_v2 v 
        ON s.sha256 = v.sha256 AND v.visibility_scope = 'public'
    GROUP BY string_xxhash64;
    """)

    # client.command("""
    # INSERT INTO mv_string_popularity_public_table
    # SELECT
    #     xxHash64(s.string) AS string_xxhash64,
    #     uniqState(s.sha256) AS sample_count
    # FROM code_binja_strings_by_binary s
    # INNER JOIN catalog_visibility_lookup_v2 v 
    #     ON s.sha256 = v.sha256 AND v.visibility_scope = 'public'
    # GROUP BY string_xxhash64;
    # """)

def create_binja_function_similarity_metrics_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS code_binja_function_similarity_metrics (
        disassembled_function_hash FixedString(64),
        
        -- Complexity metrics
        cyclomatic_complexity Nullable(UInt16),
        
        -- Fuzzy hashes (duplicated from reference tables for performance)
        ssdeep_disassembly Nullable(String),
        tlsh_disassembly Nullable(FixedString(72)),
        ssdeep_llil Nullable(String),
        tlsh_llil Nullable(FixedString(72)),
        
        -- Similarity hashes
        minhash Array(UInt8),
        
        analysis_date DateTime64(3, 'UTC'),
        
        -- Indexes
        INDEX idx_complexity cyclomatic_complexity TYPE minmax GRANULARITY 4,
        INDEX idx_ssdeep_disasm ssdeep_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_disasm tlsh_disassembly TYPE bloom_filter GRANULARITY 1,
        INDEX idx_ssdeep_llil ssdeep_llil TYPE bloom_filter GRANULARITY 1,
        INDEX idx_tlsh_llil tlsh_llil TYPE bloom_filter GRANULARITY 1
    )
    ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY disassembled_function_hash;
    """)

def create_golang_metadata_dbtable(client):
    client.command("""
    CREATE TABLE IF NOT EXISTS redb_golang_metadata (
        sha256 FixedString(64),
        goresym JSON,
        analysis_date DateTime64(3, 'UTC')
    ) ENGINE = ReplacingMergeTree(analysis_date)
    ORDER BY sha256
    """)