Project

General

Profile

1 7190 leinfelder
-- use default values initially
2 7191 leinfelder
CREATE TABLE doi_registration AS
3
4 7189 leinfelder
select
5
text('testing') as ezid_account,
6
doc.doctype,
7
id.guid,
8 7284 leinfelder
'https://cn.dataone.org/cn/v1/resolve/' || regexp_replace(regexp_replace(id.guid, '/', '%2F', 'g'), ':', '%3A', 'g') as url,
9 7190 leinfelder
text('Unknown') as title,
10 7191 leinfelder
text(null) as creator,
11
text(null) as publisher,
12 7190 leinfelder
to_char(doc.date_created, 'YYYY') as pub_date
13 7189 leinfelder
from identifier id, xml_documents doc
14
where guid like 'doi%'
15 7191 leinfelder
and id.docid = doc.docid
16
and id.rev = doc.rev
17 7189 leinfelder
18 7191 leinfelder
UNION ALL
19
20
select
21
text('testing') as ezid_account,
22
doc.doctype,
23
id.guid,
24 7284 leinfelder
'https://cn.dataone.org/cn/v1/resolve/' || regexp_replace(regexp_replace(id.guid, '/', '%2F', 'g'), ':', '%3A', 'g') as url,
25 7191 leinfelder
text('Unknown') as title,
26
text(null) as creator,
27
text(null) as publisher,
28
to_char(doc.date_created, 'YYYY') as pub_date
29
from identifier id, xml_revisions doc
30
where guid like 'doi%'
31
and id.docid = doc.docid
32
and id.rev = doc.rev;
33
34 7190 leinfelder
--update defaults
35
update doi_registration
36
set title = 'Data file'
37
where doctype = 'BIN';
38
39
update doi_registration
40
set title = 'Legacy EML file'
41
where doctype like '%eml%2.0.0beta%';
42
43
-- update title using node information
44 7189 leinfelder
update doi_registration doi
45
set title = child.nodedata
46
from identifier id, xml_documents docs, xml_nodes nodes, xml_nodes parent, xml_nodes child
47
where doi.guid = id.guid
48
and id.docid = docs.docid
49
and id.rev = docs.rev
50
and docs.rootnodeid = nodes.rootnodeid
51
and nodes.nodeid = child.parentnodeid
52
and nodes.parentnodeid = parent.nodeid
53
and nodes.nodename = 'title'
54
and parent.nodename = 'dataset';
55
56 7191 leinfelder
-- update pubDate using nodes
57 7190 leinfelder
update doi_registration doi
58
set pub_date = child.nodedata
59
from identifier id, xml_documents docs, xml_nodes nodes, xml_nodes parent, xml_nodes child
60
where doi.guid = id.guid
61
and id.docid = docs.docid
62
and id.rev = docs.rev
63
and docs.rootnodeid = nodes.rootnodeid
64
and nodes.nodeid = child.parentnodeid
65
and nodes.parentnodeid = parent.nodeid
66
and nodes.nodename = 'pubDate'
67
and parent.nodename = 'dataset';
68
69 7191 leinfelder
-- update publisher using nodes
70 7190 leinfelder
update doi_registration doi
71
set publisher = child.nodedata
72
from identifier id, xml_documents docs, xml_nodes nodes, xml_nodes parent, xml_nodes child
73
where doi.guid = id.guid
74
and id.docid = docs.docid
75
and id.rev = docs.rev
76
and docs.rootnodeid = nodes.rootnodeid
77
and nodes.nodeid = child.parentnodeid
78
and nodes.parentnodeid = parent.nodeid
79 7324 leinfelder
and nodes.nodename = 'organizationName'
80
and parent.nodename = 'publisher'
81
and nodes.nodeid = (select min(thisnode.nodeid) from xml_nodes thisnode where thisnode.parentnodeid = parent.nodeid and nodetype = 'ELEMENT');
82 7190 leinfelder
83 7324 leinfelder
-- update publisher surName
84
update doi_registration doi
85
set publisher = child.nodedata
86
from identifier id,
87
xml_documents docs,
88
xml_nodes nodes,
89
xml_nodes parent,
90
xml_nodes child,
91
xml_nodes grandparent
92
where doi.guid = id.guid
93
and id.docid = docs.docid
94
and id.rev = docs.rev
95
and docs.rootnodeid = nodes.rootnodeid
96
and nodes.nodeid = child.parentnodeid
97
and nodes.parentnodeid = parent.nodeid
98
and parent.parentnodeid = grandparent.nodeid
99
and nodes.nodename = 'surName'
100
and parent.nodename = 'individualName'
101
and grandparent.nodename = 'publisher'
102
and parent.nodeid = (select min(thisnode.nodeid) from xml_nodes thisnode where thisnode.parentnodeid = grandparent.nodeid and nodetype = 'ELEMENT');
103
104
-- add the first name if we have it
105
update doi_registration doi
106
set publisher = child.nodedata ||' '|| creator
107
from identifier id,
108
xml_documents docs,
109
xml_nodes nodes,
110
xml_nodes parent,
111
xml_nodes child,
112
xml_nodes grandparent
113
where doi.guid = id.guid
114
and id.docid = docs.docid
115
and id.rev = docs.rev
116
and docs.rootnodeid = nodes.rootnodeid
117
and nodes.nodeid = child.parentnodeid
118
and nodes.parentnodeid = parent.nodeid
119
and parent.parentnodeid = grandparent.nodeid
120
and nodes.nodename = 'givenName'
121
and parent.nodename = 'individualName'
122
and grandparent.nodename = 'publisher'
123
and parent.nodeid = (select min(thisnode.nodeid) from xml_nodes thisnode where thisnode.parentnodeid = grandparent.nodeid and nodetype = 'ELEMENT');
124
125 7191 leinfelder
-- update organization using nodes
126
update doi_registration doi
127
set creator = child.nodedata
128
from identifier id, xml_documents docs, xml_nodes nodes, xml_nodes parent, xml_nodes child
129
where doi.guid = id.guid
130
and id.docid = docs.docid
131
and id.rev = docs.rev
132
and docs.rootnodeid = nodes.rootnodeid
133
and nodes.nodeid = child.parentnodeid
134
and nodes.parentnodeid = parent.nodeid
135
and nodes.nodename = 'organizationName'
136
and parent.nodename = 'creator'
137
and nodes.nodeid = (select min(thisnode.nodeid) from xml_nodes thisnode where thisnode.parentnodeid = parent.nodeid and nodetype = 'ELEMENT');
138
139 7189 leinfelder
-- update creator using nodes
140
-- creator/individualName/surName
141
-- creator/individualName/givenName
142
update doi_registration doi
143 7191 leinfelder
set creator = child.nodedata
144 7189 leinfelder
from identifier id,
145
xml_documents docs,
146
xml_nodes nodes,
147
xml_nodes parent,
148
xml_nodes child,
149 7191 leinfelder
xml_nodes grandparent
150 7189 leinfelder
where doi.guid = id.guid
151
and id.docid = docs.docid
152
and id.rev = docs.rev
153
and docs.rootnodeid = nodes.rootnodeid
154
and nodes.nodeid = child.parentnodeid
155
and nodes.parentnodeid = parent.nodeid
156
and parent.parentnodeid = grandparent.nodeid
157
and nodes.nodename = 'surName'
158
and parent.nodename = 'individualName'
159
and grandparent.nodename = 'creator'
160 7191 leinfelder
and parent.nodeid = (select min(thisnode.nodeid) from xml_nodes thisnode where thisnode.parentnodeid = grandparent.nodeid and nodetype = 'ELEMENT');
161 7189 leinfelder
162 7191 leinfelder
-- add the first name if we have it
163
update doi_registration doi
164
set creator = child.nodedata ||' '|| creator
165
from identifier id,
166
xml_documents docs,
167
xml_nodes nodes,
168
xml_nodes parent,
169
xml_nodes child,
170
xml_nodes grandparent
171
where doi.guid = id.guid
172
and id.docid = docs.docid
173
and id.rev = docs.rev
174
and docs.rootnodeid = nodes.rootnodeid
175
and nodes.nodeid = child.parentnodeid
176
and nodes.parentnodeid = parent.nodeid
177
and parent.parentnodeid = grandparent.nodeid
178
and nodes.nodename = 'givenName'
179
and parent.nodename = 'individualName'
180
and grandparent.nodename = 'creator'
181
and parent.nodeid = (select min(thisnode.nodeid) from xml_nodes thisnode where thisnode.parentnodeid = grandparent.nodeid and nodetype = 'ELEMENT');
182 7189 leinfelder
183
-- update title using revisions
184
update doi_registration doi
185
set title = child.nodedata
186
from identifier id, xml_revisions docs, xml_nodes_revisions nodes, xml_nodes_revisions parent, xml_nodes_revisions child
187
where doi.guid = id.guid
188
and id.docid = docs.docid
189
and id.rev = docs.rev
190
and docs.rootnodeid = nodes.rootnodeid
191
and nodes.nodeid = child.parentnodeid
192
and nodes.parentnodeid = parent.nodeid
193
and nodes.nodename = 'title'
194
and parent.nodename = 'dataset';
195
196 7190 leinfelder
-- update pubDate using revisions
197
update doi_registration doi
198
set pub_date = child.nodedata
199
from identifier id, xml_revisions docs, xml_nodes_revisions nodes, xml_nodes_revisions parent, xml_nodes_revisions child
200
where doi.guid = id.guid
201
and id.docid = docs.docid
202
and id.rev = docs.rev
203
and docs.rootnodeid = nodes.rootnodeid
204
and nodes.nodeid = child.parentnodeid
205
and nodes.parentnodeid = parent.nodeid
206
and nodes.nodename = 'pubDate'
207
and parent.nodename = 'dataset';
208 7189 leinfelder
209 7190 leinfelder
-- update publisher using revisions
210
update doi_registration doi
211
set publisher = child.nodedata
212
from identifier id, xml_revisions docs, xml_nodes_revisions nodes, xml_nodes_revisions parent, xml_nodes_revisions child
213
where doi.guid = id.guid
214
and id.docid = docs.docid
215
and id.rev = docs.rev
216
and docs.rootnodeid = nodes.rootnodeid
217
and nodes.nodeid = child.parentnodeid
218
and nodes.parentnodeid = parent.nodeid
219 7324 leinfelder
and nodes.nodename = 'organizationName'
220
and parent.nodename = 'publisher'
221
and nodes.nodeid = (select min(thisnode.nodeid) from xml_nodes_revisions thisnode where thisnode.parentnodeid = parent.nodeid and nodetype = 'ELEMENT');
222 7190 leinfelder
223 7324 leinfelder
-- use publisher individual name if we have it
224
update doi_registration doi
225
set publisher = child.nodedata
226
from identifier id,
227
xml_revisions docs,
228
xml_nodes_revisions nodes,
229
xml_nodes_revisions parent,
230
xml_nodes_revisions child,
231
xml_nodes_revisions grandparent
232
where doi.guid = id.guid
233
and id.docid = docs.docid
234
and id.rev = docs.rev
235
and docs.rootnodeid = nodes.rootnodeid
236
and nodes.nodeid = child.parentnodeid
237
and nodes.parentnodeid = parent.nodeid
238
and parent.parentnodeid = grandparent.nodeid
239
and nodes.nodename = 'surName'
240
and parent.nodename = 'individualName'
241
and grandparent.nodename = 'publisher'
242
and parent.nodeid = (select min(thisnode.nodeid) from xml_nodes_revisions thisnode where thisnode.parentnodeid = grandparent.nodeid and nodetype = 'ELEMENT');
243
244
--include the first name (careful not to rerun this part)
245
update doi_registration doi
246
set publisher = child.nodedata ||' '|| creator
247
from identifier id,
248
xml_revisions docs,
249
xml_nodes_revisions nodes,
250
xml_nodes_revisions parent,
251
xml_nodes_revisions child,
252
xml_nodes_revisions grandparent
253
where doi.guid = id.guid
254
and id.docid = docs.docid
255
and id.rev = docs.rev
256
and docs.rootnodeid = nodes.rootnodeid
257
and nodes.nodeid = child.parentnodeid
258
and nodes.parentnodeid = parent.nodeid
259
and parent.parentnodeid = grandparent.nodeid
260
and nodes.nodename = 'givenName'
261
and parent.nodename = 'individualName'
262
and grandparent.nodename = 'publisher'
263
and parent.nodeid = (select min(thisnode.nodeid) from xml_nodes_revisions thisnode where thisnode.parentnodeid = grandparent.nodeid and nodetype = 'ELEMENT');
264
265 7191 leinfelder
-- update organization using nodes
266
update doi_registration doi
267
set creator = child.nodedata
268
from identifier id, xml_revisions docs, xml_nodes_revisions nodes, xml_nodes_revisions parent, xml_nodes_revisions child
269
where doi.guid = id.guid
270
and id.docid = docs.docid
271
and id.rev = docs.rev
272
and docs.rootnodeid = nodes.rootnodeid
273
and nodes.nodeid = child.parentnodeid
274
and nodes.parentnodeid = parent.nodeid
275
and nodes.nodename = 'organizationName'
276
and parent.nodename = 'creator'
277
and nodes.nodeid = (select min(thisnode.nodeid) from xml_nodes_revisions thisnode where thisnode.parentnodeid = parent.nodeid and nodetype = 'ELEMENT');
278 7190 leinfelder
279 7189 leinfelder
-- update creator using revisions
280
update doi_registration doi
281 7191 leinfelder
set creator = child.nodedata
282 7189 leinfelder
from identifier id,
283
xml_revisions docs,
284
xml_nodes_revisions nodes,
285
xml_nodes_revisions parent,
286
xml_nodes_revisions child,
287 7191 leinfelder
xml_nodes_revisions grandparent
288 7189 leinfelder
where doi.guid = id.guid
289
and id.docid = docs.docid
290
and id.rev = docs.rev
291
and docs.rootnodeid = nodes.rootnodeid
292
and nodes.nodeid = child.parentnodeid
293
and nodes.parentnodeid = parent.nodeid
294
and parent.parentnodeid = grandparent.nodeid
295
and nodes.nodename = 'surName'
296
and parent.nodename = 'individualName'
297
and grandparent.nodename = 'creator'
298 7191 leinfelder
and parent.nodeid = (select min(thisnode.nodeid) from xml_nodes_revisions thisnode where thisnode.parentnodeid = grandparent.nodeid and nodetype = 'ELEMENT');
299 7189 leinfelder
300 7191 leinfelder
-- add the first name if we have it
301
update doi_registration doi
302
set creator = child.nodedata ||' '|| creator
303
from identifier id,
304
xml_revisions docs,
305
xml_nodes_revisions nodes,
306
xml_nodes_revisions parent,
307
xml_nodes_revisions child,
308
xml_nodes_revisions grandparent
309
where doi.guid = id.guid
310
and id.docid = docs.docid
311
and id.rev = docs.rev
312
and docs.rootnodeid = nodes.rootnodeid
313
and nodes.nodeid = child.parentnodeid
314
and nodes.parentnodeid = parent.nodeid
315
and parent.parentnodeid = grandparent.nodeid
316
and nodes.nodename = 'givenName'
317
and parent.nodename = 'individualName'
318
and grandparent.nodename = 'creator'
319
and parent.nodeid = (select min(thisnode.nodeid) from xml_nodes_revisions thisnode where thisnode.parentnodeid = grandparent.nodeid and nodetype = 'ELEMENT');
320
321
-- use xml_documents for defaults that are still missing
322
update doi_registration doi
323
set creator = doc.user_owner
324
from xml_documents doc, identifier id
325
where doi.guid = id.guid
326
and id.docid = doc.docid
327
and id.rev = doc.rev
328
and doi.creator is null;
329
330
update doi_registration doi
331
set creator = doc.user_owner
332
from xml_revisions doc, identifier id
333
where doi.guid = id.guid
334
and id.docid = doc.docid
335
and id.rev = doc.rev
336
and doi.creator is null;
337
338
-- set publisher
339
update doi_registration
340
set publisher = creator
341
where publisher is null or publisher = '';
342
343 7189 leinfelder
-- clean up
344
update doi_registration
345
set title = replace(title, E'\n', ' ');
346
347 7190 leinfelder
update doi_registration
348 7193 leinfelder
set title = regexp_replace(title, E'\\s+', ' ', 'g');
349 7190 leinfelder
350
update doi_registration
351 7193 leinfelder
set title = regexp_replace(title, E'^\\s+', '', 'g');
352 7190 leinfelder
353 7288 leinfelder
update doi_registration
354
set ezid_account = 'KNB'
355
where guid like 'doi:10.5063%';
356
--16988
357
358
update doi_registration
359
set ezid_account = 'PISCO'
360
where guid like 'doi:10.6085%';
361
--98078
362
363
update doi_registration
364
set ezid_account = 'LTER'
365
where guid like 'doi:10.6073%';
366
--49482
367
368 7290 leinfelder
/**
369
 * Additional modifications, July 5th, 2012
370
 */
