Project

General

Profile

1
--
2
-- PostgreSQL database dump
3
--
4

    
5
-- Dumped from database version 9.4.1
6
-- Dumped by pg_dump version 9.6.2
7

    
8
SET statement_timeout = 0;
9
SET lock_timeout = 0;
10
SET client_encoding = 'UTF8';
11
SET standard_conforming_strings = on;
12
SET check_function_bodies = false;
13
SET client_min_messages = warning;
14
SET row_security = off;
15

    
16
--
17
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: 
18
--
19

    
20
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
21

    
22

    
23
SET search_path = public, pg_catalog;
24

    
25
SET default_tablespace = '';
26

    
27
SET default_with_oids = false;
28

    
29
--
30
-- Name: dsm_api; Type: TABLE; Schema: public; Owner: dnet
31
--
32

    
33
CREATE TABLE dsm_api (
34
    id character varying(255) NOT NULL,
35
    protocol character varying(255),
36
    datasource character varying(255),
37
    contentdescription character varying(255) DEFAULT 'metadata'::character varying,
38
    active boolean DEFAULT false,
39
    removable boolean DEFAULT false,
40
    typology character varying(255) DEFAULT 'UNKNOWN'::character varying,
41
    compatibility character varying(255) DEFAULT 'UNKNOWN'::character varying,
42
    metadata_identifier_path character varying(512) DEFAULT NULL::character varying,
43
    last_collection_total integer,
44
    last_collection_date date,
45
    last_collection_mdid character varying(255) DEFAULT NULL::character varying,
46
    last_aggregation_total integer,
47
    last_aggregation_date date,
48
    last_aggregation_mdid character varying(255) DEFAULT NULL::character varying,
49
    last_download_total integer,
50
    last_download_date date,
51
    last_download_objid character varying(255) DEFAULT NULL::character varying,
52
    last_validation_job character varying(255) DEFAULT NULL::character varying,
53
    baseurl text
54
);
55

    
56

    
57
ALTER TABLE dsm_api OWNER TO dnetapi;
58
ALTER TABLE ONLY dsm_api ADD CONSTRAINT dsm_api_pkey PRIMARY KEY (id);
59
ALTER TABLE ONLY dsm_api ADD CONSTRAINT dsm_api_datasource_fkey FOREIGN KEY (datasource) REFERENCES dsm_datasources(id);
60

    
61
--
62
-- Name: dsm_apiparams; Type: TABLE; Schema: public; Owner: dnet
63
--
64

    
65
CREATE TABLE dsm_apiparams (
66
    param character varying(255) NOT NULL,
67
    value character varying(255) DEFAULT ''::character varying NOT NULL,
68
    api character varying(255) NOT NULL
69
);
70

    
71

    
72
ALTER TABLE dsm_apiparams OWNER TO dnetapi;
73
ALTER TABLE ONLY dsm_apiparams ADD CONSTRAINT dsm_apicollection_pkey PRIMARY KEY (api, param);
74
ALTER TABLE ONLY dsm_apiparams ADD CONSTRAINT dsm_apicollections_api_fkey FOREIGN KEY (api) REFERENCES dsm_api(id);
75

    
76

    
77

    
78
--
79
-- Name: dsm_datasource_organization; Type: TABLE; Schema: public; Owner: dnet
80
--
81

    
82
CREATE TABLE dsm_datasource_organization (
83
    datasource character varying(255) NOT NULL,
84
    organization character varying(255) NOT NULL
85
);
86

    
87

    
88
ALTER TABLE dsm_datasource_organization OWNER TO dnet;
89
ALTER TABLE ONLY dsm_datasource_organization ADD CONSTRAINT dsm_organization_datasource_pkey PRIMARY KEY (datasource, organization);
90
ALTER TABLE ONLY dsm_datasource_organization ADD CONSTRAINT dsm_datasource_organization_datasource_fkey FOREIGN KEY (datasource) REFERENCES dsm_datasources(id);
91
ALTER TABLE ONLY dsm_datasource_organization ADD CONSTRAINT dsm_datasource_organization_organization_fkey FOREIGN KEY (organization) REFERENCES dsm_organizations(id) ON DELETE CASCADE;
92

    
93
--
94
-- Name: dsm_datasourcepids; Type: TABLE; Schema: public; Owner: dnet
95
--
96

    
97
CREATE TABLE dsm_datasourcepids (
98
    datasource character varying(255) NOT NULL,
99
    pid character varying(255) NOT NULL
100
);
101

    
102

    
103
ALTER TABLE dsm_datasourcepids OWNER TO dnet;
104
ALTER TABLE ONLY dsm_datasourcepids ADD CONSTRAINT dsm_datasourcepids_pkey PRIMARY KEY (datasource, pid);
105
ALTER TABLE ONLY dsm_datasourcepids ADD CONSTRAINT dsm_datasourcepids_datasource_fkey FOREIGN KEY (datasource) REFERENCES dsm_datasources(id);
106
ALTER TABLE ONLY dsm_datasourcepids ADD CONSTRAINT dsm_datasourcepids_pid_fkey FOREIGN KEY (pid) REFERENCES dsm_identities(pid);
107

    
108

    
109
--
110
-- Name: dsm_datasources; Type: TABLE; Schema: public; Owner: dnet
111
--
112

    
113
CREATE TABLE dsm_datasources (
114
    id character varying(255) NOT NULL,
115
    officialname character varying(512) NOT NULL,
116
    englishname character varying(512),
117
    websiteurl character varying(255),
118
    logourl character varying(255),
119
    contactemail character varying(255),
120
    latitude double precision DEFAULT 0.0,
121
    longitude double precision DEFAULT 0.0,
122
    timezone character varying(10) DEFAULT '0.0'::character varying,
123
    namespaceprefix character(12) NOT NULL,
124
    languages text DEFAULT ARRAY[]::character varying[],
125
    od_contenttypes text,
126
    collectedfrom character varying(255),
127
    dateofvalidation date,
128
    optional1 character varying(255),
129
    optional2 character varying(255),
130
    typology character varying(255) NOT NULL,
131
    provenanceaction character varying(255) DEFAULT 'UNKNOWN'::character varying,
132
    dateofcollection date DEFAULT ('now'::text)::date NOT NULL,
133
    platform character varying(255),
134
    activationid character varying(255),
135
    description text,
136
    releasestartdate date,
137
    releaseenddate date,
138
    missionstatementurl character varying(512),
139
    dataprovider boolean,
140
    serviceprovider boolean,
141
    databaseaccesstype character varying(32),
142
    datauploadtype character varying(32),
143
    databaseaccessrestriction character varying(32),
144
    datauploadrestriction character varying(32),
145
    versioning boolean,
146
    citationguidelineurl character varying(512),
147
    qualitymanagementkind character varying(32),
148
    pidsystems text,
149
    certificates text,
150
    aggregator character varying(64) DEFAULT 'OPENAIRE'::character varying NOT NULL,
151
    issn character varying(20),
152
    eissn character varying(20),
153
    lissn character varying(20),
154
    registeredby character varying(255),
155
    registrationdate date,
156
    subjects text DEFAULT ARRAY[]::character varying[],
157
    managed boolean DEFAULT false
158
);
159

    
160
ALTER TABLE ONLY dsm_datasources ADD CONSTRAINT dsm_datasources_namespaceprefix_key UNIQUE (namespaceprefix);
161
ALTER TABLE ONLY dsm_datasources ADD CONSTRAINT dsm_datasources_pkey PRIMARY KEY (id);
162
ALTER TABLE ONLY dsm_datasources ADD CONSTRAINT dsm_datasources_collectedfrom_fkey FOREIGN KEY (collectedfrom) REFERENCES dsm_datasources(id);
163

    
164
CREATE INDEX dsm_datasources_id_idx ON dsm_datasources (id);
165
CREATE INDEX dsm_datasources_contactemail_idx ON dsm_datasources (contactemail);
166
CREATE INDEX dsm_datasources_englishname_idx ON dsm_datasources (englishname);
167
CREATE INDEX dsm_datasources_officialname_idx ON dsm_datasources (officialname);
168
CREATE INDEX dsm_datasources_registeredby_idx ON dsm_datasources (registeredby);
169
CREATE INDEX dsm_datasources_managed_idx ON dsm_datasources (managed);
170

    
171

    
172
ALTER TABLE dsm_datasources OWNER TO dnetapi;
173

    
174
--
175
-- Name: dsm_identities; Type: TABLE; Schema: public; Owner: dnet
176
--
177

    
178
CREATE TABLE dsm_identities (
179
    pid character varying(255) NOT NULL,
180
    issuertype character varying(255)
181
);
182

    
183

    
184
ALTER TABLE dsm_identities OWNER TO dnetapi;
185
ALTER TABLE ONLY dsm_identities ADD CONSTRAINT dsm_identities_pkey PRIMARY KEY (pid);
186

    
187

    
188
--
189
-- Name: dsm_organizationpids; Type: TABLE; Schema: public; Owner: dnet
190
--
191

    
192
CREATE TABLE dsm_organizationpids (
193
    organization character varying(255) NOT NULL,
194
    pid character varying(255) NOT NULL
195
);
196

    
197
ALTER TABLE dsm_organizationpids OWNER TO dnet;
198
ALTER TABLE ONLY dsm_organizationpids ADD CONSTRAINT dsm_organizationpids_pkey PRIMARY KEY (organization, pid);
199
ALTER TABLE ONLY dsm_organizationpids ADD CONSTRAINT dsm_organizationpids_organization_fkey FOREIGN KEY (organization) REFERENCES dsm_organizations(id);
200

    
201

    
202
--
203
-- Name: dsm_organizations; Type: TABLE; Schema: public; Owner: dnet
204
--
205

    
206
CREATE TABLE dsm_organizations (
207
    id character varying(255) NOT NULL,
208
    legalshortname character varying(255),
209
    legalname character varying(255),
210
    websiteurl text,
211
    logourl character varying(255),
212
    ec_legalbody boolean DEFAULT false,
213
    ec_legalperson boolean DEFAULT false,
214
    ec_nonprofit boolean DEFAULT false,
215
    ec_researchorganization boolean DEFAULT false,
216
    ec_highereducation boolean DEFAULT false,
217
    ec_internationalorganizationeurinterests boolean DEFAULT false,
218
    ec_internationalorganization boolean DEFAULT false,
219
    ec_enterprise boolean DEFAULT false,
220
    ec_smevalidated boolean DEFAULT false,
221
    ec_nutscode boolean DEFAULT false,
222
    country character varying(255),
223
    collectedfrom character varying(255),
224
    optional1 character varying(255),
225
    optional2 character varying(255),
226
    dateofcollection date DEFAULT ('now'::text)::date NOT NULL,
227
    provenanceaction character varying(255) DEFAULT 'UNKNOWN'::character varying
228
);
229

    
230

    
231
ALTER TABLE dsm_organizations OWNER TO dnetapi;
232
ALTER TABLE ONLY dsm_organizations ADD CONSTRAINT dsm_organizations_pkey PRIMARY KEY (id);
233
ALTER TABLE ONLY dsm_organizations ADD CONSTRAINT dsm_organizations_collectedfrom_fkey FOREIGN KEY (collectedfrom) REFERENCES dsm_datasources(id);
234

    
235
CREATE INDEX dsm_organizations_country_idx ON dsm_organizations (country);
236

    
237
--
238
-- Name: search_api; Type: VIEW; Schema: public; Owner: dnet
239
--
240

    
241
CREATE VIEW search_api AS
242
 SELECT a.id,
