@@ -3820,9 +3820,7 @@ manage_db_add_constraints (const gchar *name)
3820
3820
sql ("ALTER TABLE scap2.affected_products"
3821
3821
" ALTER cve SET NOT NULL,"
3822
3822
" ALTER cpe SET NOT NULL,"
3823
- " ADD UNIQUE (cve, cpe),"
3824
- " ADD FOREIGN KEY(cve) REFERENCES cves(id),"
3825
- " ADD FOREIGN KEY(cpe) REFERENCES cpes(id);" );
3823
+ " ADD UNIQUE (cve, cpe);" );
3826
3824
3827
3825
sql ("ALTER TABLE scap2.epss_scores"
3828
3826
" ALTER cve SET NOT NULL,"
@@ -3884,6 +3882,44 @@ drop_indexes_cpe ()
3884
3882
sql ("DROP INDEX IF EXISTS scap2.cpes_by_cpe_name_id" );
3885
3883
}
3886
3884
3885
+ /**
3886
+ * @brief Create the indexes for the CVEs tables in the scap2 schema.
3887
+ */
3888
+ void
3889
+ create_indexes_cve ()
3890
+ {
3891
+ sql ("CREATE UNIQUE INDEX cve_idx"
3892
+ " ON scap2.cves (name);" );
3893
+ sql ("CREATE INDEX cves_by_creation_time_idx"
3894
+ " ON scap2.cves (creation_time);" );
3895
+ sql ("CREATE INDEX cves_by_modification_time_idx"
3896
+ " ON scap2.cves (modification_time);" );
3897
+ sql ("CREATE INDEX cves_by_severity"
3898
+ " ON scap2.cves (severity);" );
3899
+
3900
+ sql ("CREATE INDEX cpe_match_nodes_by_root_id"
3901
+ " ON scap2.cpe_match_nodes(root_id);" );
3902
+
3903
+ sql ("CREATE INDEX cpe_nodes_match_criteria_by_node_id"
3904
+ " ON scap2.cpe_nodes_match_criteria(node_id);" );
3905
+ }
3906
+
3907
+ /**
3908
+ * @brief Remove the indexes for the CVEs tables in the scap2 schema.
3909
+ */
3910
+ void
3911
+ drop_indexes_cve ()
3912
+ {
3913
+ sql ("DROP INDEX IF EXISTS scap2.cve_idx" );
3914
+ sql ("DROP INDEX IF EXISTS scap2.cves_by_creation_time_idx" );
3915
+ sql ("DROP INDEX IF EXISTS scap2.cves_by_modification_time_idx" );
3916
+ sql ("DROP INDEX IF EXISTS scap2.cves_by_severity" );
3917
+
3918
+ sql ("DROP INDEX IF EXISTS scap2.cpe_match_nodes_by_root_id" );
3919
+
3920
+ sql ("DROP INDEX IF EXISTS scap2.cpe_nodes_match_criteria_by_node_id" );
3921
+ }
3922
+
3887
3923
/**
3888
3924
* @brief Init external database.
3889
3925
*
@@ -3896,22 +3932,9 @@ manage_db_init_indexes (const gchar *name)
3896
3932
{
3897
3933
if (strcasecmp (name , "scap" ) == 0 )
3898
3934
{
3899
- sql ("CREATE UNIQUE INDEX cve_idx"
3900
- " ON scap2.cves (name);" );
3901
- sql ("CREATE INDEX cves_by_creation_time_idx"
3902
- " ON scap2.cves (creation_time);" );
3903
- sql ("CREATE INDEX cves_by_modification_time_idx"
3904
- " ON scap2.cves (modification_time);" );
3905
- sql ("CREATE INDEX cves_by_severity"
3906
- " ON scap2.cves (severity);" );
3907
-
3908
3935
create_indexes_cpe ();
3909
3936
3910
- sql ("CREATE INDEX cpe_match_nodes_by_root_id"
3911
- " ON scap2.cpe_match_nodes(root_id);" );
3912
-
3913
- sql ("CREATE INDEX cpe_nodes_match_criteria_by_node_id"
3914
- " ON scap2.cpe_nodes_match_criteria(node_id);" );
3937
+ create_indexes_cve ();
3915
3938
3916
3939
sql ("CREATE INDEX afp_cpe_idx"
3917
3940
" ON scap2.affected_products (cpe);" );
0 commit comments