From ffd62603ef964db77ca45f774ed499844672af0b Mon Sep 17 00:00:00 2001 From: Marco Vogt Date: Sun, 20 Feb 2022 10:31:57 +0100 Subject: [PATCH] Prepare for release (#376) --- .github/workflows/integration.yml | 4 +- .github/workflows/matrix.yml | 4 +- NOTICE | 2 +- README.md | 2 +- build.gradle | 8 +- .../polypheny/db/config/ConfigManager.java | 4 +- .../org/polypheny/db/config/WebUiPage.java | 2 +- .../polypheny/db/adapter/csv/CsvSource.java | 36 ++-- dbms/build.gradle | 157 ++++++++++++++++-- .../org/polypheny/db/ddl/DdlManagerImpl.java | 16 +- .../org/polypheny/db/gui/AboutWindow.java | 1 + .../db/processing/caching/QueryPlanCache.java | 1 + .../db/adapter/MonetdbSourceTest.java | 1 + .../db/adapter/PostgresSourceTest.java | 1 + gradle.properties | 10 +- .../polypheny/db/information/Refreshable.java | 1 - .../jdbc/sources/AbstractJdbcSource.java | 3 +- .../jdbc/sources/PostgresqlSource.java | 4 +- monitoring/build.gradle | 37 ----- .../db/sql/sql/ddl/SqlAlterConfig.java | 4 +- .../SqlAlterSourceTableAddColumn.java | 4 +- .../altertable/SqlAlterTableAddColumn.java | 2 +- .../ddl/altertable/SqlAlterTableAddIndex.java | 2 +- .../SqlAlterTableAddPartitions.java | 2 +- .../altertable/SqlAlterTableAddPlacement.java | 2 +- .../SqlAlterTableAddPrimaryKey.java | 2 +- .../SqlAlterTableAddUniqueConstraint.java | 2 +- .../altertable/SqlAlterTableDropColumn.java | 4 +- .../SqlAlterTableDropConstraint.java | 2 +- .../SqlAlterTableDropForeignKey.java | 2 +- .../altertable/SqlAlterTableDropIndex.java | 2 +- .../SqlAlterTableDropPlacement.java | 2 +- .../SqlAlterTableDropPrimaryKey.java | 2 +- .../SqlAlterTableMergePartitions.java | 2 +- .../altertable/SqlAlterTableModifyColumn.java | 2 +- .../SqlAlterTableModifyPartitions.java | 2 +- .../SqlAlterTableModifyPlacement.java | 2 +- ...SqlAlterTableModifyPlacementAddColumn.java | 2 +- ...qlAlterTableModifyPlacementDropColumn.java | 2 +- .../ddl/altertable/SqlAlterTableOwner.java | 2 +- .../java/org/polypheny/db/webui/Crud.java | 9 +- .../org/polypheny/db/webui/HttpServer.java | 2 +- .../polypheny/db/webui/models/DbColumn.java | 5 + 43 files changed, 237 insertions(+), 121 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 192f587e32..b99ead81c9 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -40,6 +40,6 @@ jobs: - name: Execute integration tests for ${{ matrix.adapter }} uses: nick-invision/retry@v2 with: - max_attempts: 2 - timeout_minutes: 60 + max_attempts: 3 + timeout_minutes: 30 command: ./gradlew integrationTests -Dstore.default=${{ matrix.adapter }} \ No newline at end of file diff --git a/.github/workflows/matrix.yml b/.github/workflows/matrix.yml index 2f9421b950..6c15a76af1 100644 --- a/.github/workflows/matrix.yml +++ b/.github/workflows/matrix.yml @@ -38,6 +38,6 @@ jobs: - name: Execute tests uses: nick-invision/retry@v2 with: - max_attempts: 2 - timeout_minutes: 60 + max_attempts: 3 + timeout_minutes: 30 command: ./gradlew check \ No newline at end of file diff --git a/NOTICE b/NOTICE index 897ac32aaf..03d8d247e8 100644 --- a/NOTICE +++ b/NOTICE @@ -4,7 +4,7 @@ Copyright 2017-2021 The Polypheny Project This product includes software developed at The Apache Software Foundation (http://www.apache.org/). -This product contains code from the Apache Calcite +This product contains code forked from the Apache Calcite project which is based on source code originally developed by DynamoBI Corporation, LucidEra Inc., SQLstream Inc. and others under the auspices of the Eigenbase Foundation diff --git a/README.md b/README.md index 2e3e2e831d..0f42da4692 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ _Polypheny-DB_ is a self-adaptive Polystore that provides cost- and workload awa If you want to learn more about Polypheny-DB, we recommend having a look on our [vision paper](https://ieeexplore.ieee.org/document/8622353). ## Getting Started ## -The easiest way to setup Polypheny-DB is to use [Polypheny Control](https://github.com/polypheny/Polypheny-Control). +The easiest way to setup Polypheny-DB is to use a [release](https://github.com/polypheny/Polypheny-DB/releases/latest). Alternatively, you can use [Polypheny Control](https://github.com/polypheny/Polypheny-Control) to automatically build Polypheny-DB. ## Roadmap ## See the [open issues](https://github.com/polypheny/Polypheny-DB/issues) for a list of proposed features (and known issues). diff --git a/build.gradle b/build.gradle index c4f9ed5d35..e00a2d3099 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,6 @@ buildscript { plugins { id "org.jetbrains.kotlin.jvm" version "1.5.31" id "org.jetbrains.gradle.plugin.idea-ext" version "1.1.1" - id "com.github.johnrengelman.shadow" version "7.0.0" } @@ -43,13 +42,14 @@ allprojects { compileTestJava.options.encoding = "UTF-8" javadoc.options.encoding = "UTF-8" - sourceCompatibility = 1.8 - targetCompatibility = 1.8 + sourceCompatibility = 1.11 + targetCompatibility = 1.11 tasks.withType(JavaCompile) { options.encoding = "UTF-8" } + repositories { mavenLocal() mavenCentral() @@ -94,7 +94,7 @@ allprojects { } dockerTests.dependsOn(testClasses) - String storeName = System.getProperty("store.default") != null ? System.getProperty("store.default") : "hsqldb" + String storeName = System.getProperty("store.default") != null ? System.getProperty("store.default") : 'hsqldb' task integrationTests(type: Test) { description = 'Runs integration tests.' diff --git a/config/src/main/java/org/polypheny/db/config/ConfigManager.java b/config/src/main/java/org/polypheny/db/config/ConfigManager.java index 356a8194f6..a07eeaa1bb 100644 --- a/config/src/main/java/org/polypheny/db/config/ConfigManager.java +++ b/config/src/main/java/org/polypheny/db/config/ConfigManager.java @@ -174,7 +174,9 @@ public void persistConfigValue( String configKey, Object updatedValue ) { // If so, the value will be omitted since there is no need to write it to file if ( configs.get( configKey ).isDefault() ) { //if ( updatedValue.toString().equals( configs.get( configKey ).getDefaultValue().toString() ) ) { - log.warn( "Updated value: '{}' for key: '{}' is equal to default value. Omitting.", updatedValue, configKey ); + if ( log.isDebugEnabled() ) { + log.debug( "Updated value: '{}' for key: '{}' is equal to default value. Omitting.", updatedValue, configKey ); + } newConfig = configFile.withoutPath( configKey ); } else { newConfig = parseConfigObject( configKey, updatedValue ); diff --git a/config/src/main/java/org/polypheny/db/config/WebUiPage.java b/config/src/main/java/org/polypheny/db/config/WebUiPage.java index 012847d9fe..7b40bf38a8 100644 --- a/config/src/main/java/org/polypheny/db/config/WebUiPage.java +++ b/config/src/main/java/org/polypheny/db/config/WebUiPage.java @@ -108,7 +108,7 @@ public void addWebUiGroup( final WebUiGroup g ) { @Override public String toString() { - TypeAdapter> enumTypeAdapter = new TypeAdapter>() { + TypeAdapter> enumTypeAdapter = new TypeAdapter<>() { @Override public void write( JsonWriter out, Enum value ) throws IOException { out.beginObject(); diff --git a/csv-adapter/src/main/java/org/polypheny/db/adapter/csv/CsvSource.java b/csv-adapter/src/main/java/org/polypheny/db/adapter/csv/CsvSource.java index f51ed6482e..a9130874d2 100644 --- a/csv-adapter/src/main/java/org/polypheny/db/adapter/csv/CsvSource.java +++ b/csv-adapter/src/main/java/org/polypheny/db/adapter/csv/CsvSource.java @@ -13,7 +13,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.regex.Pattern; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; import org.polypheny.db.adapter.Adapter.AdapterProperties; @@ -22,11 +21,11 @@ import org.polypheny.db.adapter.DataSource; import org.polypheny.db.adapter.DeployMode; import org.polypheny.db.adapter.csv.CsvTable.Flavor; +import org.polypheny.db.catalog.Catalog; import org.polypheny.db.catalog.entity.CatalogColumnPlacement; import org.polypheny.db.catalog.entity.CatalogPartitionPlacement; import org.polypheny.db.catalog.entity.CatalogTable; import org.polypheny.db.information.InformationGroup; -import org.polypheny.db.information.InformationManager; import org.polypheny.db.information.InformationTable; import org.polypheny.db.prepare.Context; import org.polypheny.db.schema.Schema; @@ -36,8 +35,6 @@ import org.polypheny.db.type.PolyType; import org.polypheny.db.util.Source; import org.polypheny.db.util.Sources; -import org.reflections.Reflections; -import org.reflections.scanners.ResourcesScanner; @Slf4j @@ -50,10 +47,10 @@ description = "Which length (number of characters including whitespace) should be used for the varchar columns. Make sure this is equal or larger than the longest string in any of the columns.") public class CsvSource extends DataSource { - private URL csvDir; private CsvSchema currentSchema; private final int maxStringLength; + private Map> exportedColumnCache; public CsvSource( final int storeId, final String uniqueName, final Map settings ) { @@ -66,7 +63,7 @@ public CsvSource( final int storeId, final String uniqueName, final Map> getExportedColumns() { - Map> map = new HashMap<>(); + if ( exportedColumnCache != null ) { + return exportedColumnCache; + } + Map> exportedColumnCache = new HashMap<>(); Set fileNames; if ( csvDir.getProtocol().equals( "jar" ) ) { - Reflections reflections = new Reflections( "hr", new ResourcesScanner() ); - Set fileNamesSet = reflections.getResources( Pattern.compile( ".*\\.(csv|csv\\.gz)$" ) ); + List ccps = Catalog + .getInstance() + .getColumnPlacementsOnAdapter( getAdapterId() ); fileNames = new HashSet<>(); - for ( String fileName : fileNamesSet ) { - String[] fileNameSplit = fileName.split( "/" ); - fileNames.add( fileNameSplit[fileNameSplit.length - 1] ); + for ( CatalogColumnPlacement ccp : ccps ) { + fileNames.add( ccp.physicalSchemaName ); } } else { File[] files = Sources.of( csvDir ) @@ -214,9 +214,9 @@ public Map> getExportedColumns() { throw new RuntimeException( e ); } - map.put( physicalTableName, list ); + exportedColumnCache.put( physicalTableName, list ); } - return map; + return exportedColumnCache; } @@ -253,13 +253,10 @@ protected void reloadSettings( List updatedSettings ) { } - protected void registerInformationPage( String uniqueName ) { - InformationManager im = InformationManager.getInstance(); - /*informationPage = new InformationPage( uniqueName, "CSV Data Source" ).setLabel( "Sources" ); - im.addPage( informationPage );*/ - + private void addInformationExportedColumns() { for ( Map.Entry> entry : getExportedColumns().entrySet() ) { InformationGroup group = new InformationGroup( informationPage, entry.getValue().get( 0 ).physicalSchemaName ); + informationGroups.add( group ); InformationTable table = new InformationTable( group, @@ -275,7 +272,6 @@ protected void registerInformationPage( String uniqueName ) { ); } informationElements.add( table ); - informationGroups.add( group ); } } diff --git a/dbms/build.gradle b/dbms/build.gradle index cec48aab9d..ec97e29573 100644 --- a/dbms/build.gradle +++ b/dbms/build.gradle @@ -1,20 +1,29 @@ import java.text.SimpleDateFormat -group "org.polypheny" - - -version = versionMajor + "." + versionMinor + versionQualifier - - buildscript { + repositories { + maven { + url "https://plugins.gradle.org/m2/" + } + google() + } dependencies { - // Shadowing; used to make a fat jar (https://github.com/johnrengelman/shadow) - classpath group: "com.github.jengelman.gradle.plugins", name: "shadow", version: shadow_plugin_version + classpath group: "app.cash.licensee", name: "licensee-gradle-plugin", version: licensee_version + classpath group: "com.jaredsburrows", name: "gradle-license-plugin", version: license_report_version } } +plugins { + id "application" + id "com.github.johnrengelman.shadow" version "$shadow_plugin_version" +} -apply plugin: "com.github.johnrengelman.shadow" +apply plugin: "app.cash.licensee" +apply plugin: "com.jaredsburrows.license" + +group "org.polypheny" + +version = versionMajor + "." + versionMinor + versionQualifier dependencies { @@ -99,6 +108,113 @@ sourceSets { } } +licenseReport { + generateCsvReport = true + generateHtmlReport = true + generateJsonReport = true +} + + +licensee { + // + // Ignore these dependencies, remove on release branches! + // START + ignoreDependencies('nz.ac.waikato.cms.weka') { + transitive = true + because "removed on release branches" + } + ignoreDependencies('com.datastax.oss') { + transitive = true + because "removed on release branches" + } + ignoreDependencies('com.github.nosan') { + transitive = true + because "removed on release branches" + } + ignoreDependencies('org.mariadb.jdbc') { + transitive = true + because "removed on release branches" + } + ignoreDependencies('org.apache.cassandra') { + transitive = true + because "removed on release branches" + } + allowDependency('com.github.jnr', 'jnr-posix', '3.0.50') { because 'removed on release branches' } + allowDependency('org.ow2.asm', 'asm', '7.1') { because 'removed on release branches' } + allowDependency('org.ow2.asm', 'asm-analysis', '7.1') { because 'removed on release branches' } + allowDependency('org.ow2.asm', 'asm-commons', '7.1') { because 'removed on release branches' } + allowDependency('org.ow2.asm', 'asm-tree', '7.1') { because 'removed on release branches' } + allowDependency('org.ow2.asm', 'asm-util', '7.1') { because 'removed on release branches' } + // END + + allow('Apache-2.0') + allow('MIT') + allow('BSD-2-Clause') + allow('BSD-3-Clause') + allow('CC0-1.0') + allowUrl('http://opensource.org/licenses/BSD-3-Clause') + allowUrl('http://www.wtfpl.net/') + allowUrl('https://creativecommons.org/publicdomain/zero/1.0/') + allowUrl('http://www.opensource.org/licenses/bsd-license.php') // BSD 2-Clause + allowUrl('https://www.eclipse.org/licenses/edl-v10.html') // EDL 1.0 + allowUrl('http://www.eclipse.org/org/documents/edl-v10.php') // EDL 1.0 + + allowDependency('com.j256.simplemagic', 'simplemagic', '1.16') { because 'ISC license' } + allowDependency('com.adobe.xmp', 'xmpcore', '6.0.6') { because 'BSD 3-Clause' } + allowDependency('org.bouncycastle', 'bcpkix-jdk15on', '1.67') { because 'MIT license' } + allowDependency('org.bouncycastle', 'bcprov-jdk15on', '1.67') { because 'MIT license' } + allowDependency('org.vitrivr', 'cottontaildb', '0.13.3') { because 'MIT license' } + allowDependency('org.vitrivr', 'cottontaildb-proto', '0.13.0') { because 'MIT license' } + allowDependency('org.javassist', 'javassist', '3.28.0-GA') { because 'Apache 2.0 license' } + allowDependency('org.awaitility', 'awaitility', '4.0.1') { because 'Apache 2.0 license' } + allowDependency('net.java.dev.jna', 'jna', '5.9.0') { because 'Apache 2.0 license' } + allowDependency('net.java.dev.jna', 'jna-platform', '5.8.0') { because 'Apache 2.0 license' } + allowDependency('jakarta.xml.bind', 'jakarta.xml.bind-api', '2.3.2') { because 'Eclipse Distribution License 1.0' } + allowDependency('org.postgresql', 'postgresql', '42.2.19') { because 'BSD 2-Clause' } + allowDependency('org.ow2.asm', 'asm', '5.0.3') { because 'BSD 3-Clause' } + allowDependency('org.ow2.asm', 'asm-analysis', '5.0.3') { because 'BSD 3-Clause' } + allowDependency('org.ow2.asm', 'asm-commons', '5.0.3') { because 'BSD 3-Clause' } + allowDependency('org.ow2.asm', 'asm-tree', '5.0.3') { because 'BSD 3-Clause' } + allowDependency('org.ow2.asm', 'asm-util', '5.0.3') { because 'BSD 3-Clause' } + allowDependency('org.codehaus.janino', 'janino', '3.0.11') { because 'BSD 3-Clause' } + allowDependency('org.codehaus.janino', 'commons-compiler', '3.0.11') { because 'BSD 3-Clause' } + allowDependency('com.google.re2j', 're2j', '1.5') { because 'BSD 3-Clause' } + allowDependency('org.java-websocket', 'Java-WebSocket', '1.3.8') { because 'MIT license' } + allowDependency('org.hsqldb', 'hsqldb', '2.6.1') { because 'BSD 3-Clause' } + + + // Category B + allow('EPL-1.0') + allow('MPL-1.1') + allow('MPL-2.0') + allowUrl('http://www.eclipse.org/legal/epl-2.0') // EPL 2.0 + allowUrl('https://www.eclipse.org/legal/epl-2.0/') // EPL 2.0 + allowUrl('https://www.eclipse.org/org/documents/epl-v10.php') // EPL 1.0 + allowUrl('https://www.eclipse.org/legal/epl-v20.html') // EPL 2.0 + allowUrl('https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt') // EPL 2.0 + + allowDependency('jakarta.annotation', 'jakarta.annotation-api', '1.3.5') { because 'Eclipse Public License v. 2.0' } + allowDependency('jakarta.ws.rs', 'jakarta.ws.rs-api', '2.1.6') { because 'Eclipse Public License v. 2.0' } + allowDependency('com.github.jnr', 'jnr-posix', '3.0.47') { because 'Eclipse Public License v. 2.0' } + allowDependency('jakarta.activation', 'jakarta.activation-api', '1.2.1') { because 'Eclipse Public License v. 2.0' } + allowDependency('javax.annotation', 'javax.annotation-api', '1.3.2') { because 'CDDL license' } + allowDependency('javax.servlet', 'javax.servlet-api', '4.0.1') { + because 'Servlet-api.jar and javax.servlet-*.jar are under the CDDL license, the original source code for this can be found at http://www.eclipse.org/jetty/downloads.php' + } + + // Glassfish + allowDependency('org.glassfish.jersey.core', 'jersey-common', '2.30.1') { because 'Eclipse Public License v. 2.0' } + allowDependency('org.glassfish.jersey.core', 'jersey-client', '2.30.1') { because 'Eclipse Public License v. 2.0' } + allowDependency('org.glassfish.jersey.inject', 'jersey-hk2', '2.30.1') { because 'Eclipse Public License v. 2.0' } + allowDependency('org.glassfish.jersey.connectors', 'jersey-apache-connector', '2.30.1') { because 'Eclipse Public License v. 2.0' } + allowDependency('org.glassfish.hk2.external', 'jakarta.inject', '2.6.1') { because 'Eclipse Public License v. 2.0' } + allowDependency('org.glassfish.hk2.external', 'aopalliance-repackaged', '2.6.1') { because 'Eclipse Public License v. 2.0' } + allowDependency('org.glassfish.hk2', 'osgi-resource-locator', '1.0.3') { because 'Eclipse Public License v. 2.0' } + allowDependency('org.glassfish.hk2', 'hk2-api', '2.6.1') { because 'Eclipse Public License v. 2.0' } + allowDependency('org.glassfish.hk2', 'hk2-locator', '2.6.1') { because 'Eclipse Public License v. 2.0' } + allowDependency('org.glassfish.hk2', 'hk2-utils', '2.6.1') { because 'Eclipse Public License v. 2.0' } +} + /** * JARs @@ -112,6 +228,12 @@ jar { attributes "Build-Date": "${buildTime()}" attributes "Main-Class": "org.polypheny.db.PolyphenyDb" } + metaInf { + from(rootProject.rootDir, { + include "LICENSE" + include "NOTICE" + }) + } } task sourcesJar(type: Jar, dependsOn: classes) { classifier "sources" @@ -133,8 +255,21 @@ assemble.dependsOn shadowJar artifacts { //archives jar // regular jar containing only the compiled source archives shadowJar // fat jar which additionally contains all dependencies - archives sourcesJar // jar file containing the java doc files - archives javadocJar // jar file containing the source files + //archives sourcesJar // jar file containing the java doc files + //archives javadocJar // jar file containing the source files +} + + +/** + * Release + */ +application { + mainClassName = 'org.polypheny.db.PolyphenyDb' + applicationName = 'Polypheny-DB' + //applicationDefaultJvmArgs = ["-Dlog4j.configuration=config/log4j.properties"] +} +startScripts { + defaultJvmOpts += ['-Xmx6g', '-XX:+HeapDumpOnOutOfMemoryError', '-Dfile.encoding=UTF-8'] } static def buildTime() { diff --git a/dbms/src/main/java/org/polypheny/db/ddl/DdlManagerImpl.java b/dbms/src/main/java/org/polypheny/db/ddl/DdlManagerImpl.java index c58c1c8d7a..f334722de0 100644 --- a/dbms/src/main/java/org/polypheny/db/ddl/DdlManagerImpl.java +++ b/dbms/src/main/java/org/polypheny/db/ddl/DdlManagerImpl.java @@ -241,6 +241,8 @@ public void addAdapter( String adapterName, String clazzName, Map primaryKeyColIds = new ArrayList<>(); int colPos = 1; + String physicalSchemaName = null; + String physicalTableName = null; for ( ExportedColumn exportedColumn : entry.getValue() ) { long columnId = catalog.addColumn( exportedColumn.name, @@ -266,6 +268,12 @@ public void addAdapter( String adapterName, String clazzName, Map settings = new HashMap<>(); settings.put( "database", "" ); + settings.put( "mode", "remote" ); settings.put( "host", "running-embedded" ); settings.put( "maxConnections", "25" ); settings.put( "password", "" ); diff --git a/dbms/src/test/java/org/polypheny/db/adapter/PostgresSourceTest.java b/dbms/src/test/java/org/polypheny/db/adapter/PostgresSourceTest.java index fab026fdbd..2330ef18fb 100644 --- a/dbms/src/test/java/org/polypheny/db/adapter/PostgresSourceTest.java +++ b/dbms/src/test/java/org/polypheny/db/adapter/PostgresSourceTest.java @@ -56,6 +56,7 @@ public static void start() throws SQLException { try ( Statement statement = connection.createStatement() ) { Map settings = new HashMap<>(); settings.put( "database", "postgres" ); + settings.put( "mode", "remote" ); settings.put( "host", "localhost" ); settings.put( "maxConnections", "25" ); settings.put( "password", "" ); diff --git a/gradle.properties b/gradle.properties index 0280ce9100..84242fa982 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ -versionMajor = 1 -versionMinor = 0 +versionMajor = 0 +versionMinor = 7.0 versionQualifier = -SNAPSHOT org.gradle.daemon = true @@ -33,7 +33,7 @@ elasticsearch_rest_client_version = 6.2.4 elasticsearch_version = 6.2.4 embedded_monetdb_version = 2.39 embedded_mysql_version = 4.6.1 -embedded_postgres_version = 1.2.10 +embedded_postgres_version = 1.3.1 esri_geometry_api_version = 2.2.0 fmpp_plugin_version = 0.9.16 fongo_version = 2.1.1 @@ -67,6 +67,8 @@ jsoup_version = 1.11.3 jsr305_version = 3.0.1 junit_version = 4.12 lang_painless_version = 6.2.4 +licensee_version = 1.3.1 +license_report_version = 0.8.90 log4j_api_version = 2.17.0 log4j_core_version = 2.17.0 log4j_slf4j_impl_version = 2.17.0 @@ -89,7 +91,7 @@ postgresql_version = 42.2.19 quidem_version = 0.9 reflections_version = 0.10.2 scott_data_hsqldb_version = 0.1 -shadow_plugin_version = 6.1.0 +shadow_plugin_version = 7.1.1 simplemagic_version = 1.16 sketches_core_version = 0.9.0 slf4j_api_version = 1.7.32 diff --git a/information/src/main/java/org/polypheny/db/information/Refreshable.java b/information/src/main/java/org/polypheny/db/information/Refreshable.java index 6b5c2bb96b..e55a68a9cb 100644 --- a/information/src/main/java/org/polypheny/db/information/Refreshable.java +++ b/information/src/main/java/org/polypheny/db/information/Refreshable.java @@ -47,7 +47,6 @@ public void refresh() { public interface RefreshFunction { - void refresh(); } diff --git a/jdbc-adapter/src/main/java/org/polypheny/db/adapter/jdbc/sources/AbstractJdbcSource.java b/jdbc-adapter/src/main/java/org/polypheny/db/adapter/jdbc/sources/AbstractJdbcSource.java index e30ad1a9f4..cb1867e0d3 100644 --- a/jdbc-adapter/src/main/java/org/polypheny/db/adapter/jdbc/sources/AbstractJdbcSource.java +++ b/jdbc-adapter/src/main/java/org/polypheny/db/adapter/jdbc/sources/AbstractJdbcSource.java @@ -40,7 +40,6 @@ import org.polypheny.db.prepare.Context; import org.polypheny.db.schema.SchemaPlus; import org.polypheny.db.sql.sql.SqlDialect; -import org.polypheny.db.sql.sql.dialect.MysqlSqlDialect; import org.polypheny.db.transaction.PUID; import org.polypheny.db.transaction.PolyXid; import org.polypheny.db.type.PolyType; @@ -63,7 +62,7 @@ public AbstractJdbcSource( SqlDialect dialect, boolean readOnly ) { super( storeId, uniqueName, settings, readOnly ); - this.connectionFactory = createConnectionFactory( settings, MysqlSqlDialect.DEFAULT, diverClass ); + this.connectionFactory = createConnectionFactory( settings, dialect, diverClass ); this.dialect = dialect; // Register the JDBC Pool Size as information in the information manager and enable it registerInformationPage(); diff --git a/jdbc-adapter/src/main/java/org/polypheny/db/adapter/jdbc/sources/PostgresqlSource.java b/jdbc-adapter/src/main/java/org/polypheny/db/adapter/jdbc/sources/PostgresqlSource.java index 4e143e59c9..51e8d1af18 100644 --- a/jdbc-adapter/src/main/java/org/polypheny/db/adapter/jdbc/sources/PostgresqlSource.java +++ b/jdbc-adapter/src/main/java/org/polypheny/db/adapter/jdbc/sources/PostgresqlSource.java @@ -38,10 +38,10 @@ @AdapterProperties( name = "PostgreSQL", description = "Relational database system optimized for transactional workload that provides an advanced set of features. PostgreSQL is fully ACID compliant and ensures that all requirements are met.", - usedModes = DeployMode.EMBEDDED) + usedModes = DeployMode.REMOTE) @AdapterSettingString(name = "host", defaultValue = "localhost", position = 1, description = "Hostname or IP address of the remote PostgreSQL instance.") -@AdapterSettingInteger(name = "port", defaultValue = 3306, position = 2, +@AdapterSettingInteger(name = "port", defaultValue = 5432, position = 2, description = "JDBC port number on the remote PostgreSQL instance.") @AdapterSettingString(name = "database", defaultValue = "polypheny", position = 3, description = "Name of the database to connect to.") diff --git a/monitoring/build.gradle b/monitoring/build.gradle index e538c07d81..7854f3992c 100644 --- a/monitoring/build.gradle +++ b/monitoring/build.gradle @@ -8,15 +8,6 @@ apply plugin: "idea" apply plugin: "io.freefair.lombok" -compileJava.options.encoding = "UTF-8" -compileTestJava.options.encoding = "UTF-8" -javadoc.options.encoding = "UTF-8" - - -sourceCompatibility = 1.8 -targetCompatibility = 1.8 - - dependencies { implementation project(":core") @@ -60,20 +51,6 @@ sourceSets { } -/** - * JavaDoc - */ -javadoc { - if (JavaVersion.current().isJava9Compatible()) { - options.addBooleanOption("html5", true) - } - // suppress most of the warnings - options.addStringOption("Xdoclint:none", "-quiet") - // Include private fields in JavaDoc - options.memberLevel = JavadocMemberLevel.PRIVATE -} - - /** * JARs */ @@ -89,18 +66,4 @@ java { withSourcesJar() } -/** - * IntelliJ - */ -idea { - module { - downloadJavadoc = true - downloadSources = true - - inheritOutputDirs = false - outputDir = file("${project.buildDir}/classes") - testOutputDir = file("${project.buildDir}/test-classes") - } -} - diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/SqlAlterConfig.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/SqlAlterConfig.java index 48c21d5f37..bf8fcf672c 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/SqlAlterConfig.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/SqlAlterConfig.java @@ -96,8 +96,10 @@ public void execute( Context context, Statement statement, QueryParameters param valueStr = StringUtils.chop( valueStr ); } Config config = ConfigManager.getInstance().getConfig( keyStr ); + if ( config == null ) { + throw new RuntimeException( "Unknown config key: " + keyStr ); + } config.parseStringAndSetValue( valueStr ); } } - diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterSourceTableAddColumn.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterSourceTableAddColumn.java index 93ad07c4ff..7f2277364b 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterSourceTableAddColumn.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterSourceTableAddColumn.java @@ -113,8 +113,8 @@ public void unparse( SqlWriter writer, int leftPrec, int rightPrec ) { public void execute( Context context, Statement statement, QueryParameters parameters ) { CatalogTable catalogTable = getCatalogTable( context, table ); - if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + if ( catalogTable.tableType != TableType.SOURCE ) { + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a source table." ); } if ( columnLogical.names.size() != 1 ) { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddColumn.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddColumn.java index 7c8d1e3c9f..72136895f3 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddColumn.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddColumn.java @@ -123,7 +123,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } if ( column.names.size() != 1 ) { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddIndex.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddIndex.java index 90a39bc22a..80c0b8ace8 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddIndex.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddIndex.java @@ -126,7 +126,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE && catalogTable.tableType != TableType.MATERIALIZED_VIEW ) { - throw new RuntimeException( "Not possible to use ALTER TABLE ADD INDEX because" + catalogTable.name + " is not a table or materialized view." ); + throw new RuntimeException( "Not possible to use ALTER TABLE ADD INDEX because " + catalogTable.name + " is not a table or materialized view." ); } DataStore storeInstance = null; diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPartitions.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPartitions.java index ee11d6667e..85fcb1a336 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPartitions.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPartitions.java @@ -143,7 +143,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPlacement.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPlacement.java index ea9477a74f..0c006a9ffa 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPlacement.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPlacement.java @@ -121,7 +121,7 @@ public void execute( Context context, Statement statement, QueryParameters param DataStore storeInstance = getDataStoreInstance( storeName ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } // You can't partition placements if the table is not partitioned diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPrimaryKey.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPrimaryKey.java index c34d9cc5b8..781ef493d0 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPrimaryKey.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddPrimaryKey.java @@ -85,7 +85,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddUniqueConstraint.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddUniqueConstraint.java index 4034676e64..957b36c7c5 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddUniqueConstraint.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableAddUniqueConstraint.java @@ -92,7 +92,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropColumn.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropColumn.java index af84092208..b916f8ae4c 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropColumn.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropColumn.java @@ -81,8 +81,8 @@ public void unparse( SqlWriter writer, int leftPrec, int rightPrec ) { public void execute( Context context, Statement statement, QueryParameters parameters ) { CatalogTable catalogTable = getCatalogTable( context, table ); - if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + if ( catalogTable.tableType != TableType.TABLE && catalogTable.tableType != TableType.SOURCE ) { + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } if ( column.names.size() != 1 ) { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropConstraint.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropConstraint.java index 60f94f1bd1..0affad6d9f 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropConstraint.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropConstraint.java @@ -82,7 +82,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropForeignKey.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropForeignKey.java index 554f9f75e3..9da8b97dee 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropForeignKey.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropForeignKey.java @@ -83,7 +83,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropIndex.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropIndex.java index 635a6ea0b0..5856820f15 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropIndex.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropIndex.java @@ -82,7 +82,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE && catalogTable.tableType != TableType.MATERIALIZED_VIEW ) { - throw new RuntimeException( "Not possible to use ALTER TABLE DROP INDEX because" + catalogTable.name + " is not a table or materialized view." ); + throw new RuntimeException( "Not possible to use ALTER TABLE DROP INDEX because " + catalogTable.name + " is not a table or materialized view." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropPlacement.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropPlacement.java index ba0a272811..ba9bfa6898 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropPlacement.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropPlacement.java @@ -87,7 +87,7 @@ public void execute( Context context, Statement statement, QueryParameters param DataStore storeInstance = getDataStoreInstance( storeName ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropPrimaryKey.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropPrimaryKey.java index 6f447b5456..a37da99f25 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropPrimaryKey.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableDropPrimaryKey.java @@ -80,7 +80,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableMergePartitions.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableMergePartitions.java index 65ee16afeb..ad9da7be98 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableMergePartitions.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableMergePartitions.java @@ -78,7 +78,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } // Check if table is even partitioned diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyColumn.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyColumn.java index 8bf111ef15..b78ee42c11 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyColumn.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyColumn.java @@ -148,7 +148,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, tableName ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPartitions.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPartitions.java index 4d97644ef3..37a0d89f19 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPartitions.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPartitions.java @@ -102,7 +102,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } if ( !catalogTable.partitionProperty.isPartitioned ) { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacement.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacement.java index a29143b55b..3ef8aab055 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacement.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacement.java @@ -119,7 +119,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } // You can't partition placements if the table is not partitioned diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacementAddColumn.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacementAddColumn.java index c9fe1f50ea..5f3dcc5fd0 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacementAddColumn.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacementAddColumn.java @@ -98,7 +98,7 @@ public void execute( Context context, Statement statement, QueryParameters param DataStore storeInstance = getDataStoreInstance( storeName ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacementDropColumn.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacementDropColumn.java index bc5eb54eb5..dd2de45d54 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacementDropColumn.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableModifyPlacementDropColumn.java @@ -96,7 +96,7 @@ public void execute( Context context, Statement statement, QueryParameters param DataStore storeInstance = getDataStoreInstance( storeName ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } try { diff --git a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableOwner.java b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableOwner.java index f0e7e1f3f1..0c034f8af4 100644 --- a/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableOwner.java +++ b/sql-language/src/main/java/org/polypheny/db/sql/sql/ddl/altertable/SqlAlterTableOwner.java @@ -82,7 +82,7 @@ public void execute( Context context, Statement statement, QueryParameters param CatalogTable catalogTable = getCatalogTable( context, table ); if ( catalogTable.tableType != TableType.TABLE ) { - throw new RuntimeException( "Not possible to use ALTER TABLE because" + catalogTable.name + " is not a table." ); + throw new RuntimeException( "Not possible to use ALTER TABLE because " + catalogTable.name + " is not a table." ); } if ( owner.names.size() != 1 ) { diff --git a/webui/src/main/java/org/polypheny/db/webui/Crud.java b/webui/src/main/java/org/polypheny/db/webui/Crud.java index 4dc8bffbf4..b6ce68f080 100644 --- a/webui/src/main/java/org/polypheny/db/webui/Crud.java +++ b/webui/src/main/java/org/polypheny/db/webui/Crud.java @@ -1404,17 +1404,16 @@ void getDataSourceColumns( final Context ctx ) throws UnknownDatabaseException, /** - * Get the exported tables of a DataSource that a table originates from + * Get additional columns of the DataSource that are not mapped to the table. */ - void getExportedColumns( final Context ctx ) throws UnknownDatabaseException, UnknownTableException, UnknownSchemaException { + void getAvailableSourceColumns( final Context ctx ) throws UnknownDatabaseException, UnknownTableException, UnknownSchemaException { UIRequest request = ctx.bodyAsClass( UIRequest.class ); CatalogTable table = catalog.getTable( "APP", request.getSchemaName(), request.getTableName() ); - ImmutableMap> placements = catalog.getColumnPlacementsByAdapter( table.id ); Set adapterIds = placements.keySet(); if ( adapterIds.size() > 1 ) { - log.warn( String.format( "The number of DataSources of a Table should not be > 1 (%s.%s)", request.getSchemaName(), request.getTableName() ) ); + log.warn( String.format( "The number of sources of an entity should not be > 1 (%s.%s)", request.getSchemaName(), request.getTableName() ) ); } List exportedColumns = new ArrayList<>(); for ( int adapterId : adapterIds ) { @@ -1446,7 +1445,7 @@ void getExportedColumns( final Context ctx ) throws UnknownDatabaseException, Un } - ctx.json( new Result( "Could not retrieve exported Columns." ) ); + ctx.json( new Result( "Could not retrieve exported source fields." ) ); } diff --git a/webui/src/main/java/org/polypheny/db/webui/HttpServer.java b/webui/src/main/java/org/polypheny/db/webui/HttpServer.java index c6b40ec5df..b9dae0f923 100644 --- a/webui/src/main/java/org/polypheny/db/webui/HttpServer.java +++ b/webui/src/main/java/org/polypheny/db/webui/HttpServer.java @@ -229,7 +229,7 @@ private void crudRoutes( Javalin webuiServer, Crud crud ) { webuiServer.post( "/getDataSourceColumns", crud::getDataSourceColumns ); - webuiServer.post( "/getExportedColumns", crud::getExportedColumns ); + webuiServer.post( "/getAvailableSourceColumns", crud::getAvailableSourceColumns ); webuiServer.post( "/updateColumn", crud::updateColumn ); diff --git a/webui/src/main/java/org/polypheny/db/webui/models/DbColumn.java b/webui/src/main/java/org/polypheny/db/webui/models/DbColumn.java index 7f578b8867..054ff788df 100644 --- a/webui/src/main/java/org/polypheny/db/webui/models/DbColumn.java +++ b/webui/src/main/java/org/polypheny/db/webui/models/DbColumn.java @@ -130,6 +130,9 @@ private DbColumn( JsonReader in ) throws IOException { case "name": name = in.nextString(); break; + case "physicalName": + physicalName = in.nextString(); + break; case "dataType": dataType = in.nextString(); break; @@ -187,6 +190,8 @@ public void write( JsonWriter out, DbColumn col ) throws IOException { out.beginObject(); out.name( "name" ); out.value( col.name ); + out.name( "physicalName" ); + out.value( col.physicalName ); out.name( "dataType" ); out.value( col.dataType ); out.name( "collectionsType" );