243
    a.compatibility,
244
    a.protocol,
245
    a.active,
246
    a.last_aggregation_date,
247
    a.last_aggregation_total,
248
    d.id AS repoid,
249
    d.officialname,
250
    d.englishname,
251
    d.namespaceprefix,
252
    (array_agg(DISTINCT o.country))[1] AS country,
253
    (array_agg(DISTINCT o.legalname))[1] AS organization
254
   FROM (((dsm_api a
255
     LEFT JOIN dsm_datasources d ON (((a.datasource)::text = (d.id)::text)))
256
     LEFT JOIN dsm_datasource_organization dor ON (((d.id)::text = (dor.datasource)::text)))
257
     LEFT JOIN dsm_organizations o ON (((dor.organization)::text = (o.id)::text)))
258
  GROUP BY a.id, a.compatibility, a.protocol, a.active, a.last_aggregation_date, a.last_aggregation_total, d.id, d.officialname, d.englishname, d.namespaceprefix;
259

    
260

    
261
ALTER TABLE search_api OWNER TO dnetapi;
262

    
263
CREATE VIEW browse_activation AS
264
 SELECT dsm_api.active::text AS term,
265
    count(*) AS total
266
   FROM dsm_api
267
  GROUP BY dsm_api.active
268
  ORDER BY count(*) DESC;