371
ALTER TABLE doi_registration
372
ADD COLUMN resourceType text,
373
ADD COLUMN objectFormat text,
374
ADD COLUMN obsoletedBy text,
375
ADD COLUMN obsoletes text,
376
ADD COLUMN resourceMapId text,
377
ADD COLUMN resourceMapLocation text,
378
ADD COLUMN access text;
379
380
-- update access values
381
update doi_registration
382
set access = 'protected';
383
384
update doi_registration doi
385
set access = 'public'
386
from xml_access a
387
where doi.guid = a.guid
388
and a.principal_name = 'public'
389
and a.permission >= '4'
390
and a.perm_type = 'allow';
391
392
-- update the objectFormat from xml_documents
393
update doi_registration doi
394
set objectFormat = doc.doctype
395
from identifier id, xml_documents doc
396
where doi.guid = id.guid
397
and id.docid = doc.docid;
398
399
-- update the objectFormat from xml_revisions
400
update doi_registration doi
401
set objectFormat = rev.doctype
402
from identifier id, xml_revisions rev
403
where doi.guid = id.guid
404
and id.docid = rev.docid;
405
406
--update resourceType
407
update doi_registration
408
set resourceType = 'Dataset/METADATA';
409
410
update doi_registration
411
set resourceType = 'Dataset/DATA'
412
where objectFormat = 'BIN';
413
414
-- update the objectFormat from SM table (will be subset)
415
update doi_registration doi
416
set objectFormat = sm.object_format
417
from systemMetadata sm
418
where doi.guid = sm.guid;
419
--16938
420
421
--update revision history from SM
422
update doi_registration doi
423
set obsoletes = sm.obsoletes,
424
obsoletedBy = sm.obsoleted_by
425
from systemMetadata sm
426
where doi.guid = sm.guid;
427
428 7303 leinfelder
/** use plain old revision history **/
429
-- update obsoletedby
430
update doi_registration doi
431
set obsoletedBy = newer.guid
432
from identifier id, identifier newer
433
where doi.guid = id.guid
434
and id.docid = newer.docid
435
and newer.rev = (select min(next.rev) from identifier next where next.docid = id.docid and next.rev > id.rev);
436
437
-- update the obsolets
438
update doi_registration doi
439
set obsoletes = older.guid
440
from identifier id, identifier older
441
where doi.guid = id.guid
442
and id.docid = older.docid
443
and older.rev = (select max(prev.rev) from identifier prev where prev.docid = id.docid and prev.rev < id.rev);
444
445
/**
446
select doi.guid, older.guid as obsoletes
447
from doi_registration doi, identifier id, identifier older
448
where doi.guid = id.guid
449
and id.docid = older.docid
450
and older.rev = (select max(prev.rev) from identifier prev where prev.docid = id.docid and prev.rev < id.rev)
451
and doi.guid like 'doi:10.5063/AA/ABS.4%';
452
**/
453
454
455
-- update resourceMap pointer
456 7290 leinfelder
-- NOTE: some of these maps might not actually exist
457
update doi_registration doi
458
set resourceMapId = 'resourceMap_'||id.docid||'.'||id.rev
459
from identifier id
460
where doi.guid = id.guid
461
and id.docid = rev.docid
462
and objectFormat like 'eml%';
463
464
--update the resourcemapid for described data
465
CREATE TABLE ecogrid_docids AS
466
select distinct id.docid, id.rev, id.guid, substring(xpi.nodedata from 'ecogrid://knb/(.*)$') as data_docid
467
from xml_path_index xpi, identifier id, xml_documents xmld
468
where xpi.docid = xmld.docid
469
and xmld.docid = id.docid
470
and xmld.rev = id.rev
471
and xpi.path like 'dataset/%/physical/distribution/online/url'
472 7303 leinfelder
and xpi.nodedata like 'ecogrid%'
473
and id.guid in (select guid from doi_registration);
474 7290 leinfelder
475 7303 leinfelder
-- include revisions for described data
476
INSERT INTO ecogrid_docids
477
select distinct id.docid, id.rev, id.guid, substring(child.nodedata from 'ecogrid://knb/(.*)$') as data_docid
478
from identifier id, xml_revisions docs, xml_nodes_revisions nodes, xml_nodes_revisions parent, xml_nodes_revisions child
479
where id.docid = docs.docid
480
and id.rev = docs.rev
481
and docs.rootnodeid = nodes.rootnodeid
482
and nodes.nodeid = child.parentnodeid
483
and nodes.parentnodeid = parent.nodeid
484
and nodes.nodename = 'url'
485
and parent.nodename = 'online'
486
and child.nodedata like 'ecogrid%'
487
and child.nodetype = 'TEXT'
488
and id.guid in (select guid from doi_registration);
489 7290 leinfelder
490 7321 leinfelder
-- Set the resource map for the data files (NOTE: some of thee maps might not actually exist on the system depending on how successful the ORE generation was)
491 7290 leinfelder
update doi_registration doi
492
set resourceMapId = 'resourceMap_'||eco.docid||'.'||eco.rev
493
from identifier id, ecogrid_docids eco
494
where doi.guid = id.guid
495
and id.docid||'.'||id.rev = eco.data_docid;
496
497 7321 leinfelder
-- set the resource map id for the metadata file that did most of the packaging work!
498
update doi_registration doi
499
set resourceMapId = 'resourceMap_'||eco.docid||'.'||eco.rev
500
from ecogrid_docids eco
501
where doi.guid = eco.guid;
502
503 7303 leinfelder
select count(*)
504
from doi_registration
505
where resourceMapId is null;
506
507 7290 leinfelder
--update the resource map location
508
update doi_registration
509
set resourceMapLocation = 'https://cn.dataone.org/cn/v1/resolve/' || resourceMapId
510
where resourceMapId is not null;
511
512 7306 leinfelder
-- fix null values (should not have to have this now, but it will not hurt)
513
update doi_registration doi
514
set creator = user_owner
515
from identifier id, xml_documents docs
516
where doi.guid = id.guid
517
and id.docid = docs.docid
518
and id.rev= docs.rev
519 7324 leinfelder
and (creator is null or trim(creator) = '');
520 7306 leinfelder
521
update doi_registration doi
522
set publisher = user_owner
523
from identifier id, xml_documents docs
524
where doi.guid = id.guid
525
and id.docid = docs.docid
526
and id.rev= docs.rev
527 7324 leinfelder
and (publisher is null or trim(publisher) = '');
528 7306 leinfelder
529
update doi_registration doi
530
set creator = user_owner
531
from identifier id, xml_revisions docs
532
where doi.guid = id.guid
533
and id.docid = docs.docid
534
and id.rev= docs.rev
535 7324 leinfelder
and (creator is null or trim(creator) = '');
536 7306 leinfelder
537
update doi_registration doi
538
set publisher = user_owner
539
from identifier id, xml_revisions docs
540
where doi.guid = id.guid
541
and id.docid = docs.docid
542
and id.rev= docs.rev
543 7324 leinfelder
and (publisher is null or trim(publisher) = '');
544 7306 leinfelder
545 7324 leinfelder
-- fix a previous mistake
546
update doi_registration
547
set publisher = null
548
where publisher = 'document';
549
550 7290 leinfelder
--update creator usinig LDAP lookup
551 7296 leinfelder
CREATE TABLE ecoinfo_dn (dn text, givenName text, sn text);
552 7320 leinfelder
--TRUNCATE TABLE ecoinfo_dn;
553 7296 leinfelder
COPY ecoinfo_dn FROM '/tmp/ecoinfo_dn.csv' WITH CSV HEADER;
554 7290 leinfelder
555 7296 leinfelder
update doi_registration
556 7306 leinfelder
set creator =
557
case when givenName is null then
558
	sn
