Calogero Maria Oddo

46 papers Journal 25Unranked 20
YearRankTypeTitle / Venue / Authors
2025 conf
MetroXRAINE
Alessandro Profili, Flaminia Piretta, Marton Csaba Mezei, Muhammad Adnan Khalil, Fabrizia Auletta, Mariangela Filosa, Calogero Maria Oddo
2024 conf
IEEE SENSORS
Elisabetta Leogrande, Francesco Dell'Olio, Stefano Mazzoleni, Calogero Maria Oddo, Mariangela Filosa
2024 conf
RoboSoft
Niccolò Pagliarani, Mariangela Filosa, Rana Muhammad Armaghan Ayaz, Claudio J. Oton, Calogero Maria Oddo, Matteo Cianchetti
2024 conf
IEEE SENSORS
Marian Statache, Mariangela Filosa, Sara Ballanti, Giacomo D'Alesio, Giulia Di Salvo, Domenico Camboni, Calogero Maria Oddo
2023 J jnl
Sensors
Sahana Prasanna, Jessica D'Abbraccio, Mariangela Filosa, Davide Ferraro, Ilaria Cesini, Giacomo Spigler, Andrea Aliperta, Filippo Dell'Agnello, Angelo Davalli, Emanuele Gruppioni, Simona Crea, Nicola Vitiello, Alberto Mazzoni, Calogero Maria Oddo
2022 J jnl
Artif. Intell. Medicine
Mariangela Filosa, Luca Massari, Davide Ferraro, Giacomo D'Alesio, Jessica D'Abbraccio, Andrea Aliperta, Daniela Lo Presti, Joshua Di Tocco, Martina Zaltieri, Carlo Massaroni, Maria Chiara Carrozza, Maurizio Ferrarin, Marco Di Rienzo, Emiliano Schena, Calogero Maria Oddo
2022 J jnl
IEEE Trans Autom. Sci. Eng.
Tamás Czimmermann, Marcello Chiurazzi, Mario Milazzo, Stefano Roccella, Marco Barbieri, Paolo Dario, Calogero Maria Oddo, Gastone Ciuti
2022 J jnl
CoRR
Luca Massari, Giulia Fransvea, Jessica D'Abbraccio, Mariangela Filosa, Giuseppe Terruso, Andrea Aliperta, Giacomo D'Alesio, Martina Zaltieri, Emiliano Schena, Eduardo Palermo, Edoardo Sinibaldi, Calogero Maria Oddo
2022 J jnl
Nat. Mach. Intell.
Luca Massari, Giulia Fransvea, Jessica D'Abbraccio, Mariangela Filosa, Giuseppe Terruso, Andrea Aliperta, Giacomo D'Alesio, Martina Zaltieri, Emiliano Schena, Eduardo Palermo, Edoardo Sinibaldi, Calogero Maria Oddo
2022 J jnl
IEEE Access
Federico Bianchi, Antonino Masaracchia, Angelo Damone, Erfan Shojaei Barjuei, Calogero Maria Oddo, Paolo Dario, Gastone Ciuti
2022 conf
IEEE SENSORS
Mariangela Filosa, Valeria Facchetti, Domenico Camboni, Calogero Maria Oddo
2022 conf
MeMeA
Syed Ali Hassan, Calogero Maria Oddo
2021 conf
MetroInd4.0&IoT
Giulia Fransvea, Sara Moccia, Federico Bianchi, Gastone Ciuti, Arianna Menciassi, Lorenzo Capineri, Calogero Maria Oddo
2021 conf
NER
Giuseppe de Alteriis, Calogero Maria Oddo
2020 conf
MetroInd4.0&IoT
Debadrata Sarkar, Jessica D'Abbraccio, Domenico Camboni, Luca Massari, Aman Arora, Calogero Maria Oddo
2020 conf
MetroInd4.0&IoT
Martina Zaltieri, Joshua Di Tocco, Daniela Lo Presti, Carlo Massaroni, Domenico Formica, Emiliano Schena, Giacomo D'Alesio, Mariangela Filosa, Jessica D'Abbraccio, Ilaria Cesini, Luca Massari, Calogero Maria Oddo, Marco Di Rienzo, Maurizio Ferrarin, Michele Arturo Caponero, Maria Sabrina Sarto
2020 J jnl
Sensors
Andrea Bulletti, Marina Mazzoni, Sahana Prasanna, Luca Massari, Arianna Menciassi, Calogero Maria Oddo, Lorenzo Capineri
2020 J jnl
IEEE Access
Daniela Lo Presti, Carlo Massaroni, Cátia Sofia Jorge Leitão, Maria de Fátima Domingues, Marzhan Sypabekova, David Barrera, Ignazio Floris, Luca Massari, Calogero Maria Oddo, Salvador Sales, Iulian Iordachita, Daniele Tosi, Emiliano Schena
2020 J jnl
IEEE Trans. Haptics
Ge Shi, Emanuele Peperoni, Calogero Maria Oddo, Min Li, Joseph Hardwicke, Matthew Venus, Shervanthi Homer-Vanniasinkam, Helge A. Wurdemann, Andrea Palombi, Zara Lim, Anna Astolfi, Andrea Burani, Silvia Campagnini, Federica G. C. Loizzo, Matteo Lo Preti, Alessandro Marin Vargas
2020 conf
MetroInd4.0&IoT
Francesca Sorgini, Giuseppe Airò Farulla, Nikola Lukic, Ivan Danilov, Loris Roveda, Milos Milivojevic, Terrin Babu Pulikottil, Maria Chiara Carrozza, Paolo Prinetto, Tullio Tolio, Calogero Maria Oddo, Petar B. Petrovic, Bozica Bojovic
2020 J jnl
Sensors
Tamás Czimmermann, Gastone Ciuti, Mario Milazzo, Marcello Chiurazzi, Stefano Roccella, Calogero Maria Oddo, Paolo Dario
2019 J jnl
Sensors
Luca Massari, Andrea Bulletti, Sahana Prasanna, Marina Mazzoni, Francesco Frosini, Elena Vicari, Marcello Pantano, Fabio Staderini, Gastone Ciuti, Fabio Cianchi, Luca Messerini, Lorenzo Capineri, Arianna Menciassi, Calogero Maria Oddo
2019 J jnl
Sensors
Daniela Lo Presti, Chiara Romano, Carlo Massaroni, Jessica D'Abbraccio, Luca Massari, Michele Arturo Caponero, Calogero Maria Oddo, Domenico Formica, Emiliano Schena
2019 J jnl
Neurocomputing
Harish Gunasekaran, Giacomo Spigler, Alberto Mazzoni, Enrico Cataldo, Calogero Maria Oddo
2019 J jnl
Frontiers Neurorobotics
Kosta Jovanovic, Tadej Petric, Toshiaki Tsuji, Calogero Maria Oddo
2019 conf
ApplePies
Silvia Panicacci, Gianluca Giuffrida, Luca Baldanzi, Luca Massari, Giuseppe Terruso, Martina Zaltieri, Mariangela Filosa, Giovanni Tonietti, Calogero Maria Oddo, Luca Fanucci
2019 J jnl
Sensors
Jessica D'Abbraccio, Luca Massari, Sahana Prasanna, Laura Baldini, Francesca Sorgini, Giuseppe Airò Farulla, Andrea Bulletti, Marina Mazzoni, Lorenzo Capineri, Arianna Menciassi, Petar B. Petrovic, Eduardo Palermo, Calogero Maria Oddo
2019 conf
MetroInd4.0&IoT
Daniela Lo Presti, Carlo Massaroni, Joshua Di Tocco, Emiliano Schena, Arianna Carnevale, Umile Giuseppe Longo, Jessica D'Abbraccio, Luca Massari, Calogero Maria Oddo, Michele Arturo Caponero
2019 J jnl
Frontiers Neurorobotics
Udaya Bhaskar Rongala, Alberto Mazzoni, Marcello Chiurazzi, Domenico Camboni, Mario Milazzo, Luca Massari, Gastone Ciuti, Stefano Roccella, Paolo Dario, Calogero Maria Oddo
2018 conf
MeMeA
Luca Massari, Jessica D'Abbraccio, Laura Baldini, Francesca Sorgini, Giuseppe Airo Farulla, Petar B. Petrovic, Eduardo Palermo, Calogero Maria Oddo
2017 conf
CBS
Federico Bianchi, Enrico Trallori, Domenico Camboni, Calogero Maria Oddo, Arianna Menciassi, Gastone Ciuti, Paolo Dario
2017 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Udaya Bhaskar Rongala, Alberto Mazzoni, Calogero Maria Oddo
2017 conf
CBS
Renato Caliò, Domenico Camboni, Joan Ortega Alcaide, Calogero Maria Oddo, Maria Chiara Carrozza, Arianna Menciassi, Gastone Ciuti, Paolo Dario
2017 conf
I2MTC
Paola Saccomandi, Loredana Zollo, Anna Lisa Ciancio, Emiliano Schena, A. Fasano, Calogero Maria Oddo, Maria Chiara Carrozza, Domenico Camboni
2016 conf
BioRob
Francesca Sorgini, Rohan Ghosh, Justus F. Hübotter, Renato Caliò, Carmen Galassi, Calogero Maria Oddo, Sunil L. Kukreja
2015 J jnl
J. Sensors
Paola Saccomandi, Calogero Maria Oddo, Loredana Zollo, Domenico Formica, Rocco Antonio Romeo, Carlo Massaroni, Michele Arturo Caponero, Nicola Vitiello, Eugenio Guglielmelli, Sergio Silvestri, Emiliano Schena
2015 ch.
Intelligent Assistive Robots
Nicola Vitiello, Calogero Maria Oddo, Tommaso Lenzi, Stefano Roccella, Lucia Beccai, Fabrizio Vecchi, Maria Chiara Carrozza, Paolo Dario
2015 conf
ISRR (2)
Udaya Bhaskar Rongala, Alberto Mazzoni, Domenico Camboni, Maria Chiara Carrozza, Calogero Maria Oddo
2015 J jnl
Robotics Auton. Syst.
Tingfang Yan, Marco Cempini, Calogero Maria Oddo, Nicola Vitiello
2014 J jnl
Sensors
David Cheneler, Elisa Buselli, Domenico Camboni, Carl Anthony, Liam Grover, Michael John Adams, Calogero Maria Oddo
2014 J jnl
Sensors
Simona Crea, Marco Donati, Stefano Marco Maria De Rossi, Calogero Maria Oddo, Nicola Vitiello
2014 J jnl
Sensors
Renato Caliò, Udaya Bhaskar Rongala, Domenico Camboni, Mario Milazzo, Cesare Stefanini, Gianluca De Petris, Calogero Maria Oddo
2014 conf
AVR
Giuseppe Airo Farulla, Ludovico Orlando Russo, Chiara Pintor, Daniele Pianu, Giorgio Micotti, Alice Rita Salgarella, Domenico Camboni, Marco Controzzi, Christian Cipriani, Calogero Maria Oddo, Stefano Rosa, Marco Indaco
2013 J jnl
Sensors
Chiara Lucarotti, Calogero Maria Oddo, Nicola Vitiello, Maria Chiara Carrozza
2011 J jnl
Sensors
Calogero Maria Oddo, Lucia Beccai, Johan Wessberg, Helena Backlund Wasling, Fabio Mattioli, Maria Chiara Carrozza
2009 J jnl
Sensors
Calogero Maria Oddo, Lucia Beccai, Martin Felder, Francesco Giovacchini, Maria Chiara Carrozza
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),