James H. Graham

98 papers A* 2B 12C 11Misc 18Journal 25Unranked 28
YearRankTypeTitle / Venue / Authors
2016 J jnl
CoRR
James Christopher Foreman, Rammohan K. Ragade, James H. Graham
2015 J jnl
CoRR
J. Chris Foreman, Rammohan K. Ragade, James H. Graham
2014 B conf
ICIP
Ali H. Mahmoud, Ahmed El-Barkouky, James H. Graham, Aly A. Farag
2013 B conf
ICIP
Aly S. Abdelrahim, Ahmed Shalaby, Shireen Y. Elhabian, James H. Graham, Aly A. Farag
2013 conf
CVPR Workshops
Ali H. Mahmoud, Ahmed El-Barkouky, Heba Farag, James H. Graham, Aly A. Farag
2013 J jnl
IEEE Trans. Image Process.
Amal A. Farag, Hossam El Din Hassan Abd El Munim, James H. Graham, Aly A. Farag
2013 J jnl
Int. J. Crit. Infrastructure Prot.
Jeffrey L. Hieb, Jacob Schreiver, James H. Graham
2013 B conf
ICIP
Ahmed El-Barkouky, Ali H. Mahmoud, James H. Graham, Aly A. Farag
2013 Misc conf
ICASSP
Amal A. Farag, James H. Graham, Aly A. Farag
2013 B conf
ICIP
Aly S. Abdelrahim, Hossam E. Abdelmunim, James H. Graham, Aly A. Farag
2012 conf
ISBI
Amal A. Farag, Hossam E. Abdelmunim, James H. Graham, Aly A. Farag, Cambron N. Carter, Salwa Elshazly, Mohamed S. El-Mogy, Sabry El-Mogy, Robert Falk
2012 conf
Critical Infrastructure Protection
Jeffrey L. Hieb, Jacob Schreiver, James H. Graham
2011 C conf
ISI
Jian Guan, James H. Graham, Jeffrey L. Hieb
2011 Misc conf
CATA
Jeffrey L. Hieb, James H. Graham
2011 J jnl
Int. J. Comput. Their Appl.
Brooks E. Latta, Kenneth G. Ricks, James H. Graham
2011 conf
ISBI
Amal A. Farag, Asem M. Ali, James H. Graham, Aly A. Farag, Salwa Elshazly, Robert Falk
2011 Misc conf
CATA
J. Chris Foreman, Michael P. Staublin, James H. Graham, Rammohan K. Ragade
2011 B conf
ICIP
Amal A. Farag, Hossam E. Abdelmunim, James H. Graham, Aly A. Farag, Salwa Elshazly, Sabry El-Mogy, Mohamed S. El-Mogy, Robert Falk, Sahar Al-Jafary, Hani Mahdi, Rebecca Milam
2010 B conf
ICPR
Amal A. Farag, James H. Graham, Salwa Elshazly, Aly A. Farag
2010 conf
ISVC (3)
Amal A. Farag, Asem M. Ali, James H. Graham, Shireen Y. Elhabian, Aly A. Farag, Robert Falk
2010 Misc conf
CATA
Nathan P. Johnson, James H. Graham
2010 B conf
ICIP
Amal A. Farag, James H. Graham, Aly A. Farag
2010 J jnl
Int. J. Comput. Their Appl.
Sandip C. Patel, Jeffrey L. Hieb, James H. Graham
2010 B conf
ICIP
Amal A. Farag, James H. Graham, Salwa Elshazly, Aly A. Farag
2010 conf
ISVC (3)
Ahmed A. Farag, Shireen Y. Elhabian, Mostafa Abdelrahman, James H. Graham, Aly A. Farag, Dongqing Chen, Manuel Casanova
2010 conf
MICCAI (3)
Amal A. Farag, Shireen Y. Elhabian, James H. Graham, Aly A. Farag, Robert Falk
2009 ed.
PDCCS
James H. Graham, Anthony Skjellum
2009 conf
Critical Infrastructure Protection
Jeffrey L. Hieb, James H. Graham, Jian Guan
2009 conf
BICoB
Eric C. Rouchka, Xiangping Wang, James H. Graham, Nigel G. F. Cooper
2009 C conf
CAINE
Aleksey Y. Ashikhmin, James H. Graham, Ahmed H. Desoky, Benjamin Arazi
2009 C conf
CAINE
Waleed H. El-said, James H. Graham
2009 J jnl
Commun. ACM
Sandip C. Patel, Ganesh D. Bhatt, James H. Graham
2009 Misc conf
CATA
Aleksey Y. Ashikhmin, James H. Graham, Ahmed H. Desoky, Benjamin Arazi
2009 conf
ISVC (1)
Amal A. Farag, James H. Graham, Aly A. Farag, Robert Falk
2009 J jnl
IEEE Syst. J.
J. Chris Foreman, Rammohan K. Ragade, James H. Graham
2009 conf
PDCCS
Nathan P. Johnson, James H. Graham
2008 Misc conf
CATA
Douglas R. Wampler, James H. Graham
2008 Misc conf
CATA
Jian Guan, James H. Graham, Thomas A. Harris, Patricia A. S. Ralston
2008 conf
Critical Infrastructure Protection
Jeffrey L. Hieb, James H. Graham
2008 J jnl
Int. J. Inf. Manag.
Sandip C. Patel, James H. Graham, Patricia A. S. Ralston
2007 conf
SADFE
Adel Elmaghraby, James H. Graham, Jana Godwin, Michael Losavio, Deborah Wilson
2007 J jnl
Int. J. Comput. Their Appl.
Wen-Bin Yu, James H. Graham
2007 C conf
CAINE
Joseph F. Francom, James H. Graham
2007 Misc conf
CATA
James H. Graham, Mostafa S. Mostafa, Benjamin Arazi, Ashraf Tantawy, Jeffrey L. Hieb, Patricia A. S. Ralston, Sandip C. Patel
2007 conf
Critical Infrastructure Protection
Jeffrey L. Hieb, James H. Graham, Sandip C. Patel
2007 C conf
CAINE
Jeffrey L. Hieb, James H. Graham, Patricia A. S. Ralston
2006 Misc conf
CATA
Nathan P. Johnson, James H. Graham
2006 B conf
SMC
Yingbing Yu, James H. Graham
2006 Misc conf
CATA
Jeffrey L. Hieb, James H. Graham
2006 C conf
CAINE
Sandip C. Patel, James H. Graham, Patricia A. S. Ralston
2006 C conf
CAINE
Jeffrey L. Hieb, James H. Graham
2005 Misc conf
CATA
James H. Graham, Eric Kuhl, Jonathan Nida
2005 Misc conf
CATA
Jeffrey L. Hieb, James H. Graham
2005 B conf
SMC
James H. Graham, Yingbing Yu
2005 C conf
CAINE
James H. Graham, Jason Walton
2005 conf
COMPSAC (2)
James H. Graham
2005 C conf
CAINE
Sandip C. Patel, James H. Graham, Patricia A. S. Ralston, Roberto Tantalean-Carrasco
2004 C conf
CAINE
Yingbing Yu, James H. Graham
2004 C conf
CAINE
Sandip C. Patel, James H. Graham
2003 J jnl
Int. J. Comput. Their Appl.
Ahmed H. Kamal, James H. Graham, C. David Page Jr.
2003 conf
CSB
James H. Graham, C. David Page Jr., Ahmed H. Kamal
2003 conf
IASSE
James H. Graham, Jonathan Nida
2003 conf
IASSE
Wen-Bin Yu, James H. Graham
2003 B conf
SMC
Terrence P. Fries, James H. Graham
2002 Misc conf
CATA
Wen-Bin Yu, James H. Graham
2002 Misc conf
CATA
Essam M. Hamed, James H. Graham
2002 conf
IS
Patricia A. S. Ralston, James H. Graham, Gail W. DePuy, Chris Arnold, Sean Uhl
2002 J jnl
Int. J. Comput. Their Appl.
James H. Graham, Patricia A. S. Ralston
2002 conf
IS
James H. Graham, Christopher Short, Kamalesh Gandham, Sandra McPherson, Mark Baker
2001 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Jozef M. Zurada, A. L. Wright, James H. Graham
2001 conf
PDCS
Sherif A. Elfayoumy, James H. Graham
2001 conf
IS
Ahmed H. Kamal, James H. Graham, C. David Page Jr.
2001 conf
IS
Essam M. Hamed, James H. Graham, Adel Said Elmaghraby
2001 J jnl
Int. J. Comput. Their Appl.
David Page, James H. Graham
2000 conf
SARA
Terrence P. Fries, James H. Graham
2000 Misc conf
CATA
James H. Graham, Patricia A. S. Ralston
2000 conf
IS
Sherif A. Elfayoumy, James H. Graham
2000 ed.
IS
David Page, James H. Graham
2000 conf
IS
Robert L. Fanelli, James H. Graham
1999 Misc conf
WSC
Adel Said Elmaghraby, Sherif A. Elfayoumy, Irfan S. Karachiwala, James H. Graham, Ahmed Z. Emam, AlaaEldin Sleem
1998 Misc conf
WSC
James H. Graham, Irfan S. Karachiwala, Adel Said Elmaghraby
1996 J jnl
J. Intell. Fuzzy Syst.
Jozef M. Zurada, James H. Graham, Waldemar Karwowski
1995 J jnl
Artif. Intell. Rev.
James H. Graham
1994 J jnl
Simul.
Carol S. Russell, James H. Graham, Adel Said Elmaghraby
1994 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Jian Guan, James H. Graham
1993 conf
ACM Conference on Computer Science
Porter Eugene Smith, James H. Graham
1993 conf
ICRA (2)
James H. Graham, Jian Guan
1992 Misc conf
WSC
Carol S. Russell, Adel Said Elmaghraby, James H. Graham
1991 A* conf
ICRA
James H. Graham, Suraj M. Alexander, Won Young Lee
1989 B conf
SMC
James H. Graham, Adriana Espinosa
1989 J jnl
IEEE Trans. Robotics Autom.
James H. Graham
1988 A* conf
ICRA
James H. Graham
1985 J jnl
Autom.
James H. Graham
1985 J jnl
IEEE Trans. Computers
James H. Graham, Thaddeus F. Kadela
1984 J jnl
IEEE Trans. Syst. Man Cybern.
James H. Graham
1984 J jnl
Autom.
George N. Saridis, James H. Graham
1982 J jnl
IEEE Trans. Syst. Man Cybern.
James H. Graham, George N. Saridis
1971 J jnl
Comput. Aided Des.
James H. Graham, R. N. Horton
notebooks/redb-clickhouse-TEST.ipynb
← Index notebooks/redb-clickhouse-TEST.ipynb plaintext
Truncated preview: showing the first 16384 bytes out of 5988848 total.
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Definitions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import clickhouse_connect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "ch_TEST_client = clickhouse_connect.get_client(host='e.rationaledge.io', port=443, username='default', password='werioubTGwvf0-dsbv_', database='redb', verify=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "ch_TEST_BETA_client = clickhouse_connect.get_client(host='k.rationaledge.io', port=443, username='default', password='werioubTGwvf0-dsbv_', database='default', verify=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<bound method HttpClient.close_connections of <clickhouse_connect.driver.httpclient.HttpClient object at 0x105fd64d0>>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ch_TEST_BETA_client.close_connections"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<clickhouse_connect.driver.summary.QuerySummary at 0x11f900810>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ch_TEST_BETA_client.command(\"\"\"\n",
    "RENAME DATABASE redb TO orig_redb;\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## DB Creation (schema 2025-08-02)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "ch_TEST_client.command(\"\"\"\n",
    "CREATE DATABASE IF NOT EXISTS redb;\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define General Tables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "### CREATE FULL REDB DATABASE\n",
    "def create_redb_with_all_tables(client):\n",
    "    client.command(\"\"\"\n",
    "        CREATE DATABASE IF NOT EXISTS redb\n",
    "    \"\"\")\n",
    "    create_all_general_tables(client)\n",
    "    create_all_pe_tables(client)\n",
    "\n",
    "#### CREATE FULL TABLES\n",
    "def create_all_general_tables(client):\n",
    "    create_basic_properties_dbtable(client)\n",
    "    create_hashes_dbtable(client)\n",
    "    create_capa_dbtable(client)\n",
    "    create_die_dbtable(client)\n",
    "    create_extra_findings_dbtable(client)\n",
    "\n",
    "\n",
    "##################################\n",
    "#### CREATE INDIVIDUAL TABLES ####\n",
    "##################################\n",
    "\n",
    "#### GENERAL TABLES ####\n",
    "# All tables have SETTINGS index_granularity = 8192\n",
    "def create_basic_properties_dbtable(client):\n",
    "    # Create samples_metadata table\n",
    "    client.command(\"\"\"\n",
    "        CREATE TABLE IF NOT EXISTS redb_basic_properties (\n",
    "            sha256 FixedString(64), -- primary key\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            filename Nullable(String),\n",
    "            sample_name String,\n",
    "            filesize UInt64,\n",
    "            file_entropy Float64,\n",
    "            filetype LowCardinality(String),\n",
    "            filetype_mime LowCardinality(String),\n",
    "            filetype_magika LowCardinality(String),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        PRIMARY KEY (sha256)\n",
    "        ORDER BY (sha256)\n",
    "    \"\"\")\n",
    "\n",
    "def create_hashes_dbtable(client):\n",
    "    # Create hashes table\n",
    "    client.command(\"\"\"\n",
    "        CREATE TABLE IF NOT EXISTS redb_hashes (\n",
    "            sha256 FixedString(64), -- primary key\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            ssdeep_hash Nullable(String),\n",
    "            tlsh_hash Nullable(String),\n",
    "            authentihash Nullable(String),\n",
    "            imphash Nullable(String),\n",
    "            impfuzzy Nullable(String),\n",
    "            typerefhash Nullable(String),\n",
    "            richhash Nullable(String),\n",
    "            richpe_hash Nullable(String),\n",
    "            richpv_hash Nullable(String),\n",
    "            richpv_hash_sorted Nullable(String),\n",
    "            dhash Nullable(String),\n",
    "            analysis_date DateTime64(3, 'UTC')\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        PRIMARY KEY (sha256)\n",
    "        ORDER BY (sha256)\n",
    "    \"\"\")\n",
    "\n",
    "def create_capa_dbtable(client):\n",
    "    # Create sample_capabilities table\n",
    "    client.command(\"\"\"\n",
    "        SET enable_json_type = 1;\n",
    "    \"\"\")\n",
    "    client.command(\"\"\"\n",
    "        -- Base table for CAPA analysis results\n",
    "        CREATE TABLE IF NOT EXISTS redb_capa (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            -- Store full JSON dumps as strings for flexibility\n",
    "            capa_dump JSON CODEC(ZSTD(3)),\n",
    "            attack_dump JSON CODEC(ZSTD(3)),\n",
    "            mbc_dump JSON CODEC(ZSTD(3))\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY sha256;\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Normalized table for capabilities and namespaces\n",
    "        CREATE TABLE IF NOT EXISTS redb_capa_capabilities (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            namespace LowCardinality(String),\n",
    "            capability LowCardinality(String)\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY (sha256, namespace, capability);\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Materialized view for capability statistics\n",
    "        CREATE MATERIALIZED VIEW IF NOT EXISTS redb_capa_capabilities_stats (\n",
    "            namespace LowCardinality(String),\n",
    "            capability LowCardinality(String),\n",
    "            samples_bitmap AggregateFunction(groupBitmap, UInt64),\n",
    "            occurrence_count UInt64\n",
    "        ) ENGINE = AggregatingMergeTree()\n",
    "        ORDER BY (namespace, capability)\n",
    "        AS SELECT\n",
    "            namespace,\n",
    "            capability,\n",
    "            groupBitmapState(cityHash64(sha256)) as samples_bitmap,\n",
    "            count() as occurrence_count\n",
    "        FROM redb_capa_capabilities\n",
    "        GROUP BY namespace, capability;\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Normalized table for MITRE ATT&CK mappings\n",
    "        CREATE TABLE IF NOT EXISTS redb_capa_attack (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            tactic LowCardinality(String),\n",
    "            technique LowCardinality(String),\n",
    "            technique_id LowCardinality(String)\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY (sha256, tactic, technique_id);\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Materialized view for ATT&CK statistics\n",
    "        CREATE MATERIALIZED VIEW IF NOT EXISTS redb_capa_attack_stats (\n",
    "            tactic LowCardinality(String),\n",
    "            technique LowCardinality(String),\n",
    "            technique_id LowCardinality(String),\n",
    "            samples_bitmap AggregateFunction(groupBitmap, UInt64),\n",
    "            occurrence_count UInt64\n",
    "        ) ENGINE = AggregatingMergeTree()\n",
    "        ORDER BY (tactic, technique_id)\n",
    "        AS SELECT\n",
    "            tactic,\n",
    "            technique,\n",
    "            technique_id,\n",
    "            groupBitmapState(cityHash64(sha256)) as samples_bitmap,\n",
    "            count() as occurrence_count\n",
    "        FROM redb_capa_attack\n",
    "        GROUP BY tactic, technique, technique_id;\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Normalized table for MBC mappings\n",
    "        CREATE TABLE IF NOT EXISTS redb_capa_mbc (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            objective LowCardinality(String),\n",
    "            behavior LowCardinality(String),\n",
    "            behavior_id LowCardinality(String)\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY (sha256, objective, behavior_id);\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Materialized view for MBC statistics\n",
    "        CREATE MATERIALIZED VIEW IF NOT EXISTS redb_capa_mbc_stats (\n",
    "            objective LowCardinality(String),\n",
    "            behavior LowCardinality(String),\n",
    "            behavior_id LowCardinality(String),\n",
    "            samples_bitmap AggregateFunction(groupBitmap, UInt64),\n",
    "            occurrence_count UInt64\n",
    "        ) ENGINE = AggregatingMergeTree()\n",
    "        ORDER BY (objective, behavior_id)\n",
    "        AS SELECT\n",
    "            objective,\n",
    "            behavior,\n",
    "            behavior_id,\n",
    "            groupBitmapState(cityHash64(sha256)) as samples_bitmap,\n",
    "            count() as occurrence_count\n",
    "        FROM redb_capa_mbc\n",
    "        GROUP BY objective, behavior, behavior_id;\n",
    "    \"\"\")\n",
    "\n",
    "def create_die_dbtable(client):\n",
    "    # Create sample_die table\n",
    "    client.command(\"\"\"\n",
    "        SET enable_json_type = 1;\n",
    "    \"\"\")\n",
    "    client.command(\"\"\"\n",
    "        CREATE TABLE IF NOT EXISTS redb_die (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            die_info JSON CODEC(ZSTD(3)),\n",
    "            analysis_date DateTime64(3, 'UTC')\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        PRIMARY KEY (sha256)\n",
    "        ORDER BY (sha256)\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        CREATE MATERIALIZED VIEW redb_die_mv\n",
    "        (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            compiler LowCardinality(Nullable(String)),\n",
    "            compiler_full Nullable(String),\n",
    "            format LowCardinality(Nullable(String)),\n",
    "            format_full Nullable(String),\n",
    "            installer LowCardinality(Nullable(String)),\n",
    "            installer_full Nullable(String),\n",
    "            joiner LowCardinality(Nullable(String)),\n",
    "            joiner_full Nullable(String),\n",
    "            language LowCardinality(Nullable(String)),\n",
    "            language_full Nullable(String),\n",
    "            library LowCardinality(Nullable(String)),\n",
    "            library_full Nullable(String),\n",
    "            linker LowCardinality(Nullable(String)),\n",
    "            linker_full Nullable(String),\n",
    "            operation_system LowCardinality(Nullable(String)),\n",
    "            operation_system_full Nullable(String),\n",
    "            packer LowCardinality(Nullable(String)),\n",
    "            packer_full Nullable(String),\n",
    "            protector LowCardinality(Nullable(String)),\n",
    "            protector_full Nullable(String),\n",
    "            sfx LowCardinality(Nullable(String)),\n",
    "            sfx_full Nullable(String),\n",
    "            sign_tool LowCardinality(Nullable(String)),\n",
    "            sign_tool_full Nullable(String),\n",
    "            stub LowCardinality(Nullable(String)),\n",
    "            stub_full Nullable(String),\n",
    "            tool LowCardinality(Nullable(String)),\n",
    "            tool_full Nullable(String),   \n",
    "            -- overlay JSON CODEC(ZSTD(3)),\n",
    "            -- resource JSON CODEC(ZSTD(3)),\n",
    "            has_overlay UInt8,\n",
    "            has_resources UInt8,\n",
    "            is_packed UInt8\n",
    "        )\n",
    "        ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY (sha256)\n",
    "        POPULATE\n",
    "        AS SELECT\n",
    "            sha256,\n",
    "            md5,\n",
    "            sha1,\n",
    "            analysis_date,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'compiler'), '') AS compiler,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'compiler(full)'), '') AS compiler_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'format'), '') AS format,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'format(full)'), '') AS format_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'installer'), '') AS installer,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'installer(full)'), '') AS installer_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'joiner'), '') AS joiner,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'joiner(full)'), '') AS joiner_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'language'), '') AS language,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'language(full)'), '') AS language_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'library'), '') AS library,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'library(full)'), '') AS library_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'linker'), '') AS linker,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'linker(full)'), '') AS linker_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'operation_system'), '') AS operation_system,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'operation_system(full)'), '') AS operation_system_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'packer'), '') AS packer,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'packer(full)'), '') AS packer_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'protector'), '') AS protector,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'protector(full)'), '') AS protector_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'sfx'), '') AS sfx,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'sfx(full)'), '') AS sfx_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'sign_tool'), '') AS sign_tool,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'sign_tool(full)'), '') AS sign_tool_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'stub'), '') AS stub,\n",
    "            nullIf(JSONExtractString(toString(die_info),