559
else
560
	givenName|| ' ' || sn
561
end
562 7296 leinfelder
from ecoinfo_dn
563 7320 leinfelder
where trim(both from lower(creator)) = lower(dn);
564 7296 leinfelder
565
update doi_registration
566 7306 leinfelder
set publisher =
567
case when givenName is null then
568
	sn
569
else
570
	givenName|| ' ' || sn
571
end
572 7296 leinfelder
from ecoinfo_dn
573 7320 leinfelder
where trim(both from lower(publisher)) = lower(dn);
574 7296 leinfelder
575
select creator, count(*) as cnt
576
from doi_registration
577
where creator like 'uid=%'
578
group by creator
579
order by cnt desc;
580
581 7320 leinfelder
-- update the data files with owner/publisher from EML entry
582
update doi_registration doi
583
set creator = meta.creator,
584
publisher = meta.publisher
585
from doi_registration meta, identifier id, ecogrid_docids eco
586
where doi.guid = id.guid
587
and id.docid||'.'||id.rev = eco.data_docid
588
and eco.guid = meta.guid;
589
590 7324 leinfelder
-- clean up KBS entries that have empty user_owner
591
update doi_registration
592
set creator = 'Kellogg Biological Station'
593
where (creator is null or trim(creator) = '')
594
and guid like '%knb-lter-kbs%';
595
596
update doi_registration
597
set publisher = 'Kellogg Biological Station'
598
where (publisher is null or trim(publisher) = '')
599
and guid like '%knb-lter-kbs%';
600
601 7290 leinfelder
-- copy to the external file
602
COPY
603
(select ezid_account,
604
guid as dc_identifier,
605
url as datacite_url,
606
title as dc_title,
607
creator as dc_creator,
608
publisher as dc_publisher,
609
pub_date as datacite_publicationYear,
610
resourceType,
611
objectFormat,
612
obsoletedBy,
613
obsoletes,
614
resourceMapId,
615
resourceMapLocation,
616
access
617
from doi_registration
618 7296 leinfelder
order by dc_identifier)
619 7189 leinfelder
TO '/tmp/doi_registration.csv'
620
WITH CSV HEADER;
621 7288 leinfelder
--164548
622 7189 leinfelder
623
--drop table doi_registration;
624 7290 leinfelder
--drop table ecogrid_docids;
625 7296 leinfelder
--drop table ecoinfo_dn;