269

    
270
CREATE VIEW browse_compatibility AS
271
 SELECT a.compatibility AS term,
272
    count(*) AS total
273
   FROM dsm_api a
274
  GROUP BY a.compatibility
275
  ORDER BY count(*) DESC;
276

    
277

    
278
CREATE VIEW browse_countries AS
279
 SELECT o.country AS term,
280
    count(*) AS total
281
   FROM dsm_api a
282
     LEFT JOIN dsm_datasources d ON a.datasource::text = d.id::text
283
     LEFT JOIN dsm_datasource_organization dao ON d.id::text = dao.datasource::text
284
     LEFT JOIN dsm_organizations o ON dao.organization::text = o.id::text
285
  GROUP BY o.country
286
  ORDER BY count(*) DESC;
287

    
288

    
289
CREATE VIEW browse_protocols AS
290
 SELECT a.protocol AS term,
291
    count(*) AS total
292
   FROM dsm_api a
293
  GROUP BY a.protocol
294
  ORDER BY count(*) DESC;
295

    
296
CREATE VIEW browse_typologies AS
297
 SELECT a.typology AS term,
298
    count(*) AS total
299
   FROM dsm_api a
300
  GROUP BY a.typology
301
  ORDER BY count(*) DESC;
302

    
303
CREATE OR REPLACE VIEW dsm_datasource_api AS (
304
	SELECT
305
		row_number() OVER (ORDER BY a.id) AS rowid,
306
		d.*,
307
		a.protocol,
308
		a.contentdescription,
309
		a.active,
310
		a.removable,
311
    a.typology AS apitypology,
312
    a.compatibility,
313
    a.metadata_identifier_path,
314
    a.baseurl
315
	FROM dsm_datasources d LEFT OUTER JOIN dsm_api a ON (d.id = a.datasource)
316
);
317

    
318
GRANT ALL ON dsm_datasource_api to dnetApi;
319
GRANT ALL ON dsm_api to dnetapi;
320
GRANT ALL ON dsm_apiparams to dnetapi;
(2-2/4)