Skip to content
Snippets Groups Projects
Verified Commit 4d25f08a authored by Martin Weise's avatar Martin Weise
Browse files

Hotfix some weird import errors

parent 9bfb9a58
Branches
Tags
6 merge requests!345Updated docs and endpoints:,!341Fixed mapping problem where UK and FK share columns they are inserted,!339Fixed mapping problem where UK and FK share columns they are inserted,!338Fixed mapping problem where UK and FK share columns they are inserted,!334Fixed mapping problem where UK and FK share columns they are inserted,!333Fixed mapping problem where UK and FK share columns they are inserted
...@@ -578,24 +578,7 @@ public interface MariaDbMapper { ...@@ -578,24 +578,7 @@ public interface MariaDbMapper {
.append(data.getSkipLines()) .append(data.getSkipLines())
.append(" LINES"); .append(" LINES");
} }
statement.append(" ("); statement.append(";");
final StringBuilder set = new StringBuilder();
int[] idx = new int[]{0};
table.getColumns()
.forEach(column -> {
if (column.getAutoGenerated()) {
log.trace("import column is auto generated, skip");
return;
}
statement.append(idx[0] != 0 ? "," : "");
/* format as variable */
statement.append("@")
.append(column.getInternalName());
idx[0]++;
});
statement.append(")")
.append(!set.isEmpty() ? (" SET " + set) : "")
.append(";");
log.trace("mapped insert statement: {}", statement); log.trace("mapped insert statement: {}", statement);
return statement.toString(); return statement.toString();
} }
......
...@@ -21,12 +21,18 @@ import org.springframework.stereotype.Component; ...@@ -21,12 +21,18 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.security.Principal; import java.security.Principal;
import java.util.*; import java.util.List;
import java.util.Objects;
import java.util.Optional;
@Log4j2 @Log4j2
@Component @Component
public class EndpointValidator { public class EndpointValidator {
public static final List<ColumnTypeDto> NEED_SIZE = List.of(ColumnTypeDto.VARCHAR, ColumnTypeDto.BINARY, ColumnTypeDto.VARBINARY);
public static final List<ColumnTypeDto> CAN_HAVE_SIZE = List.of(ColumnTypeDto.CHAR, ColumnTypeDto.VARCHAR, ColumnTypeDto.BINARY, ColumnTypeDto.VARBINARY, ColumnTypeDto.BIT, ColumnTypeDto.TINYINT, ColumnTypeDto.SMALLINT, ColumnTypeDto.MEDIUMINT, ColumnTypeDto.INT);
public static final List<ColumnTypeDto> CAN_HAVE_SIZE_AND_D = List.of(ColumnTypeDto.DOUBLE, ColumnTypeDto.DECIMAL);
private final UserService userService; private final UserService userService;
private final AccessService accessService; private final AccessService accessService;
...@@ -68,14 +74,11 @@ public class EndpointValidator { ...@@ -68,14 +74,11 @@ public class EndpointValidator {
if (data == null) { if (data == null) {
throw new MalformedException("Validation failed: table data is null"); throw new MalformedException("Validation failed: table data is null");
} }
final List<ColumnTypeDto> needSize = List.of(ColumnTypeDto.VARCHAR, ColumnTypeDto.BINARY, ColumnTypeDto.VARBINARY);
final List<ColumnTypeDto> canHaveSize = List.of(ColumnTypeDto.CHAR, ColumnTypeDto.VARCHAR, ColumnTypeDto.BINARY, ColumnTypeDto.VARBINARY, ColumnTypeDto.BIT, ColumnTypeDto.TINYINT, ColumnTypeDto.SMALLINT, ColumnTypeDto.MEDIUMINT, ColumnTypeDto.INT);
final List<ColumnTypeDto> canHaveSizeAndD = List.of(ColumnTypeDto.DOUBLE, ColumnTypeDto.DECIMAL);
/* check size */ /* check size */
final Optional<ColumnCreateDto> optional0 = data.getColumns() final Optional<ColumnCreateDto> optional0 = data.getColumns()
.stream() .stream()
.filter(c -> Objects.isNull(c.getSize())) .filter(c -> Objects.isNull(c.getSize()))
.filter(c -> needSize.contains(c.getType())) .filter(c -> NEED_SIZE.contains(c.getType()))
.findFirst(); .findFirst();
if (optional0.isPresent()) { if (optional0.isPresent()) {
log.error("Validation failed: column {} need size parameter", optional0.get().getName()); log.error("Validation failed: column {} need size parameter", optional0.get().getName());
...@@ -84,7 +87,7 @@ public class EndpointValidator { ...@@ -84,7 +87,7 @@ public class EndpointValidator {
final Optional<ColumnCreateDto> optional0a = data.getColumns() final Optional<ColumnCreateDto> optional0a = data.getColumns()
.stream() .stream()
.filter(c -> !Objects.isNull(c.getSize())) .filter(c -> !Objects.isNull(c.getSize()))
.filter(c -> canHaveSize.contains(c.getType())) .filter(c -> CAN_HAVE_SIZE.contains(c.getType()) || CAN_HAVE_SIZE_AND_D.contains(c.getType()))
.filter(c -> c.getSize() < 0) .filter(c -> c.getSize() < 0)
.findFirst(); .findFirst();
if (optional0a.isPresent()) { if (optional0a.isPresent()) {
...@@ -93,18 +96,19 @@ public class EndpointValidator { ...@@ -93,18 +96,19 @@ public class EndpointValidator {
} }
final Optional<ColumnCreateDto> optional0b = data.getColumns() final Optional<ColumnCreateDto> optional0b = data.getColumns()
.stream() .stream()
.filter(c -> !Objects.isNull(c.getSize())) .filter(c -> !Objects.isNull(c.getD()))
.filter(c -> !canHaveSize.contains(c.getType())) .filter(c -> CAN_HAVE_SIZE_AND_D.contains(c.getType()))
.filter(c -> c.getD() < 0)
.findFirst(); .findFirst();
if (optional0b.isPresent()) { if (optional0b.isPresent()) {
log.error("Validation failed: column {} cannot have size parameter", optional0b.get().getName()); log.error("Validation failed: column {} needs positive d parameter", optional0b.get().getName());
throw new MalformedException("Validation failed: column " + optional0b.get().getName() + " cannot have size parameter"); throw new MalformedException("Validation failed: column " + optional0b.get().getName() + " needs positive d parameter");
} }
/* check size and d */ /* check size and d */
final Optional<ColumnCreateDto> optional1 = data.getColumns() final Optional<ColumnCreateDto> optional1 = data.getColumns()
.stream() .stream()
.filter(c -> Objects.isNull(c.getSize()) ^ Objects.isNull(c.getD())) .filter(c -> Objects.isNull(c.getSize()) ^ Objects.isNull(c.getD()))
.filter(c -> canHaveSizeAndD.contains(c.getType())) .filter(c -> CAN_HAVE_SIZE_AND_D.contains(c.getType()))
.findFirst(); .findFirst();
if (optional1.isPresent()) { if (optional1.isPresent()) {
log.error("Validation failed: column {} either needs both size and d parameter or none (use default)", optional1.get().getName()); log.error("Validation failed: column {} either needs both size and d parameter or none (use default)", optional1.get().getName());
......
package at.tuwien.endpoints; package at.tuwien.endpoints;
import at.tuwien.test.AbstractUnitTest;
import at.tuwien.api.database.table.TableBriefDto; import at.tuwien.api.database.table.TableBriefDto;
import at.tuwien.api.database.table.TableCreateDto; import at.tuwien.api.database.table.TableCreateDto;
import at.tuwien.api.database.table.TableDto; import at.tuwien.api.database.table.TableDto;
...@@ -17,12 +16,17 @@ import at.tuwien.entities.database.table.columns.TableColumn; ...@@ -17,12 +16,17 @@ import at.tuwien.entities.database.table.columns.TableColumn;
import at.tuwien.entities.user.User; import at.tuwien.entities.user.User;
import at.tuwien.exception.*; import at.tuwien.exception.*;
import at.tuwien.service.*; import at.tuwien.service.*;
import at.tuwien.test.AbstractUnitTest;
import at.tuwien.validation.EndpointValidator;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.apache.jena.sys.JenaSystem; import org.apache.jena.sys.JenaSystem;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
...@@ -36,6 +40,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; ...@@ -36,6 +40,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.security.Principal; import java.security.Principal;
import java.util.List; import java.util.List;
import java.util.stream.Stream;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
...@@ -61,12 +66,24 @@ public class TableEndpointUnitTest extends AbstractUnitTest { ...@@ -61,12 +66,24 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
@MockBean @MockBean
private EntityService entityService; private EntityService entityService;
@MockBean
private BrokerService messageQueueService;
@Autowired @Autowired
private TableEndpoint tableEndpoint; private TableEndpoint tableEndpoint;
public static Stream<Arguments> needSize_parameters() {
return EndpointValidator.NEED_SIZE.stream()
.map(Arguments::arguments);
}
public static Stream<Arguments> canHaveSize_parameters() {
return EndpointValidator.CAN_HAVE_SIZE.stream()
.map(Arguments::arguments);
}
public static Stream<Arguments> canHaveSizeAndD_parameters() {
return EndpointValidator.CAN_HAVE_SIZE_AND_D.stream()
.map(Arguments::arguments);
}
@BeforeAll @BeforeAll
public static void beforeAll() { public static void beforeAll() {
/* init Apache Jena */ /* init Apache Jena */
...@@ -176,7 +193,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest { ...@@ -176,7 +193,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
.columns(List.of(ColumnCreateDto.builder() .columns(List.of(ColumnCreateDto.builder()
.name("ID") .name("ID")
.type(ColumnTypeDto.DECIMAL) .type(ColumnTypeDto.DECIMAL)
.size(-1L) .size(-1L) // <<<
.d(0L) .d(0L)
.build())) .build()))
.constraints(null) .constraints(null)
...@@ -190,15 +207,15 @@ public class TableEndpointUnitTest extends AbstractUnitTest { ...@@ -190,15 +207,15 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
@Test @Test
@WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"}) @WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"})
public void create_publicDecimalColumnSizeTooBig_fails() { public void create_publicDecimalColumnDTooSmall_fails() {
final TableCreateDto request = TableCreateDto.builder() final TableCreateDto request = TableCreateDto.builder()
.name("Some Table") .name("Some Table")
.description("Some Description") .description("Some Description")
.columns(List.of(ColumnCreateDto.builder() .columns(List.of(ColumnCreateDto.builder()
.name("ID") .name("ID")
.type(ColumnTypeDto.DECIMAL) .type(ColumnTypeDto.DECIMAL)
.size(66L) .size(0L)
.d(0L) .d(-1L) // <<<
.build())) .build()))
.constraints(null) .constraints(null)
.build(); .build();
...@@ -209,48 +226,209 @@ public class TableEndpointUnitTest extends AbstractUnitTest { ...@@ -209,48 +226,209 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
}); });
} }
@Test @ParameterizedTest
@MethodSource("canHaveSize_parameters")
@WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"}) @WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"})
public void create_publicDecimalColumnDTooBig_fails() { public void create_publicOptionalSizeNone_succeeds(ColumnTypeDto columnType) throws UserNotFoundException, SearchServiceException,
NotAllowedException, SemanticEntityNotFoundException, DataServiceConnectionException, TableNotFoundException, MalformedException, DataServiceException, DatabaseNotFoundException, AccessNotFoundException, OntologyNotFoundException, TableExistsException, SearchServiceConnectionException {
final TableCreateDto request = TableCreateDto.builder() final TableCreateDto request = TableCreateDto.builder()
.name("Some Table") .name("Some Table")
.description("Some Description") .description("Some Description")
.columns(List.of(ColumnCreateDto.builder() .columns(List.of(ColumnCreateDto.builder()
.name("ID") .name("ID")
.type(ColumnTypeDto.DECIMAL) .type(columnType)
.size(0L) .size(null) // <<<
.d(39L) .d(null) // <<<
.build())) .build()))
.constraints(null) .constraints(null)
.build(); .build();
/* mock */
when(tableService.createTable(DATABASE_3, request, USER_1_PRINCIPAL))
.thenReturn(TABLE_1) /* some table */;
/* test */ /* test */
if (EndpointValidator.NEED_SIZE.contains(columnType)) {
assertThrows(MalformedException.class, () -> { assertThrows(MalformedException.class, () -> {
generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS); generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS);
}); });
} else {
generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS);
}
} }
@Test @ParameterizedTest
@MethodSource("canHaveSize_parameters")
@WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"}) @WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"})
public void create_publicDecimalColumnDBiggerSize_fails() { public void create_publicOptionalSize_succeeds(ColumnTypeDto columnType) throws UserNotFoundException, SearchServiceException,
NotAllowedException, SemanticEntityNotFoundException, DataServiceConnectionException, TableNotFoundException, MalformedException, DataServiceException, DatabaseNotFoundException, AccessNotFoundException, OntologyNotFoundException, TableExistsException, SearchServiceConnectionException {
final TableCreateDto request = TableCreateDto.builder() final TableCreateDto request = TableCreateDto.builder()
.name("Some Table") .name("Some Table")
.description("Some Description") .description("Some Description")
.columns(List.of(ColumnCreateDto.builder() .columns(List.of(ColumnCreateDto.builder()
.name("ID") .name("ID")
.type(ColumnTypeDto.DECIMAL) .type(columnType)
.size(9L) .size(40L)
.d(10L)
.build()))
.constraints(null)
.build();
/* mock */
when(tableService.createTable(DATABASE_3, request, USER_1_PRINCIPAL))
.thenReturn(TABLE_1) /* some table */;
/* test */
generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS);
}
@ParameterizedTest
@MethodSource("needSize_parameters")
@WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"})
public void create_publicNeedSize_succeeds(ColumnTypeDto columnType) throws UserNotFoundException, SearchServiceException,
NotAllowedException, SemanticEntityNotFoundException, DataServiceConnectionException, TableNotFoundException, MalformedException, DataServiceException, DatabaseNotFoundException, AccessNotFoundException, OntologyNotFoundException, TableExistsException, SearchServiceConnectionException {
final TableCreateDto request = TableCreateDto.builder()
.name("Some Table")
.description("Some Description")
.columns(List.of(ColumnCreateDto.builder()
.name("ID")
.type(columnType)
.size(40L)
.d(10L) .d(10L)
.build())) .build()))
.constraints(null) .constraints(null)
.build(); .build();
/* mock */
when(tableService.createTable(DATABASE_3, request, USER_1_PRINCIPAL))
.thenReturn(TABLE_1) /* some table */;
/* test */
generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS);
}
@ParameterizedTest
@MethodSource("needSize_parameters")
@WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"})
public void create_publicNeedSizeNone_fails(ColumnTypeDto columnType) {
final TableCreateDto request = TableCreateDto.builder()
.name("Some Table")
.description("Some Description")
.columns(List.of(ColumnCreateDto.builder()
.name("ID")
.type(columnType)
.size(null) // <<<
.d(10L)
.build()))
.constraints(null)
.build();
/* test */
assertThrows(MalformedException.class, () -> {
generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS);
});
}
@ParameterizedTest
@MethodSource("canHaveSizeAndD_parameters")
@WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"})
public void create_publicCanHaveSizeAndDSizeNone_fails(ColumnTypeDto columnType) {
final TableCreateDto request = TableCreateDto.builder()
.name("Some Table")
.description("Some Description")
.columns(List.of(ColumnCreateDto.builder()
.name("ID")
.type(columnType)
.size(null) // <<<
.d(0L)
.build()))
.constraints(null)
.build();
/* test */ /* test */
assertThrows(MalformedException.class, () -> { assertThrows(MalformedException.class, () -> {
generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS); generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS);
}); });
} }
@ParameterizedTest
@MethodSource("canHaveSizeAndD_parameters")
@WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"})
public void create_publicCanHaveSizeAndDDNone_fails(ColumnTypeDto columnType) {
final TableCreateDto request = TableCreateDto.builder()
.name("Some Table")
.description("Some Description")
.columns(List.of(ColumnCreateDto.builder()
.name("ID")
.type(columnType)
.size(0L)
.d(null) // <<<
.build()))
.constraints(null)
.build();
/* test */
assertThrows(MalformedException.class, () -> {
generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS);
});
}
@ParameterizedTest
@MethodSource("canHaveSizeAndD_parameters")
@WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"})
public void create_publicCanHaveSizeAndDBothNone_succeeds(ColumnTypeDto columnType) throws UserNotFoundException,
SearchServiceException, NotAllowedException, SemanticEntityNotFoundException,
DataServiceConnectionException, TableNotFoundException, MalformedException, DataServiceException,
DatabaseNotFoundException, AccessNotFoundException, OntologyNotFoundException, TableExistsException,
SearchServiceConnectionException {
final TableCreateDto request = TableCreateDto.builder()
.name("Some Table")
.description("Some Description")
.columns(List.of(ColumnCreateDto.builder()
.name("ID")
.type(columnType)
.size(null) // <<<
.d(null) // <<<
.build()))
.constraints(null)
.build();
/* mock */
when(tableService.createTable(DATABASE_3, request, USER_1_PRINCIPAL))
.thenReturn(TABLE_1) /* some table */;
/* test */
generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS);
}
@ParameterizedTest
@MethodSource("canHaveSizeAndD_parameters")
@WithMockUser(username = USER_3_USERNAME, authorities = {"create-table"})
public void create_publicCanHaveSizeAndDBothNotNone_succeeds(ColumnTypeDto columnType) throws UserNotFoundException,
SearchServiceException, NotAllowedException, SemanticEntityNotFoundException,
DataServiceConnectionException, TableNotFoundException, MalformedException, DataServiceException,
DatabaseNotFoundException, AccessNotFoundException, OntologyNotFoundException, TableExistsException,
SearchServiceConnectionException {
final TableCreateDto request = TableCreateDto.builder()
.name("Some Table")
.description("Some Description")
.columns(List.of(ColumnCreateDto.builder()
.name("ID")
.type(columnType)
.size(0L) // <<<
.d(0L) // <<<
.build()))
.constraints(null)
.build();
/* mock */
when(tableService.createTable(DATABASE_3, request, USER_1_PRINCIPAL))
.thenReturn(TABLE_1) /* some table */;
/* test */
generic_create(DATABASE_3_ID, DATABASE_3, request, USER_1_PRINCIPAL, USER_1, DATABASE_3_USER_1_WRITE_OWN_ACCESS);
}
@Test @Test
@WithAnonymousUser @WithAnonymousUser
public void findById_publicAnonymous_succeeds() throws DataServiceException, DataServiceConnectionException, public void findById_publicAnonymous_succeeds() throws DataServiceException, DataServiceConnectionException,
......
...@@ -295,9 +295,6 @@ export default { ...@@ -295,9 +295,6 @@ export default {
tableImport: { tableImport: {
location: null, location: null,
quote: '"', quote: '"',
false_element: null,
true_element: null,
null_element: '',
separator: ',', separator: ',',
line_termination: '\\n', line_termination: '\\n',
skip_lines: 1 skip_lines: 1
......
...@@ -36,7 +36,7 @@ data: ...@@ -36,7 +36,7 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_images` CREATE TABLE IF NOT EXISTS `mdb_images`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
registry character varying(255) NOT NULL DEFAULT 'docker.io', registry character varying(255) NOT NULL DEFAULT 'docker.io',
name character varying(255) NOT NULL, name character varying(255) NOT NULL,
version character varying(255) NOT NULL, version character varying(255) NOT NULL,
...@@ -52,23 +52,9 @@ data: ...@@ -52,23 +52,9 @@ data:
UNIQUE (is_default) UNIQUE (is_default)
) WITH SYSTEM VERSIONING; ) WITH SYSTEM VERSIONING;
CREATE TABLE IF NOT EXISTS `mdb_images_date`
(
id bigint NOT NULL AUTO_INCREMENT,
iid bigint NOT NULL,
database_format character varying(255) NOT NULL,
unix_format character varying(255) NOT NULL,
example character varying(255) NOT NULL,
has_time boolean NOT NULL,
created_at timestamp NOT NULL DEFAULT NOW(),
PRIMARY KEY (id),
FOREIGN KEY (iid) REFERENCES mdb_images (id),
UNIQUE (database_format, unix_format, example)
) WITH SYSTEM VERSIONING;
CREATE TABLE IF NOT EXISTS `mdb_containers` CREATE TABLE IF NOT EXISTS `mdb_containers`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
internal_name character varying(255) NOT NULL, internal_name character varying(255) NOT NULL,
name character varying(255) NOT NULL, name character varying(255) NOT NULL,
host character varying(255) NOT NULL, host character varying(255) NOT NULL,
...@@ -84,13 +70,12 @@ data: ...@@ -84,13 +70,12 @@ data:
privileged_username character varying(255) NOT NULL, privileged_username character varying(255) NOT NULL,
privileged_password character varying(255) NOT NULL, privileged_password character varying(255) NOT NULL,
quota integer NOT NULL DEFAULT 50, quota integer NOT NULL DEFAULT 50,
PRIMARY KEY (id), PRIMARY KEY (id)
FOREIGN KEY (image_id) REFERENCES mdb_images (id)
) WITH SYSTEM VERSIONING; ) WITH SYSTEM VERSIONING;
CREATE TABLE IF NOT EXISTS `mdb_data` CREATE TABLE IF NOT EXISTS `mdb_data`
( (
ID bigint NOT NULL AUTO_INCREMENT, ID SERIAL,
PROVENANCE text, PROVENANCE text,
FileEncoding text, FileEncoding text,
FileType character varying(100), FileType character varying(100),
...@@ -110,8 +95,8 @@ data: ...@@ -110,8 +95,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_databases` CREATE TABLE IF NOT EXISTS `mdb_databases`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
cid bigint NOT NULL, cid BIGINT UNSIGNED NOT NULL,
name character varying(255) NOT NULL, name character varying(255) NOT NULL,
internal_name character varying(255) NOT NULL, internal_name character varying(255) NOT NULL,
exchange_name character varying(255) NOT NULL, exchange_name character varying(255) NOT NULL,
...@@ -125,7 +110,7 @@ data: ...@@ -125,7 +110,7 @@ data:
created timestamp NOT NULL DEFAULT NOW(), created timestamp NOT NULL DEFAULT NOW(),
last_modified timestamp, last_modified timestamp,
PRIMARY KEY (id), PRIMARY KEY (id),
FOREIGN KEY (cid) REFERENCES mdb_containers (id) /* currently we only support one-to-one */, FOREIGN KEY (cid) REFERENCES mdb_containers (id),
FOREIGN KEY (created_by) REFERENCES mdb_users (id), FOREIGN KEY (created_by) REFERENCES mdb_users (id),
FOREIGN KEY (owned_by) REFERENCES mdb_users (id), FOREIGN KEY (owned_by) REFERENCES mdb_users (id),
FOREIGN KEY (contact_person) REFERENCES mdb_users (id) FOREIGN KEY (contact_person) REFERENCES mdb_users (id)
...@@ -140,8 +125,8 @@ data: ...@@ -140,8 +125,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_tables` CREATE TABLE IF NOT EXISTS `mdb_tables`
( (
ID bigint NOT NULL AUTO_INCREMENT, ID SERIAL,
tDBID bigint NOT NULL, tDBID BIGINT UNSIGNED NOT NULL,
tName VARCHAR(64) NOT NULL, tName VARCHAR(64) NOT NULL,
internal_name VARCHAR(64) NOT NULL, internal_name VARCHAR(64) NOT NULL,
queue_name VARCHAR(255) NOT NULL, queue_name VARCHAR(255) NOT NULL,
...@@ -172,18 +157,17 @@ data: ...@@ -172,18 +157,17 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_columns` CREATE TABLE IF NOT EXISTS `mdb_columns`
( (
ID BIGINT NOT NULL AUTO_INCREMENT, ID SERIAL,
tID BIGINT NOT NULL, tID BIGINT UNSIGNED NOT NULL,
dfID BIGINT,
cName VARCHAR(64), cName VARCHAR(64),
internal_name VARCHAR(64) NOT NULL, internal_name VARCHAR(64) NOT NULL,
Datatype ENUM ('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR'), Datatype ENUM ('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR'),
length BIGINT NULL, length BIGINT UNSIGNED NULL,
ordinal_position INTEGER NOT NULL, ordinal_position INTEGER NOT NULL,
index_length BIGINT NULL, index_length BIGINT UNSIGNED NULL,
description VARCHAR(2048), description VARCHAR(2048),
size BIGINT, size BIGINT UNSIGNED,
d BIGINT, d BIGINT UNSIGNED,
auto_generated BOOLEAN DEFAULT false, auto_generated BOOLEAN DEFAULT false,
is_null_allowed BOOLEAN NOT NULL DEFAULT true, is_null_allowed BOOLEAN NOT NULL DEFAULT true,
val_min NUMERIC NULL, val_min NUMERIC NULL,
...@@ -200,8 +184,8 @@ data: ...@@ -200,8 +184,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_columns_enums` CREATE TABLE IF NOT EXISTS `mdb_columns_enums`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
column_id bigint NOT NULL, column_id BIGINT UNSIGNED NOT NULL,
value CHARACTER VARYING(255) NOT NULL, value CHARACTER VARYING(255) NOT NULL,
FOREIGN KEY (column_id) REFERENCES mdb_columns (ID) ON DELETE CASCADE, FOREIGN KEY (column_id) REFERENCES mdb_columns (ID) ON DELETE CASCADE,
PRIMARY KEY (id) PRIMARY KEY (id)
...@@ -209,8 +193,8 @@ data: ...@@ -209,8 +193,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_columns_sets` CREATE TABLE IF NOT EXISTS `mdb_columns_sets`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
column_id bigint NOT NULL, column_id BIGINT UNSIGNED NOT NULL,
value CHARACTER VARYING(255) NOT NULL, value CHARACTER VARYING(255) NOT NULL,
FOREIGN KEY (column_id) REFERENCES mdb_columns (ID) ON DELETE CASCADE, FOREIGN KEY (column_id) REFERENCES mdb_columns (ID) ON DELETE CASCADE,
PRIMARY KEY (id) PRIMARY KEY (id)
...@@ -218,8 +202,8 @@ data: ...@@ -218,8 +202,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_columns_nom` CREATE TABLE IF NOT EXISTS `mdb_columns_nom`
( (
cID bigint, cID BIGINT UNSIGNED,
tID bigint, tID BIGINT UNSIGNED,
maxlength INTEGER, maxlength INTEGER,
last_modified timestamp, last_modified timestamp,
created timestamp NOT NULL DEFAULT NOW(), created timestamp NOT NULL DEFAULT NOW(),
...@@ -229,8 +213,8 @@ data: ...@@ -229,8 +213,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_columns_cat` CREATE TABLE IF NOT EXISTS `mdb_columns_cat`
( (
cID bigint, cID BIGINT UNSIGNED,
tID bigint, tID BIGINT UNSIGNED,
num_cat INTEGER, num_cat INTEGER,
-- cat_array TEXT[], -- cat_array TEXT[],
last_modified timestamp, last_modified timestamp,
...@@ -241,9 +225,9 @@ data: ...@@ -241,9 +225,9 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_constraints_foreign_key` CREATE TABLE IF NOT EXISTS `mdb_constraints_foreign_key`
( (
fkid BIGINT NOT NULL AUTO_INCREMENT, fkid BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
tid BIGINT NOT NULL, tid BIGINT UNSIGNED NOT NULL,
rtid BIGINT NOT NULL, rtid BIGINT UNSIGNED NOT NULL,
name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL,
on_update VARCHAR(50) NULL, on_update VARCHAR(50) NULL,
on_delete VARCHAR(50) NULL, on_delete VARCHAR(50) NULL,
...@@ -255,9 +239,9 @@ data: ...@@ -255,9 +239,9 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_constraints_primary_key` CREATE TABLE IF NOT EXISTS `mdb_constraints_primary_key`
( (
pkid BIGINT NOT NULL AUTO_INCREMENT, pkid SERIAL,
tID BIGINT NOT NULL, tID BIGINT UNSIGNED NOT NULL,
cid BIGINT NOT NULL, cid BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (pkid), PRIMARY KEY (pkid),
FOREIGN KEY (tID) REFERENCES mdb_tables (id) ON DELETE CASCADE, FOREIGN KEY (tID) REFERENCES mdb_tables (id) ON DELETE CASCADE,
FOREIGN KEY (cid) REFERENCES mdb_columns (id) ON DELETE CASCADE FOREIGN KEY (cid) REFERENCES mdb_columns (id) ON DELETE CASCADE
...@@ -265,10 +249,10 @@ data: ...@@ -265,10 +249,10 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_constraints_foreign_key_reference` CREATE TABLE IF NOT EXISTS `mdb_constraints_foreign_key_reference`
( (
id BIGINT NOT NULL AUTO_INCREMENT, id SERIAL,
fkid BIGINT NOT NULL, fkid BIGINT UNSIGNED NOT NULL,
cid BIGINT NOT NULL, cid BIGINT UNSIGNED NOT NULL,
rcid BIGINT NOT NULL, rcid BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
UNIQUE (fkid, cid, rcid), UNIQUE (fkid, cid, rcid),
FOREIGN KEY (fkid) REFERENCES mdb_constraints_foreign_key (fkid) ON UPDATE CASCADE, FOREIGN KEY (fkid) REFERENCES mdb_constraints_foreign_key (fkid) ON UPDATE CASCADE,
...@@ -278,9 +262,9 @@ data: ...@@ -278,9 +262,9 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_constraints_unique` CREATE TABLE IF NOT EXISTS `mdb_constraints_unique`
( (
uid BIGINT NOT NULL AUTO_INCREMENT, uid BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL,
tid BIGINT NOT NULL, tid BIGINT UNSIGNED NOT NULL,
position INT NULL, position INT NULL,
PRIMARY KEY (uid), PRIMARY KEY (uid),
FOREIGN KEY (tid) REFERENCES mdb_tables (id) ON DELETE CASCADE FOREIGN KEY (tid) REFERENCES mdb_tables (id) ON DELETE CASCADE
...@@ -288,9 +272,9 @@ data: ...@@ -288,9 +272,9 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_constraints_unique_columns` CREATE TABLE IF NOT EXISTS `mdb_constraints_unique_columns`
( (
id BIGINT NOT NULL AUTO_INCREMENT, id SERIAL,
uid BIGINT NOT NULL, uid BIGINT UNSIGNED NOT NULL,
cid BIGINT NOT NULL, cid BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
FOREIGN KEY (uid) REFERENCES mdb_constraints_unique (uid), FOREIGN KEY (uid) REFERENCES mdb_constraints_unique (uid),
FOREIGN KEY (cid) REFERENCES mdb_columns (id) ON DELETE CASCADE FOREIGN KEY (cid) REFERENCES mdb_columns (id) ON DELETE CASCADE
...@@ -298,8 +282,8 @@ data: ...@@ -298,8 +282,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_constraints_checks` CREATE TABLE IF NOT EXISTS `mdb_constraints_checks`
( (
id BIGINT NOT NULL AUTO_INCREMENT, id SERIAL,
tid BIGINT NOT NULL, tid BIGINT UNSIGNED NOT NULL,
checks VARCHAR(255) NOT NULL, checks VARCHAR(255) NOT NULL,
PRIMARY KEY (id), PRIMARY KEY (id),
FOREIGN KEY (tid) REFERENCES mdb_tables (id) ON DELETE CASCADE FOREIGN KEY (tid) REFERENCES mdb_tables (id) ON DELETE CASCADE
...@@ -308,7 +292,7 @@ data: ...@@ -308,7 +292,7 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_concepts` CREATE TABLE IF NOT EXISTS `mdb_concepts`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
uri text not null, uri text not null,
name VARCHAR(255) null, name VARCHAR(255) null,
description TEXT null, description TEXT null,
...@@ -319,7 +303,7 @@ data: ...@@ -319,7 +303,7 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_units` CREATE TABLE IF NOT EXISTS `mdb_units`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
uri text not null, uri text not null,
name VARCHAR(255) null, name VARCHAR(255) null,
description TEXT null, description TEXT null,
...@@ -330,8 +314,8 @@ data: ...@@ -330,8 +314,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_columns_concepts` CREATE TABLE IF NOT EXISTS `mdb_columns_concepts`
( (
id bigint NOT NULL, id BIGINT UNSIGNED NOT NULL,
cID bigint NOT NULL, cID BIGINT UNSIGNED NOT NULL,
created timestamp NOT NULL DEFAULT NOW(), created timestamp NOT NULL DEFAULT NOW(),
PRIMARY KEY (id, cid), PRIMARY KEY (id, cid),
FOREIGN KEY (cID) REFERENCES mdb_columns (ID) FOREIGN KEY (cID) REFERENCES mdb_columns (ID)
...@@ -339,8 +323,8 @@ data: ...@@ -339,8 +323,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_columns_units` CREATE TABLE IF NOT EXISTS `mdb_columns_units`
( (
id bigint NOT NULL, id BIGINT UNSIGNED NOT NULL,
cID bigint NOT NULL, cID BIGINT UNSIGNED NOT NULL,
created timestamp NOT NULL DEFAULT NOW(), created timestamp NOT NULL DEFAULT NOW(),
PRIMARY KEY (id, cID), PRIMARY KEY (id, cID),
FOREIGN KEY (cID) REFERENCES mdb_columns (ID) FOREIGN KEY (cID) REFERENCES mdb_columns (ID)
...@@ -348,8 +332,8 @@ data: ...@@ -348,8 +332,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_view` CREATE TABLE IF NOT EXISTS `mdb_view`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
vdbid bigint NOT NULL, vdbid BIGINT UNSIGNED NOT NULL,
vName VARCHAR(64) NOT NULL, vName VARCHAR(64) NOT NULL,
internal_name VARCHAR(64) NOT NULL, internal_name VARCHAR(64) NOT NULL,
Query TEXT NOT NULL, Query TEXT NOT NULL,
...@@ -366,7 +350,7 @@ data: ...@@ -366,7 +350,7 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_banner_messages` CREATE TABLE IF NOT EXISTS `mdb_banner_messages`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
type ENUM ('ERROR', 'WARNING', 'INFO') NOT NULL default 'INFO', type ENUM ('ERROR', 'WARNING', 'INFO') NOT NULL default 'INFO',
message TEXT NOT NULL, message TEXT NOT NULL,
link TEXT NULL, link TEXT NULL,
...@@ -378,7 +362,7 @@ data: ...@@ -378,7 +362,7 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_ontologies` CREATE TABLE IF NOT EXISTS `mdb_ontologies`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
prefix VARCHAR(8) NOT NULL, prefix VARCHAR(8) NOT NULL,
uri TEXT NOT NULL, uri TEXT NOT NULL,
uri_pattern TEXT, uri_pattern TEXT,
...@@ -393,15 +377,15 @@ data: ...@@ -393,15 +377,15 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_view_columns` CREATE TABLE IF NOT EXISTS `mdb_view_columns`
( (
id BIGINT NOT NULL AUTO_INCREMENT, id SERIAL,
view_id BIGINT NOT NULL, view_id BIGINT UNSIGNED NOT NULL,
dfID BIGINT, dfID BIGINT UNSIGNED,
name VARCHAR(64), name VARCHAR(64),
internal_name VARCHAR(64) NOT NULL, internal_name VARCHAR(64) NOT NULL,
column_type ENUM ('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR'), column_type ENUM ('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR'),
ordinal_position INTEGER NOT NULL, ordinal_position INTEGER NOT NULL,
size BIGINT, size BIGINT UNSIGNED,
d BIGINT, d BIGINT UNSIGNED,
auto_generated BOOLEAN DEFAULT false, auto_generated BOOLEAN DEFAULT false,
is_null_allowed BOOLEAN NOT NULL DEFAULT true, is_null_allowed BOOLEAN NOT NULL DEFAULT true,
PRIMARY KEY (id), PRIMARY KEY (id),
...@@ -410,11 +394,11 @@ data: ...@@ -410,11 +394,11 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_identifiers` CREATE TABLE IF NOT EXISTS `mdb_identifiers`
( (
id BIGINT NOT NULL AUTO_INCREMENT, id SERIAL,
dbid BIGINT NOT NULL, dbid BIGINT UNSIGNED NOT NULL,
qid BIGINT, qid BIGINT UNSIGNED,
vid BIGINT, vid BIGINT UNSIGNED,
tid BIGINT, tid BIGINT UNSIGNED,
publisher VARCHAR(255) NOT NULL, publisher VARCHAR(255) NOT NULL,
language VARCHAR(2), language VARCHAR(2),
publication_year INTEGER NOT NULL, publication_year INTEGER NOT NULL,
...@@ -439,7 +423,7 @@ data: ...@@ -439,7 +423,7 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_identifier_licenses` CREATE TABLE IF NOT EXISTS `mdb_identifier_licenses`
( (
pid bigint NOT NULL, pid BIGINT UNSIGNED NOT NULL,
license_id VARCHAR(255) NOT NULL, license_id VARCHAR(255) NOT NULL,
PRIMARY KEY (pid, license_id), PRIMARY KEY (pid, license_id),
FOREIGN KEY (pid) REFERENCES mdb_identifiers (id), FOREIGN KEY (pid) REFERENCES mdb_identifiers (id),
...@@ -448,8 +432,8 @@ data: ...@@ -448,8 +432,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_identifier_titles` CREATE TABLE IF NOT EXISTS `mdb_identifier_titles`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
pid bigint NOT NULL, pid BIGINT UNSIGNED NOT NULL,
title text NOT NULL, title text NOT NULL,
title_type ENUM ('ALTERNATIVE_TITLE', 'SUBTITLE', 'TRANSLATED_TITLE', 'OTHER'), title_type ENUM ('ALTERNATIVE_TITLE', 'SUBTITLE', 'TRANSLATED_TITLE', 'OTHER'),
language VARCHAR(2), language VARCHAR(2),
...@@ -459,8 +443,8 @@ data: ...@@ -459,8 +443,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_identifier_funders` CREATE TABLE IF NOT EXISTS `mdb_identifier_funders`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
pid bigint NOT NULL, pid BIGINT UNSIGNED NOT NULL,
funder_name VARCHAR(255) NOT NULL, funder_name VARCHAR(255) NOT NULL,
funder_identifier TEXT, funder_identifier TEXT,
funder_identifier_type ENUM ('CROSSREF_FUNDER_ID', 'GRID', 'ISNI', 'ROR', 'OTHER'), funder_identifier_type ENUM ('CROSSREF_FUNDER_ID', 'GRID', 'ISNI', 'ROR', 'OTHER'),
...@@ -474,8 +458,8 @@ data: ...@@ -474,8 +458,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_identifier_descriptions` CREATE TABLE IF NOT EXISTS `mdb_identifier_descriptions`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
pid bigint NOT NULL, pid BIGINT UNSIGNED NOT NULL,
description text NOT NULL, description text NOT NULL,
description_type ENUM ('ABSTRACT', 'METHODS', 'SERIES_INFORMATION', 'TABLE_OF_CONTENTS', 'TECHNICAL_INFO', 'OTHER'), description_type ENUM ('ABSTRACT', 'METHODS', 'SERIES_INFORMATION', 'TABLE_OF_CONTENTS', 'TECHNICAL_INFO', 'OTHER'),
language VARCHAR(2), language VARCHAR(2),
...@@ -485,8 +469,8 @@ data: ...@@ -485,8 +469,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_related_identifiers` CREATE TABLE IF NOT EXISTS `mdb_related_identifiers`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
pid bigint NOT NULL, pid BIGINT UNSIGNED NOT NULL,
value varchar(255) NOT NULL, value varchar(255) NOT NULL,
type varchar(255) NOT NULL, type varchar(255) NOT NULL,
relation varchar(255) NOT NULL, relation varchar(255) NOT NULL,
...@@ -497,8 +481,8 @@ data: ...@@ -497,8 +481,8 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_identifier_creators` CREATE TABLE IF NOT EXISTS `mdb_identifier_creators`
( (
id bigint NOT NULL AUTO_INCREMENT, id SERIAL,
pid bigint NOT NULL, pid BIGINT UNSIGNED NOT NULL,
given_names text, given_names text,
family_name text, family_name text,
creator_name VARCHAR(255) NOT NULL, creator_name VARCHAR(255) NOT NULL,
...@@ -517,7 +501,7 @@ data: ...@@ -517,7 +501,7 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_update` CREATE TABLE IF NOT EXISTS `mdb_update`
( (
uUserID character varying(255) NOT NULL, uUserID character varying(255) NOT NULL,
uDBID bigint NOT NULL, uDBID BIGINT UNSIGNED NOT NULL,
created timestamp NOT NULL DEFAULT NOW(), created timestamp NOT NULL DEFAULT NOW(),
PRIMARY KEY (uUserID, uDBID), PRIMARY KEY (uUserID, uDBID),
FOREIGN KEY (uDBID) REFERENCES mdb_databases (id) FOREIGN KEY (uDBID) REFERENCES mdb_databases (id)
...@@ -526,7 +510,7 @@ data: ...@@ -526,7 +510,7 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_access` CREATE TABLE IF NOT EXISTS `mdb_access`
( (
aUserID character varying(255) NOT NULL, aUserID character varying(255) NOT NULL,
aDBID bigint REFERENCES mdb_databases (id), aDBID BIGINT UNSIGNED REFERENCES mdb_databases (id),
attime TIMESTAMP, attime TIMESTAMP,
download BOOLEAN, download BOOLEAN,
created timestamp NOT NULL DEFAULT NOW(), created timestamp NOT NULL DEFAULT NOW(),
...@@ -536,14 +520,40 @@ data: ...@@ -536,14 +520,40 @@ data:
CREATE TABLE IF NOT EXISTS `mdb_have_access` CREATE TABLE IF NOT EXISTS `mdb_have_access`
( (
user_id character varying(36) NOT NULL, user_id character varying(36) NOT NULL,
database_id bigint REFERENCES mdb_databases (id), database_id BIGINT UNSIGNED REFERENCES mdb_databases (id),
access_type ENUM ('READ', 'WRITE_OWN', 'WRITE_ALL') NOT NULL, access_type ENUM ('READ', 'WRITE_OWN', 'WRITE_ALL') NOT NULL,
created timestamp NOT NULL DEFAULT NOW(), created timestamp NOT NULL DEFAULT NOW(),
PRIMARY KEY (user_id, database_id), PRIMARY KEY (user_id, database_id),
FOREIGN KEY (user_id) REFERENCES mdb_users (id) FOREIGN KEY (user_id) REFERENCES mdb_users (id)
) WITH SYSTEM VERSIONING; ) WITH SYSTEM VERSIONING;
CREATE TABLE IF NOT EXISTS `mdb_image_types`
(
id SERIAL,
image_id BIGINT UNSIGNED NOT NULL,
display_name varchar(255) NOT NULL,
value varchar(255) NOT NULL,
size_min INT UNSIGNED,
size_max INT UNSIGNED,
size_default INT UNSIGNED,
size_required BOOLEAN COMMENT 'When setting NULL, the service assumes the data type has no size',
size_step INT UNSIGNED,
d_min INT UNSIGNED,
d_max INT UNSIGNED,
d_default INT UNSIGNED,
d_required BOOLEAN COMMENT 'When setting NULL, the service assumes the data type has no d',
d_step INT UNSIGNED,
hint TEXT,
documentation TEXT NOT NULL,
is_quoted BOOLEAN NOT NULL,
is_buildable BOOLEAN NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (image_id) REFERENCES `mdb_images` (`id`),
UNIQUE (value)
) WITH SYSTEM VERSIONING;
COMMIT; COMMIT;
BEGIN; BEGIN;
INSERT INTO `mdb_licenses` (identifier, uri, description) INSERT INTO `mdb_licenses` (identifier, uri, description)
...@@ -556,14 +566,71 @@ data: ...@@ -556,14 +566,71 @@ data:
VALUES ('mariadb', 'docker.io', '11.1.3', 3306, 'org.hibernate.dialect.MariaDBDialect', 'org.mariadb.jdbc.Driver', VALUES ('mariadb', 'docker.io', '11.1.3', 3306, 'org.hibernate.dialect.MariaDBDialect', 'org.mariadb.jdbc.Driver',
'mariadb'); 'mariadb');
INSERT INTO `mdb_images_date` (iid, database_format, unix_format, example, has_time) INSERT INTO `mdb_image_types` (image_id, display_name, value, size_min, size_max, size_default, size_required,
VALUES (1, '%Y-%c-%d %H:%i:%S.%f', 'yyyy-MM-dd HH:mm:ss.SSSSSS', '2022-01-30 13:44:25.499', true), size_step, d_min, d_max, d_default, d_required, d_step, hint, documentation, is_quoted,
(1, '%Y-%c-%d %H:%i:%S', 'yyyy-MM-dd HH:mm:ss', '2022-01-30 13:44:25', true), is_buildable)
(1, '%Y-%c-%d', 'yyyy-MM-dd', '2022-01-30', false), VALUES (1, 'BIGINT(size)', 'bigint', 0, null, null, false, 1, null, null, null, null, null, null,
(1, '%H:%i:%S', 'HH:mm:ss', '13:44:25', true), 'https://mariadb.com/kb/en/bigint/', false, true),
(1, '%d.%c.%Y', 'dd.MM.yyyy', '30.01.2022', false); (1, 'BINARY(size)', 'binary', 0, 255, 255, true, 1, null, null, null, null, null, 'size in Bytes',
'https://mariadb.com/kb/en/binary/', false, true),
INSERT INTO `mdb_ontologies` (prefix, uri, uri_pattern, sparql_endpoint, rdf_path) (1, 'BIT(size)', 'bit', 0, 64, null, false, 1, null, null, null, null, null, null,
'https://mariadb.com/kb/en/bit/', false, true),
(1, 'BLOB(size)', 'blob', 0, 65535, null, false, 1, null, null, null, null, null, 'size in Bytes',
'https://mariadb.com/kb/en/blob/', false, false),
(1, 'BOOL', 'bool', null, null, null, null, null, null, null, null, null, null, null,
'https://mariadb.com/kb/en/bool/', false, true),
(1, 'CHAR(size)', 'char', 0, 255, 255, false, 1, null, null, null, null, null, null,
'https://mariadb.com/kb/en/char/', false, true),
(1, 'DATE', 'date', null, null, null, null, null, null, null, null, null, null,
'min. 1000-01-01, max. 9999-12-31', 'https://mariadb.com/kb/en/date/', true, true),
(1, 'DATETIME(fsp)', 'datetime', 0, 6, null, null, 1, null, null, null, null, null,
'fsp=microsecond precision, min. 1000-01-01 00:00:00.0, max. 9999-12-31 23:59:59.9',
'https://mariadb.com/kb/en/datetime/', true, true),
(1, 'DECIMAL(size, d)', 'decimal', 0, 65, null, false, 1, 0, 38, null, false, null, null,
'https://mariadb.com/kb/en/decimal/', false, true),
(1, 'DOUBLE(size, d)', 'double', null, null, null, false, null, null, null, null, false, null, null,
'https://mariadb.com/kb/en/double/', false, true),
(1, 'ENUM(v1,v2,...)', 'enum', null, null, null, null, null, null, null, null, null, null, null,
'https://mariadb.com/kb/en/enum/', true, true),
(1, 'FLOAT(size)', 'float', null, null, null, false, null, null, null, null, null, null, null,
'https://mariadb.com/kb/en/float/', false, true),
(1, 'INT(size)', 'int', null, null, null, false, null, null, null, null, null, null, 'size in Bytes',
'https://mariadb.com/kb/en/int/', false, true),
(1, 'LONGBLOB', 'longblob', null, null, null, null, null, null, null, null, null, null, 'max. 3.999 GiB',
'https://mariadb.com/kb/en/longblob/', false, true),
(1, 'LONGTEXT', 'longtext', null, null, null, null, null, null, null, null, null, null, 'max. 3.999 GiB',
'https://mariadb.com/kb/en/longtext/', true, true),
(1, 'MEDIUMBLOB', 'mediumblob', null, null, null, null, null, null, null, null, null, null, 'max. 15.999 MiB',
'https://mariadb.com/kb/en/mediumblob/', false, true),
(1, 'MEDIUMINT', 'mediumint', null, null, null, null, null, null, null, null, null, null, 'size in Bytes',
'https://mariadb.com/kb/en/mediumint/', false, true),
(1, 'MEDIUMTEXT', 'mediumtext', null, null, null, null, null, null, null, null, null, null, 'size in Bytes',
'https://mariadb.com/kb/en/mediumtext/', true, true),
(1, 'SET(v1,v2,...)', 'set', null, null, null, null, null, null, null, null, null, null, null,
'https://mariadb.com/kb/en/set/', true, true),
(1, 'SMALLINT(size)', 'smallint', 0, null, null, false, null, null, null, null, null, null, 'size in Bytes',
'https://mariadb.com/kb/en/smallint/', false, true),
(1, 'TEXT(size)', 'text', 0, null, null, false, null, null, null, null, null, null, 'size in Bytes',
'https://mariadb.com/kb/en/text/', true, true),
(1, 'TIME(fsp)', 'time', 0, 6, 0, false, null, null, null, null, null, null,
'fsp=microsecond precision, min. 0, max. 6', 'https://mariadb.com/kb/en/time/', true, true),
(1, 'TIMESTAMP(fsp)', 'timestamp', 0, 6, 0, false, null, null, null, null, null, null,
'fsp=microsecond precision, min. 0, max. 6', 'https://mariadb.com/kb/en/timestamp/', true, true),
(1, 'TINYBLOB', 'tinyblob', null, null, null, null, null, null, null, null, null, null,
'fsp=microsecond precision, min. 0, max. 6', 'https://mariadb.com/kb/en/timestamp/', false, true),
(1, 'TINYINT(size)', 'tinyint', 0, null, null, false, null, null, null, null, null, null,
'size in Bytes', 'https://mariadb.com/kb/en/tinyint/', false, true),
(1, 'TINYTEXT', 'tinytext', null, null, null, null, null, null, null, null, null, null,
'max. 255 characters', 'https://mariadb.com/kb/en/tinytext/', true, true),
(1, 'YEAR', 'year', 2, 4, null, false, 2, null, null, null, null, null, 'min. 1901, max. 2155',
'https://mariadb.com/kb/en/year/', false, true),
(1, 'VARBINARY(size)', 'varbinary', 0, null, null, true, null, null, null, null, null, null,
null, 'https://mariadb.com/kb/en/varbinary/', false, true),
(1, 'VARCHAR(size)', 'varchar', 0, 65532, 255, true, null, null, null, null, null, null,
null, 'https://mariadb.com/kb/en/varchar/', false, true);
INSERT
INTO `mdb_ontologies` (prefix, uri, uri_pattern, sparql_endpoint, rdf_path)
VALUES ('om', 'http://www.ontology-of-units-of-measure.org/resource/om-2/', VALUES ('om', 'http://www.ontology-of-units-of-measure.org/resource/om-2/',
'http://www.ontology-of-units-of-measure.org/resource/om-2/.*', null, 'rdf/om-2.0.rdf'), 'http://www.ontology-of-units-of-measure.org/resource/om-2/.*', null, 'rdf/om-2.0.rdf'),
('wd', 'http://www.wikidata.org/', 'http://www.wikidata.org/entity/.*', 'https://query.wikidata.org/sparql', ('wd', 'http://www.wikidata.org/', 'http://www.wikidata.org/entity/.*', 'https://query.wikidata.org/sparql',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment